From 224f82d176352ea2a55f6a89fc608902da949bbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B2=99=E9=9F=AC=E4=BC=9F?= <11112877@vivo.xyz> Date: Fri, 5 Jun 2020 22:54:56 +0800 Subject: [PATCH] LDA --- .../LDA.md" | 49 ++++++++++++++++--- 1 file changed, 42 insertions(+), 7 deletions(-) diff --git "a/\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/LDA.md" "b/\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/LDA.md" index 7786ead..aa474b7 100644 --- "a/\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/LDA.md" +++ "b/\350\207\252\347\204\266\350\257\255\350\250\200\345\244\204\347\220\206/LDA.md" @@ -8,19 +8,54 @@ - 文档里某个单词出现的概率可以用公式表示:![](https://tva1.sinaimg.cn/large/006y8mN6gy1g9b9y6avdtj306e01jdfo.jpg) - 采用EM方法修正词-主题矩阵+主题-文档矩阵直至收敛 -# LDA中的主题矩阵如何计算? -- 给矩阵W和K随机赋值,其中W是每个主题中每个单词出现的次数,K是每个文档中每个主题出现的次数,虽然这些次数还只是随机数,我们还是可以根据这些次数,利用Dirichlet分布+多项式分布计算出每个主题中每个单词最可能出现的概率,以及每个文档中每个主题最可能出现的概率 -- 对于样本文档中的词,用极大似然估计得到每个主题产生单词的概率:p(z/w,d) = p(w/z)p(z/d),找出概率最大的那个主题 -- 由于确定了这个单词是哪个主题产生的,相当于Dirichlet分布中代入参数W和K的值发生了改变,于是计算出新的词-主题的概率矩阵+主题-文档的概率矩阵 -- 最后主题-文档的概率矩阵即为所求 +# LDA中的主题矩阵如何计算?词分布矩阵如何计算? +这个问题很难说清楚,一般会揪着细节问,不会在乎你的公式写的是不是完全一致。这部分是LDA的核心,是考验一个nlp工程师的最基础最基础的知识点 +- 吉布斯采样 + - 先随机给每篇文章和每个词附上主题 + - 统计每篇文章的主题分布,得到主题的后验条件概率分布 + - 通过坐标轮换的吉布斯采样方法,修正每篇文章的主题 + - 重复直到吉布斯采样收敛 + - 收敛后统计文章的词对应的主题,得到文章的主题分布;统计词对应的主题,得到不同主题下词的分布 + +- 通常会引申出如下几个问题: + - 吉布斯采样是怎么做的?(基于MCMC方法结合在多维情况下优化一维固定其他维度不变,可以不必进行采样拒绝以加快速度) + - MCMC中什么叫做蒙特卡洛方法? + - 通常用于求概率密度的积分 + - 用已知分布去评估未知分布 + - reject-acpect过程 + - 马尔科夫链收敛性质? + - 非周期性,不能出现死循环 + - 连通性,不能有断点 + - MCMC中什么叫做马尔科夫链采样过程? + - 先得到转移矩阵P在N次迭代下收敛到不变的平稳矩阵 + - 再根据平稳矩阵后的条件概率p(x/xt)得到平稳分布的样本集(xn+1,xn+2...) + - 给定平稳矩阵如何得到概率分布样本集? + - M-C采样 + - 给定任意的转移矩阵Q,已知π(i)p(i,j) = π(j)p(j,i),近似拟合π(i)Q(i,j)a(i,j) = π(j)Q(j,i)a(j,i) + - 根据Q的条件概率Q(x/xt)得到xt+1 + - u~uniform + - u<π(xt+1)Q(xt+1,xt) 则accept,就和蒙特模拟一样否则xt+1 = xt + - (xt,xt+1...)代表着我们的分布样本集 + - M-H采样 + - 左右同乘缩放,更新a(i,j)的计算公式,加快收敛速度 + - Gibbs采样 + - 同上,差别在固定n−1个特征在某一个特征采样及坐标轮换采样 + - 什么叫做坐标转换采样? + - 平面上任意两点满足细致平稳条件π(A)P(A->B) = π(B)P(B->A) + - 从条件概率分布P(x2|x(t)1)中采样得到样本x(t+1)2 + - 从条件概率分布P(x1|x(t+1)2)中采样得到样本x(t+1)1 + - 其为一对样本,有点像Lasso回归中的固定n-1维特征求一维特征求极值的思路 + +- 变分推断 + # LDA的共轭分布解释下? -以多项式分布-狄利克雷分布为例,我们的多项式分布θ先验分布π(θ),及加了样本信息x后的后验分布π(θ/x)都满足狄利克雷分布,则称狄利克雷分布为多项式分布的共轭分布 +以多项式分布-狄利克雷分布为例,我们的多项式分布θ先验分布π(θ),及加了多项式分布的样本信息x后的后验分布π(θ/x)都满足狄利克雷分布,则称狄利克雷分布为LDA场景下多项式分布的共轭分布 # PLSA和LDA的区别? - LDA是加了狄利克雷先验的PLSA - - PLSA的p(z/d)和p(w/z)都是直接EM估计的,而LDA都是通过狄利克雷给出的多项式参数下估计出来的 +- PLSA的p(z/d)和p(w/z)都是直接EM估计的,而LDA都是通过狄利克雷给出的多项式分布参数估计出来的 - LDA是贝叶斯思想,PLSA是MLE # 怎么确定LDA的topic个数