马子娟,岳 昆,段 亮,赵天资
云南大学 信息学院,昆明 650500
随着互联网与公众生活的深度融合和新媒体的不断发展,舆情新闻事件的活跃度和影响面进一步扩大。舆情新闻事件是指群众广泛关注并容易引起舆论强烈反响的事件。特定的舆情新闻事件往往包含不同的主题,每一个主题描述了事件的不同侧面,基于这些主题进行跟踪,可以更好地监控事件的发展变化,为舆情事件分析提供便利。与一般新闻不同,舆情新闻的特点为事件跟踪任务带来了如下挑战:
(1)新媒体平台的舆情新闻文本较短,导致舆情新闻主题特征稀疏,主题分布易受噪音影响,主题检测精度降低。
(2)舆情新闻事件具有敏感性,在短时间内会引起大量关注并带来大量的后续新闻报道。
(3)舆情新闻事件在传播过程中易演化发展出其他相关主题,并且演化周期比一般新闻更短。
(4)一些热点事件一开始不具有舆情事件的主题特性,但因事件的核心诱因易引发波动和讨论,从而次生出网络舆情,次生性使得用户在梳理新闻事件各个侧面的主题信息时,很难高效地从大量新闻报道中准确掌握事件全貌。因此,需要建立针对特征稀疏、具有在线处理能力、能够有效跟踪新闻报道所属主题的方法,从而提高对舆情新闻事件主题阶段演变的识别能力。
主题模型[1]是检测新闻事件主题的重要工具,基于主题模型的新闻事件跟踪方法可有效发现与事件相关的主题信息,利用高效的学习算法从高维稀疏的词项数据中提取低维主题特征,从而跟踪事件主题不断演化的趋势。其中,典型的LDA(latent Dirichlet allocation)[2]模型能有效检测传统新闻中的潜在主题,而新媒体中的舆情新闻文本较短,词项共现信息匮乏,数据稀疏,LDA不能有效实现主题检测。
针对稀疏性问题,研究人员提出了BTM(Biterm topic model)主题模型[3]对短文本词对进行建模。但是,随着时间的推移,后续新闻报道的数据规模迅速增长,离线模型在新数据到来时,需要重复扫描整个数据集,具有较大的时间和空间开销。为了克服离线模型处理实时数据流的缺陷,在线Biterm主题模型(online Biterm topic model,OBTM)[4]将时间属性引入BTM并扩展到在线环境,对每个时间片的数据进行建模,且将主题的历史分布作为当前时间片主题检测的先验知识,使模型满足舆情新闻事件主题在线检测的需求,还能持续捕捉主题在大规模后续新闻报道中的演化。然而,当舆情新闻数据不断到达时,需要保持模型参数的实时更新,传统模型使用批处理吉布斯采样进行参数更新,主题检测的效率并不高。
为了提高主题模型参数更新的效率,研究人员提出在线算法[5-6]将海量数据集切分成若干小段后顺序处理,并对当前段数据使用梯度下降法来估计模型的参数,比传统离线算法需要更少的迭代次数就能达到收敛。Foulds等[7]将随机坍缩变分贝叶斯(stochastic collapsed variational Bayesian inference,SCVB0)算法引入LDA主题模型,实现参数的实时更新。
因此,本文提出面向舆情事件监控的主题模型MBTM(monitor Biterm topic model),根据舆情新闻事件的特点,引入时间节点对OBTM模型中的时间片进行扩展,在每个时间节点对舆情新闻数据进行主题建模,并使用SCVB0算法代替OBTM中的吉布斯采样算法来实时更新MBTM模型参数,使模型在解决稀疏性的同时具有高效地进行在线处理的能力。
为了实现舆情新闻事件的有效跟踪,需要在事件发展初期检测新闻报道的主题,跟踪特定事件主题的后续新闻报道,并将涉及某个事件主题的新闻报道组织成事件线索呈现给用户[8]。对此,现有研究多采用基于文本分类和相关度比较的跟踪方法[9],在已知目标主题的基础上比较后续报道与该主题的相关程度。然而,舆情新闻的易演化性和次生性会导致主题漂移[10],现有方法难以兼顾事件中词项的语义特征和隐含的主题特征。
本文进一步给出基于MBTM主题模型的舆情新闻事件跟踪方法,在新闻事件发展初期,利用MBTM有效检测新闻报道描述的主题。为了跟踪特定舆情事件的后续报道,利用MBTM模型推断每篇报道的主题特征,基于主题特征对后续报道进行分类,并给出事件线索的概念,将线索关键词映射到Word2vec[11]词向量空间,利用JS散度(Jensen-Shannon divergence)[12]度量相邻时间节点间的线索关联度,去除冗余线索,最终针对新闻事件主题生成相应的事件线索。本文方法既能保持主题模型挖掘隐含主题特征的优势,又能利用词向量的语义信息提高主题模型的可解释性。
总体来说,本文的主要贡献如下:
(1)针对舆情新闻的稀疏性和敏感性,提出了面向舆情新闻事件监控的在线主题模型MBTM,解决了传统模型无法从在线数据中有效地检测舆情事件主题的问题。
(2)针对舆情新闻的易演化性和次生性,提出了基于MBTM主题模型的舆情新闻事件跟踪方法,解决了舆情新闻事件发展所产生的主题漂移问题,还能在主题层次对舆情新闻进行抽象描述。
(3)通过建立在“后续”(https://houxuapp.com/)新闻网站和新浪微博(https://weibo.com/)数据集上的实验,验证了本文提出的MBTM模型构建和舆情新闻事件跟踪方法的高效性和有效性。
主题模型[13]是用于分析大规模文档主题的概率生成模型,首先检测文档中的主题信息,然后按照主题信息对文档进行分类管理。基于广泛应用于主题检测的LDA主题模型,AlSumait等[14]引入时间属性,提出OLDA(online latent Dirichlet allocation)模型,将主题历史分布作为当前时间窗口模型的先验,更新数据时不需要访问之前的数据,使其具有在线处理能力,但这种共现模式降低了LDA的准确性。Yan等[3]提出BTM主题模型,对短文本中的所有词对进行建模,利用词汇的上下文信息,避免文档-词项共现次数不足造成的主题建模失效问题,但不能直接用于在线环境。Cheng等[4]提出在线Biterm模型OBTM,在时间片上用BTM模型对文本进行建模,使模型能处理在线数据。然而,对于舆情新闻在线数据,仅引入时间属性,无法在新数据到达时实时更新参数。
对此,Canini等[15]提出增量式吉布斯采样(incremental Gibbs sampling,IGS)算法,也称在线吉布斯采样(online Gibbs sampling,OGS)算法,Hoffman等[5]提出了在线变分贝叶斯(online variational Bayesian,OVB)算法。OGS和OVB算法都基于离线GS和VB算法,GS算法需要对文本中的每个词项进行训练,VB算法引入了时间复杂度较高的digamma函数,OGS和OVB算法的精度和效率都有待提高。
跟踪舆情新闻事件主题演化的内在机理和规律,为分析和监控舆情事件的发展态势提供了极大便利。文献[16]针对舆情事件提出子话题标签生成模型,有助于发现事件共性,并反映事件子话题热度的变化趋势;文献[17]提出基于灰色关联计算的网络舆情监测模型,实现民族舆情热点事件的预测和发现。文献[18]提出一种动态聚类主题模型,实时检测并跟踪事件主题变化。文献[19]提出基于事件相似度的跟踪方法,有效挖掘事件发展线索,形成事件脉络。文献[20]提出事理图谱的概念,用于发现事件的演化规律。这些方法针对多领域事件显示了良好的跟踪效果,但是针对舆情新闻特点的跟踪方法还需要进一步研究。
本文给出舆情新闻数据、舆情新闻数据词典的定义,讨论MBTM主题模型的定义及其参数更新方法。表1给出相关符号及其含义。
表1 符号及含义Table 1 Notations and descriptions
定义1舆情新闻数据表示为I={I1,I2,…,IM},Ij描述为三元组(Rj,Tj,seg_Tj)(1≤j≤M),Rj为新闻Ij的发布时间,Tj为Ij的文字内容,seg_Tj为Tj经预处理后的文字内容。
定义2舆情新闻数据词典表示为W={w1,w2,…,wS},为新闻数据中出现的所有词项wi的集合,其中没有重复的词项,即wi≠wj(1≤i,j≤S,i≠j)。
MBTM模型使用二元组Biterm替换LDA中的词项,并将每条数据作为一个单独的上下文单元,任意两个不同的词项构成一个Biterm,表示在词项序列上固定大小的上下文单元中共现的无序词对。通过这种词对的共现来加强主题模型的学习,可有效解决稀疏性问题。用舆情新闻数据词典W中的S个词项来表示K个主题(K≥1),z为主题的指示变量,k为主题序号(k∈{1,2,…,K}),θ为整个数据集的主题分布,φk为主题-词项分布,α(0<α<1)和β(0<β<1)为整个数据集的主题分布和主题-词项分布的先验参数。下面给出构建MBTM的基本思想:
(1)对整个语料库,从参数为α的狄利克雷分布中对主题分布θ进行随机采样,从而推断出概率分布中的隐含变量θ,得到具体的概率分布,即θ~Dir(α),表示为:
其中,α是K维参数,αi>0,Г(x)是Gamma函数。
(2)对每个主题k∈[1,K],基于参数为β的狄利克雷分布对每个主题进行随机采样,得到主题-词项分布φk,简称为词项分布,即φk~Dir(β)。
(3)对B中的每个Bitermb,基于参数θ的多项式分布,为每个b随机采样一个主题z,即z~Multinomial(θ)。基于参数φk的多项式分布对词项w1(b)和w2(b)进行随机采样,即w1(b),w2(b)~Multinomial(φk)。
图1展示了上述过程中变量间的概率依赖关系。方框表示其中的过程需重复,右下角为重复的次数,灰色节点为观测值,空心节点为隐变量或参数,箭头表示依赖关系。
为了提高参数推断方法的准确性和高效性,基于所构建的MBTM图模型,仅对隐含主题变量z进行推断,z服从变分多项式分布Multinomial(γbk),其中γbk为该多项式分布的变分参数。
对参数及隐变量间的依赖关系进行坍缩变分表示,通过求边际积分,从后验分布中去除部分隐变量,得到如图2所示的MBTM图模型。
原模型中隐变量的后验分布为P(θ,φ,z|B),经过图2的坍缩变分表示后,将隐变量θ和φ去除,得到只包含隐变量z的后验分布P(z|B)。这种表示方式保持了变量间的依赖关系,使近似分布更准确。
MBTM利用变分方法求解参数,变分法的主要思想是使用一个近似分布逼近真实的后验分布,也就是使两个分布之间的KL散度最小化。经过推断,最小化KL散度转化为最大化对数似然函数的下界ELBO(evidence lower bound)。目标ELBO的公式为:
其中,E[·]表示基于变分分布的期望,Q(z|γ)表示相对于变量z的完全分解的变分分布,即
关于变分参数γbk最大化ELBO可得到参数的更新公式,此时γbk可表示基于可观测数据,Bitermb分配的主题为k的概率,即Q(zb=k),γbk的具体更新公式为:
为了在后续新闻报道到来时立即更新模型,本文提出使用SCVB0算法[7]中的随机更新理论对MBTM参数进行在线更新的方法,包括更新变分参数、更新充分统计量、更新全局参数3个主要任务。其中,全局参数的更新通过变分参数和充分统计量的迭代更新来实现,由全局参数可得到隐含主题分布及主题-词项分布,从而推断出当前数据的主题结构。具体如下:
每个Bitermb出现时,令时间步长t=1,并随机初始化Nk和Nk,w,为更新和恢复参数所需数据的统计量,分别表示主题为k的Biterm个数和主题为k的包含词w的Biterm个数,,其中Bw是包含词项w的Biterm集合。
(1)更新变分参数。为了保证参数更新的高效性,本文使用少量的数据计算充分统计量,并利用这些统计量来更新变分参数。为了克服式(3)中需要计算不可获得的期望的问题,下面给出近似变分方法,在迭代更新变分参数时对γbk进行更新:
其中,表示统计量Nk和Nk,w计数时要去掉当前出现的Bitermb。基于得到的变分参数γbk,Nk和Nk,w的估计方法如下:
(2)更新充分统计量。针对主题信息分布不一致的舆情新闻实时数据流,根据历史时间节点的数据快速给出当前时间节点正确的主题信息,为了描述时间步长t改变时模型在新数据和历史数据之间的权衡,按照式(7)定义Robbins-Monro序列[21]:
其中,ρt为学习率,τ和κ是Robbins-Monro序列的学习参数(τ≥1,0≤κ≤1)。
为了迭代地更新变分参数γbk直至收敛,当一个新的Bitermb出现时,随机更新充分统计量,给出采用ρt作为权重因子的随机更新方法,取当前统计量和历史已更新统计量的权重之和:
不难看出,Nk和Nk,w是当前统计量及所有历史已更新统计量的权重之和,因此,距离当前时间节点越远的数据具有多重权重因子,对当前统计量的影响也越小,而距离当前时间节点越近的数据对当前统计量的影响就越大。
(3)更新全局参数。每次更新Nk和Nk,w后,时间步长t加1。在对所有Biterm进行了更新操作后,由于全局参数θk和φk,w仅与充分统计量Nk、Nk,w和模型参数有关,仅需更新这些充分统计量,方法如下:
算法1概括MBTM主题模型参数更新的方法。
算法1 MBTM主题模型的参数更新
输入:超参数α、β;主题总数K;Biterm集合B。
输出:更新后的全局参数θk、φk,w。
1.随机初始化Nk和Nk,w
2.令时间步长t为1
3.ForbinB:
4.利用公式(4)计算变分参数γbk
5.更新Nk和Nk,w
6.更新时间步长t←t+1
7.End for
8.更新全局参数θk和φk,w
算法1中,MBTM模型参数更新的时间复杂度为O(K||B),其中每个Biterm到来时参数更新的计算时间为O(K)。
定义3新闻报道集合I中舆情新闻事件原始线索表示为OCj={cjA1,cjA2,…,cjAt},其中cjAt(1≤j≤k)为第j条事件线索在At时间节点的线索关键词的概率分布。
MBTM模型中的全局参数θk和φk,w是实时更新的,据此设置时间节点At(t=1,2,…,T),T为节点个数,在每个时间节点采样主题-词项分布φAt k,w,获取对应的主题,检测主题在词项上的变化来描述事件的演化轨迹。
为了在后续到来的舆情新闻数据中跟踪并给出主题相关的新闻报道,掌握事件的发展过程,利用MBTM的全局参数θk和φk,w来推断文档-主题的概率分布P(z|d)。
其中,P(z|b(d)i)可通过贝叶斯公式来计算,P(b(d)i|d)为Bitermb(d)i在文档d中出现次数占其在所有文档中出现总数的比例,Nd为文档d中包含的Biterm个数。
经过上述推断,每条舆情新闻数据都表示为主题的概率分布,从而将高维的词项特征表示为低维的主题特征,使用主题特征进行分类预测,进而得到同一主题的新闻数据集合。
为了生成最具代表性的事件线索,避免主题漂移,本节给出线索内关联度和线索间相似性的度量策略。基于第3.1节中的φkA,wt获得每个时间节点的主题词项作为线索关键词,采用JS散度来度量OCj中相邻节点间的线索关键词概率分布的差异,计算方法如下:
其中,cjA,wt和cjA,wt+1分别为At和At+1下词项w的概率分布。若JS散度小于阈值λ,认为两个时间节点上的线索关联,将关联节点按时间顺序串联,得到最终的事件线索TCj。
针对主题相关的事件可能形成冗余事件线索,考虑将时间上一致、语义上相近的线索合并。对于任意两条原始事件线索,采用线索关键词在Word2vec词向量空间上的余弦距离来表征线索间的相似程度,计算方法如下:
其中,vOCi和vOCj分别为线索OCi和OCj中线索关键词词向量加和的平均值。当dist小于阈值μ时,认为两条线索相似,进而对相似线索进行合并。上述线索生成方法的具体过程如图3所示。
本文采用“后续”新闻网站2019年1月9日至2020年3月30日的4 500条舆情新闻数据以及新浪微博2013年1月20至2020年4月28日的15 000余条舆情新闻事件的相关微博作为测试数据集。
实验环境如下:Intel®CoreTMi7 5930K CPU;3.7 GHz处理器;8 GB内存;Ubuntu18.04.1操作系统;Python作为编程语言。统一将后续实验的超参数α和β分别设置为50/K和0.01,Word2vec词向量维度设置为300,窗口长度为10,采用CBOW模型,分类模型使用LIBLINEAR(https://www.csie.ntu.edu.tw/~cjlin/liblinear/)进行5-fold交叉验证。
使用准确率(accuracy)来测试舆情新闻事件主题检测结果的有效性。在爬取的微博数据集中,每条数据都包含主题标识词字段,若模型检测得到的数据主题与标识词标识的数据主题一致,认为检测结果正确,从而定义准确率为正确检测主题的数据条数占测试数据总条数的比例。
使用覆盖率(coverage)来度量舆情新闻事件线索生成结果的有效性,反映新闻事件线索覆盖内容的多少,定义如下:
其中,correct(TC)为正确生成事件线索的条数,TC为最终生成的事件线索。若生成线索的时间节点和主题词项能在“后续”新闻网站事件专题下的参考主题发展关键点中找到对应的关键时间节点和事件描述关键词,认为生成了正确的事件线索,e为去除冗余线索后的事件线索总数。
使用查准率P(precision)、召回率R(recall)、和F1分值来测试舆情新闻事件跟踪结果的有效性,计算方法如下:
其中,TP、FP和FN分别为跟踪到与事件相关、跟踪到与事件不相关、与事件相关未跟踪到的新闻数。
(1)效率测试
为了测试MBTM构建和事件跟踪的效率,将从新浪微博获取的舆情新闻事件的15 000条微博作为测试数据集,对比MBTM、BTM、OBTM和OLDA构建和跟踪的总时间,如图4所示。可以看出,随着主题数的增加,另外3种模型构建与跟踪执行时间的增长速度比MBTM快,说明在多主题情况下MBTM构建及事件跟踪的效率高于BTM、OBTM和OLDA。
为了测试舆情新闻数对MBTM构建和事件跟踪算法执行效率的影响,固定主题数为40,迭代次数为100,测试随着新闻数增加4种主题模型构建和事件跟踪的总时间,如图5所示。可以看出,随着新闻数增加,MBTM效率最高,说明MBTM构建与事件跟踪方法的高效性。
为了测试迭代次数对MBTM构建和事件跟踪效率的影响,固定新闻数为4 000,设置主题数为10,增加迭代次数,测试执行时间的变化趋势,如图6所示。可以看出,随着迭代次数增加,MBTM构建和事件跟踪的总时间增长速度明显低于BTM、OBTM和OLDA,这是因为MBTM采用的SCVB0算法缩短了每轮迭代中参数更新的时间,验证了基于MBTM进行事件跟踪的高效性。
(2)舆情新闻事件主题检测有效性
利用15 000余条舆情新闻事件的微博作为测试数据集,并按照事件主题类别进行分类,得到的测试数据集包含7个事件,共7 827条微博,如表2所示,此外还包含4 000条非相关数据,作为前面7个事件的反例报道。
表2 舆情新闻事件测试数据Table 2 Test data of public opinion news events
分别利用MBTM、OLDA、OBTM和BTM检测事件主题,表3给出在7个特定事件上的主题检测结果。可以看出,OLDA有2个事件没有检测到主题词项,OBTM和BTM中有多个事件出现了不同程度的主题混合(斜体加粗词项代表该词项不属于当前事件主题)。而在MBTM中,“少数民族运动会”等冷门事件主题也能被发现,且没有主题混合的情况,验证了基于MBTM进行主题检测方法的有效性。
为了验证表3中主题词项检测结果的正确性,分别测试基于MBTM、OBTM、BTM和OLDA进行主题检测的准确率,如图7所示。可以看出,MBTM在7个事件上检测主题的准确率均优于另外3种模型,准确率比3种模型平均高出14%。
表3 4种模型检测到的事件的主题词项Table 3 Topic words of detected events of four models
进一步增加主题数,分别测试4种模型在7个事件上主题检测的平均准确率,如图8所示。可以看出,随着主题数的增加,MBTM的准确率变化幅度最小,且准确率始终高于另外3种模型。当主题数增加到40时,MBTM的准确率达到93.5%,在主题数目为70~100时,MBTM仍能够保持较高的准确率,因此该模型对主题数的敏感度更低,适用性更好。
进一步增加新闻数,分别测试4种模型在7个事件上主题检测的平均准确率,如图9所示。可以看出,随着新闻数增加,MBTM的准确率提升了近30%。
(3)舆情新闻事件跟踪方法有效性
为了测试舆情新闻事件跟踪方法的有效性,选用实验(2)中的测试数据集,从中抽取6个舆情新闻事件和1个近期热门事件的微博数据,按照发布时间顺序混合在一起形成新闻事件数据流,并按照4∶1的比例划分为训练集和测试集,根据事件跟踪的问题定义,测试集数据的发布时间都在训练集数据之后。将基于OBTM、BTM和OLDA的跟踪方法作为基线方法,测试基于MBTM的跟踪方法的召回率、查准率和F1值,如图10~图12所示。可以看出,基于MBTM的跟踪方法提高了舆情新闻事件跟踪的召回率、查准率和F1值。
为了测试新闻数对舆情新闻事件跟踪结果的影响,测试随着新闻数增加,召回率、查准率和F1值的变化趋势,如图13~图15所示。可以看出,随着新闻数增加,基于MBTM的跟踪方法的3个指标始终高于基于另外3种模型的跟踪方法,最高达到96.3%,97.9%,97.1%,说明本文方法能达到更好的跟踪效果。
(4)舆情新闻事件线索生成有效性
为了测试本文提出的舆情新闻事件线索生成方法的有效性,选用实验(3)中的测试数据集,设置阈值λ=0.35,μ=0.5(比较不同阈值组合下生成线索的覆盖率,选取覆盖率最高的阈值组合),时间节点个数为5。参考“后续”新闻网站事件专题下的主题发展关键点,测试不同主题数下4种模型在7个事件上生成事件线索的平均覆盖率,如图16所示。可以看出,针对7个舆情新闻事件,随着主题数增加,基于MBTM生成事件线索的覆盖率始终高于基于另外3种模型生成事件线索的覆盖率,最高达到了83%,说明本文方法可有效挖掘舆情新闻事件的多主题特征,从而提高线索的覆盖率。
图17 展示了基于本文方法生成的其中两条事件线索,两条事件线索TC1和TC2分别代表“西藏民主改革60年”和“湖南岳阳天价切糕”的舆情新闻事件。其中,圆节点代表事件的线索节点,记录事件主要信息的线索关键词在该节点的右侧,线索节点的索引号对应线索生成的时间节点,线索节点间的有向边表示它们之间的关联关系。
本文针对舆情新闻的特点,提出面向舆情新闻事件跟踪的在线主题模型MBTM。实验结果表明,MBTM比OBTM、BTM和OLDA更高效,基于MBTM的新闻事件跟踪方法更适合于处理舆情新闻事件在线数据,并能够有效生成事件线索。但是,MBTM需设置适当的主题数和学习率,未来的研究工作将考虑自适应选取最优主题数和学习率。