Word2Vec LDA EM

1. Word2Vec 优化目标:最大化corpus中语句的似然概率

如何判断一句话是不是自然语言?即计算一个句子的生成概率,这个可以转成各个词在它的上下文环境(连接的词)下出现的概率,因此这里需要计算p(w|context_w),很显然对语料库中的w计算这样一个概率,计算量很大,因此采用二分的方法,先把所有词划分成两簇,确定w属于哪个簇,再在对应的簇中计算条件生成w的概率,计算量减少一半,类推,对簇再划分成两簇,因此可以形成一个二叉树结构,计算上面的公式只需要从根节点到w叶节点路径长度次计算量。实际中采用Huffman树,因为Huffman让所有的词的路径长度是最优的,高频词的路径短,低频词的路径高。word2vec只需要遍历一次数据即可。
 
2. w,context_w都是一个向量,如何计算概率?
 
用sigmod把向量的乘积转化成一个概率值。 值得注意的是隐层的每个维度和输出节点(hs 树中每个节点,ns 只有一层)都有一个权重。
 
3. HS 和 NS 如何生成样本?其实都是用二分类近似多分类。
 > hs:对于w,从根节点到w叶节点的路径上(不包括叶节点),向左为证样本,向右为负样本
 > negative sampling:(one vs one)真实词作为正样本,按照词频选n个词作为负样本,这里负样本是计算在该上下文不出现这个词的期望(随机选择b个),但是计算每个期望时只抽取一个样本就计算,有证明说按照词频进行抽样计算的期望趋于真实期望。
 
LDA和其它主题模型都属于概率建模这一更大领域。数据被看作是经过包括隐藏变量在内的生成过程得到的。生成过程定义了观测随机变量和隐藏随机变量的联合概率分布。通过使用联合分布来计算在给定观测变量下隐藏变量的条件分布(后验分布)来进行数据分析。对于LDA来说,观测变量就是文档中的词;隐藏变量就是主题结构;生成过程如之前所述。那么推测从文档中隐藏的主题结构的问题其实就是计算在给定文档下隐藏变量的条件分布(后验分布)。
 
4. LDA的思路:最大化似然概率max(w,topic_word,doc_topic,|alpha,beta),但是这个目标含有两个隐变量(两个topic_word,doc_topic矩阵),并且在生成文档中的每个词的时候需要考虑每个topic生成这个word的概率,因此在似然概率中又有一个求和项,导致这个似然概率很难求出来。两个矩阵中的值是连续值,需要积分。
 
对有隐变量的优化问题,EM的思路是,先给每个样本指定一个隐变量取值,然后固定这个隐变量,调节其它参数优化p(x,y)问题。
Kmeans中,就是先给每个样本指定一个cluster,然后固定clutser分配,调整cluster中心,然后重新分配样本的cluster,以最小化每个样本点和cluster中心的距离。指定cluster的原则是选择离样本点最近的。
LDA中,也是类似的,先给文档中的每个词指定一个topic,然后固定topic分配,调整topic-word,doc-topic,然后根据这个矩阵再对每个文档中的每个词采样其topic,最大化似然p(w,topic_word,doc_topic,|alpha,beta)。LDA中是按p(Z|W)进行采样,然而P(Z|W)很难求,因此Gibbs用采样一些样本近似后验分布,而变分法则是找一个近似分布来代替。

max p(w,topic_word,doc_topic,|alpha,beta) = max p(w|doc_topic,alpha)*p(topic_word|beta)

Gibbs sampling : 迭代为每个文档中的每个word选择一个topic,得到每个doc中每个word的topic分配后,然后更新两个隐变量矩阵。

这里有两个问题:
 
1)如何为每个word选择一个topic?
2)如何根据word的topic分配更新两个隐变量?

1)根据p(z_i = k |z_ni,w,alpha,beta)后验概率,采样Topic,这里并不需要后验的精确形式,找个近似即可,因此需要推导这个后验分布,p(z_i = k |z_ni,w,alpha,beta) 根绝贝叶斯公式进行转化,分子都是joint分布的样子P(Z,W|alpha,beta),最终可以推导出后验分布形式(和两个计算矩阵有关)

2)如何更新两个隐变量?

p(w = t | z = k, W, Z, β) · p(z = k | Z, α)  =  p(w = t, z = k | W, Z, α, β)
 
一些LDA的变形:
 
AD-LDA:数据并行的思路,原始的LDA要求串行更新N(w,t),AD-LDA,则是将数据切割,同时并行更新N份,每份数据维持一个local N(w,t),最后所有数据迭代一次的时候,将所有的Local N(w,t)汇总形成 Global N(w,t)
Alias-LDA:O(1)的时间复杂度 p(z|w)进行采样。两次采样完成。先把所有的概率拼接成每个块的和都是1/t,t是块的个数。先抽样一个快,再在块中抽样一个topic。
 
EM:优化问题中含有隐变量。起初也是最大化似然概率Sum_i(p(x,z_i|thea)),其中z_i为隐变量。令Q(z_i)为z_i满足的分布,同理P(x|z_i,thea)也是一个分布。利用jessen不等式将优化目标转化成一个优化下界的问题(最大化下届)。主要是在E步,求得z_i产生x的分布,然后固定这个分布,最大化P(x|z_i,thea)条件概率(下界),可以证明似然率是不断增加的。相当于原始问题坐标上升算法,固定Q函数,优化thea(最大产生x的条件概率),固定thea,优化Q函数(最大化联合分布概率)

posted on 2015-06-05 09:31  keketse  阅读(494)  评论(0编辑  收藏  举报

导航