hulu机器学习问题与解答系列|十九:主题模型

peizhe123 peizhe123     2022-10-21     410

关键词:

今天的内容是

【主题模型】

 

场景描述

基于Bag-Of-Words(或N-gram)的文本表示模型有一个明显的缺陷,就是无法识别出不同的词(或词组)具有相同主题的情况。我们需要一种技术能够将具有相同主题的词(或词组)映射到同一维度上去,于是产生了主题模型(Topic Model)。主题模型是一种特殊的概率图模型。想象一下我们如何判定两个不同的词具有相同的主题呢?这两个词可能有更高的概率出现在同一主题的文档中;换句话说,给定某一主题,这两个词的产生概率都是比较高的,而另一些不太相关的词产生的概率则是较低的。假设有K个主题,我们可以把任意文章表示成一个K维的主题向量,其中向量的每一维代表一个主题,权重代表这篇文章属于该主题的概率。主题模型所解决的事情,就是从语料库中发现有代表性的主题(得到每个主题上面词的分布),并且计算出每篇文章对应着哪些主题。这样具有相似主题的文章拥有相似的主题向量表示,从而能够更好地表示文章的语义,提高文本分类、信息检索等应用的效果。

 

问题描述

1. 常见的主题模型有哪些?试介绍其原理。

2. 如何确定LDA模型中的主题个数?

 

解答与分析

1. 常见的主题模型有哪些?试介绍其原理。

常用的主题模型当属pLSA和LDA,下面分别介绍其原理:

(1) pLSA

pLSA(probabilistic Latent Semantic Analysis) [1]用一个生成模型来建模文章的生成过程。假设有K个主题,M篇文章;对语料库中的任意文章d, 假设该文章有N个词,则对于其中的每一个词, 我们首先选择一个主题z, 然后在当前主题的基础上生成一个词w。这一过程表示成图模型(Graphical Model)如下图所示:

技术分享图片

生成主题z和词w的过程遵照一个确定的概率分布。设在文章d中生成主题z的概率为p(z|d), 在选定主题的条件下生成词w的概率为p(w|z),则给定文章d,生成词w的概率可以写成: 

技术分享图片

在这里我们做一个简化,假设给定主题z的条件下,生成词w的概率是与特定的文章无关的,则公式可以简化为:

技术分享图片

整个语料库中的文本生成概率可以用以下公式表示,我们称之为似然函数(Likelihood Function):

技术分享图片

其中p(dmwn)是在第m篇文章中,第n个单词为wn的概率,与上文中p(w|d)的含义是相同的,只是换了一种符号表达。n(dmwn)表示单词wn在文章dm中出现的次数。

于是,对数似然函数可以写成:

技术分享图片

在上面的公式中,定义在文章上的主题分布p(zk|dm)和定义在主题上的词分布p(wn|zk)是待估计的参数 。我们需要找到最优的参数,使得整个语料库的对数似然函数最大化。由于参数中包含的zk是隐含变量(即无法直接观测到的变量),因此无法用最大似然估计直接求解,可以利用EM(Expectation-Maximization)算法来解决。

 

(2) LDA

LDA(Latent Dirichlet Allocation)[2]可以看作是pLSA的贝叶斯版本,其文本生成过程与pLSA基本相同,不同的是为主题分布和词分布分别加了狄利克雷(Direchlet)先验。为什么要加入狄利克雷先验呢?这就要从频率学派和贝叶斯学派的区别说起。pLSA采用的是频率派思想,将每篇文章对应的主题分布p(zk|dm)和每个主题对应的词分布p(wn|zk)看成确定的未知常数,并可以求解出来;而LDA采用的是贝叶斯学派的思想,认为待估计的参数(主题分布和词分布)不再是一个固定的常数,而是服从一定分布的随机变量。这个分布符合一定的先验概率分布(即Dirichlet分布),并且在观察到样本信息之后,可以对先验分布进行修正,从而得到后验分布。LDA之所以选择Dirichlet分布做为先验分布,是因为它为多项式分布的共轭先验概率分布,后验概率依然服从Dirichlet分布,这样做可以为计算带来便利。LDA的图模型表示如下:

技术分享图片

其中α,β分别为两个Dirichlet分布的超参数,为人工设定。语料库的生成过程如下。

对文本库中的每一篇文档dm

技术分享图片

这里主题分布θm以及词分布技术分享图片是待估计的参数,可以用吉布斯采样(Gibbs Sampling)[4]求解其期望。具体做法为,首先随机给定每个词的主题,然后在其它变量固定的情况下,根据转移概率抽样生成每个词的新主题。对于每个词来说,转移概率可以理解为:给定文章中的所有词以及除自身以外其它所有词的主题,在此条件下该词对应各个新主题的概率。最后,经过反复迭代,我们可以根据收敛后的采样结果计算主题分布和词分布的期望。

 

2. 如何确定LDA模型中的主题个数?

在LDA中,主题的个数K是一个预先指定的超参数。对于模型超参数的选择,实践中的做法一般是将全部数据集分成训练集、验证集、和测试集3部分,然后利用验证集对超参数进行选择。例如,在确定LDA的主题个数时,我们可以随机选取60%的文档组成训练集,另外20%的文档组成验证集,剩下20%的文档组成测试集。我们在训练时尝试多组超参数的取值,并在验证集上检验哪一组超参数所对应的模型取得了最好的效果。最终,在验证集上效果最好的一组超参数和其对应的模型将被选定,并在测试集上进行测试。

为了衡量LDA模型在验证集和测试集上的效果,我们需要寻找一个合适的评估指标。一个常用的评估指标是困惑度(perplexity)。在文档集合D上,模型的困惑度被定义为:

技术分享图片

其中M为文档的总数,wd为文档d中单词所组成的词袋向量,p(wd)为模型所预测的文档d的生成概率,Nd为文档d中单词的总数。

一开始,随着主题个数的增多,模型在训练集和验证集的困惑度呈下降趋势,但是当主题数目足够大的时候,会出现过拟合,导致困惑度指标在训练集上继续下降但在验证集上反而增长。这时,我们可以取困惑度极小值点所对应的主题个数作为超参数。实践中,困惑度的极小值点可能出现在主题数目非常大的时候,然而实际应用并不能承受如此大的主题数目,这时就需要在实际应用中合理的主题数目范围内进行选择,比如选择合理范围内困惑度的下降明显变慢(拐点)的时候。

另外一种方法是在LDA基础之上融入分层狄利克雷过程(Hierarchical Dirichlet Process,HDP)[3],构成一种非参数主题模型HDP-LDA。非参数主题模型的好处是不需要预先指定主题的个数,模型可以随着文档数目的变化而自动对主题个数进行调整;它的缺点是在LDA基础上融入HDP之后使得整个概率图模型更加复杂, 训练速度也更加缓慢,因此在实际应用中还是经常采用第一种方法确定合适的主题数目。

 

参考文献:

[1] Hofmann, Thomas. "Probabilistic latent semantic analysis." Proceedings of the Fifteenth conference on Uncertainty in artificial intelligence. Morgan Kaufmann Publishers Inc., 1999.

[2] Blei, David M., Andrew Y. Ng, and Michael I. Jordan. "Latent dirichlet allocation." Journal of machine Learning research3.Jan (2003): 993-1022.

[3] Teh, Yee W., et al. "Sharing clusters among related groups: Hierarchical Dirichlet processes." Advances in neural information processing systems. 2005.

[4] George, Edward I., and Robert E. McCulloch. "Variable selection via Gibbs sampling." Journal of the American Statistical Association 88.423 (1993): 881-889.

 


 

下一题预告

【PCA算法(续集)】

 

场景描述

经历了强化学习、深度学习、集成学习一轮轮面试题的洗礼,我们是否还记得心底对宇宙,对世界本源的敬畏与探索之心?时间回溯到40多天前,我们曾经从宇宙空间出发,讨论维度,从维度引到机器学习,由PCA探寻降维之道,传送门:Hulu机器学习与问答系列第六弹 PCA算法。彼日,我们从最大方差的角度解释了PCA的原理、目标函数和求解方法。今夕,我们将从最小平方误差之路,再次通向PCA思想之核心。

 

问题描述

观察到其实PCA求解的是最佳投影方向,即一条直线,这与数学中线性回归问题的目标不谋而合,能否从回归的角度定义PCA的目标并相应地求解问题呢?

hulu机器学习问题与解答系列|二十一:分类排序回归模型的评估

本期问题的解答结合了具体的Hulu业务案例,可以说是很有趣又好懂了。快快学起来吧!  今天的内容是【分类、排序、回归模型的评估】 场景描述在模型评估过程中,分类问题、排序问题、回归问题往往需要使用不... 查看详情

hulu机器学习问题与解答系列|第六弹:pca算法

好久不见,Hulu机器学习问题与解答系列又又又更新啦! 你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法,说不定会在接下来的文章中看到你的感言噢~  今天的主题是... 查看详情

hulu机器学习问题与解答系列|第九弹:循环神经网络

...NN问题的解答。记得多多思考和转发,公式供应充足的Hulu机器学习系列,怎么能只自己知(shou)道(nue)  ~  今天的内容是【循环神经网络】 场景描述循环神经网络(RecurrentNeuralNetwork)是一种主流的深度学习模型... 查看详情

hulu机器学习问题与解答系列|第四弹:不均衡样本集的处理

Hulu机器学习系列按时来报到~快搬好小板凳,一起来学习吧 今天的主题是【采样】 引言古人有云:“知秋一叶,尝鼎一脔”,其中蕴含的就是采样思想。采样,就是根据特定的概率分布产生对应的样本点。对于一些简... 查看详情

hulu机器学习问题与解答系列|第七弹:非监督学习算法与评估

听说,Hulu机器学习与冬日的周末更配噢~ 你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法。同时,为使大家更好地了解Hulu,菜单“关于Hulu”也做了相应调整,好奇宝宝们,牌... 查看详情

hulu机器学习问题与解答系列|二十二:特征工程—结构化数据

...问题寻找有效的特征并进行处理成适合模型的输入形式。机器学习中有句经典的话叫做“Garbagein,garbageout”,意思是如果输入的数据是垃圾,那么得到的结果 查看详情

hulu机器学习问题与解答系列|第八弹:强化学习

...的要素,例如环境:游戏本身的状态,动作:用户操作,机器人:程序,回馈:得分、输赢等。通过输入原始像素来玩视频游戏,是人工智能成熟的标志之一。雅达利(Atari)是20世纪七八十年代红极一时的电脑游戏,类似于国... 查看详情

hulu机器学习问题与解答系列|十七:随机梯度下降算法之经典变种

这是本周第二篇机器学习,也是Hulu面试题系列的第十七篇了~之前的所有内容都可以在菜单栏的“机器学习”中找到,愿你温故,知新。 今天的内容是【随机梯度下降算法之经典变种】 场景描述提到DeepLearning中的优化方... 查看详情

hulu机器学习问题与解答系列|二十三:神经网络训练中的批量归一化

来看看批量归一化的有关问题吧!记得进入公号菜单“机器学习”,复习之前的系列文章噢。 今天的内容是【神经网络训练中的批量归一化】 场景描述深度神经网络的训练中涉及诸多手调参数,如学习率,权重衰减系数... 查看详情

hulu机器学习问题与解答系列|二十四:随机梯度下降法

...量的爆炸式增长。如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类。因此有人戏称,“得 查看详情

hulu机器学习问题与解答系列|十八:svm–核函数与松弛变量

嗨,又见面了~你可以进入公众号,点击菜单栏的“机器学习”回顾本系列的全部内容,并留言与作者交流。 今天的内容是【SVM–核函数与松弛变量】 场景描述当我们在SVM中处理线性不可分的数据时,核函数可以对数据... 查看详情

hulu机器学习问题与解答系列|十六:经典优化算法

HappyNewYear! 新年伊始,我们都会在祝福他人之余,为自己暗暗定下几个小目标。那就从现在开始努力吧,跑得更快一点,才会让时间显得慢一些~ 今天的内容是【经典优化算法】 场景描述针对我们遇到的各类优化问题... 查看详情

hulu机器学习问题与解答系列|十二:注意力机制

几天不见想死你们啦~今儿的课题很好玩,跟上队伍一起来读! 今天的内容是【注意力机制】 场景描述作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解;同时我们在说话、打字... 查看详情

hulu机器学习问题与解答系列|十五:多层感知机与布尔函数

今天没有别的话,好好学习,多多转发!  本期内容是【多层感知机与布尔函数】 场景描述神经网络概念的诞生很大程度上受到了神经科学的启发。生物学研究表明,大脑皮层的感知与计算功能是通过分多层实现的,... 查看详情

hulu机器学习问题与解答系列|十四:如何对高斯分布进行采样

欢迎回到“采样”系列~ 今天的内容是【如何对高斯分布进行采样】 场景描述高斯分布,又称正态分布,是一个在数学、物理及工程领域都非常重要的概率分布。在实际应用中,我们经常需要对高斯分布进行采样。虽然... 查看详情

hulu机器学习问题与解答系列|十一:seq2seq

你可以点击菜单栏的“机器学习”,回顾本系列前几期的全部内容,并留言发表你的感悟与想法。 今天的内容是【Seq2Seq】 场景描述作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑... 查看详情

机器学习问题与解答系列(17-24)

老朋友了,还用多说什么吗?点击下面的链接复习咯: 17. 随机梯度下降算法之经典变种18. SVM—核函数与松弛变量19. 主题模型20. PCA最小平方误差理论21. 分类、排序、回归模型的评估22. 特征工程—结构... 查看详情

机器学习-白板推导系列笔记(十九)-贝叶斯线性回归

...视频:贝叶斯线性回归_81min全部笔记的汇总贴:机器学习-白板推导系列笔记一、背景介绍我们首先回顾一下线性回归,线性回归是最简单的回归问题。Data:(xi,yi)i=1N,xi∈Rp,yi∈RData:\\(x_i,y_i)\\^N_i=1,x_i\\inR^p,y_i\\inRDa 查看详情