计算机应用   2017, Vol. 37 Issue (5): 1407-1412  DOI: 10.11772/j.issn.1001-9081.2017.05.1407
0

引用本文 

史庆伟, 刘雨诗, 张丰田. 基于微博文本的词对主题演化模型[J]. 计算机应用, 2017, 37(5): 1407-1412.DOI: 10.11772/j.issn.1001-9081.2017.05.1407.
SHI Qingwei, LIU Yushi, ZHANG Fengtian. Biterm topic evolution model of microblog[J]. Journal of Computer Applications, 2017, 37(5): 1407-1412. DOI: 10.11772/j.issn.1001-9081.2017.05.1407.

通信作者

刘雨诗 (1993—),女,辽宁铁岭人,硕士研究生,主要研究方向:智能数据处理, E-mail :shishi.mail@foxmail.com

作者简介

史庆伟 (1973—),男,辽宁阜新人,副教授,博士,主要研究方向:智能数据处理;
张丰田 (1991—),男,河北石家庄人,硕士研究生,主要研究方向:大数据、云计算

文章历史

收稿日期:2016-10-12
修回日期:2016-12-31
基于微博文本的词对主题演化模型
史庆伟, 刘雨诗, 张丰田    
辽宁工程技术大学 软件学院, 辽宁 葫芦岛 125105
摘要: 针对传统主题模型忽略了微博短文本和文本动态演化的问题,提出了基于微博文本的词对主题演化(BToT)模型,并根据所提模型对数据集进行主题演化分析。BToT模型在文本生成过程中引入连续的时间变量具体描述时间维度上的主题动态演化,同时在文档中构成主题共享的“词对”结构,扩充了短文本特征。采用Gibbs采样方法对BToT参数进行估计,根据获得的主题-时间分布参数对主题进行演化分析。在真实微博数据集上进行验证,结果表明,BToT模型可以描述微博数据集中潜在的主题演化规律,获得的困惑度评价系数低于潜在狄利克雷分配(LDA)、词对主题模型(BTM)和主题演化模型(ToT)。
关键词: 特征值稀疏    主题演化模型    动态演化    Gibbs采样    微博    
Biterm topic evolution model of microblog
SHI Qingwei, LIU Yushi, ZHANG Fengtian     
School of Software, Liaoning Technical University, Huludao Liaoning 125105, China
Abstract: Aiming at the problem that the traditional topic model ignore short text and dynamic evolution of microblog, a Biterm Topic over Time (BToT) model based on microblog text was proposed, and the subject evolution analysis was carried out by the proposed model. A continuous time variable was introduced to describe the dynamic evolution of the topic in the time dimension during the process of text generation in the BToT model, and the "Biterm" structure of the topic sharing in the document was formed to extend short text feature. The Gibbs sampling method was used to estimate the parameters of BToT, and the topic evaluation was analyzed by topic-time distributed parameters. The experimental results on real microblog datasets show that BToT can characterize the latent topic evolution and has lower perplexity than Latent Dirichlet Allocation (LDA), Biterm Topic Model (BTM) and Topic over Time (ToT).
Key words: feature sparsity    theme evolution model    dynamic evolution    Gibbs sampling    microblog    
0 引言

当前微博作为一种新的传播载体,允许任何人用电脑、手机等方式在任意时间发布任何言论,且这些言论能迅速传播给互联网所能触及的任何人[1]。微博数据实时且传播广泛的特点,使其数据蕴含了巨大的应用价值。近年来,在用户推荐,舆情监控和话题追踪等研究方向上往往使用微博数据作为实验数据集。因此,如何更好地挖掘微博数据、理解微博文本语义成为研究热点。

不同于普通文本的语义理解,主题模型在微博上的应用应同时考虑微博文本的两个主要特点:特点一,微博文本带有时间标记,文本语义在时间维度上动态演化,具有实时性;特点二,微博发布的信息为140字以下的短文本,而短文本的特征矩阵特别稀疏且上下文相关性极强。目前,主题模型解决微博文本特征值稀疏的方法大致可归纳为两类:背景语料训练和特征值扩充。其中,背景语料训练的方法建立在一种假设上,即作为背景语料集的长文本集合与短文本集的潜在语义分布相同,这样的假设对数据集质量要求较高,不适用于内容分散的微博文本;而特征扩展方法更广泛地应用于微博语义分析的过程,方法使用外部特征或文本本身对短文本特征进行合理扩充,对潜在语义在语料集上的分布影响较小,应用于微博文本较为合适。然而,这些主题模型的应用还不能很好地展示微博主题在连续时间上的演化过程。下面举例加以说明:

1) 双十一电商都在打折,可以好好购物。—2015-11-01

2) 五一假期去哪里玩呢?农家乐怎么样。—2015-04-27

针对这样的两条微博,扩充特征的主题模型虽能得到主题A1(购物)、主题A2(节假),但是无法确定分析出主题出现的时间,更无法探知A1、A2主题随时间的变化趋势。这是由于缺少时间因素造成的,模型默认A1、A2两个主题出现在同一时间点,但是显然主题A1在现实中出现在2015-11-11前后的概率更大,而主题A2应更可能出现在2015-05-01左右。所以无时间因素的主题模型中会忽略了微博文本的动态属性,导致模型在应用过程中无法得到受时间因素影响的主题分布。这使得在基于微博的舆情监测和热点追踪等问题的研究上只能使用单一时间点或离散时间点的主题分布进行研究,并不符合微博数据在连续时间上分布的事实。而引入时间因素的主题演化模型是基于长文本集提出的,在微博短文本上的应用效果不佳。现假设一种极端情况进行说明,若文档集中的文档只包含一个词,则该文档下的主题只有一个,在统计过程中过少的样本将无法保证文档-主题分布符合实际情况。

从上诉分析可知,现有的解决特征稀疏的主题模型没有考虑时间维度,不能表示主题在时间上的演化过程,而考虑时间因素的主题演化模型直接作用在特征值稀疏的短文本上效果不佳,不适用于微博短文本。这两类主题模型对微博进行语义分析都可能无法有效地获得微博文本中的潜在语义演化趋势。

因此,为契合微博文本的两个主要特点,本文尝试提出一种针对短文本的主题演化模型。模型通过不依赖于外部文本的扩充文档特征的方法,解决短文本在主题模型上因特征稀疏照成的效果不佳的问题,同时模型引入时间变量,在文本生成过程中增加时间因素的影响,使该主题模型适用于微博文本。

1 相关工作

相比吕超镇等[2]提出的背景语料训练的方法,特征扩充的方法更适用于主题模型在微博短文本上的应用。张晨逸等[3]提出的微博文本潜在狄利克雷语义分析 (MicroBlog-Latent Dirichlet Semantic Analysis, MB-LDA),综合考虑了微博的联系人关联关系和文本关联关系, 来辅助进行微博的主题挖掘。唐晓波等[4]提出的基于潜在狄利克雷分配 (Latent Dirichlet Allocation,LDA) 模型和微博热度的热点挖掘方法,将热点话题作为背景信息进行辅助。上诉扩充方法的实现是基于文本结构化的扩充方法,利用了微博文本的不同类型而区别处理,是针对特定的应用方向结合特定的外部特征辅助进行的微博文本挖掘。Xu等[5]通过使用维基百科作为数据源,对文本特征进行扩展以提高主题模型的性能。该方法虽不依赖与特定的文本结构,但是也增加了噪声的可能性。Yan等[6]提出的词对主题模型 (Biterm Topic Model, BTM) 根据位置相近的词具有相近的隐含语义,将语料集中的距离相近的两词组构成词对,降低文档的特征稀疏性,且不依赖于外部文本。BTM与其他模型相比更好地解决了特征值稀疏问题,但其忽略文档层的主题混合的同时并不能揭示主题在时间维度上的动态演化,对微博文本进行潜在语义分析可能存在偏差。

主题演化模型将时间因素考虑到LDA模型相关体系,Blei等[7]在LDA模型的基础上提出了动态主题模型 (Dynamic Topic Model,DTM)。由于实际应用中DTM的效果对不同大小划分的时间粒度比较敏感,因此,Wang等[8]在DTM的基础上,引入文本的时间戳标记到模型中,构建了连续时间版本的连续动态主题模型 (continuous time Dynamic Topic Model, cDTM)。大量研究[9-11]表明,主题的演化过程呈现跳跃性,也就是说主题动态演化有可能不服从一阶马尔可夫假设。Wang等[12]提出了与马尔可夫假设无关的主题演化模型ToT (Topic over Time),假设时间服从Beta分布[13],更好地拟合了主题动态演化过程;但是主题演化模型对主题-词分布和文档-主题分布进行估计,短文本的特征值极度稀疏,导致采样过程中文档-主题分布不具有统计意义,所以主题演化模型不能直接应用于微博短文本。

根据上述的研究结果,本文基于微博文本的两个主要特点,提出一种词对和时间因素联合建模的主题模型——词对主题演化模型 (Biterm Topic over Time, BToT)。首先该模型建模时将一篇文档内的词改写成“词对”集合,重新构建语料集结构,解决短文本的特征值稀疏的问题,且模型保留了文档层的主题混合,为后续舆情监测和热点追踪等问题的研究提供了易于使用的语料集特征。同时,模型将文本的时间戳信息引入到参数演化过程中,假设时间为连续变量且服从Beta分布,使模型更好地拟合实时性文档的生成过程,适用于微博文本的语义理解。最后通过Gibbs采样[14-15]对微博语料集的3个分布 (文档-主题、主题-词和主题-时间) 进行参数估计。

2 词对主题演化模型

首先介绍BToT模型中使用的基本符号[16]

w表示构成文档的基本单位:词。文档集内含有的所有词的构成词表集合V={1, 2, 3, …, V},w=v表示wV内第v个词。

b表示同一文档内任意两词构成的无序词对,b={ wm, iwm, j },每个词对中的词属于同一主题。

d表示为一篇包含N个词对的文档, Nm表示第m篇文档的词对总数文档,dm={bm, 1, bm, 2, …, bm, n},bm, n表示第m篇文档中第n个词对。

D表示由m篇文档构成的文档集,文档集D={d1, d2, …, dm},dm为文档集中第m篇文档。

Z表示为潜在主题集合,Z={1, 2, …, K},z=k表示z为主题集合中第k个主题。

t表示为时间戳,时间戳集合T={ t1, t2, …, tm },tm表示为第m篇文档的时间戳。

主题模型假设文档为词袋模式,即一篇文档由若干个无序词组成,在文档-词间存在潜在主题,使文章-主题和主题-词服从一定的概率分布。即文本生成过程由文档-主题概率分布和主题-词概率分布联合产生。假设,每个主题上的词分布服从多项分布,矩阵φRK*V表示每个主题上的词分布概率,其中φk表示第k个主题之上每个词的概率分布。每篇文档上的主题分布同样服从于多项分布,矩阵θRM*K表示每篇文档上的主题分布概率,其中θm表示第m篇文档上每个主题的分布概率。

由于多项分布的共轭先验概率函数是狄利克雷 (Dirichlet) 分布[15]通过狄利克雷先验分布可以推断多项分布参数φθ。引入超参数αRKβRV,即先验概率函数狄利克雷分布的参数,使得θm~ Dirichlet (α),φk~ Dirichlet (β)。

BToT模型是在传统主题模型上对词对、时间因素联合建模。模型假设存在连续的时间变量,主题的分布与时间存在紧密联系,所以时间因素影响主题分布。在文档的生成过程中,假设主题-时间戳分布为Beta分布,其密度函数的形状比高斯分布更丰富。文档生成过程中加入第k个主题上随时间变化的Beta分布中生成单词时间戳部分,在Beta分布中引入参数集Ψ,其中ψk为第k个主题上的时间分布参数。BToT模型假设语料集内相近的词具有同一主题,将每篇文档中的任意两词组成无序词对,对间相互独立,无序排列。若一篇文章有n(n>2) 个词,组成词对后则含有n*(n-1)/2个词对,扩大了文本特征,且不依赖于外部文档,同时BToT模型在一篇文章内组成词对的方式保留了文档间的界限。需要注意在文档生成过程中,词对中的词属于同一主题,主题-词分布依旧为多项分布φ,其参数的先验分布依旧为Dirichlet分布。

BToT模型在语料集中对文档的产生过程描述如下:

1) 对于每个主题k ∈[1,K]:

从Dirichlet先验β中抽取多项分布φk~Dirichlet (β);

2) 对于每篇文档m∈[1,M]:

从Dirichlet先验α中抽取多项分布θm~Dirichlet (α);

3) 对于每篇文档m∈[1,M]中的每一个词对b∈[1,N],其中b={ wm, iwm, j }:

① 从θ中抽取一个主题zm, n,满足

zm, n ~Multinomial (θm);

② 在主题中抽取两个单词wm, iwm, j,满足

wm, iwm, j ~Multinomial (φk);

③ 在参数为ψk的Beta函数上抽取一个时间戳,满足tmn ~Beta (ψk)。

模型生成过程中主题数K已知不变,词表维度V与文档数M根据语料集的具体情况确定,生成过程中已知不变。

BToT模型的概率生成如图 1所示。

图 1 BToT模型概率图 Figure 1 Probability graph of BTOT model

图 1中环形为观察值,圆形表示变量,箭头表示各变量之间存在的依赖关系,矩形表示迭代重复的次数[16]。根据上述描述,wm, iwm, j是可以直接观测到的已知变量。αβ作为Dirichlet先验分布的参数,α反映语料集中主题间的相对强弱关系,β则反映主题自身的概率分布情况。剩余的变量zm, nφkθm是未知的隐含变量,需根据已知的观察值进行估计的变量,其中zm, nαθm联合生成,在生成zm, n后,φkβ生成bm, n中的两词wm, iwm, j,一个词对中的两词属于同一主题。

3 参数估计

BToT模型的目标是找出每篇文档的潜在主题和主题演化过程,需要计算后验概率如下所示:

$ p({\boldsymbol{z}}, t|{\boldsymbol{b}}) = \frac{{p({\boldsymbol{b}}, {\boldsymbol{z}}, t)}}{{\sum\limits_z {p({\boldsymbol{b}}, {\boldsymbol{z}}, t)} }} $ (1)

式 (1) 的分母,即整个语料集的所有单词概率如下所示:

$ p({\boldsymbol{b}}) = \prod\limits_{i = 1}^n {\sum\limits_{k = 1}^k {p({b_i}|{z_i} = k)p({z_i} = k)} } p(t|{z_i} = k) $ (2)

其中:n是所有词对的总数,分母要计算kn项,离散空间过大无法进行运算,需要其他方法对参数进行估计。比较常用的参数估计方法[19]包括期望传播[20]、期望最大化[21]和Gibbs采样等,其中Gibbs采样是MCMC (Markov-Chain Monte Carlo)[22]的特例,Gibbs采样作为一个在高维模型近似推断上相对简单的方法被广泛使用,所以本文对BToT模型的3个隐含变量,φθΨ进行采用Gibbs采样估计,通过全概率公式对后验概率公式进行模拟。

进行Gibbs采样首先要写出文档集在BToT模型中的联合概率分布。根据图 1中的BToT模型的概率图写出dmφθtzm联合概率分布如下所示:

$ \begin{array}{l} p({{\boldsymbol{d}}_m}, {{\boldsymbol{z}}_m}, {{\boldsymbol{\theta }}_m}, {\boldsymbol{\boldsymbol{\phi}} _{\rm{k}}}, t|{\boldsymbol{\alpha }}, {\boldsymbol{\beta }}, {{\boldsymbol{\psi }}_k})\\ = p({{\boldsymbol{d}}_m}, {{\boldsymbol{z}}_m}, {{\boldsymbol{\theta }}_m}, {\boldsymbol{\phi} _{\rm{k}}})p({{\boldsymbol{\theta }}_m}|{\boldsymbol{\alpha }})p({\boldsymbol{\phi} _{\rm{k}}}|{\boldsymbol{\beta }})p(t|{{\boldsymbol{\psi }}_k})\\ = \prod\limits_{m = 1}^{{N_m}} {[p({w_{m, i}}|{{\boldsymbol{z}}_m})p({w_{m, j}}|{{\boldsymbol{z}}_m})P({{\boldsymbol{z}}_m}|{{\boldsymbol{\theta }}_m})]} \\ *p({{\boldsymbol{\theta }}_m}|{\boldsymbol{\alpha }})p({\boldsymbol{\phi}_{\rm{k}}}|{\boldsymbol{\beta }})*p(t|{{\boldsymbol{\psi }}_k}) \end{array} $ (3)

其中,对于每篇文档的词对集dm每一个词对bm, n={wm, i, wm, j}的概率如下所示:

$ \begin{array}{l} p({b_{m, n}} = {w_{m, i}}, {w_{m, j}}|{{\boldsymbol{\theta }}_m})\\ = \sum\limits_{k = 1}^K {p({w_{m, i}}|{\boldsymbol{\phi} _{\rm{k}}})p({w_{m, j}}|{\boldsymbol{\phi} _{\rm{k}}})P({z_{m, n}} = k|{{\boldsymbol{\theta }}_m})} \end{array} $ (4)

给定主题情况下词对的多项分布的似然函数,如下所示:

$ \begin{array}{l} p\left( {{b_{m, n}} = {w_{m, i}}, {w_{m, j}}{\mathit{\boldsymbol{z}}_m}, {\boldsymbol{\phi} _k}} \right) = \\ \;\;p\left( {{w_{m, i}}|{\boldsymbol{\phi} _k}} \right)p\left( {{w_{m, j}}|{\boldsymbol{\phi} _k}} \right) = \prod\limits_{k = 1}^K {\prod\limits_{i, j}^V {\phi _{k, i}^{n_k^{\left( i \right)}}} } * \phi _{k, j}^{n_k^{\left( j \right)}} \end{array} $ (5)

其中:nk(i)代表在zi=k时,wm, i被观测到的次数,为最终求得p(b|zm, β) 须对隐藏变量求导,公式最终结果如下所示:

$ \begin{array}{l} p\left( {\mathit{\boldsymbol{b}}|{\mathit{\boldsymbol{z}}_m}, \mathit{\boldsymbol{\beta }}} \right) = \int {p\left( {\mathit{\boldsymbol{b}}|{\mathit{\boldsymbol{z}}_m}, \boldsymbol{\phi} } \right)} * p\left( {\boldsymbol{\phi} |\mathit{\boldsymbol{\beta }}} \right){\rm{d}}\boldsymbol{\phi} = \\ \int {\prod\limits_{k = 1}^K {\prod\limits_{i, j}^V {\phi _{k, i}^{n_k^{\left( i \right)}}} } * \phi _{k, j}^{n_k^{\left( j \right)}}} * {\rm{dir}}\left( {\boldsymbol{\phi} |\beta } \right){\rm{d}}\boldsymbol{\phi} = \\ \prod\limits_{k = 1}^K {\frac{{\Delta \left( {{n_k} + \beta } \right)}}{{\Delta \beta }}} * \frac{{\Delta \left( {{n_k} + \beta } \right)}}{{\Delta \beta }} \end{array} $ (6)

同理可得:

$ \begin{array}{l} p({{\boldsymbol{z}}_m}|{\boldsymbol{\theta }}) = \prod\limits_{i = 1}^W {p({z_i}|{d_i})} \\ = \prod\limits_{m = 1}^M {\prod\limits_{k = 1}^K {p({z_i} = k|{d_i} = m)} } = \prod\limits_{m = 1}^M {\prod\limits_{k = 1}^K {\theta _{m, k}^{n_m^{(k)}}} } \end{array} $ (7)
$ \begin{array}{l} p({\boldsymbol{z}}|{\boldsymbol{\alpha }}) = \int {p({\boldsymbol{z}}|{\boldsymbol{\theta }})} *p({\boldsymbol{\theta }}|\alpha ){\rm{d}}{\boldsymbol{\theta }}\\ = \int {\prod\limits_{k = 1}^K {\prod\limits_{i, j}^V {\theta _{m, k}^{n_m^{(k)}}} } *{\rm{dir}}({\boldsymbol{\theta }}|{\boldsymbol{\alpha }})} {\rm{d}}{\boldsymbol{\theta }}\\ = \prod\limits_{m = 1}^M {\frac{{\Delta ({n_m} + \alpha )}}{{\Delta \alpha }}} \end{array} $ (8)

所以联合概率分布最终如下所示:

$ \begin{array}{l} p({{\boldsymbol{d}}_m}, {{\boldsymbol{z}}_m}, {{\boldsymbol{\theta }}_m}, {\boldsymbol{\phi} _k}, t|\alpha, \beta, {{\boldsymbol{\psi }}_k})\\ = \prod\limits_{k = 1}^K {\frac{{\Delta ({n_k} + \beta )}}{{\Delta \beta }}} *\frac{{\Delta ({n_k} + \beta )}}{{\Delta \beta }}\\ *\prod\limits_{m = 1}^M {\frac{{\Delta ({n_m} + \alpha )}}{{\Delta \alpha }}} *{\rm{Beta}}({{\boldsymbol{\psi }}_k}) \end{array} $ (9)

根据联合概率分布和全条件概率公式得到全条件概率如下所示:

$ \begin{array}{l} p({z_i} = k|{{\boldsymbol{z}}_{\neg \;i}}, {\boldsymbol{b}}, t) = \frac{{p({\boldsymbol{b}}, {\boldsymbol{z}})}}{{p({\boldsymbol{b}}, {{\boldsymbol{z}}_{\neg \;i}})}}\\ \propto \frac{{\Delta ({n_k} + \beta )}}{{\Delta ({n_{k, \neg \;wi}} + \beta )}}*\frac{{\Delta ({n_k} + \beta )}}{{\Delta ({n_{k, \neg \;wj}} + \beta )}}*\frac{{\Delta ({n_m} + \alpha )}}{{\Delta ({n_{m, \neg \;i}} + \alpha )}}*{\rm{Beta}}({\psi _k})\\ = \frac{{n_k^{(i)}-1 + \beta }}{{\sum\limits_{v = 1}^V {(n_k^{(v)} + \beta )-1} }}*\frac{{n_k^{(i)}-1 + \beta }}{{\sum\limits_{v = 1}^V {(n_k^{(v)} + \beta )} }}\\ *\frac{{n_m^{(k)} - 2 + \alpha }}{{\sum\limits_{k = 1}^K {(n_m^{(k)} + \alpha ) - 2} }}*\frac{{t_{m, n}^{\psi _{k, 1}^{} - 1}*(1 - t_{m, n}^{\psi _{k, 2}^{} - 1})}}{{B({\psi _{k, 1}}, {\psi _{k, 2}})}} \end{array} $ (10)

其中:¬wm, i 、¬wm, j表示不包含第m篇文档中构成词对bnwm, iwm, jnz(i)nz(j)表示构成一个词对的两个词wm, iwm, j在主题k下出现的次数,nm(k)表示m篇文档中第k个主题出现的次数。

采用上述公式,对语料集的每篇文档下的每个单词分配一个主题。当所有词都分配主题后,完成一次迭代。在进行若干次迭代后,使马尔可夫链条采样出一系列的状态点,直到达到平稳分布状态,即为联合概率分布,完成主题采样。

当主题采样结束后,根据期望公式求得φθ两个重要矩阵。

$ {\theta _{m, k}} = \frac{{{n_{m, k}} + {\alpha _k}}}{{\sum\limits_{k = 1}^K {({n_{m, k}} + {\alpha _k})} }} = \frac{{{n_{m, k}} + {\alpha _k}}}{{\sum\limits_{k = 1}^K {{n_{m, k}} + K{\alpha _k}} }} $ (11)
$ {\phi _{k, w}} = \frac{{{n_{k, w}} + {\beta _w}}}{{\sum\limits_{v = 1}^V {({n_{k, w}} + {\beta _w})} }} = \frac{{{n_{k, w}} + {\beta _w}}}{{\sum\limits_{n = 1}^N {({n_{k, n}}*2) + V{\beta _w}} }} $ (12)

词对时间戳与文档时间戳相同,服从于不同主题下的Beta分布。Beta分布参数ψk采用矩估计,如下所示:

$ {\psi _{k, 1}} = {t_k}*\left[{{t_k}(1-{t_k})/{s_k}-1} \right] $ (13)
$ {\psi _{k, 2}} = (1- {t_k})*\left[{{t_k}(1-{t_k})/s_k^2-1} \right] $ (14)

其中:tk为时间戳采样的平均值,sk2为时间戳采样的方差。

4 算法实现

本文在主题模型的基本框架上,引入时间因素和词对模式提出了BToT模型。算法需要实现语料集结构改变,对于语料集中的一篇文档须将文档中的词向量改为词对向量dm,其中每个词对表示两个词组成的结构b={wm, iwm, j }。在主题演化过程中,需对文档集的时间戳遍历,矩估计时间分布参数。

为方便叙述,ITERATION为参数收敛时的迭代次数,M为语料集中文档数,B设为一篇文档中的词对个数。BToT模型算法描述如下:

输入  文档集合D

输出  分布参数φθΨ

1)  //建立由词对组成的文本集

 Set d variables composed of biterms for ever doc

2)  //初始化模型

 Zero all count variables nk, w, nm, k, nk, nm

 Sample topic index zm, n

 Increment count and sums nk, w, nm, k, nk, nm

3)  //初始化时间戳分布参数Ψ

 Compute Ψ for every doc’s time

4)  //进行迭代

 for 1 to ITERATION do

5)   for all document m∈[1,M] do

6)    for all biterms b∈[1,B] do

7)     //除去b所属两词wiwj的主题

    Decrement count and sums

    nk, wi-=1, nk, wj-=1, nm, k-=2, nk-=2

8)     //随机生成的新主题

     Sample topic index k~p(z|b)

9)     //添加b所属两词wiwj的主题

    Add count and sums

    nk, wi+=1, nk, wj+=1, nm, k+=2, nk+=2

10)     End for

11)   End for

12)  End for

13) //计算分布参数φθΨ

 Compute parameter set φ, θ, Ψ

5 实验结果及分析 5.1 实验数据及实验环境

为验证BToT模型的有效性,选取2011年1月1日至2012年12月30日的真实微博数据作为语料集。通过对新闻、娱乐、体育、养生等13个热门话题下的微博进行数据爬取,获得包含带有时间标记的微博正文81209条的语料集。使用ICTCLAS分词系统对文博正文进行分词,去停用词。对语料集进行时间归一化和排除无意义微博后得到可应用于实验的微博正文70496条,词表大小为32079。

5.2 性能评估方法

通常有3种方法对主题模型进行评估和最优主题数确定。有贝叶斯统计标准方法[23]、困惑度 (perplexity) 方法[24]、主题之间的平均相似度方法[25]。本文通过对训练结束后的模型进行困惑度计算来对模型评估。

困惑度公式:

$ b_{}^{H(q)} = {b^{-\frac{1}{N}\sum\limits_{i = 1}^N {{{\log }_b}q({x_i})} }} $ (15)

其中:b通常设置为2或e,H(q) 是公式中q概率分布的熵。当概率q的困惑度平均分布时,将概率代入困惑度公式得到概率q的perplexity值,对于未知的概率分布q,perplexity的值越小,说明模型越好。xi为测试文本,即语料集中的词表,N是语料集大小。将语料集数值代入困惑度公式,经推导主题模型困惑度计算公式如下所示:

$ \begin{array}{l} perplexity({D_{test}}) = \exp \left\{ {-\sum\limits_{d = 1}^M {\lg p({w_d})/} } \right.\sum\limits_{d = 1}^M {{N_d}} \\ = \exp \left\{ {\sum\limits_{d = 1}^M {\sum\limits_{{w_i} \in d} {\lg } } } \right.\left\{ {\sum\limits_{z \in d} {(p(z|d)p({w_i}|z))} } \right\}-\sum\limits_{d = 1}^M {{N_d}} \end{array} $ (16)
5.3 参数设置

BToT模型主要需对超参数αβ,主题数K,迭代次数进行设置。其中α=50/Kβ=0.01, 超参数αβ作为伪计数,对模型效果影响很小,但α值过大时,文档属于同一主题概率增加。主题数K的取值依次为20~200间隔20的数,通过对不同主题数下生成的模型进行困惑度计算,对比不同模型间的效果,同时获取最佳主题数。Gibbs采样的迭代次数为1000结果可以达到收敛。

5.4 实验结果和分析

1) 模型性能评估。本文针对LDA主题模型、BTM主题模型、ToT主题模型及BToT主题模型进行对比实验。通过在相同语料集上,用同一的性能评估方法进行实验,实验结果即各个模型在主题数取值范围内的困惑度值如图 2所示。由图 2可知,BToT模型的困惑度值明显小于LDA模型、BTM和ToT模型。说明在相同语料集和实验环境下,BToT模型对时间标注的短文本集合有更好的效果。

图 2 LDA、BTM、ToT和BToT模型困惑度对比 Figure 2 Perplexity comparison of LDA, BTM, ToT, BToT

2) 主题演化分析。主题演化分析是对某一确定主题和时间变化关系的描述,即主题-时间的概率分布。在BToT模型中主题-时间分布为Beta分布,通过采样对Beta分布的参数ψk进行估计,由估计所的参数ψk求得各个主题随时间的变化规律,公式如下所示:

$ \begin{array}{l} p(t|z) = Beta({\psi _k}) = \\ \;\;\;\frac{{{\bf{\Gamma }}({\psi _{z.1}} + {\psi _{z.2}})}}{{{\bf{\Gamma }}({\psi _{z.1}}) + \Gamma ({\psi _{z.2}})}}{t^{{\psi _{z.1}}-1}}(1-{t^{{\psi _{z, 2}}-1}}) \end{array} $ (17)

图 2可知困惑度随主题数的增加而降低,当主题数为200时,BToT模型的困惑度最低。选取主题数为200时的主题2、主题95、主题196为例说明主题演化规律。

表 1 BToT模型主题2、95、196前20个词的概率值 Table 1 Top 20 word probability of BToT in topic 2, 95, 196

图 3分别为3个主题的演化规律,图中Beta函数曲线描述主题在连续时间上出现的概率,是对该主题在不同时间点受到关注强度的体现。在演化规律图中Beta函数曲线为峰值时某主题的概率最大,表示该主题在此对应时间点的关注度最大,也可以说此时该主题的热度最高。与台湾问题相关的主题2自2011年1月逐步升高,在2012年5月所受关注度最高,而过后有逐步下降。主题95是与南海问题相关的主题,其在2012年6月所受关注度最高,而2012年6月发生中菲南海争端事件,民众关注度与模型演化结果存在一致性。而与环保有关的主题196在2012年1月份后关注度持续上升。通过对主题演化模型的分析帮助用户快速发现社会热点即民众关注度,从而对热点变化作出较为准确的判断,可以用于进一步的舆论监控、热点预测等工作。

图 3 主题演化规律 Figure 3 Evolution of topics
6 结语

本文针对微博文本提出BToT模型,通过构建词对模式和添加时间因素,改善了主题模型因短文本特征值稀疏造成的效果不佳,同时对明显受时间因素影响的微博短文本语料集进行演化分析,可以得到微博对于主题的关注度变化。BToT模型参数估计采用Gibbs采样方法实现。实验结果表明,在相同实验参数下,BToT模型效果较LDA模型、BTM和ToT模型更优。

通过以上的实验测试与分析,BToT模型还有些不尽如人意,BToT模型在采样过程中对文档中的词对进行遍历,语料集中的词对数远大于词数,因而相同实验环境下,BToT模型的运行时间多于与LDA模型和ToT模型,略小于BTM,所以以后的工作将专注于通过并行化等方法提高模型的运算能力,使其适应于当前网络环境下的海量数据处理。

参考文献
[1] 张剑锋, 夏云庆, 姚建民. 微博文本处理研究综述[J]. 中文信息学报, 2012, 26(4): 21-27. ( ZHANG J F, XIA Y Q, YAO J M. A review towards microtext processing[J]. Journal of Chinese Information Processing, 2012, 26(4): 21-27. )
[2] 吕超镇, 姬东鸿, 吴飞飞. 基于LDA特征扩展的短文本分类[J]. 计算机工程与应用, 2015, 51(4): 123-127. ( LYU C Z, JI D H, WU F F. Short text classification based on expanding feature of LDA[J]. Computer Engineering and Applications, 2015, 51(4): 123-127. )
[3] 张晨逸, 孙建伶, 丁轶群. 基于MB-LDA模型的微博主题挖掘[J]. 计算机研究与发展, 2011, 48(10): 1795-1802. ( ZHANG C Y, SUN J L, DING Y Q. Topic mining for microblog based on MB-LDA model[J]. Journal of Computer Research and Development, 2011, 48(10): 1795-1802. )
[4] 唐晓波, 向坤. 基于LDA模型和微博热度的热点挖掘[J]. 图书情报工作, 2014, 58(5): 58-63. ( TANG X B, XIANG K. Hotspot mining based on LDA model and microblog heat[J]. Library and Information Service, 2014, 58(5): 58-63. doi: 10.11925/infotech.1003-3513.2014.05.08 )
[5] XU T, OARD D W. Wikipedia-based topic clustering for microblogs[J]. Proceedings of the American Society for Information Science and Technology, 2011, 48(1): 1-10.
[6] YAN X, GUO J, LAN Y, et al. A biterm topic model for short texts[C]//Proceedings of the 22nd International Conference on World Wide Web. New York:ACM, 2013:1445-1456.
[7] BLEI D, LAFFERTY J. Dynamic topic model[C]//Proceedings of the 23rd ICML International Conference on Machine Learning, New York:ACM, 2006:113-120.
[8] WANG C, BLEI D, HECKERMAN D. Continuous time dynamic topic models[C]//Proceedings of the 24th Conference on Uncertainty in Artificial Intelligence. Corvallis:AUAI Press, 2008:579-586.
[9] 刘晓鸣. 社区问答系统中的专家发现方法研究[D]. 大连: 大连理工大学, 2013. ( LIU X P. Finding experts in community question answering[D]. Dalian:Dalian University of Technology, 2013. )
[10] 马海平. 基于概率生成模型的相似度建模技术研究及应用[D]. 合肥: 中国科学技术大学, 2013. ( MA H P. A study of probability generation model based similarity modeling techniques and its applications[D]. Hefei:University of Science and Technology of China, 2013. )
[11] 罗远胜. 跨语言信息检索中双语主题模型及算法研究[D]. 南昌: 江西财经大学, 2013. ( LUO Y S. Research on bilingual topic model and its algorithm in cross-language information retrieval[D]. Nanchang:Jiangxi University of Finance and Economics, 2013. )
[12] WANG X, MCCALLUM A. Topics over time:a non-Markov continuous-time model of topical trends[C]//Proceedings of the 11th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York:ACM, 2006:424-433.
[13] OWEN C B. Parameter estimation for the beta distribution[D]. Provo:Brigham Young University, 2008.
[14] 刘书奎, 吴子燕, 张玉兵. 基于Gibbs抽样的马尔科夫蒙特卡罗方法在结构物理参数识别及损伤定位中的研究[J]. 振动与冲击, 2011, 30(10): 203-207. ( LIU S K, WU Z Y, ZHANG Y B. Identification of physical parameters and damage locating with Markov chain Monte Carlo method based on Gibbs sampling[J]. Journal of Vibration and Shock, 2011, 30(10): 203-207. doi: 10.3969/j.issn.1000-3835.2011.10.039 )
[15] 马跃渊, 徐勇勇. Gibbs抽样算法及软件设计的初步研究[J]. 计算机应用与软件, 2005, 22(2): 124-126. ( MA Y Y, XU Y Y. An initial study on the algorithm and the software of Gibbs sampling[J]. Computer Applications and Software, 2005, 22(2): 124-126. )
[16] 张小平, 周雪忠, 黄厚宽, 等. 一种改进的LDA主题模型[J]. 北京交通大学学报, 2010, 34(2): 111-114. ( ZHANG X P, ZHOU X Z, HUANG H K, et al. An improved LDA topic model[J]. Journal of Beijing Jiaotong University, 2010, 34(2): 111-114. )
[17] 荀静, 刘培玉, 杨玉珍, 等. 基于潜在狄利克雷分布模型的多文档情感摘要[J]. 计算机应用, 2014, 34(6): 1636-1364. ( XUN J, LIU P Y, YANG Y Z, et al. Multi-document sentiment summarization based on latent Dirichlet allocation model[J]. Joutnal of Computers Applications, 2014, 34(6): 1636-1364. doi: 10.11772/j.issn.1001-9081.2014.06.1636 )
[18] 徐戈, 王厚峰. 自然语言处理中主题模型的发展[J]. 计算机学报, 2014, 34(6): 1636-1364. ( XU G, WANG H F. The development of topic models in natural language processing[J]. Chinese Journal of Computers, 2014, 34(6): 1636-1364. )
[19] HAN X, STIBOR T. Efficient collapsed Gibbs sampling for latent Dirichlet allocation[J]. Journal of Machine Learning Research, 2010, 13: 63-78.
[20] HOFFMAN M D, BLEI D M, WANG C, et al. Stochastic variational inference[J]. Journal of Machine Learning Research, 2013, 14(1): 1303-1347.
[21] HEINRICH G. Parameter estimation for text analysis[EB/OL].[2013-04-25].http://www.Arbylon.net/publications/textest2.pdf.
[22] 汲剑锐. 马尔科夫链应用的一些探讨[D]. 武汉: 华中师范大学, 2012. ( JI J R. The discussion about the applications of Markov chains[D]. Wuhan:Central China Normal University, 2012. )
[23] 石晶, 范猛, 李万龙. 基于LDA模型的主题分析[J]. 自动化学报, 2009, 35(12): 1586-1593. ( SHI J, FAN M, LI W L. Text segmentation based on model LDA[J]. Acta Automatica Sinica, 2009, 35(12): 1586-1593. )
[24] 史庆伟, 李艳妮, 郭朋亮. 科技文献中作者研究兴趣动态发现[J]. 计算机应用, 2013, 33(11): 3080-3083. ( SHI Q W, LI Y N, GUO P L. Dynamic finding of authors' research interests in scientific literature[J]. Journal of Computer Applications, 2013, 33(11): 3080-3083. )
[25] 曹娟, 张勇东, 李锦涛, 等. 一种基于密度的自适应最优LDA模型选择方法[J]. 计算机学报, 2008, 31(10): 1780-1787. ( CAO J, ZHANG Y D, LI J T, et al. A method of adaptively selecting best LDA model based on density[J]. Chinese Journal of Computers, 2008, 31(10): 1780-1787. doi: 10.3321/j.issn:0254-4164.2008.10.012 )