数学基础
- 线性代数
- 概率论与随机过程
- 数值计算
- 蒙特卡洛方法与 MCMC 采样
- 机器学习方法概论
统计学习
深度学习
- 深度学习简介
- 深度前馈网络
- 反向传播算法
- 正则化
- 深度学习中的最优化问题
- 卷积神经网络
- CNN:图像分类
- 循环神经网络 RNN
- Transformer
- 一、Transformer [2017]
- 二、Universal Transformer [2018]
- 三、Transformer-XL [2019]
- 四、GPT1 [2018]
- 五、GPT2 [2019]
- 六、GPT3 [2020]
- 七、OPT [2022]
- 八、BERT [2018]
- 九、XLNet [2019]
- 十、RoBERTa [2019]
- 十一、ERNIE 1.0 [2019]
- 十二、ERNIE 2.0 [2019]
- 十三、ERNIE 3.0 [2021]
- 十四、ERNIE-Huawei [2019]
- 十五、MT-DNN [2019]
- 十六、BART [2019]
- 十七、mBART [2020]
- 十八、SpanBERT [2019]
- 十九、ALBERT [2019]
- 二十、UniLM [2019]
- 二十一、MASS [2019]
- 二十二、MacBERT [2019]
- 二十三、Fine-Tuning Language Models from Human Preferences [2019]
- 二十四 Learning to summarize from human feedback [2020]
- 二十五、InstructGPT [2022]
- 二十六、T5 [2020]
- 二十七、mT5 [2020]
- 二十八、ExT5 [2021]
- 二十九、Muppet [2021]
- 三十、Self-Attention with Relative Position Representations [2018]
- 三十一、USE [2018]
- 三十二、Sentence-BERT [2019]
- 三十三、SimCSE [2021]
- 三十四、BERT-Flow [2020]
- 三十五、BERT-Whitening [2021]
- 三十六、Comparing the Geometry of BERT, ELMo, and GPT-2 Embeddings [2019]
- 三十七、CERT [2020]
- 三十八、DeCLUTR [2020]
- 三十九、CLEAR [2020]
- 四十、ConSERT [2021]
- 四十一、Sentence-T5 [2021]
- 四十二、ULMFiT [2018]
- 四十三、Scaling Laws for Neural Language Models [2020]
- 四十四、Chinchilla [2022]
- 四十七、GLM-130B [2022]
- 四十八、GPT-NeoX-20B [2022]
- 四十九、Bloom [2022]
- 五十、PaLM [2022] (粗读)
- 五十一、PaLM2 [2023](粗读)
- 五十二、Self-Instruct [2022]
- 句子向量
- 词向量
- 传统CTR 预估模型
- CTR 预估模型
- 一、DSSM [2013]
- 二、FNN [2016]
- 三、PNN [2016]
- 四、DeepCrossing [2016]
- 五、Wide 和 Deep [2016]
- 六、DCN [2017]
- 七、DeepFM [2017]
- 八、NFM [2017]
- 九、AFM [2017]
- 十、xDeepFM [2018]
- 十一、ESMM [2018]
- 十二、DIN [2017]
- 十三、DIEN [2019]
- 十四、DSIN [2019]
- 十五、DICM [2017]
- 十六、DeepMCP [2019]
- 十七、MIMN [2019]
- 十八、DMR [2020]
- 十九、MiNet [2020]
- 二十、DSTN [2019]
- 二十一、BST [2019]
- 二十二、SIM [2020]
- 二十三、ESM2 [2019]
- 二十四、MV-DNN [2015]
- 二十五、CAN [2020]
- 二十六、AutoInt [2018]
- 二十七、Fi-GNN [2019]
- 二十八、FwFM [2018]
- 二十九、FM2 [2021]
- 三十、FiBiNET [2019]
- 三十一、AutoFIS [2020]
- 三十三、AFN [2020]
- 三十四、FGCNN [2019]
- 三十五、AutoCross [2019]
- 三十六、InterHAt [2020]
- 三十七、xDeepInt [2023]
- 三十九、AutoDis [2021]
- 四十、MDE [2020]
- 四十一、NIS [2020]
- 四十二、AutoEmb [2020]
- 四十三、AutoDim [2021]
- 四十四、PEP [2021]
- 四十五、DeepLight [2021]
- 图的表达
- 一、DeepWalk [2014]
- 二、LINE [2015]
- 三、GraRep [2015]
- 四、TADW [2015]
- 五、DNGR [2016]
- 六、Node2Vec [2016]
- 七、WALKLETS [2016]
- 八、SDNE [2016]
- 九、CANE [2017]
- 十、EOE [2017]
- 十一、metapath2vec [2017]
- 十二、GraphGAN [2018]
- 十三、struc2vec [2017]
- 十四、GraphWave [2018]
- 十五、NetMF [2017]
- 十六、NetSMF [2019]
- 十七、PTE [2015]
- 十八、HNE [2015]
- 十九、AANE [2017]
- 二十、LANE [2017]
- 二十一、MVE [2017]
- 二十二、PMNE [2017]
- 二十三、ANRL [2018]
- 二十四、DANE [2018]
- 二十五、HERec [2018]
- 二十六、GATNE [2019]
- 二十七、MNE [2018]
- 二十八、MVN2VEC [2018]
- 二十九、SNE [2018]
- 三十、ProNE [2019]
- Graph Embedding 综述
- 图神经网络
- 一、GNN [2009]
- 二、Spectral Networks 和 Deep Locally Connected Networks [2013]
- 三、Fast Localized Spectral Filtering On Graph [2016]
- 四、GCN [2016]
- 五、神经图指纹 [2015]
- 六、GGS-NN [2016]
- 七、PATCHY-SAN [2016]
- 八、GraphSAGE [2017]
- 九、GAT [2017]
- 十、R-GCN [2017]
- 十一、 AGCN [2018]
- 十二、FastGCN [2018]
- 十三、PinSage [2018]
- 十四、GCMC [2017]
- 十五、JK-Net [2018]
- 十六、PPNP [2018]
- 十七、VRGCN [2017]
- 十八、ClusterGCN [2019]
- 十九、LDS-GNN [2019]
- 二十、DIAL-GNN [2019]
- 二十一、HAN [2019]
- 二十二、HetGNN [2019]
- 二十三、HGT [2020]
- 二十四、GPT-GNN [2020]
- 二十五、Geom-GCN [2020]
- 二十六、Graph Network [2018]
- 二十七、GIN [2019]
- 二十八、MPNN [2017]
- 二十九、UniMP [2020]
- 三十、Correct and Smooth [2020]
- 三十一、LGCN [2018]
- 三十二、DGCNN [2018]
- 三十三、AS-GCN
- 三十四、DGI [2018]
- 三十五、DIFFPOLL [2018]
- 三十六、DCNN [2016]
- 三十七、IN [2016]
- 图神经网络 2
- 图神经网络 3
- 推荐算法(传统方法)
- 一、Tapestry [1992]
- 二、GroupLens [1994]
- 三、ItemBased CF [2001]
- 四、Amazon I-2-I CF [2003]
- 五、Slope One Rating-Based CF [2005]
- 六、Bipartite Network Projection [2007]
- 七、Implicit Feedback CF [2008]
- 八、PMF [2008]
- 九、SVD++ [2008]
- 十、MMMF 扩展 [2008]
- 十一、OCCF [2008]
- 十二、BPR [2009]
- 十三、MF for RS [2009]
- 十四、 Netflix BellKor Solution [2009]
- 推荐算法(神经网络方法 1)
- 一、MIND [2019](用于召回)
- 二、DNN For YouTube [2016]
- 三、Recommending What Video to Watch Next [2019]
- 四、ESAM [2020]
- 五、Facebook Embedding Based Retrieval [2020](用于检索)
- 六、Airbnb Search Ranking [2018]
- 七、MOBIUS [2019](用于召回)
- 八、TDM [2018](用于检索)
- 九、DR [2020](用于检索)
- 十、JTM [2019](用于检索)
- 十一、Pinterest Recommender System [2017]
- 十二、DLRM [2019]
- 十三、Applying Deep Learning To Airbnb Search [2018]
- 十四、Improving Deep Learning For Airbnb Search [2020]
- 十五、HOP-Rec [2018]
- 十六、NCF [2017]
- 十七、NGCF [2019]
- 十八、LightGCN [2020]
- 十九、Sampling-Bias-Corrected Neural Modeling [2019](检索)
- 二十、EGES [2018](Matching 阶段)
- 二十一、SDM [2019](Matching 阶段)
- 二十二、COLD [2020 ] (Pre-Ranking 模型)
- 二十三、ComiRec [2020](https://www.wenjiangs.com/doc/0b4e1736-ac78)
- 二十四、EdgeRec [2020]
- 二十五、DPSR [2020](检索)
- 二十六、PDN [2021](mathcing)
- 二十七、时空周期兴趣学习网络ST-PIL [2021]
- 推荐算法之序列推荐
- 一、FPMC [2010]
- 二、GRU4Rec [2015]
- 三、HRM [2015]
- 四、DREAM [2016]
- 五、Improved GRU4Rec [2016]
- 六、NARM [2017]
- 七、HRNN [2017]
- 八、RRN [2017]
- 九、Caser [2018]
- 十、p-RNN [2016]
- 十一、GRU4Rec Top-k Gains [2018]
- 十二、SASRec [2018]
- 十三、RUM [2018]
- 十四、SHAN [2018]
- 十五、Phased LSTM [2016]
- 十六、Time-LSTM [2017]
- 十七、STAMP [2018]
- 十八、Latent Cross [2018]
- 十九、CSRM [2019]
- 二十、SR-GNN [2019]
- 二十一、GC-SAN [2019]
- 二十二、BERT4Rec [2019]
- 二十三、MCPRN [2019]
- 二十四、RepeatNet [2019]
- 二十五、LINet(2019)
- 二十六、NextItNet [2019]
- 二十七、GCE-GNN [2020]
- 二十八、LESSR [2020]
- 二十九、HyperRec [2020]
- 三十、DHCN [2021]
- 三十一、TiSASRec [2020]
- 推荐算法(综述)
- 多任务学习
- 系统架构
- 实践方法论
- 深度强化学习 1
- 自动代码生成
工具
- CRF
- lightgbm
- xgboost
- scikit-learn
- spark
- numpy
- matplotlib
- pandas
- huggingface_transformer
- 一、Tokenizer
- 二、Datasets
- 三、Model
- 四、Trainer
- 五、Evaluator
- 六、Pipeline
- 七、Accelerate
- 八、Autoclass
- 九、应用
- 十、Gradio
Scala
- 环境搭建
- 基础知识
- 函数
- 类
- 样例类和模式匹配
- 测试和注解
- 集合 collection(一)
- 集合collection(二)
- 集成 Java
- 并发
二、pLSA Model
Unigram Model
模型过于简单。事实上人们写一篇文章往往需要先确定要写哪几个主题。如:写一篇计算机方面的文章,最容易想到的词汇是:内存、CPU、编程、算法等等。之所以能马上想到这些词,是因为这些词在对应的主题下出现的概率相对较高。
因此可以很自然的想到:一篇文章由多个主题构成,而每个主题大概可以用与该主题相关的频率最高的一些词来描述。
上述直观的想法由
Hoffman
在 1999 年的probabilistic Latent Semantic Analysis:pLSA
模型中首先进行了明确的数学化。主题
topic
:表示一个概念。具体表示为一系列相关的词,以及它们在该概念下出现的概率。- 与某个主题相关性比较强的词,在该主题下出现概率较高
- 与某个主题相关性比较弱的词,在该主题下出现概率较低
主题示例:给定一组词:
证明,推导,对象,酒庄,内存
,下列三个主题可以表示为:- 数学主题: $ (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.45 0.35 0.2 0 0 计算机 0.2 0.15 0.45 0 0.2 红酒 0 0 0.2 0.8 0
2.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 $ 。
对于包含 $ 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 模型原理
令
$ \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} $根据
$ 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) $pLSA
概率图模型(盘式记法),结合成对马尔可夫性有:即:文档和单词关于主题条件独立。
对于文档 $ \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 $ 中出现的概率
对于给定文档 $ \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 参数求解
pLSA
模型由两种参数求解方法:矩阵分解、EM
算法。
2.3.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} $令:
$ \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} $ 是观测的、已知的,所以
$ \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 $pLSA
对应着矩阵分解。其中要求满足约束条件:.
2.3.2 EM 算法
在文档 $ \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) $根据前面的推导,有: $ 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) $假设文档 $ \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 $ 的数量。
考虑观测变量 $ 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
算法求解。考虑完全变量 $ 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(\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) $于是:
- 由于文档之间是相互独立的,因此有:
假设在文档 $ \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] $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}) $
$ \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
步:最大化Q
函数,同时考虑约束条件:对每个参数进行求导并使之等于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 $文档-主题概率 $ \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 $ 的频率。
主题-单词概率 $ \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 $ 的频率。
pLSA
的EM
算法:输入:文档集合 $ \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 $ 函数。- 先计算后验概率:
}=\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}) $
$ \varphi_{i,t}^{M
步:计算 $ Q $ 函数的极大值,得到参数的下一轮迭代结果:}=\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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论