主题模型

  1. 给包含 篇文档的定语料库 ,其中 为第 篇文档,包含 个单词。

    语料库的所有单词来自于词汇表 ,其中 表示词汇表的大小,第 个单词为

    注意:文档中的单词标记为 ,它表示文档中第 个位置的单词为 。如:文档中第1个位置的单词为 (假设 ),则文档中第一个位置的单词为

    因此这里将 来表示文档中的单词(也称作 token ),用 表示词表中的单词。

  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. 文档生成算法:根据主题模型求解的参数来生成一篇新的文档。

  2. 最大似然模型的 Unigram Model 生成文档步骤:

    根据词汇分布 ,从词汇表 中独立重复采样 次从而获取 个单词。则这些单词就生成一篇文档。

  3. 最大后验估计的 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. 根据pLSA概率图模型(盘式记法),结合成对马尔可夫性有:

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

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

    根据该等式,可以得到:

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

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

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

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

2.3 参数求解

  1. pLSA 模型由两种参数求解方法:矩阵分解、EM 算法。

2.3.1 矩阵分解

  1. 根据前面的推导,有: 。其中文档 和单词 是观测到的,主题 是未观测到的、未知的。

    ,根据:

    则有: