2. 嵌入式系统与服务计算教育部重点实验室(同济大学), 上海 201804
2. Key Laboratory of Embedded System and Service Computing of Ministry of Education(Tongji University), Shanghai 201804, China
随着在线社交媒体的迅速发展, 大量不可靠的信息得以快速和广泛地在人群中传播。社交媒体上谣言泛滥可能导致人们难以从纷繁的信息中甄别得到可信的信息, 进而影响人们正常的生活秩序。特别是在面临突发公共事件(自然灾害、事故灾难、公共卫生事件、社会安全事件、经济危机等)时, 广泛传播的谣言可能会具有极大的破坏性。在微博中, 信息内容主要通过人与人之间建立的“关注-被关注”网络进行传播。人与人之间的互联、人与信息之间的互联高度融合, 人人参与到信息的产生与传播过程, 这种传播方式使得一条信息能够在短时间内传播到数百万计的用户[1]。因此, 自动高效地识别社交媒体中的谣言意义重大。
社交媒体的自动谣言检测是基于推特信息的可靠性检测而来的[2],Kwon等[3]介绍了一个基于时间属性的时间序列适应模型;Ma等[4]使用动态时间序列扩展了该模型;Zhao等[5]通过使用线索词如“not true” “unconfirmed”等来进行早期的谣言检测;Ma等[6]提出了利用循环神经网络(Recurrent Neural Network, RNN)进行谣言检测, 实验结果表明RNN方法优于现有的基于人工构造特征的谣言检测模型。
近年来,卷积神经网络(Convolutional Neural Network, CNN)在图像处理、目标检测、图像语义分割等领域取得了一系列突破性的研究成果,其强大的特征学习与分类能力引起了广泛关注,具有重要的分析与研究价值。早期的CNN结构相对简单,主要应用在手写字符识别、图像分类等相对单一的计算机视觉应用领域中[7]。随着研究的不断深入,CNN的结构不断优化,其应用领域也逐渐得到延伸。
2012年,Krizhevsky等[8]提出的AlexNet在大型图像数据库ImageNet[9]的图像分类竞赛中以准确度超越第二名11%的巨大优势夺得了冠军,使得CNN成为了学术界的焦点;并且,CNN不断与一些传统算法相融合,加上迁移学习方法的引入,使得CNN的应用领域获得了快速的扩展。一些典型的应用包括:CNN与RNN结合图像的摘要生成[10-11]; 自然语言处理方面,卷积神经网络模型在语义分析[12]、搜索结果提取[13]、句子分类[14]、句子建模[15]、句子预测[16]和其他的传统自然语言处理任务[17]中都取得了很好的结果。
由于CNN的良好表现,所以本文应用于微博自动谣言检测当中。本文对Kim等[14]提出的句子分类模型进行改进,使其适应于微博谣言检测,实验表明本文模型的有效性。
本文的主要贡献如下:
1) 提出了一种基于卷积神经网络模型的谣言检测方法,将谣言事件向量化,通过自动构建谣言的特征来进行模型训练,从而达到判断谣言的目的;
2) 提出了一种基于微博的谣言检测框架,实现微博中的谣言检测。
1 本文模型 1.1 基本定义本文的研究对象为谣言事件。所谓谣言事件,就新浪微博而言,本文需要关心的是某个最初始的不实微博(即源头微博)是否是谣言,并不关心其传播过程中所衍生出来的微博是否存在不实,或者是否是谣言。最初始微博一经判断,则与其相关的微博也自然得到判断。例如,“传说中麦当劳全国通用无线上网密码,真的吗?”这条谣言以及其相关微博“真的么?”“假的”“存了多少次都找不到了”等就构成了一个谣言事件,而本文判断的仅是“传说中麦当劳全国通用无线上网密码,真的吗?”这条微博是否是谣言,而其相关微博是否是谣言并不关心,或者说其相关微博是作为判断源头微博是否是谣言的证据存在。因此,在详细描述本文的模型之前,本文先给出一些基本的符号解释和定义。
定义1 谣言事件[6]。定义一个所有事件的集合E={Ei},其中每一个Ei={mij}包含与其相关的所有微博,mij表示谣言事件的某一条微博,本文的任务就是判断Ei是不是谣言事件。
本文的谣言检测的流程框图如图 1所示。首先, 通过新浪微博官方的辟谣平台——微博社区管理中心取得某条具体的谣言; 然后, 对与其相关的微博进行聚类,得到N个谣言事件,相应地,为了便于分类训练,取得与谣言事件数目近似相同的M个非谣言事件,将每一个谣言事件作为一个整体,对其中的每一条微博向量化,组成一个输入矩阵,依此类推,向量化完成之后,作为输入矩阵,进行卷积神经网络模型的训练。
用于谣言检测的卷积神经网络如图 2所示。
令mij∈Rk,其中mij表示某个谣言事件Ei的某条相关微博,用k维的句子向量表示。一个包含n条相关微博的谣言事件可以表示为:
$ {\mathit{\boldsymbol{E}}_i} = {\mathit{\boldsymbol{m}}_{i1}} \oplus {\mathit{\boldsymbol{m}}_{i2}} \oplus \ldots \oplus {\mathit{\boldsymbol{m}}_{in}} $ |
其中⊕表示串联操作。
卷积层进行卷积操作,卷积操作就是利用filter w∈Rh×k来产生新的特征。例如事件i中第j条相关微博到第j+h-1条微博所产生的特征ai的计算公式如下:
$ {\mathit{\boldsymbol{a}}_i} = f\left( {\mathit{\boldsymbol{w}} \cdot {\mathit{\boldsymbol{m}}_{ij:i(j + h - 1)}} + {w_b}} \right) $ |
其中:wb是filter的偏置项,f是一个非线性函数,比如ReLU激活函数。filter应用于事件i的每一个窗口{mi1:ih, mi2:i(h+1), …, mi(n-h+1):in}来生成一个特征矩阵:
$ \mathit{\boldsymbol{a}} = \left[ {{\mathit{\boldsymbol{a}}_{\bf{1}}},{\mathit{\boldsymbol{a}}_{\bf{2}}}, \ldots ,{\mathit{\boldsymbol{a}}_{n - h + 1}}} \right] $ |
池化层进行池化操作。通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。主要作用是下采样,通过去掉特征矩阵中不重要的样本来减少参数的数量。本文采用的是max pooling,即对特征矩阵a中的每一个ai取最大值,作为采样后的样本值。
最后将池化后的特征矩阵传入全连接层,进行Softmax操作,最后输出分类的概率。
本文模型采用了多个filter来获得多种特征。值得注意的是,传统的卷积神经网络模型filter遍历每一种图片的所有局部块如图 3(a)所示。而在本文模型之中,filter遍历每个谣言事件的长度为h的所有窗口,而filter宽度通常等于输入矩阵的宽度,如图 3(b)所示。这样设置的理由如下:因为本文模型的输入矩阵每一行表示事件的某一条微博的微博向量,将微博向量当作最小单位,有助于更好地挖取相关微博之间的特征,以及谣言的传播特征;反之,若是filter扫描局部块,则更注重的是谣言事件中所有词之间的关系,不能从整体上把握谣言传播的时序特点。因为Kim[14]的工作表明,对于文本分类任务,含有一层卷积层的卷积神经网络已经表现得很好,所以本文模型仅采用一个卷积层与一个池化层。
通过研究新浪微博发现数据获取的方式可以通过以下步骤:
1) 首先在微博社区管理中心,找得到不实信息的微博,如图 4所示。
2) 根据不实微博的公示信息,获得原文,如图 5所示。
3) 根据原文信息,进行具体谣言事件的相关微博信息的抓取。
为了便于本文模型与其他模型的比较,本文采用Ma等[6]公开的数据集。该数据集包含2313个谣言事件与2351个非谣言事件,共包含3805656条微博。由于微博本身含有很大的噪声,包含@某某人、超链接等无关信息,所以本文通过正则表达式匹配的方法对该数据集进行了降噪等预处理。
2.2 实验设置本文将本文模型与Ma等[6]的工作进行了对比:
Ma等的模型 Ma等提出了采用循环神经网络模型来进行微博谣言的检测,分别实现了tanh-RNN(tanh-Recurrent Neural Network)、LSTM(Long Short-Term Memory)、GRU(Gated Recurrent Unit)等模型,并取得了良好的效果。此外,Ma等基于本文所采用的数据集,重现了之前较经典的谣言检测的工作,便于进行模型的比较。
本文模型 本文的卷积神经网络模型,包含一个卷积层和一个池化层,且输入矩阵是使用Doc2Vec训练好的向量矩阵。
超参数设置 本文采用ReLU激活函数,filter窗口高度分别采用3、4、5,dropout rate为0.5。每一条微博的维度k设置为50,由于不同的谣言事件或者非谣言事件含有的微博数目不同,所以本文对于微博数目小于最大微博数的事件,采用补充零向量的方式,使输入矩阵的大小一致。
预处理的句子向量 对于每一条微博,本文进行预处理之后,进行分词,之后利用Doc2Vec方法,将微博转化为句子向量。
评价指标 模型的评价指标采用自然语言处理中常用的准确率(accuracy)、召回率(recall)、精确率(precision),以及F1值,它们针对谣言的定义如下:
$ 准确率\left( {accuracy} \right){\rm{ = }}\frac{{系统正确识别谣言与非谣言数目}}{{标准测试集中谣言与非谣言数目}} $ |
$ 召回率\left( {recall} \right){\rm{ = }}\frac{{系统正确识别的谣言的数目}}{{标准测试集中谣言的数目}} $ |
$ 精确率\left( {precision} \right){\rm{ = }}\frac{{系统正确识别的谣言的数目}}{{系统识别的谣言的数目}} $ |
$ {F_1} = \frac{{2 \times 精确率 \times 召回率}}{{精确率 + 召回率}} $ |
本文的卷积神经网络是通过TensorFlow实现。为了便于与Ma等的模型作对比,本文同样地分别选取10%的谣言事件与非谣言事件用于模型的调整;将剩下的数据的30%作为训练集,10%作为测试集。
2.3 实验结果本文的模型CNN训练集和测试集比例为3:1,与其他模型的实验结果比较如表 2所示。其中,“-1”“-2”表示隐含层层数,“-1”表示一层,“-2”表示两层。
从表 2中可以看出:就人工构造特征与模型自动构造特征而言,人工构造特征中基于时间序列的支持向量机模型(Support Vector Machine based on Time-Series, SVM-TS)优于决策树模型DT-Rank,而本文模型与支持向量机模型相比,准确率提高了10.9个百分点,精确率提高了13.9个百分点,召回率提高了6.6个百分点,F1值提高了10.3个百分点。可以得出模型自动构造特征明显优于人工构造的特征。
就卷积神经网络模型与循环神经网络模型而言,可以看出,循环神经网络模型中,GRU-2模型优于其他模型,而本文的模型与GRU-2模型相比,准确率提高了5.6个百分点,精确率提高了10.2个百分点,召回率与LSTM-1模型相比降低了1.7个百分点,F1值提高了5个百分点。可以看出除了召回率略低以外,准确率、精确率和F1值都优于循环神经网络(RNN)模型。所以本文认为在谣言检测当中,卷积神经网络模型是通过谣言事件中发现微博之间的关系来构造特征,而循环神经网络则是通过谣言事件中所有词之间的关系来构造特征,对于谣言而说,由于其传播方式等的特点,本文认为按照相关微博来构造特征比按照词来构造特征更合理,所以认为卷积神经网络模型优于循环神经网络模型。
综上所述,本文认为就谣言检测而言,模型自构建特征优于人工构建特征,卷积神经网络模型优于循环神经网络模型。
此外,本文将训练集与测试集按照9:1的分割比例进行了同样的实验,如表 3所示。从表 3中可以看出按照9:1的分割比例时,训练的模型实验结果略好于按照3:1进行分割的模型。
本文通过刘知远等[18]的工作了解到,新浪微博中一般人工检测并确认谣言的时间周期大约在一周左右,图 6是本文的CNN模型训练过程中的收敛情况,其中实线表示在训练集中的收敛情况,点线表示在测试集上的收敛情况。从图中可以看出模型收敛的速度非常快,当训练到达10000步时,模型的准确率就已经达到了94.47%,这也正好弥补了人工检测微博谣言存在较长时间的延迟问题。
目前在大多数谣言检测任务中,都是采用人工构建特征的方式,本文提出将卷积神经网络模型应用于谣言检测中,从实验中得出本文的模型优于目前最好的谣言检测方法,准确率及F1值均高出5%左右。如何将谣言事件下的用户评价信息加入,以及如何进行卷积神经网络的层数的选取,将是接下来进一步的研究工作。
[1] | 李洋, 陈毅恒, 刘挺. 微博信息传播预测研究综述[J]. 软件学报, 2016, 27(2): 247-263. (LI Y, CHEN Y H, LIU T. Survey on predicting information propagation in microblogs[J]. Journal of Software, 2016, 27(2): 247-263.) |
[2] | CASTILLO C, MENDOZA M, POBLETE B. Information credibility on twitter[C]//Proceedings of the 20th International Conference on World Wide Web. New York:ACM, 2011:675-684. |
[3] | KWON S, CHA M, JUNG K, et al. Prominent features of rumor propagation in online social media[C]//Proceedings of the 2013 IEEE 13th International Conference on Data Mining. Piscataway, NJ:IEEE, 2013:1103-1108. |
[4] | MA J, GAO W, WEI Z, et al. Detect rumors using time series of social context information on microblogging websites[C]//Proceedings of the 24th ACM International on Conference on Information and Knowledge Management. New York:ACM, 2015:1751-1754. |
[5] | ZHAO Z, RESNICK P, MEI Q. Enquiring minds:early detection of rumors in social media from enquiry posts[C]//Proceedings of the 24th International Conference on World Wide Web. New York:ACM, 2015:1395-1405. |
[6] | MA J, GAO W, MITRA P, et al. Detecting rumors from microblogs with recurrent neural networks[C]//Proceedings of the 25th International Joint Conference on Artificial Intelligence. San Francisco, CA:Morgan Kaufmann, 2016:3818-3824. |
[7] | 李彦冬, 郝宗波, 雷航. 卷积神经网络研究综述[J]. 计算机应用, 2016, 36(9): 2508-2515. (LI Y D, HAO Z B, LEI H. Survey of convolutional neural network[J]. Journal of Computer Applications, 2016, 36(9): 2508-2515. DOI:10.11772/j.issn.1001-9081.2016.09.2508) |
[8] | KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks[C]//Proceedings of the 25th International Conference on Neural Information Processing Systems. Cambridge, MA:MIT Press, 2012:1097-1105. |
[9] | DENG J, DONG W, SOCHER R, et al. ImageNet:a large-scale hierarchical image database[C]//Proceedings of the 2009 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ:IEEE, 2009:248-255. |
[10] | DONAHUE J, HENDRICKS L A, GUADARRAMA S, et al. Long-term recurrent convolutional networks for visual recognition and description[C]//Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ:IEEE, 2015:2625-2634. |
[11] | VINYALS O, TOSHEV A, BENGIO S, et al. Show and tell:a neural image caption generator[C]//Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ:IEEE, 2015:3156-3164. |
[12] | YIH W, HE X, MEEK C. Semantic parsing for single-relation question answering[C]//Proceedings of the 2014 Annual Meeting of the Association for Computational Linguistics. Stroudsburg:ACL, 2014:643-648. |
[13] | SHEN Y, HE X, GAO J, et al. Learning semantic representations using convolutional neural networks for Web search[C]//Proceedings of the 23rd International Conference on World Wide Web. New York:ACM, 2014:373-374. |
[14] | KIM Y. Convolutional neural networks for sentence classification[EB/OL].[2016-11-20]. http://www.aclweb.org/anthology/D14-1181.pdf. |
[15] | KALCHBRENNER N, GREFENSTETTE E, BLUNSOM P. A convolutional neural network for modelling sentences[EB/OL].[2016-11-20].http://anthology.aclweb.org/P/P14/P14-1062.pdf. |
[16] | COLLOBERT R, WESTON J. A unified architecture for natural language processing:deep neural networks with multitask learning[C]//Proceedings of the 25th International Conference on Machine Learning. New York:ACM, 2008:160-167. |
[17] | COLLOBERT R, WESTON J, KARLEN M, et al. Natural language processing (almost) from scratch[J]. Journal of Machine Learning Research, 2011, 12(1): 2493-2537. |
[18] | 刘知远, 张乐, 涂存超, 等. 中文社交媒体谣言统计语义分析[J]. 中国科学:信息科学, 2015, 45(12): 1536-1546. (LIU Z Y, ZHANG L, TU C C, et al. Statistical and semantic analysis of rumors in Chinese social media[J]. Scientia China:Informationis Sciences, 2015, 45(12): 1536-1546.) |