一种新的考虑注意力机制的微博谣言检测模型

2021-03-13 06:00潘德宇宋玉蓉
小型微型计算机系统 2021年2期
关键词:过滤器准确率谣言

潘德宇,宋玉蓉,宋 波

1(南京邮电大学 自动化学院、人工智能学院,南京 210023)

2(南京邮电大学 现代邮政学院,南京 210003)

1 引 言

谣言一般是指与某一事件相关未经核实的陈述或说明[1].随着社交媒体的迅速发展,谣言可以通过社交媒体迅速传播,微博等社交平台已经逐渐成为滋养虚假消息和散布谣言的理想场所,一旦虚假谣言被广泛传播,就会引发诸多网络安全问题,产生社会动荡.因此,谣言检测[2]至关重要.微博作为时下最火热的社交平台之一拥有数以亿计的用户基数,在居民生活中占据不可或缺的地位,本文选用微博社交网络作为典型进行研究.

谣言检测问题实际上是一个二分类的问题,目前关于社交媒体谣言检测的研究方法主要是基于深度学习方法.通过构造神经网络并搭配非线性函数学习文本中的潜在特征,通过卷积神经网络(CNN)[3]、循环神经网络(RNN)[4]等神经网络模型对文本序列进行特征表示学习,解决句子分类[5]、情感分类[6]等问题.这些构造神经网络的方法在谣言检测中取得了显著效果.

Ma等人[7]在2015年将微博事件相关所有内容根据时间先后建模为变长时间序列,提出基于循环神经网络模型学习文本抽象表示;刘政等人[8]在2017年提出卷积神经网络的谣言检测模型,将微博事件向量化,通过隐含层的学习训练来挖掘文本深层特征,但是这种方法提取出的文本特征并不全面;李力钊等人[9]在2018年提出的结合卷积神经网络和门控循环单元(GRU)的谣言检测模型,从微博事件中学习到窗口特征序列,再通过GRU[10]学习序列特征来进行谣言检测,解决了卷积神经网络提取特征不全面的问题,但提取出的特征对输出结果影响力都一样,无法区分明显特征.

Wang等人[11]在2019年运用了双头注意力机制来进行谣言检测,提出的模型可以自动捕捉上下文信息之间的依赖关系,并从上下文信息中学习全局表示;Fang等人[12]在2019年建立了一个基于自我多头注意力的卷积神经网络模型,通过在预处理的词向量部分融合多头注意力机制挖掘词语之间的深层特征再通过卷积神经网络训练来进行谣言检测;Wu等人[13]在2019年提出一种筛选的多任务学习方法,具有选定的共享层用于谣言检测,共享层选用门机制与注意力机制对任务之间的共享特征进行过滤选择.上述文献[11-13]都将注意力机制运用到了谣言检测研究中,解决了提取出的特征对输出结果影响力的问题.另外,考虑到了提取特征对输出结果的影响力问题的同时,本文还考虑到了提取特征不够全面的问题在预训练部分采用BERT模型[14],进一步增强了谣言检测特征提取的全面性.

目前基于深度学习构造神经网络的微博谣言检测研究中,预训练模型大多采用的是word2vec[15]词向量或深度语境化词表征(ELMo)[16].前者中得出的词向量无法解决多义词的问题使得训练出的每个词只能对应一个向量表示.后者可以根据上下文动态调整词嵌入,但是使用长短期记忆网络(LSTM)[17]进行特征抽取而不是Transformer[18],并且ELMo使用上下文向量拼接作为当前向量,这样融合出的向量特征较差.

本文针对目前的存在挑战提出了一种引入注意力机制的Text CNN模型用于微博谣言检测,通过给不同的特征根据其影响力赋予不同的权重,这样对输出结果影响较大的特征就会被赋予更多的权重,从而对结果产生更重要的影响,提高微博谣言检测准确性.本文方法通过实验结果表明,与目前最好的基线方法相比,该方法在新浪微博数据集上的准确率提高了约1.1%,同时在召回率与F1值上也有好的表现.

2 模型方法

2.1 预训练模型

本文采用了BERT预训练模型,该模型相较于传统的word2vec和ELMo预训练模型在效果上有显著的提升.传统的预训练模型,主要限制是标准语言模型是单向的,使得模型预训练时可以使用的架构类型受到限制,而在BERT中,提出了一种新的预训练目标:遮蔽语言模型(masked language model,MLM).该模型克服传统的单向性局限,MLM目标允许表征融合左右两侧的语境,从而可以预训练一个深度双向的Transformer.除了遮蔽语言模型外,BERT还引入了“下一句预测”任务,可以和MLM共同训练文本对的表示.BERT模型运用了句子级负采样,对于句子级的连续性预测,就是预测输入BERT的两端文本是否连续.在训练过程中,输入模型的第2段将从所有文本中随机选择,概率为50%,其余50%将选择第1段的后续文本.

BERT预训练模型的结构如图1所示,它的每一层都对Transformer进行了双向的连接,通过多层的堆叠来构建出预训练模型.它的嵌入层由Token嵌入、分段嵌入和位置嵌入3部分组成.Token嵌入就是最为常见的词向量形式,同时会在每个句子的首尾处位置分别嵌入[CLS]和[SEP]两个特殊的Token,通过Token嵌入可以将预处理后的句子转化为固定维度的向量形式.分段嵌入用来判断属于文本是否存在句义相似.位置嵌入主要是用来解决编码无序的问题,该层会学习一个位置向量来表征序列的顺序.BERT预训练模型可以通过特殊的双向Transformer学习到上下文的词对当前词的影响程度,从而可以增强对语义深层特征的提取.本文通过BERT预训练模型可以得到微博与其对应评论的每一条句向量,句向量的维度固定在768维,这要比传统的只能转化出100-200维的word2vec方法来说可以提取出更多的语义特征.通过选取微博和对应的数条评论看作是一个事件,最后只需要判断该事件是否是谣言便可以完成谣言检测任务.

图1 BERT模型结构图Fig.1 BERT model structure diagram

2.2 引入注意力机制的训练模型

2.2.1 注意力机制

注意力模型[19]起初用于解码编码框架之中,编码就是将输入序列转化成一个固定长度的向量,而解码就是将之前生成的固定长度的向量再转化成输出序列,这种模型通常被应用于翻译,文本摘取的任务中.

但是解码编码模型具有很大的局限性,最明显的是作为编码与解码联系的语义向量长度已经固定,也就是说编码要将信息压缩到固定长度,这样便会出现两个缺点:1)压缩出的向量无法表示整个序列的信息;2)先输入的内容携带的信息会被后输入的信息稀释掉,整个序列越长,被稀释的信息就会越多.所以引入了注意力模型,通过注意力分配的不同,可以关注到每一个输入对于预测结果的影响.在编码的过程中,每一次预测都计算其对输入的影响,从而在解码时,输入序列的每一句都可以对预测的结果产生影响.

2.2.2 训练模型

模型的整体流程如图2所示,首先对运用的数据集进行预处理,整理出微博新闻与对应评论组成事件,通过BERT预训练模型生成固定维度的事件句向量;接着通过Text CNN模型对生成的句向量进行卷积学习操作,得到基于过滤器的特征表示,将特征进行拼接得到完整的句义特征输出;再引入注意力机制,根据特征对输出结果的影响力不同分别赋予特征不同的权重得到微博特征权重输出;最后通过Softmax分类器进行微博谣言事件判定.

图2 整体流图Fig.2 Overall flow diagram

详细的训练过程如下:

1)输入预训练生成句向量.对于数据集中所有的谣言与非谣言事件及其相应的评论,通过BERT预处理模型都训练成了句向量.对于每一个微博事件,选取其事件下的相应数条评论和原微博一起作为输入,输入层为一个m×n的矩阵,m为选取的事件的总数量,n则为单条句向量的长度.

2)使用过滤器卷积得到相应特征.通过使用尺寸不同的三种过滤器进行卷积,分别得到对应不同过滤器的特征,过滤器会在m×n的输入矩阵中不停的滑动,为了方便提取特征,设定过滤器的长度为k,宽度与输入矩阵宽度一样为n,一个过滤器提取出的特征就可以表示为h∈Rk×n,那么对应矩阵w中的任意一条u所获得的特征xi为:

wu=(xu,xu+1,…,xu-k+1)

(1)

在对输入矩阵卷积完之后就会生成一个特征列表c,每一次卷积生成的特征都会对应c:

cu=f(wu*h+b)

(2)

式中的f为ReLU函数,b为偏置项.

3)特征拼接形成完整特征矩阵.当过滤器在长度为m的输入上滑过时,特征列表的长度为(m-k+1),假设存在q个过滤器,则会产生q个特征列表,将q通过拼接得到矩阵W1

W1=[c1,c2,…,cq]

(3)

cq代表第q个过滤器产生的特征列表.而本文一共运用了三种不同尺寸的过滤器,最后产生的总的矩阵W即为

W=([W1,W2,W3]

=[c1,c2,…,cq,cq+1,…,c2q,c2q+1,…,c3q]

(4)

4)池化,全连接.对每种过滤器获得的特征采取最大池化操作得到输出特征,将不同过滤器输出特征进行全连接得到CNN输出矩阵W′

W′=[c11,c22,…,ckk]

(5)

上述步骤 1)-步骤 4)介绍了完整的CNN卷积操作,操作过程如图3所示.

图3 CNN卷积操作过程Fig.3 CNN convolution operation process

5)引入注意力机制进行加权操作.采用注意力层对CNN层的输出进行加权求和,以获取微博序列的隐层表示.对CNN网络引入注意力机制能给CNN网络输出的隐状态序列W′赋予不同的权重,这样在学习微博序列的表示时模型能够有侧重的利用微博序列信息.该注意力层将CNN网络的输出ckk作为输入,输出微博序列对应的表示vkk

hi=tanh(WA*ckk+bA)

(6)

(7)

(8)

组成矩阵V=[v11,v22,…,vkk],WA为权重矩阵,bA为偏置值,hi为ckk的隐层表示,αi为hi与上下文hA的相似度,vi为输出向量.

6)分类器进行微博谣言判别.将输出向量送入全连接层,通过Softmax分类器对微博事件进行谣言与非谣言的二分类,得到相关概率输出Pc:

Pc=Softmax(Ws*vi+bs)

(9)

Ws为权重矩阵,bs为分类层偏置向量.步骤 5)-步骤 6)介绍了引入注意力机制并通过分类器进行判别操作,详细过程如图4所示.

图4 谣言判别示意图Fig.4 Rumor discrimination diagram

3 实验分析

3.1 数据集

本文选用的数据集一个是来自Ma等人[7]整理并用于论文里的一系列的基于微博平台的事件数据,该微博数据集是由Ma通过微博API捕获的原始信息以及给定事件的所有转发和回复信息,包含2746818名用户,3805656篇帖子.另一个是CED_Data set[20],包含微博原文与其相应转发/评论内容.数据集详细统计情况如表1所列.

表1 数据集详情统计结果Table 1 Data set statistics

研究将所有的数据按照4:1的比例并进行五折交叉验证,分别用作模型的训练集与测试集,划分情况如表2所列.句向量维度设置为768,参数优化器采用Adam Optimizer[21]更新,dropout设置为0.8,输入矩阵长度设置120,学习率设置0.001.

表2 数据集划分Table 2 Data set partition

3.2 实验评价指标

本文采用的用来评估模型有效性的评价指标与之前文献中所运用的指标一致,分别是精确率,准确率,召回率和F1值4个.对于二分类问题,预测结果和实际结果两两结合会出现如表3所列4种情况:

表3 二分类问题的结果表示Table 3 Result representation of binary classification problem

1)准确率(Accuracy):预测正确的结果占总样本的百分比.

2)精确率(precision):在所有预测为正的样本中实际为正的概率.

3)召回率(recall):针对原样本而言,在实际是正的样本中被预测为正样本的概率.

4)F1值(F1-score):同时考虑精确率与召回率,让两者同时达到最高,再取得平均.

计算方式分如式(10)-式(13)所示:

(10)

(11)

(12)

(13)

3.3 实验对比模型

将本文方法与其他基线方法在同样的微博数据集上进行实验,本文选取了如下几个基线方法:

SVM-TS模型[22]:该模型通过时间先后序列来捕捉微博事件随时间先后的特征变化,使用SVM分类器进行分类.

GRU-1模型[7]:该模型将传统循环神经网络中的循环单元改为门控单元,不仅可以捕捉到当前时间步长中的特征,还能融入前一时刻的特征,同时添加了一个嵌入层有效降低了模型复杂度,最后通过Softmax进行分类.

GRU-2模型[7]:在GRU-1的模型上又添加了一层GRU层,这一层可以捕获不同时间步长之间更高级别的特征交互,最后也通过Softmax进行分类.

CNN-GRU模型[9]:该模型在传统的CNN上又添加了GRU,既解决了CNN模型无法在时间上学习微博时间先后序列相关特征的问题,也关注到了RNN模型虽然可以学习事件序列表示,但是无法学习到微博事件的语句的句义的难题.

CNN-attention模型:该模型是本文所提出的模型,在传统CNN模型上融入了注意力机制,在对每一个过滤器经过卷积池化操作后所形成的特征,再经过全连接层形成完整的特征序列,在这之后加入注意力机制可以根据特征对输出产生的不同影响程度赋予不同的权重特征.

3.4 实验结果分析

本文分别在两个不同微博数据集上进行实验对比.通过使用Ma等人的数据集,本文方法与基线方法在谣言检测中效果比较实验结果如表4所列,不同模型准确率的对比图如图5所示,从中可以发现传统的SVM -TS方法使用分类器进行谣言检测最后的准确率仅仅只有85.7%,效果并不是特别优秀,对比GRU-1、GRU-2、CNN-GRU三种模型的最后结果可以发现训练模型中加入卷积神经网络后因为可以通过过滤器提取到输入中不同的潜在特征,所以在准确率上有更好的表现最高达到了95.7%,而我们的模型在引入注意力机制后,考虑CNN输出特征表示对最终输出结果影响力问题,对不同输出特征赋予不同权重这样对输出结果影响较大的特征就会被赋予更多的权重,从而对结果产生更重要的影响,有助于进行谣言检测,结果表明我们的模型准确率达到了96.8%,并且在召回率和F1值上也有不错的提升.

图5 模型准确率对比图(Ma数据)Fig.5 Model accuracy comparison chart(Ma data)

表4 不同检测方法下的实验结果对比(Ma数据)Table 4 Comparison of experimental results under different detection methods(Ma data)

通过使用CED_Data set数据集,使用相同预训练模型,比较不同训练模型谣言检测中效果.实验结果如表5所列,不同模型准确率的对比图如图6所示,实验结果表明,通过BERT预训练模型获得的句向量在不同的训练模型上进行训练在准确率方面仍然会有偏差,但是偏差幅度对比之前使用不同预训练模型要小.通过实验可以得出,SVM -TS的准确率大概为86.7%,其次依次是GRU-1、CNN-GRU、GRU-2模型,效果最好的是我们提出的CNN-Attention模型,准确率达到了95.3%,并且在召回率和F1值上体现出的效果也是众多模型中最好的.

图6 模型准确率对比图(CED _Data)Fig.6 Model accuracy comparison chart(CED _Data)

表5 不同检测方法下的实验结果对比(CED _Data)Table 5 Comparison of experimental results under different detection methods (CED _Data)

综上所述,我们的模型在两个不同的数据集上都表现出了良好的效果,通过使用BERT预训练模型可以提取更为全面的特征表示,引入注意力机制的Text CNN模型考虑到提取特征对输出结果的影响力问题,通过给提取特征赋予权重可以有效提高谣言检测效率.

CNN模型中使用不同尺寸的过滤器可以提取出不同程度的语义特征,但是选择的过滤器尺寸过小,就会无法完整的提取句义表征;选择的过滤器尺寸过大,就会引入不必要的噪声.因此本环节选用了不同尺寸的过滤器进行实验.

通过表6与图7实验结果说明:卷积尺寸的不同会对准确率产生影响,但是总的来说影响并不是很大,选用卷积尺寸为4、5的过滤器的准确率要比尺寸为3、4和3、5的过滤器的效果好,而选用尺寸为3、4和5的过滤器效果则优于前三个,准确率高了大约1%,达到了96.8%.

表6 不同卷积尺寸结果表Table 6 Results table for different convolution sizes

图7 不同卷积尺寸对比图Fig.7 Comparison chart of accuracy of different convolution sizes

4 结 论

本研究提出了一种新的考虑注意力机制的谣言检测模型,能够有效解决微博谣言事件判断问题.采用BERT模型将部分下游自然语言处理任务转移到预训练模型,有效解决了提取特征不够全面的问题;采用引入注意力机制的Text CNN训练模型,根据所提取特征对输出结果影响力不同赋予不同权重,可以更有效的提取更为显著的文本深层特征,有效解决了提取特征对输出结果的影响力问题.本方法在真实微博数据集上经过实验验证具有较好的谣言检测效果.

猜你喜欢
过滤器准确率谣言
中国使馆驳斥荒谬谣言
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
多层螺旋CT技术诊断急性阑尾炎的效果及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
不信谣言 科学防“疫”
针对石化行业过滤器流阻的探讨及研究
你被养生谣言忽悠过吗?
谣言π=4!
花粉过滤器