返回介绍

数学基础

统计学习

深度学习

工具

Scala

二、pLSA Model

发布于 2023-07-17 23:38:25 字数 17474 浏览 0 评论 0 收藏 0

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

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

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

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

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

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

    • 数学主题: $ (0.45,0.35,0.2,0,0) $
    • 计算机主题: $ (0.2,0.15,0.45,0,0.2) $
    • 红酒主题: $ (0,0,0.2,0.8,0) $
    证明推导对象酒庄内存
    数学0.450.350.200
    计算机0.20.150.4500.2
    红酒000.20.80

2.1 文档生成算法

  1. 假设话题集合 $ \mathbb T $ 有 $ T $ 个话题,分别为 $ \mathbb T=\{\text{topic}_1,\text{topic}_2,\cdots,\text{topic}_T\} $ 。pLSA 模型的文档生成规则:

    • 以概率 $ p(\text{topic}_t) $ 选中第 $ t $ 个话题 $ \text{topic}_t $ ,然后在话题 $ \text{topic}_t $ 中以概率 $ p(\text{word}_v\mid \text{topic}_t) $ 选中第 $ v $ 个单词 $ \text{word}_v $ 。

    • 重复执行上一步挑选话题--> 挑选单词 $ n $ 次,则得到一篇包含 $ n $ 个单词 $ \{\text{word}_{w_1},\text{word}_{w_2},\cdots,\text{word}_{w_n}\} $ 的文档,记作 $ (w_1 ,w_2 ,\cdots,w_{n} ) $ 。

      其中: $ 1\le w_j \le V $ , $ v=w_j $ 表示文档的第 $ j $ 个单词为 $ \text{word}_v $ 。

  2. 对于包含 $ N $ 篇文档的数据集 $ \mathbb D $ ,假设所有文档都是如此生成。则数据集 $ \mathbb D $ 的生成规则:

    • 以概率 $ p(\mathcal D_i) $ 选中第 $ i $ 篇文档。这个概率仅仅用于推导原理,事实上随着公式的推导,该项会被消掉。

      通常选择均匀选择,即 $ p(\mathcal D_i) = \frac 1N $

    • 对于第 $ i $ 篇文档,以概率 $ p(\text{topic}_t\mid \mathcal D_i) $ 选中第 $ t $ 个话题 $ \text{topic}_t $ ,然后在话题 $ \text{topic}_t $ 中以概率 $ p(\text{word}_v\mid \text{topic}_t) $ 选中第 $ v $ 个单词 $ \text{word}_v $ 。

    • 重复执行上一步挑选话题--> 挑选单词 $ n_i $ 次,则得到一篇包含 $ n_i $ 个单词 $ \{\text{word}_{w_1^i},\text{word}_{w_2^i},\cdots,\text{word}_{w_{n_i}}^i\} $ 的文档,记作 $ (w_1^i ,w_2^i ,\cdots,w_{n_i}^i ) $ 。

    • 重复执行上述文档生成规则 $ N $ 次,即得到 $ N $ 篇文档组成的文档集合 $ \mathbb D $ 。

2.2 模型原理

  1. $ \varphi_{i,t}=p(\text{topic}_t\mid \mathcal D_i),i=1,2,\cdots,N;t=1,2,\cdots,T\\ \theta_{t,v}=p(\text{word}_v\mid \text{topic}_t),v=1,2,\cdots,V;t=1,2,\cdots,T\\ \sum_{t=1}^{T}\varphi_{i,t}=1,\quad i=1,2,\cdots,N;\\ \sum_{v=1}^{V}\theta_{t,v}=1,\quad t=1,2,\cdots,T;\\ \varphi_{i,t}\ge 0,\quad \theta_{t,v}\ge 0,\quad i=1,2,\cdots,N;\quad t=1,2,\cdots,T;\quad v=1,2,\cdots,V $
    • $ \varphi_{i,t} $ 表示:选中第 $ i $ 篇文档 $ \mathcal D_i $ 的条件下,选中第 $ t $ 个话题 $ \text{topic}_t $ 的概率
    • $ \theta_{t,v} $ 表示:选中第 $ t $ 个话题 $ \text{topic}_t $ 的条件下,选中第 $ v $ 个单词 $ \text{word}_v $ 的概率

    待求的是参数 $ \Phi $ 和 $ \Theta $ :

    $ \Phi = \{\varphi_{i,t}\} =\begin{bmatrix} \varphi_{1,1}&\varphi_{1,2}&\cdots&\varphi_{1,T}\\ \varphi_{2,1}&\varphi_{2,2}&\cdots&\varphi_{2,T}\\ \vdots&\vdots&\ddots&\vdots\\ \varphi_{N,1}&\varphi_{N,2}&\cdots&\varphi_{N,T}\\ \end{bmatrix}\quad \Theta=\{\theta_{t,v}\}=\begin{bmatrix} \theta_{1,1}&\theta_{1,2}&\cdots&\theta_{1,V}\\ \theta_{2,1}&\theta_{2,2}&\cdots&\theta_{2,V}\\ \vdots&\vdots&\ddots&\vdots\\ \theta_{T,1}&\theta_{T,2}&\cdots&\theta_{T,V}\\ \end{bmatrix} $
  2. 根据pLSA概率图模型(盘式记法),结合成对马尔可夫性有:

    $ p(\text{word}_v,\mathcal D_i\mid \text{topic}_t )=p(\text{word}_v\mid \text{topic}_t)p(\mathcal D_i \mid \text{topic}_t) $

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

  3. 对于文档 $ \mathcal D_i $ ,给定其中的单词 $ \text{word}_v $ ,有:

    $ p(\mathcal D_i,\text{word}_v )=\sum_{t=1}^Tp(\mathcal D_i ,\text{word}_v,\text{topic}_t )\\ =\sum_{t=1}^Tp(\mathcal D_i,\text{word}_v\mid \text{topic}_t )p(\text{topic}_t )\\ =\sum_{t=1}^Tp(\mathcal D_i\mid \text{topic}_t )p(\text{word}_v\mid \text{topic}_t )p(\text{topic}_t )\\ =\sum_{t=1}^Tp(\mathcal D_i,\text{topic}_t )p(\text{word}_v \mid \text{topic}_t )\\ =\sum_{t=1}^Tp(\text{topic}_t \mid \mathcal D_i )p(\mathcal D_i)p(\text{word}_v\mid \text{topic}_t )\\ =p(\mathcal D_i )\sum_{t=1}^Tp(\text{topic}_t \mid \mathcal D_i )p(\text{word}_v \mid \text{topic}_t ) $

    根据该等式,可以得到:

    $ p(\text{word}_v\mid \mathcal D_i)=\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $

    即:给定文档 $ \mathcal D_i $ 的条件下,某个的单词 $ \text{word}_v $ 出现的概率可以分成三步:

    • 首先得到给定的文档 $ \mathcal D_i $ 的条件下,获取某个话题 $ \text{topic}_t $ 的概率
    • 再得到该话题 $ \text{topic}_t $ 生成该单词 $ \text{word}_v $ 的概率
    • 对所有的话题累加 $ \sum_{t=1}^T $ 即得到给定的单词 $ \text{word}_v $ 在给定文档 $ \mathcal D_i $ 中出现的概率
  4. 对于给定文档 $ \mathcal D_i $ 中主题 $ \text{topic}_t $ 生成的单词 $ \text{word}_v $ ,有:

    $ p(\mathcal D_i ,\text{topic}_t,\text{word}_v )=p(\mathcal D_i)p(\text{word}_v,\text{topic}_t\mid \mathcal D_i)\\ =p(\mathcal D_i)p(\text{word}_v\mid \text{topic}_t,\mathcal D_i)p(\text{topic}_t\mid \mathcal D_i)\\ =p(\mathcal D_i)p(\text{topic}_t\mid \mathcal D_i)\frac{p(\text{word}_v,\mathcal D_i\mid \text{topic}_t)}{p(\mathcal D_i\mid \text{topic}_t)}\\ =p(\mathcal D_i)p(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $

    则已知文档 $ \mathcal D_i $ 中出现了单词 $ \text{word}_v $ 的条件下,该单词由主题 $ \text{topic}_t $ 生成的概率为:

    $ p(\text{topic}_t\mid \mathcal D_i,\text{word}_v)=\frac{p(\mathcal D_i,\text{word}_v,\text{topic}_t)}{p(\mathcal D_i,\text{word}_v)}\\ =\frac{p(\mathcal D_i)p(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)}{p(\mathcal D_i )\sum_{t^\prime=1}^Tp(\text{topic}_{t^\prime}\mid \mathcal D_i )p(\text{word}_v \mid \text{topic}_{t^\prime} )} \\ =\frac{p(\text{topic}_{t}\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)}{\sum_{t^\prime=1}^Tp(\text{topic}_{t^\prime} \mid \mathcal D_i )p(\text{word}_v \mid \text{topic}_{t^\prime})} $

    其物理意义为:给定文档 $ \mathcal D_i $ 的条件下,单词 $ \text{word}_v $ 由主题 $ \text{topic}_t $ 生成的概率占单词 $ \text{word}_v $ 出现的概率的比例。

2.3 参数求解

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

2.3.1 矩阵分解

  1. 根据前面的推导,有: $ p(\text{word}_v\mid \mathcal D_i)=\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $ 。其中文档 $ \mathcal D_i $ 和单词 $ \text{word}_v $ 是观测到的,主题 $ \text{topic}_t $ 是未观测到的、未知的。

    令 $ p^{\mathcal D}_{i,v}=p(\text{word}_v\mid \mathcal D_i) $ ,根据:

    $ \varphi_{i,t}=p(\text{topic}_t\mid \mathcal D_i),\quad \theta_{t,v}=p(\text{word}_v\mid \text{topic}_t) $

    则有:

    $ p^{\mathcal D}_{i,v}=\sum_{t=1}^{T}\varphi_{i,t} \theta_{t,v} $
  2. 令:

    $ \mathbf P^{\mathcal D}=\begin{bmatrix} p^{\mathcal D}_{1,1}&p^{\mathcal D}_{1,2}&\cdots&p^{\mathcal D}_{1,V}\\ p^{\mathcal D}_{2,1}&p^{\mathcal D}_{2,2}&\cdots&p^{\mathcal D}_{2,V}\\ \vdots&\vdots&\ddots&\vdots\\ p^{\mathcal D}_{N,1}&p^{\mathcal D}_{N,2}&\cdots&p^{\mathcal D}_{N,V}\\ \end{bmatrix} $

    则有: $ \mathbf P^{\mathcal D}=\Phi \Theta $ 。

    由于 $ \mathbf P^{\mathcal D} $ 是观测的、已知的,所以pLSA对应着矩阵分解。其中要求满足约束条件:

    $ \sum_{v=1}^V p^{\mathcal D}_{i,v} = 1,\quad i=1,2,\cdots,N\\ \sum_{t=1}^{T}\varphi_{i,t}=1,\quad i=1,2,\cdots,N;\\ \sum_{v=1}^{V}\theta_{t,v}=1,\quad t=1,2,\cdots,T;\\ p^{\mathcal D}_{i,v}\ge 0,\quad \varphi_{i,t}\ge 0,\quad \theta_{t,v}\ge 0,\quad i=1,2,\cdots,N;\quad t=1,2,\cdots,T;\quad v=1,2,\cdots,V $

    .

2.3.2 EM 算法

  1. 在文档 $ \mathcal D_i $ 中,因为采用词袋模型,所以单词的生成是独立的。假设文档 $ \mathcal D_i $ 中包含单词 $ \{\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}}\} $ ,其中:

    • $ n_i $ 表示文档 $ \mathcal D_i $ 的单词总数。
    • $ v=w_j^i $ 表示文档 $ \mathcal D_i $ 的第 $ j $ 个单词为 $ \text{word}_v $ 。

    则有:

    $ p(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} \mid \mathcal D_i)=\prod_{j=1}^{n_i}p(\text{word}_{w^i_j} \mid \mathcal D_i) $
  2. 根据前面的推导,有: $ p(\text{word}_v\mid \mathcal D_i)=\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $ 。则:

    $ p(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} \mid \mathcal D_i)=\prod_{j=1}^{n_i}\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_{w^i_j}\mid \text{topic}_t) $

    则有:

    $ p(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} , \mathcal D_i)=p( \mathcal D_i)\prod_{j=1}^{n_i}\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_{w^i_j}\mid \text{topic}_t) $
  3. 假设文档 $ \mathcal D_i $ 的单词 $ \{\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}}\} $ 中,单词 $ \text{word}_v $ 有 $ c(i,v) $ 个, $ v=1,2,\cdots,V $ 。 则有:

    $ p(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} , \mathcal D_i)=p( \mathcal D_i)\prod_{v=1}^{V}\left[\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)\right]^{c(i,v)} $

    $ c(i,v) $ 的物理意义为:文档 $ \mathcal D_i $ 中单词 $ \text{word}_v $ 的数量。

  4. 考虑观测变量 $ X_i=(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} , \mathcal D_i) $ ,它表示第 $ i $ 篇文档 $ \mathcal D_i $ 以及该文档中的 $ n_i $ 个单词。

    则有:

    $ p(X_i)=p( \mathcal D_i)\prod_{v=1}^{V}\left[\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)\right]^{c(i,v)} $

    由于文档之间是相互独立的,因此有:

    $ p(X_1,X_2,\cdots,X_N) =\prod_{i=1}^{N}p(X_i)\\ =\prod_{i=1}^{N}\prod_{v=1}^{V}p( \mathcal D_i)\prod_{v=1}^{V}\left[\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)\right]^{c(i,v)}\\ =\prod_{i=1}^{N}\prod_{v=1}^{V}p( \mathcal D_i)\left[\sum_{t=1}^{T}\varphi_{i,t}\theta_{t,v}\right]^{c(i,v)} $

    要使得观测结果发生,则应该最大化 $ p(X_1,X_2,\cdots,X_N) $ 。但是这里面包含了待求参数的乘积,其最大化难于求解,因此使用EM算法求解。

  5. 考虑完全变量 $ Y_i=(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} , \text{topic}_{z^i_1},\cdots,\text{topic}_{z^i_{n_i}} ,\mathcal D_i) $ ,其中 $ \{\text{topic}_{z^i_1},\cdots,\text{topic}_{z^i_{n_i}}\} $ 为文档中 $ \mathcal D_i $ 中每位置的单词背后的话题。

    • 由于采用词袋模型,所以生成单词是相互独立的,因此有:
    $ p(Y_i) =p( \mathcal D_i)p(\text{word}_{w^i_1},\cdots,\text{word}_{w^i_{n_i}} , \text{topic}_{z^i_1},\cdots,\text{topic}_{z^i_{n_i}} \mid \mathcal D_i)\\ =p(\mathcal D_i)\prod_{j=1}^{n_i}p(\text{word}_{w^i_j},\text{topic}_{z^i_j}\mid \mathcal D_i) $
    • 根据 $ p(\mathcal D_i ,\text{word}_v,\text{topic}_t )=p(\mathcal D_i)p(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $ 有:

      $ p(\text{word}_v,\text{topic}_t\mid \mathcal D_i)=p(\text{topic}_t\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t) $

      于是:

    $ p(Y_i)=p( \mathcal D_i)\prod_{j=1}^{n_i}p(\text{topic}_{z_j^i}\mid \mathcal D_i)p(\text{word}_{w_j^i}\mid \text{topic}_{z_j^i}) $
    • 由于文档之间是相互独立的,因此有:
    $ p(Y_1,Y_2,\cdots,Y_N) =\prod_{i=1}^{N}p(Y_i) =\prod_{i=1}^{N}p( \mathcal D_i)\prod_{j=1}^{n_i}p(\text{topic}_{z_j^i}\mid \mathcal D_i)p(\text{word}_{w_j^i}\mid \text{topic}_{z_j^i}) $
  6. 假设在文档 $ \mathcal D_i $ 中,单词 $ \text{word}_v $ 不论出现在文档的哪个位置,都是由同一个话题 $ \text{topic}_{t} $ 产生的

    则有:

    $ p( \mathcal D_i)\prod_{j=1}^{n_i}p(\text{topic}_{z_j^i}\mid \mathcal D_i)p(\text{word}_{w_j^i}\mid \text{topic}_{z_j^i}) = p( \mathcal D_i)\prod_{v=1}^V\left[p(\text{topic}_{t}\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_{t})\right]^{c(i,v)} $

    则有:

    $ p(Y_1,Y_2,\cdots,Y_N) = \prod_{i=1}^{N} p( \mathcal D_i)\prod_{v=1}^V\left[p(\text{topic}_{t}\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_{t})\right]^{c(i,v)} $

    则完全数据的对数似然函数为:

    $ LL = \log p(Y_1,Y_2,\cdots,Y_N) = \sum_{i=1}^N p(\mathcal D_i)+\sum_{i=1}^N\sum_{v=1}^V\left[c(i,v)(\log p(\text{topic}_{t}\mid \mathcal D_i)+\log p(\text{word}_v\mid \text{topic}_{t})\right] $
  7. E 步:求取Q函数,为 $ LL $ 关于后验概率 $ p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) $ 的期望。

    根据前面的推导,有:

    $ p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) = \frac{p(\text{topic}_{t}\mid \mathcal D_i)p(\text{word}_v\mid \text{topic}_t)}{\sum_{t^\prime=1}^Tp(\text{topic}_{t^\prime} \mid \mathcal D_i )p(\text{word}_v \mid \text{topic}_{t^\prime})} =\frac{\tilde \varphi_{i,t}\tilde \theta_{t,v}}{\sum_{t^{\prime}=1}^{T}\tilde \varphi_{i,t^{\prime}}\tilde \theta_{t^{\prime},v}} $

    其中 $ \tilde \varphi_{i,t},\tilde \theta_{t,v} $ 均为上一轮迭代的结果,为已知量。

    则有:

    $ Q = \mathbb E[LL]_{p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) } \\ = \sum_{i=1}^N p(\mathcal D_i)+\mathbb E[ \sum_{i=1}^N\sum_{v=1}^V\left[c(i,v)(\log p(\text{topic}_{t}\mid \mathcal D_i)+\log p(\text{word}_v\mid \text{topic}_{t})\right]]_{p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) }\\ = \sum_{i=1}^N p(\mathcal D_i)+ \sum_{i=1}^N\sum_{v=1}^Vc(i,v)\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i,\text{word}_v))(\log p(\text{topic}_{t}\mid \mathcal D_i)+\log p(\text{word}_v\mid \text{topic}_{t})\\ = \sum_{i=1}^N p(\mathcal D_i)+ \sum_{i=1}^N\sum_{v=1}^Vc(i,v)\sum_{t=1}^T\frac{\tilde \varphi_{i,t}\tilde \theta_{t,v}}{\sum_{t^{\prime}=1}^{T}\tilde \varphi_{i,t^{\prime}}\tilde \theta_{t^{\prime},v}}(\log \varphi_{i,t}+\log\theta_{t,v}) $
  8. M步:最大化Q函数,同时考虑约束条件:

    $ \sum_{t=1}^{T}\varphi_{i,t}=1,i=1,2,\cdots,N;\\ \sum_{v=1}^{V}\theta_{t,v}=1,t=1,2,\cdots,T;\\ \varphi_{i,t}\ge 0,\quad \theta_{t,v}\ge 0,\quad i=1,2,\cdots,N;\quad t=1,2,\cdots,T;\quad v=1,2,\cdots,V $

    对每个参数进行求导并使之等于0 ,联立方程求解得到:

    $ \varphi_{i,t}=\frac{\sum_{v=1}^{V}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v)}{n_i},\quad t=1,2\cdots,T;i=1,2,\cdots,N\\ \theta_{t,v}=\frac{\sum_{i=1}^{N}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v)}{\sum_{{v^\prime}=1}^{V}\sum_{i=1}^{N}c(i,{v^\prime})p(\text{topic}_t\mid \mathcal D_i,\text{word}_{v^\prime})},\quad t=1,2,\cdots,T;v=1,2,\cdots,V $
  9. 文档-主题概率 $ \varphi_{i,t} $ 更新方程

    $ \varphi_{i,t}=\frac{\sum_{v=1}^{V}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v)}{n_i} $

    其物理意义:文档 $ \mathcal D_i $ 中每个位置背后的、属于主题 $ \text{topic}_t $ 的频数(按概率计数),除以位置的个数。也就是主题 $ \text{topic}_t $ 的频率。

  10. 主题-单词概率 $ \theta_{t,v} $ 更新方程

    $ \theta_{t,v}=\frac{\sum_{i=1}^{N}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v)}{\sum_{{v^\prime}=1}^{V}\sum_{i=1}^{N}c(i,{v^\prime})p(\text{topic}_t\mid \mathcal D_i,\text{word}_{v^\prime})} $

    其物理意义为:单词 $ \text{word}_v $ 在数据集 $ \mathbb D $ 中属于主题 $ \text{topic}_t $ 的频数(按概率计数),除以数据集 $ \mathbb D $ 中属于主题 $ \text{topic}_t $ 的频数(按概率计数)。即单词 $ \text{word}_v $ 的频率。

  11. pLSAEM算法:

    • 输入:文档集合 $ \mathbb D $ ,话题集合 $ \mathbb T $ ,字典集合 $ \mathbb V $

    • 输出:参数 $ \Phi=\{\varphi_{i,t}\} $ 和 $ \Theta=\{\theta_{t,v}\} $ ,其中:

      $ \sum_{t=1}^{T}\varphi_{i,t}=1,i=1,2,\cdots,N;\\ \sum_{v=1}^{V}\theta_{t,v}=1,t=1,2,\cdots,T;\\ \varphi_{i,t}\ge 0,\quad \theta_{t,v}\ge 0,\quad i=1,2,\cdots,N;\quad t=1,2,\cdots,T;\quad v=1,2,\cdots,V $
    • 算法步骤:

      • 初始化: 令 $ m=0 $ , 为 $ \varphi_{i,t}^{} $ 和 $ \theta_{t,v}^{} $ 赋初值, $ i=1,2,\cdots,N;v=1,2,\cdots,V;t=1,2,\cdots,T $ 。

      • 迭代,迭代收敛条件为参数变化很小或者 Q函数的变化很小。迭代步骤如下:

        • E步:计算 $ Q $ 函数。

          • 先计算后验概率:
          $ p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) ^{}=\frac{ \varphi_{i,t} ^{} \theta_{t,v} ^{}}{\sum_{t^{\prime}=1}^{T} \varphi_{i,t^{\prime}} ^{} \theta_{t^{\prime},v} ^{}} $
          • 再计算 $ Q $ 函数:

            $ Q=\sum_{i=1}^N p(\mathcal D_i)+ \sum_{i=1}^N\sum_{v=1}^Vc(i,v)\sum_{t=1}^Tp(\text{topic}_t\mid \mathcal D_i,\text{word}_v) ^{}(\log \varphi_{i,t}+\log\theta_{t,v})​ $
        • M步:计算 $ Q $ 函数的极大值,得到参数的下一轮迭代结果:

          $ \varphi_{i,t}^{}=\frac{\sum_{v=1}^{V}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) ^{}}{n_i},\quad t=1,2\cdots,T;i=1,2,\cdots,N\\ \theta_{t,v}^{}=\frac{\sum_{i=1}^{N}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) ^{}}{\sum_{i=1}^{N}\sum_{v=1}^{V}c(i,v)p(\text{topic}_t\mid \mathcal D_i,\text{word}_v) ^{}},\quad t=1,2,\cdots,T;v=1,2,\cdots,V $
        • 重复上面两步直到收敛

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文