Author-Topic Model与ACT-LDA分析与解析

Generative Models for Document(文章的生成模型)

这里的Document(文章)是包括两部分:文章的作者集合,组成文章内容的单词集合。例如:

Document 1表示为:

clip_image001

Document 2表示为:

clip_image002

我们将Document d的作者集合表示为clip_image004,内容的单词集合表示为clip_image006。如 clip_image008= {张三,李四} ,clip_image010 = { good good study day day up } ;

clip_image012= {王五,李四} , clip_image014={ search knowledge read more books }。

D 个 Document的集合C就可以表示为:

C = {(clip_image010[1],clip_image008[1]), (clip_image014[1],clip_image012[1]), ……,(clip_image016,clip_image018)}。

下面解释什么是Generative Models for Document(文章生成模型)?

在我们的Author Topic Model(作者主题模型)中,每个author都对应一个在topics上的多项分布 ,每个topic都对应一个在word(单词)上的多项分布。如图:

image

那么一个Document d的内容是如何生成的?

对于Document d中的每个word(单词),首先从clip_image004[1](作者集合)中等概率选择一个作者,然后根据此作者在Topics上的概率分布,随机选择一个Topic,最后根据这个Topic在words(单词)上的概率分布,随机产生这个单词。

如果Document d 中的单词有clip_image021个,这个过程要重复clip_image021[1]次。

每个Document都这么做便生成了整个数据集合。

我们用个例子也解释这个过程。

Document 1表示为:

clip_image001[1]

对于第一个单词good,它是这么产生的:从clip_image008[2]= {张三,李四}中等概率随机选择一个作者,假设选中了“张三”,然后根据张三在Topics上的概率分布(0.1,0.6,0.3)随机选择一个Topic,选中Topic2的可能性较大,假设选中了Topic2。再根据Topic2在words上的概率分布,选择word(单词),这次正好选中了“good”。

Author Topic Model 认为所有Document的内容都是这样生成的。而我们面临的问题是,如果我们认可我们的数据集就是这么产生的,反过来我们要推断这个生成过程是怎样的,即估计每个作者在Topic上的概率是如何分布的,每个Topic在word(单词)上的概率是如何分布的。

Graph Model(图模型)

下面我们讨论Author Topic Model的Graph Model

clip_image023

我们这样理解这幅图:

箭头理解为变量之间的条件依赖,如图

clip_image025

clip_image027条件依赖于w,或者说w概率生成clip_image027[1]。方框表示重复采样(生成),次数在右下角标识,如上图,重复采样了N次。

在Author Topic Model中,Document(文章)中的单词w,和共同作者clip_image029都是已知的,或者说是可观察的,在图上表示为有填充的圆。

每个author都对应一个在topics上的多项分布 ,图中用clip_image031表示。每个topic都对应一个在words(单词)上的多项分布,图中用clip_image033表示。

clip_image031[1]clip_image033[1]都有一个对称的 Dirichlet prior clip_image035。也就是clip_image031[2]clip_image033[2]是依靠了先验知识。A表示数据集合中作者的总个数,T是Topic的个数。

对于一个Document中的每个单词,我们从clip_image029[1](作者集合上的均匀分布)中随机采样一个作者x,然后从和x对应的多项分布clip_image031[3]中采样一个Topic z,再从Topic z 对应的多项分布clip_image033[3]中采样一个单词。采样过程重复clip_image021[2]次,生成Document。D个Document重复这一过程,便生成了整个数据集。

Bayesian Estimation of the Model Parameters

模型参数的贝叶斯估计

在Author Topic Model 中,有两组未知参数:author-topic 分布clip_image031[4]

和topic-word分布clip_image033[4]。我们采用 Gibbs sampling 方法估计它们。

对于每个单词,根据下面公式为其采样author和topic。

clip_image039

这里clip_image041代表一篇文章中第i个单词分配给第j个Topic和第k个作者。clip_image043代表第i个单词是词典中第m个词汇。clip_image045代表除第i个单词之外其余单词的Topic和Author分配。

clip_image047表示单词m在此次分配之前已经分配给Topic j的总个数。clip_image049表示到目前为止,作者k分配给Topic j的总个数。

V是词典的总个数(数据集合中所有不同单词的个数),T是Topic 的个数。

算法估计期间,我们只需要追踪两个矩阵。一个是V x T(word

by topic)计数矩阵,另一个是K x T (author by topic)计数矩阵。

最后,我们根据这两个计数矩阵估算author-topic 分布clip_image031[5]和topic-word分布clip_image033[5]

clip_image051

clip_image053表示Topic j 使用单词 m 的概率

clip_image055表示作者k 在Topic j 的概率

算法一开始为每篇文章中每个单词随机分配一个Topic,随机分配一个作者(从这篇文章的作者集合中)。然后根据等式(1),对每篇文章中每个单词进行采样,采样重复I次。

假设 V x T(word by topic)计数矩阵 clip_image057,K x T (author by topic)计数矩阵clip_image059分别如下:

clip_image057[1]

 

image

clip_image059[1]

clip_image061 Document 1表示为:

clip_image001[2]

如何为“good”分配Topic和Author?

共有 {张三,Topic1}, {张三,Topic2},{张三,Topic3},

{李四,Topic1}, {李四,Topic2},{李四,Topic3} 六种可能。

这六种情况的概率是不一样的,根据等式(1)

clip_image063同理求出其余情况的概率,根据这个概率分布,随机产生一种分配。

重复这一过程采样每个单词。

最后根据等式(2)和(3)求出clip_image031[6]和 clip_image033[6]

附录:

在AT原始paper中有幅贝叶斯网络图,想看懂这幅图只需要一点贝叶斯网络的基础知识就可以了,所以这里把需要理解的地方列出来。

先举一个例子:联合概率P(a,b,c)=P(c|a,b)P(b|a)P(a)可以表示为如下图

clip_image065

箭头表示条件概率,圆圈表意一个随机变量。这样我们就可以很容易的画出一个条件概率对应的贝叶斯网络。

对于更复杂的概率模型,比如

clip_image067

由于有N个条件概率,当N很大时,在图中画出每一个随机变量显然不现实,这是就要把随机变量画到方框里:

clip_image025[1]

这就表示重复N个tn.

在一个概率模型中,有些是我们观察到的随机变量,而有些是需要我们估计的随机变量,这两种变量有必要在图中区分开:

clip_image069

如上图,被填充的圆圈表明该随机变量被观察到并已经设为了被观察到的值。



@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

###############################################



 今天下午看到唐杰团队作品ArnetMiner的话题分析部分用的是ACT topic model,搜到下面这篇文章。

ACT-LDA:集成话题、社区和影响力分析的概率模型
  这篇文章2013年发表在期刊《计算机科学与探索》上。但是ArnetMiner的话题分析部分是09年做的,估计后来改用ACT-LDA模型了。
  下面简单介绍下ACT-LDA。
  ACT-LDA的数据集:人的关系网+人的文档(该 文档 最好有多个作者,比如文档可以是论文,可以是微博(转发的都算作者))。
  ACT-LDA认为社区(community detection,或者可以认为是图上的聚类)是话题的分布,同时是人的分布。相当于是说,一个话题可以属于多个社区,一个人可以属于多个社区。
  看下这个概率图模型:
ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model

  
 一篇文档的生成过程如下:1.先指定是属于哪个社区(yd~Multinomial(a))。2.然后是生成文档里的词,生成文档的作者list。3.生成词的过程是:假定词的总数Nd从Possion分布抽取。每个主题对应的词的分布phi~Dir(b)。首先抽取社区的话题分布,C1~Dir(k1),对于每个词,它的主题~Multinomial(C1).抽取了这个词的主题theta_dn后,词~Multinomial(phi). 4.生成作者List的过程是:假定作者数量 Hd 从Possion分布抽取。每个社区对应的人的分布C2~Dir(k2)。因为已经知道了文档 属于社区yd,所以Hd个人是从社区yd对应的C2里抽取的。
  
  这里观察到的变量是wdn,adh,隐变量是yd,C1,theta_dn,C2,phi, 参数是k1,b,a,k2。需要指出的是,社区数量Q和主题数量K都是事先指定。
  
  原文用变分贝叶斯分拆隐变量的后验概率,如下:
   ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model

  
   原文在SIGIR,NIPS,WWW,KDD4个会议上找了些文章,利用文章title和作者list生成数据集。作者指定社区数Q=4,话题数K=4. 后来进一步提出ACT-LDA+,认为会议可以看成文章的社区,在变分贝叶斯迭代的过程中增加yd属于那个社区的概率。
  
   我认为原文有几点不足:1.coauthor之间是有序的,而原文的做法忽略了这种序关系。2.变分贝叶斯的分拆打断了所有的隐变量之间的非独立关系。
  
   这个模型可以用HDP扩展成层次结构的社区。


-----------------
最近又看到一篇结合主题模型与社区发现的论文。
《Topic-link lda:joint models of topic and author community》 ICML2009
ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model
原文基于一些观察,假定2个文本是否链接与文本内容和作者所属社区相关。
u是作者所属社区,这里alpha对所有作者都是一样的,与作者本身无关(在Author-Topic model和Author-Recipient-Topic model里每个作者一个alpha),因此能处理大规模数据集,而且如果作者们都在一个小领域内的话这样更合理。
G是观察到的链接,服从伯努利分布,参数是 ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model,它是根据实际数据猜应该是 对数线性函数, ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model
用变分贝叶斯,也是把u,z,theta3个隐变量看成独立的。
可以用来做链接预测和社区发现。


---------------------------
最近又瞄到一篇类似的工作,《The Author-Topic Model for Authors and Documents》  Griffiths 04年的。

ACT-LDA <wbr>topic <wbr>model <wbr>& <wbr>Topic-Link <wbr>LDA <wbr>& <wbr>Author-Topic <wbr>Model
图模型如上。
对于每篇文挡,它的作者列表ad已知。对于每个词,先抽一个作者出来,然后根据该作者的主题分布抽一个主题出来,然后根据主题抽一个词出来。
具体我没看,文章后面提出该方法能用于智能指派,
given an abstract of a paper and a list of the authors plus their known past collaborators, generate a list of other highly likely authors for this abstract who might serve as good reviewers.   主要是利用author的主题分布算author之间的KL距离。
-------------------------------------------------
《A Bayesian Framework for Community Detection Integrating Content and Link》

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值