主题模型

  1. 给定语料库 ,其中包含 篇文档 。

    所有的单词来自于词汇表 ,其中 表示词汇表的大小。

  2. BOW:Bag of Words:词在文档中不考虑顺序,这称作词袋模型。

一、Unigram Model

  1. 假设有一个骰子,骰子有 个面,每个面对应于词典中的一个单词。 Unigram Model是这样生成文档的:

    • 每次抛一次骰子,抛出的面就对应于产生一个单词
    • 如果一篇文档有 个单词,则独立的抛掷 次骰子就产生着 个单词。
  2. 令骰子的投掷出各个面的概率为:

    就是待求的参数。

  3. 假设文档包含 个单词,这些单词依次为 : ,其中 ,用 代表文档。 则生成这篇文档的概率为:

    中, 的上下文。

    由于采取的是词袋模型,没有考虑上下文,所以有:

    于是有:

    • 如果考虑了上下文(即抛弃词袋模型),则各种单词的组合会导致爆炸性的复杂度增长。

    • 由于是词袋模型,因此 并不构成一个概率分布。

      仅仅是生成该文档的一种非归一化概率。

  4. 假设单词 中,有 ,有 ,...有 ,其中 ,则:

  5. 参数估计:就是估计骰子的投掷出各个面的概率

1.1 最大似然估计

  1. 假设数据集 包含 篇文档

    对文档 ,假设其单词依次为 , 用 来表示。其中:

    • 表示文档 的第 个单词为单词
    • 表示文档 一共有 个单词。
  2. 由于每篇文档都是独立的且不考虑文档的顺序和单词的顺序,则数据集发生的概率

    假设单词 中,有 ,有 ,...有 。其中 为所有文档的所有单词的数量。则有:

  3. 使用最大似然估计法,也就是最大化对数的

    于是求解:

    用拉格朗日乘子法求解,其解为:

    其物理意义为:单词 出现的概率 等于它在数据集 中出现的频率(它出现的次数 除以文档所有单词数 )。

1.2 最大后验估计

  1. 根据贝叶斯学派的观点, 参数 也是一个随机变量而不再是一个常量,它服从某个概率分布 , 这个分布称作参数 的先验分布。

    此时:

    根据前面的推导有: ,则有:

  2. 此处先验分布 有多种选择。

    注意到数据集条件概率 刚好是多项式分布的形式,于是选择先验分布为多项式分布的共轭分布,即狄利克雷分布:

    其中:

    • 为参数向量

    • Beta函数:

    • 显然根据定义有:

  3. 为词频向量,其每个元素代表了对应的单词在数据集 中出现的次数。

    此时有:

    因此 仅由 决定,记作:

  4. 后验概率 :

    可见后验概率服从狄利克雷分布

  5. 因为这时候的参数 是一个随机变量,而不再是一个固定的数值,因此需要通过对后验概率 最大化或者期望来求得。

    这里使用期望值 来做参数估计。

    由于后验分布 服从狄利克雷分布 , 则有期望:

    即参数 的估计值为:

    考虑到 在狄利克雷分布中的物理意义为:事件的先验的伪计数。因此该估计式物理意义为:估计值是对应事件计数(伪计数+真实计数)在整体计数中的比例。

1.3 文档生成

  1. Unigram Model生成文档的步骤为:

    • 根据参数为 的狄利克雷分布 随机采样一个词汇分布

      所谓随机采样一个词汇分布,即:根据狄里克雷分布生成一个随机向量。选择时要求 :$$

    • 根据词汇分布

      • 根据该分布从词汇表中独立重复采样 次,获取 个单词。则这些单词就组成一篇文档。
      • 重复 次,即得到 篇文档组成的文档集合 。

      所有文档共享同一个词汇分布 ,而不是每个文档各自采样一个词汇分布。

二、pLSA Model

  1. Unigram Model模型过于简单。事实上人们写一篇文章往往需要先确定要写哪几个主题。

    如:写一篇计算机方面的文章,最容易想到的词汇是:内存、CPU、编程、算法等等。之所以能马上想到这些词,是因为这些词在对应的主题下出现的概率相对较高。

    因此可以很自然的想到:一篇文章通常由多个主题构成,而每个主题大概可以用与该主题相关的频率最高的一些词来描述。

    上述直观的想法由Hoffman在 1999 年的 probabilistic Latent Semantic Analysis:pLSA模型中首先进行了明确的数学化。

  2. 主题 topic:表示一个概念。具体表示为一系列相关的词,以及它们在该概念下出现的概率。

    • 与某个主题相关性比较强的词,在该主题下出现概率较高
    • 与某个主题相关性比较弱的词,在该主题下出现概率较低
  3. 主题示例:给定一组词: 证明,推导,对象,酒庄,内存,下列三个主题可以表示为:

    • 数学主题:
    • 计算机主题:
    • 红酒主题:
     证明推导对象酒庄内存
    数学0.450.350.200
    计算机0.20.150.4500.2
    红酒000.20.80

2.1 文档生成

  1. 假设话题集合 个话题,分别为

    pLSA 模型的文档生成规则:

    • 首先以概率 选中第 篇文档。

    • 然后在文档 中,以概率 选中第 个话题

    • 然后在话题 中,以概率 选中第 个单词

    • 重复执行挑选话题--> 挑选单词 次,则得到一篇包含 个单词 的文档。

      其中: 表示文档的第 个单词为

  2. 重复执行上述文档生成规则 次,即得到 篇文档组成的文档集合

2.2 模型原理

    • 表示:选中第 篇文档 的条件下,选中第 个话题 的概率
    • 表示:选中第 个话题 的条件下,选中第 个单词 的概率

    待求的是参数

  1. 根据概率的定义,有约束条件:

  2. 根据pLSA概率图模型(由盘式记法得到),结合成对马尔可夫性有:

    即:文档和单词关于主题条件独立。

  3. 对于给定文档 中的单词 ,有:

    根据该等式,可以得到:

    即:给定文档 的条件下,某个的单词 出现的概率可以分成三步:

    • 首先得到给定的文档 的条件下,获取某个话题 的概率
    • 再得到该话题 生成该单词 的概率
    • 对所有的话题累加 即得到给定的单词 在给定文档 中出现的概率
  4. 对于给定文档 中主题 生成的单词 ,有:

    则已知文档 中出现了单词 的条件下,该单词由主题 生成的概率为:

    • 其物理意义为:给定文档 的条件下,单词 由主题 生成的概率占单词 出现的概率的比例。
    • 若话题 仅仅与单词