«上一篇 下一篇»
  计算机工程  2019, Vol. 45 Issue (10): 283-287  DOI: 10.19678/j.issn.1000-3428.0052535
0

引用本文  

周福星, 陈秀真, 马进, 等. 一种融合标签语义的微博热点话题挖掘方法[J]. 计算机工程, 2019, 45(10), 283-287. DOI: 10.19678/j.issn.1000-3428.0052535.
ZHOU Fuxing, CHEN Xiuzhen, MA Jin, et al. A Microblog Hot Topic Mining Method Integrating Tag Semantics[J]. Computer Engineering, 2019, 45(10), 283-287. DOI: 10.19678/j.issn.1000-3428.0052535.

基金项目

国家自然科学基金(61562004,61431008);国家重点研发计划"网络空间安全"(2016YFB0801003)

通信作者

陈秀真(通信作者), 副教授、博士

作者简介

周福星(1994-), 女, 硕士研究生, 主研方向为社交网络大数据分析;
马进, 高级工程师、博士;
李生红, 教授、博士

文章历史

收稿日期:2018-09-03
修回日期:2018-10-18
一种融合标签语义的微博热点话题挖掘方法
周福星1,2 , 陈秀真1,2 , 马进1,2 , 李生红1,2     
1. 上海交通大学 网络空间安全学院, 上海 200240;
2. 上海市信息安全综合管理技术研究重点实验室, 上海 200240
摘要:由于微博文本的长度较短,直接使用隐狄利克雷分布(LDA)模型会导致特征向量高维稀疏。为此,提出一种融合标签语义的热点话题挖掘方法。利用公共块算法计算微博标签的相似度,合并标签相似度较高的微博文本。采用LDA模型对合并后的文本建模,并通过K-means聚类算法挖掘微博热点话题。实验结果表明,与针对单一微博文本建模的方法以及直接合并相同标签的方法相比,该方法的困惑度较低,挖掘热点话题的准确性较高。
关键词微博文本    隐狄利克雷分布模型    标签语义    公共块    K-means聚类    
A Microblog Hot Topic Mining Method Integrating Tag Semantics
ZHOU Fuxing1,2 , CHEN Xiuzhen1,2 , MA Jin1,2 , LI Shenghong1,2     
1. School of Cyber Science and Engineering, Shanghai Jiao Tong University, Shanghai 200240, China;
2. Shanghai Key Laboratory of Integrated Administration Technologies for Information Security, Shanghai 200240, China
Abstract: Due to the short length of the microblog text, the direct use of Latent Dirichlet Allocation(LDA) model will lead to high-dimensional sparse feature vectors.Thus, a hot topic mining method integrating tag semantics is proposed.The common block algorithm is used to calculate the similarity of the microblog tags, and the microblog texts with high tag similarity are combined.The merged text is modeled by LDA model, and the hot topic of microblog is mined by K-means clustering algorithm.Experimental results show that compared with the method of modeling a single microblog text and the method of directly merging the same label, the proposed method obtains a lower perplexity and a higher accuracy in mining topics.
Key words: microblog text    Latent Dirichlet Allocation(LDA) model    tag semantics    common block    K-means clustering    
0 概述

随着互联网的快速发展, 用户产生内容(User Generated Content, UGC)式的移动应用逐渐被人们熟知。微博是典型的UGC应用, 中国互联网络信息中心(CNNIC)发布的《第42次中国互联网络发展状况统计报告》显示, 截至2018年6月30日, 微博用户达3.37亿, 网民使用率为42.1%[1]。庞大的网络用户群体, 加上VIP用户的传播影响力和开放的网络结构, 导致微博热点事件可在极短的时间内广泛传播。因此, 从海量文本中准确地抽取热点话题, 对于控制与引导网络舆情、创建和谐的网络环境具有重要意义。

目前, 国内外学者已针对社交平台内容进行了大量研究并取得较多成果。文献[2]发现推特中词语出现的频率与公众对于政策的态度有相关性。文献[3]使用隐狄利克雷分布(Latent Dirichlet Allocation, LDA)模型分别对单一推特文本和同一作者发布的微博进行研究, 以解决语义稀疏问题。然而, 同一作者发布的微博内容不一定相似, 直接合并同一作者的微博会改变原微博文本的主题分布。在国内, 文献[4]利用TF-IDF算法提取特征词并用向量空间余弦值来衡量文本相似度。然而, TF-IDF算法仅考虑词语在文本中出现的频率而未考虑语义, 因此, 该算法更适用于长文本。文献[5]采用LDA模型对微博文本建模, 并以LDA隐主题代表话题。该方法直接将LDA模型应用于微博短文本, 主题抽取效果较差, 将得到的隐主题作为微博文本的话题, 其准确性不高。文献[6]使用多层聚类取代K-means的方法检测微博热点话题, 该方法同样未能解决微博文本语义稀疏的问题。文献[7]通过最长公共块算法得到描述话题的候选主题词, 然后基于维基百科知识筛选候选主题词并进行聚类。然而, 直接对微博文本使用公共块算法的计算代价较大, 效率较低。文献[8]提出一种词向量与LDA模型相融合的短文本分类方法, 从词粒度和文本粒度2个层面对微博文本进行建模。该方法可解决微博短文本的稀疏问题, 但其采用的相加平均法使得原词向量携带的相关信息丢失。

由于热点话题相关的微博通常带有相应标签, 且标签通常只有2个或3个词语, 本文提出基于公共块算法的微博热点话题挖掘方法。根据词语相似度计算标签之间的语义相似度, 将具有相近语义标签的微博文本进行结合来解决语义稀疏问题。采用LDA模型对合并后的文本建模, 并使用K-means聚类得到热点话题。

1 微博热点话题挖掘模型

本文微博热点话题挖掘模型如图 1所示。

Download:
图 1 微博热点话题挖掘模型
1.1 标签相似度计算

微博标签是一种由用户定义的, 可概括微博主题的词语或短句。某个热点话题相关的微博通常带有与该话题相关的标签, 因此标签语义对于微博热点话题挖掘具有重要意义。本文通过公共块算法, 从词语相似度出发, 计算标签相似度, 然后合并具有相近语义标签的微博, 这样不仅能够解决LDA模型在短文本中的稀疏问题, 同时也能结合语义和统计特征, 提高热点话题挖掘的准确性。

1.1.1 基于连续词袋模型的Word2Vec

词向量是词语的一种数学表示方式, 向量的每个维度代表一种语义特征, 向量间的距离反映了词语间的相似度。Word2Vec是由谷歌提出的一种可从原始语料中学习字词空间向量的预测模型, 主要分为连续词袋(Continuous Bag-of-Words Model, CBOW)和Skip-Gram 2种模式。其中, CBOW模式从原始语句推测目标字词[9], 而Skip-Gram是从目标字词推测原始语句[10]。CBOW比Skip-Gram更加适用于小型数据, 考虑到本文语料库规模不大, 因此, 使用基于CBOW模式的Word2Vec模型。

CBOW模型网络结构分为3层, 即输入层、投影层和输出层, 如图 2所示。将训练样本记作(Context(w)2c, w), 待建模的词语为w=足球, Context(w)由w前后各c个词构成, 则输入层为含Context(w)中2c个词的词向量, 投影层为输入层的2c个词向量累加的和, 即:${X_w} = \sum\limits_{i = 1}^{2c} {\mathit{\pmb{V}}} \left( {{\rm{ }}{Context}{\rm{ }}{{(w)}_i}} \right) \in $${{\rm{\mathbb{R} }}^m}$, 输出层为相对应的一棵Huffman树, 该树以语料库中出现过的词作为叶子结点, 以各词在语料库中出现的次数作为权值构造而成。在这棵Huffman树中, 叶子结点共有N=|D|个, 分别对应词典D中的词, 非叶子结点有N-1个。

Download:
图 2 CBOW模式的Word2Vec工作流程

本文所涉及的符号描述如下:

1) pw表示从根节点出发到达w叶子结点的路径。pw1表示根结点, plww表示w对应的结点。

2) lw为路径pw中包含结点的个数。

3) ${X_w} = \sum\limits_{i = 1}^{2c} {\mathit{\pmb{V}}} \left( {{\rm{ }}{Context}{\rm{ }}{{(w)}_i}} \right) \in {{\rm{\mathbb{R} }}^m}$表示路径pw中的lw-1个结点。

4) dw2, dw3, …, diww∈{0, 1}为词w的Huffman编码, 其由lw-1位编码构成, djw表示路径pw中第j个结点对应的编码(根节点不对应编码)。

5) θw1, θw2, …, θwiw-1${{\rm{\mathbb{R} }}^m}$为路径pw1中非叶子结点对应的向量, θjw表示路径pw中的第j个非叶子结点对应的向量。

对于w=足球, 路径pw为38→23→9→4→3, 其长度lw=5, 38、23、9、4、3为路径pw上的5个结点, 其中结点38为根节点。dw2dw3dw4dw5的值分别为1、0、0、1, 即“足球”的Huffman编码为1001, 从而可将词语映射到空间向量中[11]

本文训练Word2Vec模型使用的语料库来自爬取的5.915 GB微博文本, 训练所得的模型更符合微博语言环境。

1.1.2 基于公共块算法的标签相似度计算

本文使用公共块算法计算微博标签相似度。公共块是指2个短文本中拥有相同词义的连续词项组合形成的词块, 且任一公共块至少包含一个词项, 至多与2个文本中较短的一个相同[12]。相似度计算的具体步骤如下:

1) 使用结巴分词对2个文本进行预处理。

2) 从2个分词后的词语集合中分别任选一个词, 并使用1.1.1节中训练的Word2Vec模型计算2个词的相似度, 得到词语相似度矩阵。

3) 查找该矩阵每一行的最大值, 并把该值所对应的词对写入词对集合中。

4) 将词对集合中的每对单词的第1个词写入词集1, 将第2个词写入词集2。

5) 根据在文本中出现的顺序对2个词集中的词语进行排序, 将排序后的词集分别记作sorted_word_list1和sorted_word_list2。

6) 在sorted_word_list1词集中选择最前面的2个词语, 记作word1_in_list1和word2_in_list1, 并找到这2个词在sorted_word_list2词集中对应的词语, 记作word1_in_list2和word2_in_list2。如果word1_in_list2和word2_in_list2在sorted_word_list2中不连续且前后顺序与word1_in_list1和word2_in_list1一致, 则将word1_in_list1和word2_in_list1从sorted_word_list1中删除, 并将其作为2个公共块写入公共块集合中; 如果word1_in_list2和word2_in_list2在sorted_word_list2中连续且前后顺序一致, 则继续遍历直到sorted_word_list1中的词语全部被选中。通过该操作可以得到2个文本的公共块。

例如, 对于表 1所示的2个微博标签, 使用Word2Vec模型可以得到如图 3所示的词语相似度矩阵。遍历该矩阵, 将每行中相似度的最大值所对应的词写入词对集合, 并得到2个词集:{端午节, 安康}和{粽子节, 快乐}, 最终基于公共块算法得到2个公共块:{(端午节, 粽子节), (安康, 快乐)}。

下载CSV 表 1 微博标签示例
Download:
图 3 词语相似度矩阵

在得到公共块之后, 基于以下3个准则判断文本间的相似度:

1) 2个文本拥有的公共块数量越多, 相似度越高。

2) 2个文本拥有的公共块包含词项个数越多, 相似度越高。

3) 2个文本公共块先后顺序越相符, 文本相似度越高。

文本相似度计算公式如下[13]:

$ si{m_{{\rm{word }}}}\left( {{D_1}, {D_2}} \right) = \frac{{2 \times B\left( {{D_1}, {D_2}} \right)}}{{L\left( {{D_1}} \right) + L\left( {{D_2}} \right)}} $ (1)
$ si{m_{{\rm{order }}}}\left( {{D_1}, {D_2}} \right) = 1 - \left| {\frac{{{\mathit{\pmb{r}}_1} - {\mathit{\pmb{r}}_2}}}{{{\mathit{\pmb{r}}_1} + {\mathit{\pmb{r}}_2}}}} \right| $ (2)
$ \begin{array}{l} sim\left( {{D_1}, {D_2}} \right) = \alpha \times si{m_{{\rm{word }}}}\left( {{D_1}, {D_2}} \right) + \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\beta \times si{m_{{\rm{order }}}}\left( {{D_1}, {D_2}} \right) \end{array} $ (3)

其中, simword由公共块包含的词项数目决定, simorder由公共块在2个文本中出现的顺序决定, B(D1, D2)表示所有公共块包含的词项总数, L(D1)和L(D2)指2个文本中分别包含的词项个数, r1r2分别指公共块在文本D1和文本D2中的顺序向量, αβ是人为设定的2个参数。考虑到标签通常只包含2个~3个词语, 词语顺序对相似度的影响较小, 因此本文设置α=0.8, β=0.2。根据式(1)~式(3)可以计算得到表 1中2个微博标签的相似度为1。

1.2 对合并后的微博建模

在计算出标签相似度后, 合并带有相似语义标签的微博文本, 然后使用LDA模型对合并后的微博文本建模。这样能够弥补LDA模型不适用于短文本的缺陷。

LDA模型是目前常用的一种文档隐主题生成模型[14], 包含词、主题和文档3层结构, 其本质上是一个3层贝叶斯概率模型。LDA模型基于以下假设:任意一篇文档可由若干个隐含主题构成, 而其中的每个主题由若干个词语组成。LDA模型的简化层次结构如图 4所示。

Download:
图 4 LDA主题模型结构

LDA主题模型的生成过程可以分为3个步骤。

步骤1  根据泊松分布得到文档中包含的词语数N

步骤2  对每一个文档计算其隐含主题的概率分布。

步骤3  对于每个关键词:

1) 通过主题概率分布θ随机选择一个隐主题z

2) 通过主题z的多项式分布随机选择一个关键词。

LDA3层概率生成模型如图 5所示, 其中, M表示语料集合中的文档个数, N表示主题中的词语个数, K表示隐含主题个数, αβ是语料级别的参数, 在生成过程中只需采样一次, θ是文档级别的参数, 每个文档对应一个θ, zw都是单词级别的参数, zθ生成, wzβ共同生成。

Download:
图 5 LDA三层贝叶斯生成模型

本文通过调用python的第三方库gensim中的models.ldamodel.LdaModel方法对合并后的微博文本建模。综合考虑算法的效率和准确性, 将主题个数设置为30。在LDA模型训练完成后, 即可将挖掘出的隐主题作为特征来表示微博文本。表 2给出3个LDA主题的示例。

下载CSV 表 2 LDA主题示例
1.3 K-means聚类

本文使用K-means方法对所有微博文本进行聚类。根据经验将K值设置为5。用聚类中心特征向量中特征值最大的主题特征表示该中心点, 选取该主题特征中概率最大的7个主题词作为聚类结果, 如表 3所示。

下载CSV 表 3 K-means聚类结果
2 实验结果与分析

为证实本文算法的有效性和优越性, 对以下3个模型进行对比:

1) Model1:直接使用LDA模型。

2) Model2:合并标签相同的微博后使用LDA模型。

3) Model3:合并标签语义相近的微博后使用LDA模型。

本文从2个方面来评估本文提出的算法的性能:困惑度指标用来衡量LDA模型的优劣; 准确率、召回率和F1指标用来检测主题挖掘的准确性。采用python技术爬取了2种数据集作为实验数据集。一种是随机爬取的微博文本, 作为Word2Vec的训练数据集。另一类采用定主题的方式爬取2018年6月15日—18日、2018年6月20日—22日、2018年6月25日—27日3个时间区间的微博文本共计5 404条, 数据清洗后作为3个测试集, 每个测试集包含5个主题。表 4给出测试集1中包含的主题内容。

下载CSV 表 4 测试集1包含的主题
2.1 困惑度

困惑度是一种信息理论的测量方法, 通常用于评判某个概率模型的优劣[15]。一个概率模型的困惑度定义为基于该概率模型的熵的能量, 计算过程如下:

$ { perplexity}{\rm{ }} = {2^{ - \sum\limits_{i = 1}^N {\frac{1}{N}} {\mathop{\rm lb}\nolimits} q\left( {{x_i}} \right)}} $ (4)

为了简化计算, 对困惑度进行取对数运算:

$ {\rm{ Ib }}\;\;{perplexity } = - \sum\limits_{i = 1}^N {\frac{1}{N}} {\mathop{\rm lb}\nolimits}\;\; q\left( {{x_i}} \right) $ (5)

图 6给出3种模型在不同主题数目下的困惑度对比结果。

Download:
图 6 3种模型的困惑度比较

图 6可以看出, LDA模型的困惑度随着主题数目的增加而降低, 且在主题数相同的情况下, 本文模型的困惑度较低。上述结果证明, 通过合并语义相近标签对应的微博能够有效解决LDA模型在处理微博短文本时的高维稀疏问题。

2.2 准确性评价指标

仅降低LDA模型的困惑度是不够的, 本文的最终目标是提高主题挖掘的准确性。准确率(P)、召回率(R)和F1值是机器学习中常用的评价指标, 其定义如下:

$ P = \frac{{TP}}{{TP + FP}} $ (6)
$ R = \frac{{TP}}{{TP + FN}} $ (7)

其中, TP表示真正例的样例数, FP表示假正例的样例数, FN表示假反例的样例数。

准确率和召回率是一对矛盾的度量, 通常来说, 准确率会随着召回率的升高而降低, 同样, 召回率也会伴随着准确率的升高而降低。F1值可用来平衡这2个指标, 其计算过程如下:

$ F1 = \frac{{2 \times P \times R}}{{P + R}} $ (8)

图 7给出3种模型在准确率、召回率和F1值指标上的对比结果。

Download:
图 7 3种模型的准确率、召回率和F1值对比

图 7可以看出, Model2和Model3相较于Model1在3个指标上都有明显的提升, 而Model3的准确性比Model2更高。因此, 可以证明本文方法不仅能够改善LDA模型在微博文本上的表现, 也使得热点话题挖掘的准确性更高。

3 结束语

本文提出一种融合标签语义的微博热点话题挖掘方法。将微博的语义特征和统计特征相结合, 以解决LDA模型在微博短文本上的稀疏问题, 提高话题挖掘的准确性。由于某些微博为了蹭热度, 存在内容与标签不符的现象, 会对算法产生影响, 同时微博的时效性与热点话题挖掘有很大联系, 下一步将对以上因素进行考虑, 提高话题挖掘的准确性。

参考文献
[1]
中国互联网信息中心.第42次《中国互联网络发展状况统计报告》[EB/OL].[2018-08-20].http://www.cnnic.net.cn. (0)
[2]
BALASUBRAMANYAN R, ROUTLEDGE B R, SMITH N R.From tweets to polls: linking text sentiment to public opinion time series[C]//Proceedings of International Conference on Weblogs and Social Media.Reston, USA: AIAA Press 2010: 122-129. (0)
[3]
STEINSKOGA O, THERKELSEN J F, GAMBÄCK B.Twitter topic modeling by tweet aggregation[EB/OL].[2018-08-20].https://www.aclweb.org/anthology/W17-0210. (0)
[4]
郭庆琳, 李艳梅, 唐琦. 基于VSM的文本相似度计算的研究[J]. 计算机应用研究, 2008, 25(11): 3256-3258. DOI:10.3969/j.issn.1001-3695.2008.11.015 (0)
[5]
孙励.基于微博的热点话题发现[D].北京: 北京邮电大学, 2013. (0)
[6]
刘红兵, 李文坤, 张仰森. 基于LDA模型和多层聚类的微博话题检测[J]. 计算机技术与发展, 2016, 26(6): 25-30. (0)
[7]
叶成绪, 杨萍, 刘少鹏. 基于主题词的微博热点话题发现[J]. 计算机应用与软件, 2016, 33(2): 46-50. DOI:10.3969/j.issn.1000-386x.2016.02.011 (0)
[8]
张群, 王红军, 王伦文. 词向量与LDA相融合的短文本分类方法[J]. 现代图书情报技术, 2016(12): 27-35. DOI:10.11925/infotech.1003-3513.2016.12.04 (0)
[9]
MIKOLOV T, LE Q V, SUTSKEVER H, et al.Exploiting similarities among languages for machine translation[EB/OL].[2018-08-20].https://arxiv.org/pdf/1309.4168v1.pdf. (0)
[10]
BOJANOWSKI P, GRAVE E, JOULIN A, et al.Enriching word vectors with subword information[EB/OL].[2018-08-20].https://arxiv.org/pdf/1607.04606.pdf. (0)
[11]
MIKOLOV T, CHEN Kai, CORRADO G, et al.Efficient estimation of word representations in vector space[EB/OL].[2018-08-20].https://arxiv.org/pdf/1301.3781.pdf. (0)
[12]
陈红阳.中文微博话题发现技术研究[D].重庆: 重庆理工大学, 2015. (0)
[13]
黄贤英, 刘英涛, 饶勤菲. 一种基于公共词块的英文短文本相似度算法[J]. 重庆理工大学学报(自然科学版), 2015, 29(8): 88-93. DOI:10.3969/j.issn.1674-8425(z).2015.08.017 (0)
[14]
BLEI D M, NG A Y, JORDAN M I. Latent Dirichlet allocation[J]. Journal of Machine Learning Research, 2003, 3: 993-1022. (0)
[15]
MIMNO D, WALLACH H M, TAL-LEY E, et al.Optimizing semantic coherence in topic models[C]//Proceedings of the Conference on Empirical Methods in Natural Language Processing.Stroudsburg, USA: Association for Computational Linguistics, 2011: 262-272. (0)