《Hashtag-Based Sub-Event Discovery Using Mutually Generative LDA in Twitter》
该文章来源于Thirtieth Aaai Conference on Artificial Intelligence 2016 。
本文主要是关注于子事件发现。
子事件发现是在twitter中进行社会实践分析的一种有效的方法,它能够从推特中大量嘈杂的信息中发现子事件,并语义表示。
然而这并不容易,因为面临着挑战。
什么挑战,tweets的挑战。tweets具有文本短,语言非正式,噪声多的特点,这让子事件发现没那么容易。
采用主题模型,来学习文本的语义表示,其中LDA是最火办法。
同时本文将标签加入LDA主题模型。
于是,本文提出了一种基于标签的的共生LDA模型:MGe-LDA。
标签在tweet中经常被使用到,在tweet中,标签被用户们用来强调主题或是当做分类信息,其包含很多子事件的描述。
同一标签被用于多个tweets上,所以可以用标签来重构tweet与延长tweet的长度,从而克服twitter数据稀疏的问题。
标签还是一个强大又简洁的语义符号,它可以帮助主题模型在语义层面上发现子事件,从而克服twitter语言非正式和噪声多的问题。
MGe-LDA和普通的LDA是有区别的。它在LDA中增加了一个标签生成层,将tweet语料的标签生成过程加入。要注意,这里同一个tweet的标签和主题是共生的。
如上图左边所示为普通LDA模型,展示了它生成一篇tweet的过程。
其中
α
⃗
\vec{\alpha}
α是文档
d
d
d中主题对应词语个数的分布,
β
⃗
\vec{\beta}
β是主题对应各个词的个数的分布。
θ
d
\theta _{d}
θd是以
α
⃗
\vec{\alpha}
α为参数的狄利克雷分布,它代表着文档
d
d
d对应各个主题的概率分布的分布。
φ
t
\varphi _{t}
φt是以
β
⃗
\vec{\beta}
β为参数的狄利克雷分布,它代表着主题
t
t
t对应各个词语的概率分布的分布。
z
d
i
z_{di}
zdi是文档
d
d
d的
i
i
i词的主题,
w
d
i
w_{di}
wdi是文档
d
d
d的
i
i
i词。
首先根据
θ
\theta
θ来生成一个主题
z
d
i
z_{di}
zdi,然后根据该主题的
φ
\varphi
φ来生成一个词语,重复
N
d
N_{d}
Nd次,便得到了tweet
d
d
d。
如上图右边所示为MGe-LDA模型,亦展示了它生成一篇tweet的过程。
其中
γ
\gamma
γ是标签在整个语料库中出现次数的多项式分布。
z
h
z_{h}
zh是标签为
h
h
h的词语的主题分布,即标签
h
h
h对应的主题分布。
S
S
S是一个向量,其中的
s
d
i
s_{di}
sdi是文档
d
d
d的
i
i
i词的标签,而
z
d
i
z_{di}
zdi是文档
d
d
d的
i
i
i词的主题。
w
d
i
w_{di}
wdi是文档
d
d
d的
i
i
i词。
α
⃗
\vec{\alpha}
α是标签
h
h
h中主题对应词语个数的分布,
β
⃗
\vec{\beta}
β是主题对应各个词的个数的分布。
θ
h
\theta _{h}
θh是以
α
⃗
\vec{\alpha}
α为参数的狄利克雷分布,它代表着标签
h
h
h对应各个主题的概率分布的分布。
φ
t
\varphi _{t}
φt是以
β
⃗
\vec{\beta}
β为参数的狄利克雷分布,它代表着主题
t
t
t对应各个词语的概率分布的分布。
整个主题模型生成过程可以分为两个部分。
第一个部分是关于tweet
d
d
d的标签生成的部分,也就是右边部分。由
γ
\gamma
γ(标签在整个语料库中出现次数的多项式分布)和
z
d
z_{d}
zd(文档中每个词的主题情况)得到
z
h
z_{h}
zh(标签
h
h
h对应的主题分布)。然后由
z
h
z_{h}
zh(标签
h
h
h对应的主题分布)选出一个
s
d
i
s_{di}
sdi(标签),然根据文档中每个词的标签情况便能得到整个文档的一个
h
H
d
h_{H_{d}}
hHd标签。
而第二个部分是关于tweet
d
d
d的词语生成的部分,也就是左边部分。首先根据
α
⃗
\vec{\alpha}
α和
β
⃗
\vec{\beta}
β来分别确定
θ
h
\theta _{h}
θh和
φ
t
\varphi _{t}
φt,然后然后由
z
h
z_{h}
zh(标签
h
h
h对应的主题分布)选出一个
s
d
i
s_{di}
sdi(标签),之后根据已经选的的标签
s
d
i
s_{di}
sdi来找到对应的标签主题分布
θ
s
d
i
\theta _{s_{di}}
θsdi,根据这个标签主题分布来选择一个主题
z
d
i
z_{di}
zdi,之后根据这个主题的主题词语分布来选择一个词语,重复
N
d
N_{d}
Nd次,便得到了tweet
d
d
d。
除了MGe-LDA,本文还提出了标签图。将与标签序列中高度相关的标签也加入候选标签集合中,从而解决标签打错的情况。它进一步解决了噪声问题和语言非正式化的问题。
构建
G
=
(
V
,
E
)
G=(V,E)
G=(V,E),其中
V
V
V代表标签,
E
E
E代表两个标签同时加到同一个tweet的次数,当两个标签同时被加到一个tweet中时,说明两个标签的相关性非常高了。
每次在上面MGe-LDA模型中,选择标签时,判断其概率,如果不符合,就选与它在图中邻接的标签中的其他标签。
下面就是对MGe-LDA模型进行测试,数据来源于2011年的TREC(文本检索会议),数据集包含2011年1月23日至2月8日的近1600万条推文。这一时期发生了三件大事:2011年埃及革命,2011年超级碗和2011年国情咨文演讲。
手动选择与这三个事件相关的推文,并形成三个事件数据集,分别表示为ER,SB和SOTU。设定子事件个数为5。
用每个类别中最火的十个标签来从语义层面表示子事件,结果如下图所示。
其中阴影部分是那些能够清楚表示子事件内容的标签。如这张图所示,第一个子事件大致是在革命开始的头几天里,抗议者占领了解放广场;第二件事大致是本次革命的深层次原因;第三件大致是拘捕了一些革命份子;第四件事大致是埃及和叙利亚在互联网上被封锁;第五件事大致是本次革命对其他阿拉伯国家的影响。可以看出,MGe-LDA比较好的发现了子事件。
之后是与其他方法进行性能比较,采用H值来表示子事件发现的性能,因为这类似于聚类,所以H值=类内距离/类间距离,H值越小,性能越好。
可以看到三个数据集的测试情况,MGe-LDA的表现都更好。