美文网首页百面机器学习|学习笔记
百面机器学习|第六章概率图模型知识点(二)

百面机器学习|第六章概率图模型知识点(二)

作者: 蓝白绛 | 来源:发表于2019-01-27 20:55 被阅读6次

    前言

    如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试》这本书。主要记录我认为重要的知识点,希望对大家有帮助。

    第六章 概率图模型

    0、写在前面

    这一篇为第六章的第二部分,主要是第一部分中没有整理完的内容。第一部分中包括朴素贝叶斯模型、最大熵模型、隐马尔可夫模型、最大熵马尔可夫模型、条件随机场。第二部分主要整理主题模型。

    5、主题模型

    1. 基于词袋模型或N-gram模型的文本表示模型有一个明显的缺陷,就是无法识别出两个不同的词或词组具有相同的主题,所以产生了主题模型。如果两个词可能有更高的概率同时出现在同一篇文档中,则这两个词可能具有相同的主题。
    2. pLSA(Probabilistic Latent Semantic Analysis):pLSA是用一个生成模型来建模文章的生成过程。假设有K个主题,M篇文章;对语料库中任何文章d,假设该文章有N个词,则对其中每个词,我们选择一个主题z,然后在当前主题的基础上生成一个词w。pLSA图模型示意图如下:
      6-5 pLSA图模型.jpg
      注:首先说明一些符号,定义文档上的主题分布为p(z_k|d_m),主题上的词分布为p(w_n|z_k),pLSA是将文档-词分布分解成了文档-主题主题-词分布。
      pLSA生成主题z和词w的过程遵照一个确定的概率分布。给定文章d,生成词w的概率可以写成p(w|d)=\sum_zp(w|z,d)p(z|d),假设给定主题z,生成词w的概率与特定文章无关,则公式可化简为p(w|d)=\sum_zp(w|z)p(z|d)。整个语料库中的文本生成概率可以用似然函数表示为L=\prod_m^M\prod_n^Np(d_m,w_n)^{c(d_m,w_n)}其log似然函数可以写成
      \begin{split} l &=\sum_m^M\sum_n^Nc(d_m,w_n)\log p(d_m,w_n) \\ &= \sum_m^M\sum_n^Nc(d_m,w_n)\log p(d_m)p(z_k|d_m)p(w_n|z_k) \end{split}上式中c(d_m,w_n)是在文章d_m中单词w_n出现的次数。文档主题分布p(z_k|d_m)和主题词分布p(w_n|z_k)是待估计参数,我们的目的是找到最优的参数使得对数似然函数l最大化。由于参数z_k隐含变量(无法直接观测到的变量),因此无法用最大似然估计求解,可以利用最大期望算法来解决。
    3. LDA(Latent Dirichlet Allocation):LDA可以看作是pLSA的贝叶斯版本,他们的文本生成过程基本相同,不同的是LDA为主题分布和词分布加了两个狄利克雷先验
      pLSA采用的是频率派思想,将文档-主题分布和主题-词分布看成确定的未知常数,可以求解;而LDA采用的是贝叶斯学派的思想,认为待估计参数不再是固定常数,而是服从一定分布的随机变量。这个分布符合一定的先验概率分布(即狄利克雷分布),并且在观察到样本信息之后,可以对先验分布进行修正,从而得到后验分布。LDA之所以选择狄利克雷分布作为先验分布,是因为它为多项式分布的共轭先验概率分布,后验概率依然服从狄利克雷分布,方便计算。LDA模型如下图:
      6-5 LDA图模型.jpg
      LDA语料库生成过程:对文本库中每一篇文档d_i,采用以下操作:
      (1) 从超参数为\alpha的狄利克雷分布中抽样生成文档d_i的主题分布\theta_i
      (2) 对文档d_i中的每个词进行以下3个操作:
      (2.1) 从代表主题的多项式分布\theta_i中抽样生成它所对应的主题x_{ij}
      (2.2) 从超参数为\beta的狄利克雷分布中抽样生成主题x_{ij}对应的词分布\psi_{x_{ij}}
      (2.3) 从代表词的多项式分布\psi_{x_{ij}}中抽样生成词w_{ij}
      我们要解出主题分布\theta_i及词分布\psi_{x_{ij}}的期望,可以用吉布斯采样(Gibbs Sampling)的方式实现。
    4. 衡量LDA模型的评估指标:
    • 一个常用的指标是困惑度(perplexity)。在文档集合D上,困惑度为perplexity(D)=\exp\{-\frac{\sum_{d=1}^{M}\log p(w_d)}{\sum_{d=1}^M N_d}\}其中w_d是文档d中单词所组成的词袋向量p(w_d)为模型所预测的文档d的生成概率,N_d为文档d单词总数。
      随着主题个数增多,训练集和验证集上的困惑度下降,但主题继续增大时会出现过拟合,表现为训练集上继续下降但验证集上增长,可取极小值点作为主题个数。如果极小值点对应的主题数太大,实际应用并不适合,则可以选择困惑度下降明显变慢的拐点对应的主题数。
    • 另一个方法是在LDA的基础上融入分层狄利克雷过程(Hierarchical Dirichlet Process,HDP),构成一种非参数主题模型HDP-LDA。它不需要预先指定主题个数,会根据文档数目自动调整。缺点是使得整个概率图模型更加复杂,训练速度更加缓慢。实际应用中经常采用困惑度的方法选择主题数。

    小结

    这节讲了两个主题模型:pLSA和LDA。两个模型非常相似,但是一个是基于频率派思想,一个是基于贝叶斯学派思想。这本书主要还是讲模型的思想,没有具体讲求解办法。求解后面有时间再整理。

    结尾

    如果您发现我的文章有任何错误,或对我的文章有什么好的建议,请联系我!如果您喜欢我的文章,请点喜欢~*我是蓝白绛,感谢你的阅读!

    相关文章

      网友评论

        本文标题:百面机器学习|第六章概率图模型知识点(二)

        本文链接:https://www.haomeiwen.com/subject/nrvgjqtx.html