1700536247
1700536248
从代表词的多项式分布zij中抽样生成词wij。
1700536249
1700536250
1700536251
我们要求解出主题分布θi以及词分布zij的期望,可以用吉布斯采样(Gibbs Sampling)的方式实现。首先随机给定每个单词的主题,然后在其他变量固定的情况下,根据转移概率抽样生成每个单词的新主题。对于每个单词来说,转移概率可以理解为:给定文章中的所有单词以及除自身以外其他所有单词的主题,在此条件下该单词对应为各个新主题的概率。最后,经过反复迭代,我们可以根据收敛后的采样结果计算主题分布和词分布的期望。
1700536252
1700536253
问题2 如何确定LDA模型中的主题个数?
1700536254
1700536255
难度:★★☆☆☆
1700536256
1700536257
分析与解答
1700536258
1700536259
在LDA中,主题的个数K是一个预先指定的超参数。对于模型超参数的选择,实践中的做法一般是将全部数据集分成训练集、验证集、和测试集3部分,然后利用验证集对超参数进行选择。例如,在确定LDA的主题个数时,我们可以随机选取60%的文档组成训练集,另外20%的文档组成验证集,剩下20%的文档组成测试集。在训练时,尝试多组超参数的取值,并在验证集上检验哪一组超参数所对应的模型取得了最好的效果。最终,在验证集上效果最好的一组超参数和其对应的模型将被选定,并在测试集上进行测试。
1700536260
1700536261
为了衡量LDA模型在验证集和测试集上的效果,需要寻找一个合适的评估指标。一个常用的评估指标是困惑度(perplexity)。在文档集合D上,模型的困惑度被定义为
1700536262
1700536263
1700536264
,
1700536265
1700536266
(6.28)
1700536267
1700536268
其中M为文档的总数,wd为文档d中单词所组成的词袋向量,p(wd)为模型所预测的文档d的生成概率,Nd为文档d中单词的总数。
1700536269
1700536270
一开始,随着主题个数的增多,模型在训练集和验证集的困惑度呈下降趋势,但是当主题数目足够大的时候,会出现过拟合,导致困惑度指标在训练集上继续下降但在验证集上反而增长。这时,可以取验证集的困惑度极小值点所对应的主题个数作为超参数。在实践中,困惑度的极小值点可能出现在主题数目非常大的时候,然而实际应用并不能承受如此大的主题数目,这时就需要在实际应用中合理的主题数目范围内进行选择,比如选择合理范围内困惑度的下降明显变慢(拐点)的时候。
1700536271
1700536272
另外一种方法是在LDA基础之上融入分层狄利克雷过程(Hierarchical Dirichlet Process,HDP),构成一种非参数主题模型HDP-LDA。非参数主题模型的好处是不需要预先指定主题的个数,模型可以随着文档数目的变化而自动对主题个数进行调整;它的缺点是在LDA基础上融入HDP之后使得整个概率图模型更加复杂,训练速度也更加缓慢,因此在实际应用中还是经常采用第一种方法确定合适的主题数目。
1700536273
1700536274
问题3 如何用主题模型解决推荐系统中的冷启动问题?
1700536275
1700536276
难度:★★★☆☆
1700536277
1700536278
分析与解答
1700536279
1700536280
首先对题目做进一步的解释。推荐系统中的冷启动问题是指在没有大量用户数据的情况下如何给用户进行个性化推荐,目的是最优化点击率、转化率或用户体验(用户停留时间、留存率等)。冷启动问题一般分为用户冷启动、物品冷启动和系统冷启动三大类。用户冷启动是指对一个之前没有行为或行为极少的新用户进行推荐;物品冷启动是指为一个新上市的商品或电影(这时没有与之相关的评分或用户行为数据)寻找到具有潜在兴趣的用户;系统冷启动是指如何为一个新开发的网站设计个性化推荐系统。
1700536281
1700536282
解决冷启动问题的方法一般是基于内容的推荐。以Hulu的场景为例,对于用户冷启动来说,我们希望根据用户的注册信息(如:年龄、性别、爱好等)、搜索关键词或者合法站外得到的其他信息(例如用户使用Facebook账号登录,并得到授权,可以得到Facebook中的朋友关系和评论内容)来推测用户的兴趣主题。得到用户的兴趣主题之后,我们就可以找到与该用户兴趣主题相同的其他用户,通过他们的历史行为来预测用户感兴趣的电影是什么。同样地,对于物品冷启动问题,我们也可以根据电影的导演、演员、类别、关键词等信息推测该电影所属于的主题,然后基于主题向量找到相似的电影,并将新电影推荐给以往喜欢看这些相似电影的用户。可以使用主题模型(pLSA、LDA等)得到用户和电影的主题。以用户为例,我们将每个用户看作主题模型中的一篇文档,用户对应的特征作为文档中的单词,这样每个用户可以表示成一袋子特征的形式。通过主题模型学习之后,经常共同出现的特征将会对应同一个主题,同时每个用户也会相应地得到一个主题分布。每个电影的主题分布也可以用类似的方法得到。
1700536283
1700536284
那么如何解决系统冷启动问题呢?首先可以得到每个用户和电影对应的主题向量,除此之外,还需要知道用户主题和电影主题之间的偏好程度,也就是哪些主题的用户可能喜欢哪些主题的电影。当系统中没有任何数据时,我们需要一些先验知识来指定,并且由于主题的数目通常比较小,随着系统的上线,收集到少量的数据之后我们就可以对主题之间的偏好程度得到一个比较准确的估计。
1700536285
1700536286
1700536287
1700536288
1700536290
百面机器学习:算法工程师带你去面试 第7章 优化算法
1700536291
1700536292
优化是应用数学的一个分支,也是机器学习的核心组成部分。实际上,机器学习算法 = 模型表征 + 模型评估 + 优化算法。其中,优化算法所做的事情就是在模型表征空间中找到模型评估指标最好的模型。不同的优化算法对应的模型表征和评估指标不尽相同,比如经典的支持向量机对应的模型表征和评估指标分别为线性分类模型和最大间隔,逻辑回归对应的模型表征和评估指标则分别为线性分类模型和交叉熵。
1700536293
1700536294
随着大数据和深度学习的迅猛发展,在实际应用中面临的大多是大规模、高度非凸的优化问题,这给传统的基于全量数据、凸优化的优化理论带来了巨大的挑战。如何设计适用于新场景的、高效的、准确的优化算法成为近年来的研究热点。优化虽然是一门古老的学科,但是大部分能够用于训练深度神经网络的优化算法都是近几年才被提出,如Adam算法等。
1700536295
1700536296
虽然,目前大部分机器学习的工具已经内置了常用的优化算法,实际应用时只需要一行代码即可完成调用。但是,鉴于优化算法在机器学习中的重要作用,了解优化算法的原理也很有必要。
[
上一页 ]
[ :1.700536247e+09 ]
[
下一页 ]