其他TM:biterm topic model

参考文献《A Biterm Topic Model for Short Texts》

从原理上说,BTM是一个非常适合于短文本的topic model,同时,作者说它在长文本上表现也不逊色于LDA。

1.建模

BTM的graph如下

与LDA相似,BTM中alpha~theta~Z,每个topic的beta~phi_k~w也是dir+multinomal分布。

BTM模型首先抽取biterm词对。抽取的方法是:去掉低频和stopword;对于短文本(如tweets或百度知道等),取一个doc中的任意两个词对 ;对于长文本,需要两个词在一定的距离之内,这个窗长一般取到30~60效果较好.然后通过biterm对文档集合进行建模。

2.参数推导

与LDA相似,BTM中alpha~theta~Z,每个topic的beta~phi_k~w也是dir+multinomal分布。

求解过程跟LDA也很类似:通过gibbs sampling方法抽取出Z,然后计算出theta和K个topic对应的phi,算法如下:

3. 应用

对每个doc,求解对应的topic

因为是所有文档公用一个theta,对于新文档可以加入上述gibbssampling过程,貌似也可以直接带入算好的p(w|z)=phi和p(z)=theta,计算起来比LDA必须sampling出本文档对应的theta_d似乎更加简单。P(b|d)就是一个简单的计数算的比例。

=============================

比较与LDA和mixture of unigram两个baseline,对于短文本,LDA<LDA-U<mixture of unigram<BTM

LDA的问题是稀疏性。LDA中每个文档对应一个theta,每个词对应一个z。对于短文本,由于词少,z-->theta这一步的统计可能不具备统计意义。因为每个文本单独对应于theta,所以增加文本数量不能克服这种短文本带来的缺陷。

传统的解决之道有两个。1.是将多个短文本聚合成一个长文本。比如LDA-U将一个user的多个发言聚合在一起减少稀疏影响。但这种做法与应用相关,需要有外部信息来辅助找到聚合的单位。2.是利用一个长文档文本集作为辅助数据,将长文本的一些信息先以某种形式抽取反应到先验中,从而间接地提供给短文本。看似很美好,问题在于,与transfer learning类似,这个知识能不能传还两说,得先找到一个总体主题分布类似的长文档集。

总体来说,LDA并不适用于短文本,LDA-U略好,但是基于user的聚合受限于应用和领域知识。


mixture of unigram在这里表现比LDA系列更好,原因是它对于所有文档用同一个theta,克服了短文本稀疏性问题。这个模型的问题是,它假设了整个文档对应于一个z,这比较粗糙和strong了,会导致一个topic类内距离很大,因为对于长文本,较远的段落之间可能语义差异很大了。在长文本以及K较大的时候,这个模型效果会比较差,但在短文本上,这个缺陷倒是不那么明显,因此效果好于LDA系列

最后是BTM模型。可以认为BTM综合了上述二者的优点。BTM跟mix一样,利用了整个文本集合来估计一个theta,解决了稀疏问题(我们通常有海量数据)。放宽了mix中对整个doc必须同属于一个z的约束(相当于从整doc放松到了窗口长度类的两个词),加强了LDA中每个词对应于一个Z的假设(BTM中约束了窗长内的两个词组成一个biterm对应于一个z)。这个假设很接近于人类认知,因为我们知道,通常在较短的一段文本内,topic变化不大。


说一句题外话,前几天听了一个知识图谱的讲座。他们也是用一个共现词对来排歧作为LDA的补充。比如 李娜+青藏高原 这个词对,可以很大程度上将李娜和其他人(比如另一个做音乐的李娜,无法被LDA所区分)区分开来。unigram是一个极端,一大堆词是另一个极端了。BTM相当于是这种思路在TM系列模型中的一个探索。从另一个角度,2gram或许也可以替换term作为LDA的单元,而BTM的尝试是将连续的2gram放开,允许中间有一个窗长。总的来说,这是一个相当有意思的思路,而且非常nature。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值