基于分层注意力网络的多模态谣言检测方法及系统
文献发布时间:2023-06-19 18:37:28
技术领域
本发明涉及一种谣言检测方法及系统,尤其是基于分层注意力网络的多模态谣言检测方法及系统。
背景技术
社交媒体的便携和低成本的特点带来了集体智慧,但同时也滋生了各种各样的虚假谣言,这些谣言往往含有虚假的甚至伪造的内容,以误导读者。由于在线内容庞大,手动揭穿谣言非常耗时,因此构建一个有效、实用的自动谣言识别系统,从不同的角度挖掘辅助信息是十分必要的。在社交媒体的富媒体化趋势下,新闻逐渐由单一的文本形式向多模态形式转变,如图像和视频等,现有的多模态谣言检测使用卷积神经网络、长短期记忆网络等提取新闻文本的特征,无法区分句子中的上下文单词对当前单词的重要性,当句子太长时,具有遗忘的特点,对于视觉特征的处理采用整幅图片的信息,忽略了图片中不同区域对语义理解的重要性,导致多模态检测性能下降。
发明内容
发明目的:本发明的目的是提供一种充分捕获新闻文档层次特征,考虑单词、句子及图片区域重要性的多模态谣言检测方法;本发明的第二目的是提供一种多模态谣言检测系统。
技术方案:本发明所述的基于分层注意力网络的多模态谣言检测方法,包括如下内容:
对新闻文本使用Glove预训练模型获取文本中的单词向量,通过分层注意力模型提取文本特征向量,通过VGG19模型提取新闻图片中的视觉特征向量,根据所述文本特征向量和视觉特征向量判断新闻样本为谣言或非谣言;
所述通过分层注意力模型提取文本特征向量的方法为,根据当前单词和其所在句子中上下文单词之间的重要性,聚合上下文单词信息得到单词的词向量表示,根据句子中所有词向量表示对该句子的重要性,聚合单词信息得到句子向量;根据句子向量与其所在文本中上下文句子之间的重要性,聚合上下文句子信息得到句子的句向量表示,根据文本中所有句向量表示对该文本的重要性,聚合句子信息得到文本特征向量。
进一步地,所述对新闻文本使用Glove预训练模型获取文本中的单词向量的方法为:
使用Glove预训练模型在语料库上学习进行单词向量初始化,词向量损失函数J为
其中,V是词汇量的大小,X是根据语料库构建的共现矩阵,矩阵中的每一个元素X
进一步地,所述根据当前单词和其所在句子中上下文单词之间的重要性,聚合上下文单词信息得到单词的词向量表示的方法为:
根据上下文单词w
其中q
进一步地,所述根据句子中所有词向量表示对该句子的重要性,聚合单词信息得到句子向量的方法为:
根据词向量表示
其中,u
进一步地,根据句子向量与其所在文本中上下文句子之间的重要性,聚合上下文句子信息得到句子的句向量表示的方法为:
根据上下文句子s
其中,
进一步地,所述据文本中所有句向量表示对该文本的重要性,聚合句子信息得到文本特征向量的方法为:
根据句向量表示
其中,u
进一步地,所述通过VGG19模型提取新闻图片中的视觉特征向量的方法为:
将新闻图片的特征图表示为特征向量序列
其中,u
进一步地,所述根据所述文本特征向量和视觉特征向量判断新闻样本为谣言或非谣言的方法为:
将文本特征向量和视觉特征向量拼接得到新闻的多模态表示x,将x输入全连接层和激活层,得到样本被预测为谣言的概率分布p=soft max(W
本发明所述的基于分层注意力网络的多模态谣言检测系统,包括:
预处理模块,用于对新闻文本使用Glove预训练模型获取文本中的单词向量;
文本特征提取模块,用于通过分层注意力模型提取文本特征向量;根据当前单词和其所在句子中上下文单词之间的重要性,聚合上下文单词信息得到单词的词向量表示,根据句子中所有词向量表示对该句子的重要性,聚合单词信息得到句子向量;根据句子向量与其所在文本中上下文句子之间的重要性,聚合上下文句子信息得到句子的句向量表示,根据文本中所有句向量表示对该文本的重要性,聚合句子信息得到文本特征向量;
视觉特征提取模块,用于通过VGG19模型提取新闻图片中的视觉特征向量;
谣言检测模块,用于根据所述文本特征向量和视觉特征向量判断新闻样本为谣言或非谣言。
本发明所述的计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现根据权利要求1-8任一项所述的基于分层注意力网络的多模态谣言检测方法。
有益效果:与现有技术相比,本发明的优点在于:(1)利用基于自注意力机制的单词编码器和句子编码器,衡量当前单词和句子中所有上下文单词之间的重要程度,以及当前句子和文本中所有上下文句子之间的重要程度,得到融合上下文信息的词向量表示和句向量表示,进而得到文本特征向量,使其在构建文档表示时能够区分关注重要程度较高和不重要的内容,从而能够捕获新闻文档层次结构的特征;(2)通过注意力机制衡量每张图片不同区域的特征向量相对于文本的重要性,并将图片所有区域信息的表示聚合起来得到整张图片的视觉特征向量表示;通过衡量每张图片不同区域相对于文本的重要性,使得模型着重关注于重要性更高的图片区域,更加有效地获取视觉特征的线索;(3)捕获新闻文档层次结构的特征,同时充分利用视觉模态信息特征,大幅提高了谣言检测的准确率;结合文本和图像特征来综合进行谣言的检测,使得最终的检测结果更适用于如今的多模态形式新闻,得到更全面,准确的谣言预测。
附图说明
图1为本发明的基于分层注意力网络的多模态谣言检测框架图。
图2为本发明实施例中的消去分析实验结果图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明。
如图1所示,所述的基于分层注意力网络的多模态谣言检测方法,包括如下步骤:
S1:对新闻数据集进行预处理,包括如下步骤:
A1:对于文本或图像缺失新闻数据,删除该数据,以保证数据集的质量;
A2:对步骤A1得到的数据按照7:3的比例划分最终的训练集和测试集。
S2:对新闻的文本数据使用Glove预训练模型获取文本中单词的向量表示,包括如下步骤:
不同于传统的直接随机初始化的词向量,我们使用Glove预训练语言模型进行词向量的初始化,通过在大规模语料库上的学习,其内部可以学习到某些句法知识和常识知识。
词向量的学习需要对语料库中任意两个单词共现频率进行最佳的预测,为此提出了一种新的加权最小二乘回归模型,给出了下列损失函数J:
其中V是词汇量的大小,X是根据语料库构建的共现矩阵,矩阵中的每一个元素X
本实施例中α取值为0.75,而X
对于任意新闻文本t,假设其中有M个句子,并且每个句子包含N个单词,因此文本中的单词总数为M×N,最终通过Glove预训练将单词嵌入到向量中,得到每个文本t中所有的预训练词向量w
在之后的分层注意力网络中,由于单词和句子级别应用了两个层次的注意力机制模型来提取特征,因此我们进一步将文本t划分为两个层次结构,首先是句子层级结构,即将文本t划分为M个句子,s
S3:根据步骤S2中得到的预训练结果,采用改进的分层注意力模型来进行文本的特征抽取,包括如下步骤:
传统的分层注意模型使用双向GRU循环神经网络模型,通过总结单词的双向信息来获得单词的上下文信息。这种方法有明显的缺陷,它不能区分句子中的上下文单词对当前单词的重要性,而且当句子太长时,具有遗忘的特点。因此我们引入基于自注意力机制的单词编码器。
B1:基于自注意力机制的单词编码器:给定一个带有单词w
具体地,我们引入参数矩阵W
q
k
v
然后我们根据当前单词w
其中α
最后,根据得到的权重计算所有上下文单词w
B2:单词注意力:并不是所有的单词都对句子意义的表达有同样的贡献。因此,引入注意力机制模型来衡量句子中所有词向量
具体地,首先使用线性变换对词向量
其中W
然后引入单词上下文向量u
其中β
最后,根据得到的权重计算所有词向量
B3:基于自注意力机制的句子编码器:相似地,使用自注意力机制代替传统的双向GRU循环神经网络模型来获取句子的上下文信息来表示当前句子。给定任意一个句子向量s
具体地,引入参数矩阵
同理,根据当前句子s
其中α
最后,根据得到的权重计算所有上下文句子s
B4:句子注意力:为了奖励那些作为正确分类文档线索的句子,再次使用注意力机制模型来衡量文本中所有句向量表示
具体地,首先使用线性变换对句子向量
其中W
引入句子上下文向量u
其中β
最后,根据得到的权重计算所有句子向量
其中t是汇总文档中所有句子信息的文本特征向量。
S4:对新闻的图片数据使用预训练好的VGG19来获取视觉信息,包括如下步骤:
为了有效地提取视觉特征,我们首先对基于ImageNet预训练的VGG19模型进行微调。考虑到图片中不同空间区域的信息密度以及重要程度不一致,即图片的不同区域对于语义理解具有不同的重要性,融合所有的实体信息可能会导致信息冗余甚至引入噪声,我们引入注意力机制模型。对于输入图片I,我们可以从VGG19网络的最后一个卷积层得到大小为7×7×512的特征图,并将其进一步表示为特征向量序列
具体地,我们首先使用线性变换对图片区域的特征向量v
u
其中为W
然后我们根据每个图片区域特征向量v
其中γ
最后,根据得到的权重计算所有图片区域特征向量v
并且我们在VGG19网络的最后一层上,添加了完全连通层,将最终的视觉特征表示的维度调整为P。因此,最终的视觉向量特征可以表示为
S5:结合文本和图像特征来综合进行谣言的检测和分类,包括如下步骤:
C1:将步骤S3得到的文本特征向量表示t和步骤S4得到的视觉特征向量v拼接在一起,得到该条新闻最终的多模态表示:
C2:在得到输入新闻的多模态表示x之后,我们将其输入全连接层,并将全连接层的输出通过softmax层产生分类标签的分布:
p=soft max(W
其中,W
C3:我们采用交叉熵作为模型的损失函数L:
L=-∑[y log p+(1-y)log(1-p)]
其中,y是样本的真实标签,1表示该样本为谣言,0表示该样本为非谣言;p表示该样本被预测为谣言的概率,本实施例中设p超过0.5阈值则判断样本为谣言,否则判断为非谣言。
基于上述内容,为了验证本发明方法的实际效果,本实施例将上述方案进行实例应用,选取采用了FakeNewsNet的数据集,该数据集是专门为检测谣言而收集的,FakeNewsNet包含来自两个网站的贴有标签的新闻:politifact.com和gossipcop.com。新闻内容包含文本和图片信息,每条新闻的所有推文和转发,以及相应Twitter用户的信息。我们通过爬虫爬取了每条新闻的文本和图片信息。选取数据集信息如表1所示。
表1数据描述
其中的数字的单位为个,表示新闻数据样本的个数。T表示样本为谣言,F表示样本为非谣言。
将本发明的方法与利用不同信息的谣言检测模型进行了比较。基于单文本模态,CSI使用LSTM对新闻内容信息进行编码以进行谣言检测。SAFE使用TextCNN对新闻文本信息进行编码。我们还将MLP直接应用于word2vec编码的新闻文本嵌入。基于单视觉模态,VGG19被广泛用作视觉特征提取器,本发明使用经过预训练的VGG19模型在本文数据集上进行微调。
同样我们也对近年来使用了文本和图像等基于多模态的方法也进行了比较。EANN分别采用TextCNN和预训练的VGG19进行文本及视觉模态特征提取来进行谣言检测。MVAE分别通过双向LSTM和预训练的VGG19进行特征提取。
表2列出了对比实验的结果,观察可得到结论:
1)基于单文本模态的方法要优于基于单视觉模态的方法,说明谣言检测主要依靠文本线索。基于多模态的方法要优于具有相同子网络结构的单模态方法,说明文本和图片模态能够为谣言检测任务提供互补的线索。
2)在基于单文本模态的方法中,预训练语言模型要优于传统CNN,RNN等传统的文本建模方法,说明预训练语言模型有效地从大量预训练语料中学习到了语言学知识,也说明了Glove预训练的必要性。
3)所有的方法在POL数据集上的预测结果都没有显著的提升,主要的原因可能是POL的数据集样本太少,导致所有的模型都无法获得充足的信息来进行有效地建模。由于GOS的数据集样本数量充足,而我们的方法在其上的准确率显著超过其他对比方法,说明本文提出的这种基于分层注意力网络的多模态模型确实可以有效提升谣言检测的性能。说明我们的模型可以通过充分挖掘多模态语义线索,检测到被现有方法遗漏的谣言。
表1不同方法的性能比较
其中ACC表示预测分类的准确率(Accuracy),F1表示预测分类的F1得分(F1-score)。
为验证不同的模型组件对实验结果的影响,我们设计了3种模型的变体,对模型进行消去分析。并且由于GOS数据集样本充足,能够有效判断模型的性能,这里只在GOS数据集上进行实验。
1)去掉基于Glove的word2vec预训练。对新闻文本中的所有词向量进行随机初始化,再送入分层注意力网络。
2)去掉分层注意力网络。将新闻文本中的所有词向量经过Glove预训练后,仅仅送入最基础的双向GRU对文本信息进行编码。
3)去掉基于VGG19的图片特征提取。仅通过Glove预训练和分层注意力网络对文本特征进行特征提取,忽略新闻样本中的图片信息。
图2列出了消去分析的实验结果,可以得到2个结论:
1)移除模型的任何部分,模型的分类准确率都会出现一定程度的下降,这说明了模型各元素的有效性。
2)按照移除后模型分类准确率的下降程度,可以将各模型组件的重要性排序如下:分层注意力>Glove预训练>VGG19。这说明对于谣言检测任务,文本比图片发挥的作用更重要。并且由于分层注意力在构建文档表示时能够区分关注重要程度较高和不重要的内容,从而能够捕获新闻文档层次结构的特征,在谣言检测任务中发挥着最大的作用。
基于同样的发明构思,本发明所述的基于分层注意力网络的多模态谣言检测系统包括:
预处理模块,用于对新闻文本使用Glove预训练模型获取文本中的单词向量;
文本特征提取模块,用于通过分层注意力模型提取文本特征向量;根据当前单词和其所在句子中上下文单词之间的重要性,聚合上下文单词信息得到单词的词向量表示,根据句子中所有词向量表示对该句子的重要性,聚合单词信息得到句子向量;根据句子向量与其所在文本中上下文句子之间的重要性,聚合上下文句子信息得到句子的句向量表示,根据文本中所有句向量表示对该文本的重要性,聚合句子信息得到文本特征向量;
视觉特征提取模块,用于通过VGG19模型提取新闻图片中的视觉特征向量;
谣言检测模块,用于根据所述文本特征向量和视觉特征向量判断新闻样本为谣言或非谣言。
基于同样的发明构思,本发明所述的计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现所述的基于分层注意力网络的多模态谣言检测方法。
所述计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。
处理器用于执行存储器存储的计算机程序,以实现上述实施例涉及的方法中的各个步骤。