基于词向量语义聚类的微博热点挖掘方法
2018-03-06刘培磊唐晋韬谢松县岳大鹏刘海池
刘培磊,唐晋韬,王 挺,谢松县,岳大鹏,刘海池
(国防科技大学计算机学院,湖南 长沙 410073)
1 引言
随着互联网的发展和信息时代的到来,信息过载(Information Overloading)给人们使用信息带来了挑战。为了应对这种挑战,如何从海量的文本数据中自动挖掘出热点事件或者热点话题已然成为一个重要的研究问题[1]。传统的热点检测主要针对网页、新闻、博客等数据,以较长的篇章为单位进行处理[2]。近十年以来,以Twitter、Facebook、微博、微信等为代表的社交媒体平台飞速发展,出现了海量的短文本信息。这些社交媒体中短文本数据不同于传统网页数据,它们短小、高噪声、实时、并且包含更多元数据[3]。社交媒体数据的这些特点给传统的热点检测与挖掘技术带来了挑战[4]。首先,传统热点挖掘是以文档为单位的。而社交媒体中每条消息相对独立,并且这些消息通常比较短,有时甚至只包含一两个句子,因此一条消息很难被视为一篇文档。而如果将多条消息简单地合并在一起视为一篇文档,它们之间又缺少必要的语义联系与篇章结构。因此,从热点挖掘角度看,社交媒体数据与传统网页等有本质上的不同。其次,传统的热点挖掘方法往往使用词频-逆文档频率TF-IDF(Term Frequency-Inverse Document Frequency)等基于词频统计的方法[1]。这种方法主要考虑单词的统计特征,没有考虑单词之间的语义关联。社交媒体消息短小,且存在大量与热点无关的噪声,对基于统计特征的方法具有较大影响。最后,社交媒体中用户关注的热点多种多样,因此同一时段的消息可能涉及不同的热点,使得热点挖掘问题变得更加复杂。虽然社交媒体数据具有以上这些问题,但是它的一些特点也给热点挖掘带来了便利。每条微博中通常都包含时间信息、转发次数等信息,部分消息还包含精确的全球定位系统GPS(Global Position System)信息[5],以及一些实体相关的元信息,比如tag标签[6]、用户名、链接等。此外,元信息中还有一些与发布者相关的信息,比如注册地点、粉丝数等。如何充分利用社交媒体数据的这些特点来提升热点挖掘方法的性能也是一个重要问题。
目前社交媒体上的热点挖掘研究从多个不同的角度进行[7],包括社交网络结构[8]、用户行为模式[9]、文本内容[10]等。其中基于网络结构和用户行为模式的热点挖掘方法可以检测到热点的发生及其发生的地点、时间等信息,但是由于这些方法不直接使用文本内容,因此很难直接抽取到具体内容以及描述热点的关键词。基于文本内容分析的方法更擅长抽取热点内容,但是其计算代价高,不利于大规模检测热点。此外,基于内容分析的方法往往只适应于检测和抽取特定类型的热点事件或者话题,并且需要预先给出热点类型或者相关关键词[10]。一个可行的思路是将这两种优势互补的方法结合起来,即首先利用基于网络结构或者行为模式的方法检测热点,并过滤部分与热点不太相关的文本数据;而后利用内容分析的方法抽取热点的具体内容或者关键词。在前期的工作中[11],我们发现通过对信息流动时空模式的分析可以检测到热点的发生及其时间、地点,但是怎样从大批充满噪音的微博消息中提取出热点的具体内容是一个有待研究的问题,尤其是当这批微博消息中包含多个并列热点的时候。有时单条微博消息中也可能涉及多个热点,因此以微博消息为单位聚类不够合理。所以,本文提出从更细的单词的粒度上进行热点挖掘,并引入词向量语义聚类的方法来进一步提升热点挖掘效果。
Twitter是一个开放的微博平台,本文的实验虽然是基于Twitter数据,但是相关的方法和技术对各种社交媒体平台具有一定普适性。本文的贡献点包括:(1)基于前期工作,提出了一种结合用户行为模式与文本内容分析的热点发现与挖掘方法。(2)针对Twitter等社交媒体数据特点,提出了从单词层面对热点进行细粒度挖掘的方法。(3)将词向量的方法,通过词向量语义聚类的方法引入热点挖掘,通过更多地使用语义关联特征带来较大性能提升。目前经典的热点方法通常使用向量空间模型进行文本聚类,然后使用基于TF-IDF等词频方法从每个文本聚类中抽取关键词。在实验部分将本文提出的方法与这些经典方法进行了对比。
2 方法
传统的基于社交媒体内容分析进行热点挖掘的方法主要是以单条消息为单位,以关键词检索和匹配为基础,较少涉及词语之间的语义关联。本文以词语为单位,通过语言模型任务训练产生词向量,利用词语之间的语义关联形成语义聚类,从而产生描述热点的关键词集合。为了方便描述问题,给出如下定义。
定义1(热点) 热点对应Twitter中的热点事件或者热点话题,可以使用一个五元组表示:hotspot=(time,location,keywords,participants,text-sequence)。其中,time,location,keywords,participants分别表示热点发生的时间段、地点、关键词以及参与者,text-sequence表示一个消息序列。
定义2(消息序列) 消息序列是一个持续一定时间的Twitter消息集合:text-sequencen=[m1,m2,…,mi,…,mj,…,mn],其中,n表示包含的消息总条数,mi表示其中一条消息。对于任意1≤i 在Twitter中,每条信息mi包含文本和元信息两个主要部分。其中元信息是普通用户不可见的,但是可以通过应用程序接口API(Application Program Interface)获取。元信息中包含消息的发布时间、转发次数、回复对象等,部分消息还包含GPS定位信息。此外,元信息还包含用户相关的信息,如注册地点、注册时间、粉丝数、自我介绍等等。而消息中的文本部分是普通用户日常可以看到的部分,由于Twitter公司的限制,每条消息通常都很短,并且相当大一部分消息中包含一些实体。 定义3(实体) Twitter消息中的实体包括标签、用户名、转发符号、网址等等。其中,标签通常是一个以符号“#”作为前缀的单词或者字符串,用户名的前缀是“@”符号,转发符号是“RT”,而网址通常会被Twitter公司转化成一种特殊的短网址格式。 定义4(信息流) 消息在不同地点之间转发可以导致这些地点之间的信息流动,两个地点之间在日期i的信息流可以定义为当天的所有转发消息Retweet的集合:information-flowi={rij},其中rij表示日期i当天的一条Retweet。信息流的强度可以定义为转发消息的数量#{rij}。值得注意的是,在Twitter中转发消息Retweet本身也是一条普通的Tweet消息。 热点检测使用的是基于网络结构和用户行为模式的方法,这部分内容在前期工作中有较为详细的描述[11],本节只作简要介绍。通过数据分析发现,世界各地之间的信息流强度具有一定规律性,即信息倾向于从某些地点流向另外一些地点,并且这些信息流的强度通常在有限的范围内波动。这样,任意时刻世界各地之间实际上存在一张相对稳定的信息流动图。而实验结果表明,现实世界的热点会引起相应信息流的变化。因此,通过监测信息流动图的变化就可以检测到热点的发生及其时间、地点、参与者以及相关消息。 至此表示hotspot的五元组中只有keywords还完全不知道,因此下面的主要任务就是从消息序列text-sequence或者它的一个子集{mi}中抽取描述热点的关键词。通过这种热点检测方法得到的消息序列可能包含噪声,即其中部分消息与热点hotspot无关。并且我们不知道这个热点具体内容或者它的关键词是什么。更重要的是,信息流的异常可能是由多个热点共同作用的结果,因此消息序列就可能包含多个热点相关的消息。 首先检测到强度发生异常的信息流,抽取这个信息流中的所有转发消息information-flowi和源地点的所有原始消息{mi}。比如伦敦到纽约的信息流,其源地点就是伦敦。分别去除停用词后,通过简单地生成标签云的方式可以大概地展示这两个数据集中包含的热点。通过直观观察发现information-flowi具有过滤作用,其中包含的噪音较小,适合用于抽取具有重大影响的热点(见图1b)。而原始消息mi中包含很多较小的热点(见图1a),这些热点的相关消息混杂在一起,给热点挖掘和关键词抽取带来挑战。 Figure 1 Tag clouds of Retweets and Tweets图1 转发消息与原始消息的标签云对比图 通过这样的处理,实际上热点hotspot发生的地点、时间、参与者及相关的消息都可以抽取出来了,接下来就是从相关消息中抽取可以描述热点的关键词。本文没有先对所有消息进行聚类,而是直接从消息集合中产生每个词的词向量。然后在单词级别通过词向量进行词语的语义聚类,从而达到在同一文本集合中同时挖掘多个热点的目的。 在传统的特征向量空间模型中,词语通常被视为构成文本的不可再细分的“原子”(Atom)符号。两个单词只要符号本身不同,就认为二者之间没有任何联系。比如“计算机”和“电脑”这两个词意思非常相近,但是却会被视为两个完全不相关的单词,这被称为“语义鸿沟现象”。而在使用深层神经网络处理图片时人们发现,标注有“计算机”和“电脑”这两种标签的图片会被判断为相似图片。受此启发,研究人员想到了用一个向量来表示一个单词[10],就像用一个像素矩阵来表示一幅图片一样。这个表示单词的向量就是词向量,词向量与传统向量空间模型相比有较大优势。 词向量模型可以从大规模无标注语料中自动学习得到[12]。基于1954 年Harris 提出分布假说(Distributional Hypothesis),即“上下文相似的词,其语义也相似”,词向量中的信息来自背景语料中单词的上下文。通常使用神经网络等机器学习方法在语言模型构建等任务上反复迭代训练得到单词的词向量表示,用得比较多的是连续词袋CBOW(Continuous Bag-Of-Words)模型和Skip-gram 模型。其中,CBOW是利用上下文预测单词方法进行训练,而Skip-gram是利用单词预测上下文方法进行训练[12]。为了加快生成词向量的速度,这两种模型都没有考虑词序信息。另外还有一些更复杂的模型考虑了上下文的词序信息[13]。通过上述方式得到的词向量包含了单词的语义信息,因此可以通过这种向量表示来度量文本之间的语义相似度。 传统热点挖掘方法首先将消息集合{mi}聚类,每个聚类对应一个热点,然后针对每个聚类抽取高频词或者关键词来表示相应的热点。这种方法以消息为单位,粒度较大,并且只使用词语的统计特征而没有用到语义特征,因此聚类效果不太理想。本文引入词向量和语义聚类的方法,以单个词语为聚类对象并且充分考虑到词语之间的语义关联,以改善热点挖掘的效果。既然词向量中了包含了词语的语义信息,那么不同词语之间的语义关联与它们的词向量距离之间必然紧密相关。基于这个考虑,可以对消息集合{mi}中所有词语的词向量进行聚类。然后根据每个单词到相应聚类质心的距离来排序,选出离质心最近的前n个词来代表这个聚类。这种方法在本文称为WVC(Word Vector Clustering),具体细节请见算法1。使用WVC方法进行聚类的好处在于:每个聚类中的词语语义上彼此相关,因此选出的前n个词语就能够从语义上代表相应的聚类。 算法1WVC算法 Input:Twitter的消息集合{mi}。 Output: clusters and their keywords。 1. for each messagemi 2. input its words into word vector model in sequence 3. load the word vector model; 4. for each word in {mi} 5. generate a vector; 6. clustering all the vectors intokclusters; 7. for each cluster 8. if # words>n 9. then selectnwords nearest to the cluster center; 10. else select all words; 11. end if 12. Output these words as keywords of hotspot; 为了在实际数据集上验证本文提出的词向量语义聚类方法WVC的效果,设计了本实验。具体来说,实验目的包括对比词向量技术与经典的TF-IDF方法在抽取关键词方面的效果,以及检验基于词向量语义聚类方法在热点挖掘中的效果。实验在Twitter数据集上进行,并利用消息中的tag标签辅助构造测试集。 本文所有实验均部署在ThinkPad s5笔记本电脑上,数据集包含800多万条Tweet消息。实验中使用的词向量生成工具是Google的word2vec[14],聚类算法是Weka 3.6中的K-means算法[15],索引和检索工具是Lucene3.6.0[16]。关键词抽取工具来自开源项目wvtool1.1,使用TF-IDF指标来抽取关键词[17]。 测试数据集使用tag标签来辅助构造。首先以消息为单位,使用Lucene对数据集中美国东部时区的原始消息建立全文索引,将tag标签、用户名、转发标志等单独加入索引域。然后通过检索接口统计每个tag标签对应的消息数量并排序,挑选其中热门标签(包含这个标签的消息大于一定阈值)。如表1所示,共挑选出9个热门标签,每个标签对应一个热点。将这个9个标签对应的所有消息合并在一起作为测试数据集。 Table 1 Hot topics and their corresponding messages 首先对数据集进行一些简单的预处理操作,包括处理不规范的符号和单词以及除tag标签外的所有实体等。然后使用word2vec工具产生词向量,所有参数使用默认设置。使用K-means算法对所有词向量进行语义聚类,每个聚类表示一个热点。聚类数设置为9,迭代次数为50。根据词向量到相应聚类中心的距离对每个词向量进行打分并排名,选取每个聚类中前20个单词作为相应热点的关键词。实验中按照下述方式将9个聚类的关键词集合与9个热点话题标签一一对应起来:如果这个聚类的关键词中包含某个热点的tag标签,那么直接将这个关键词集合与相应的tag标签对应;剩余的关键词集合通过人工观察,将每个关键词集合对应到某个特定的tag标签。热度最高的前三个标签的关键词展示在表2中。 Table 2 Keywords of hotspot from WVC 本实验中关键词抽取的对比方法包括基于词频的TF方法和TF*IDF方法。具体来说,首先进行去除停用词等预处理。在此基础上,TF方法使用高频词来作为关键词。而TF*IDF方法通过TF*IDF指标来抽取关键词,其中统计IDF时需要背景语料,本实验中分别选取伦敦和美国东部每天的全部转发消息,一共组合成28篇文档作为背景语料。这两种方法从整个数据集中抽取关键词,然后随机地分成9组。通过上一段中相似的方式将这9个关键词集合对应到9个热门标签。使用TF*IDF方法抽取的部分关键词展示在表3中,限于篇幅只展示了最热门的前三个标签对应的关键词。通过直观观察可以发现,表2中结果整体上要好于表3中的结果。以#ihavenotolerance标签为例,WVC方法抽取的Liars(骗子)、exceptions(意外)、Sneakers(蛇)、jitney(次品)等词都是比较常见的人们“难以忍受”的对象。而church(教堂)、faggots(同性恋)等在社交媒体上的年青人群体中,也是较多人的讨厌对象。更有趣的是,WVC方法还提出两个不规范的词U(表示“你”)和0_o(表示鬼脸的表情符号)。通过浏览对应的Twitter消息发现,U是在开玩笑中多次提到(“我无法忍受你”)。相比之下,表3中的绝大多数词都与#ihavenotolerance标签没有直接的语义相关性。 Table 3 Keywords of hot topics from TF method 以上方法主要是用来评测基于词向量方法WVC抽取关键词的效果。为了进一步检验语义聚类的效果,本实验使用了TF*IDF+方法进行对比。即表1中的每个标签相关的消息集合不再被合并到一起,而是直接从每个标签对应的消息集合中直接抽取关键词。在此条件下与WVC进行对比,TF*IDF+方法占了很大的优势,因为TF*IDF+方法中的聚类过程实际上被认为是绝对正确的。使用TF*IDF+方法抽取的关键词展示在表4中,与表2对比可以直观地看出:基于词向量语义聚类的方法在划分关键词集合过程中是有效的。另外,将表4、表3与表1进行对比可以看出,通过TF*IDF指标提取的关键词通常是一些比较重要而有实质意义的词,但却不一定都与热点话题的标签语义相关。更严格的定量分析将在3.3节给出。 Table 4 Keywords of hot topics from TF*IDF method 3.2节已经直观地给出了对比实验的部分结果,本节将更严格地定量评估本文所提方法与三个对比方法的实验结果。由于涉及到语义相关性,本文请使用过社交网络平台的三位学生对四个模型的结果进行手工标注,对每个模型的结果提出的要求是“标出你认为与这个标签相关的单词”。结果采用“三中选二”的方式,即至少两个同学认为某个单词与对应标签相关才认为这个单词真的相关,最后以标注的结果为标准答案。 如表5所示,实验结果使用了三个评价指标:热点精度、总精度与标签比率。热点精度为∑iri/∑iki,其中,ri表示与话题i相关的关键词个数,而ki表示话题i的关键词总个数。总精度为r/n,其中,r表示与9个话题标签中任一个标签相关的关键词的总个数,而n表示9个话题标签包含关键词的总个数。总精度主要考察的是关键词提取方法本身的效果,受热点聚类过程影响较小。热点精度与总精度受人工标注的主观性影响,为了展示更客观的效果提出标签比率这个指标。每个话题包含的关键词中会含有一些其它相关标签,比如表2中热点标签#whoeverimarry相关的关键词中包含标签#foreveralone和#money,而且这两个标签在语义上都与标签#whoeverimarry有一定相关性,所以称之为“相关标签”。标签比率为g/n,其中,g表示相关tag标签总数,而n表示关键词总个数。由于使用wvtool工具抽取关键词时,过滤掉了所有非英文字母的符号,因此表5中TF*IDF和TF*IDF+标签比率指标未统计。 Table 5 Quantifiable results of all methods 从表5可以看出,本文提出的WVC方法在三个指标上都是最高的。具体来说,在热点精度这个指标上,WVC系统甚至超过了TF*IDF+方法,虽然后者从单个热点话题的消息集合中直接提取关键词。而TF与TF*IDF方法由于使用随机划分代替聚类,因此效果较差。在总精度这个指标上WVC方法效果最好,说明在热点挖掘任务上通过词向量语义聚类方式提出的关键词比基于词频统计方式提取的关键词效果好。TF方法相比另外三种方法差距较大,说明直接使用高频词作为关键词效果不佳。再对比标签比率这个指标,WVC远高于TF方法,在一定程度上说明前者提取关键词语义关联性更强。最后对比WVC方法自身的热点精度与总精度两个指标,只相差6.1个百分点,这说明通过语义聚类方法来划分关键词集合具有良好的效果。 本文针对社交媒体文本数据的特点,提出了结合用户行为模式与文本内容分析的热点检测与挖掘方法。在通过内容分析挖掘热点的过程中,传统热点挖掘方法主要是在文档或者消息的粒度进行聚类,对短小而高噪声的社交媒体消息效果不佳,并且挖掘得到的关键词语义关联性弱、对热点话题描述能力不够强。针对传统方法的不足,本文引入基于词向量语义聚类的热点挖掘方法。该方法从单词层面进行细粒度处理,并且充分考虑了词语之间的语义关联。在实际数据上的实验结果表明,本文所提方法效果较好,在三个主要指标上都好于传统方法。本文提出的方法也存在一些不足,比如用无结构的关键词集合表示热点。因此,下一步的工作包括:从关键词区分出人名、地点、标签等实体,使用结构化的关键词来描述热点话题。 [1] Zhang Rui-qi. The TopNhot topics detecting method based on clustering of key features[D].Beijing:Beijing Institute of Technology,2015.(in Chinese) [2] Iwata T,Watanabe S,Yamada T,et al.Topic tracking model for analyzing consumer purchase behavior[C]∥Proc of the 21st International Joint Conference on Artificial Intelligence(IJCAI’09).2009: 1427-1432. [3] Bollen J, Mao H,Zeng X.Twitter mood predicts the stock market[J].Journal of Computational Science,2011,2(1):1-8. [4] Chen Feng.Hot topics mining in online social medium[D].Shanghai:East China Normal University,2014.(in Chinese) [5] Wang Sen. Location recommending algorithm based on social network[J].Computer Engineering & Science,2016,38(4): 667-672.(in Chinese) [6] Wang Xiang, Jia Yan,Zhou Bin,et al.Prediction of user’s tags in micro-blog based on interactive relations[J].Computer Engineering & Science,2013,35(10): 44-50.(in Chinese) [7] Atefeh F,Khreich W.A survey of techniques for event detection in Twitter[J].Computational Intelligence,2015,31(1):132-164. [8] Guo Lin.A hotspots mining method of web public sentiment based on short links in social medium[J].Software Guide,2015,14(11):139-141.(in Chinese) [9] Takahashi T, Tomioka R,Yamanishi K.Discovering emerging topics in social streams via link anomaly detection [C]∥Proc of ICDM’11,2011: 1230-1235. [10] Huang Xian-ying,Chen Hong-yang,Liu Ying-tao,et al.A novel feature word selecting method of micro-blog short text[J].Computer Engineering & Science,2015,37(9): 1761-1767.(in Chinese) [11] Liu P Q,Tang J T,Wang T.Information current in Twitter: Which brings hot events to the world[C]∥Proc of the 22nd International World Wide Web (WWW ’13),2013:111-112. [12] Mikolov T,Yih W,Zweig G.Linguistic regularities in continuous space word representations[C]∥Proc of NAACL-HLT’13,2013: 746-751. [13] Lai Si-wei.Word and document embeddings based on neural network approaches[D].Beijing:The University of Chinese Academy of Sciences,2016.(in Chinese) [14] word2vec project [EB/OL]. [2015-10-29].https://code.google.com/p/word2vec/. [15] Mark H. The WEKA data mining software[J].SIGKDD Explorations,2009,11(1):10-18. [16] Lucene project [EB/OL]. [2015-10-29].http://apache.justdn.org/lucene/java/. [17] McCallum A K.Bow: A toolkit for statistical language modeling[EB/OL].[1996-01-07].http://www.cs.cmu.edu/~mccallum/bow. 附中文参考文献: [1] 张瑞琦.基于关键特征聚类的TopN热点话题检测方法研究[D].北京:北京理工大学,2015. [4] 陈峰.网络社交媒体的热门话题挖掘[D].上海:华东师范大学,2014. [5] 王森.基于位置社交网络的地点推荐算法[J].计算机工程与科学,2016,38(4): 667-672. [6] 汪祥,贾焰,周斌,等.基于交互关系的微博用户标签预测[J].计算机工程与科学,2013,35(10): 44-50. [8] 郭林.一种基于社交媒体短链接的网页舆情热点数据挖掘方法[J].软件导刊,2015,14(11): 139-141. [10] 黄贤英,陈红阳,刘英涛,等.一种新的微博短文本特征词选择算法[J].计算机工程与科学,2015,37(9): 1761-1767. [13] 来斯惟.基于神经网络的词和文档语义向量表示方法研究[D].北京:中国科学院自动化研究所,2016.2.1 热点检测
2.2 消息处理
2.3 产生词向量
2.4 语义聚类
3 实验
3.1 实验设置
3.2 结果展示
3.3 定量分析
4 结束语