在文章的阐述中,除了最左边的图中,从文字和图片出发都能看出新闻是假的,单独的文字(中间的图)或单独的图片(最右边的图)都无法完全胜任虚假新闻检测的工作,图片和文字信息的组合互为补充,能够使得检测任务更为精确。
作者对以往的关于虚假新闻检测的研究进行总结,注意到以往的虚假新闻检测模型都没有明确的关于新闻里跨模态数据关联关系的目标函数,受自编码器的思想启发,在多模态模型中学习共享的表征。并由于变分自编码器(VAE)可以生成式地模拟数据的复杂分布。提出多模态变分自编码器用来学习图片与文字的共享表征,并使用普通的VAE来解决新闻分类问题。多模态变分自编码器从学习到的共享表征中重构两个模态的数据,以此来发现两个模态之间的关联关系。
MVAE结构
编码器:将文字和图片的信息编码为相对低维的随机向量。
解码器:将随机向量重构为文字和图片的信息。
虚假新闻检测模块:利用随机向量(多模态的共享表征)来判断新闻真伪。
编码器模块
编码器可分为文字编码器和视觉编码器
文字编码器的输入为新闻中的单词序列,,
为总共的文字数量,每一个
都是一个词嵌入向量,通过将每个单词输入到预训练好的深度网络中得到。接着将这些词嵌入向量输入到堆叠双向LSTM中,并将输出通过一个全连接层。公式表示为
是全连接层的参数,
是LSTM的输出。
视觉编码器的输入为附在新闻上的图片序列,采用在ImageNet数据库上训练的VGG-19架构的预训练网络,并使用全连接层(FC7)的输出。接着再让其通过一个全连接层。
是全连接层的参数,
是VGG-19架构中全连接层(FC7)的输出。
和
都是相同的大小,编码器最终将
和
连接起来形成共享表征,并通过一个全连接层获得两个向量
和
,可以看作共享表征的均值和方差,接着就是重参数化技巧,便于参数训练,将随机性与参数分离,从标准正态分布中采样得到
,最终的重参数化多模态表征可以写为
通过将编码器整体表示为,
表示所有在编码器中学习的参数,M则表示包含多模态信息(图片和文字)的新闻序列,也因此,对某一篇的新闻的多模态表征可以写为
解码器模块
解码器模块和编码器的过程相反,目的是从编码器输出的多模态表征中重构出数据。
解码器也分为文字解码器和视觉解码器
文字解码器中,多模态表征首先通过一个全连接层,然后作为堆叠双向LSTM的输入,最终将输出通过一个使用softmax激活函数的全连接层得到每个单词在该时间步长的概率矩阵,最后可以用交叉熵损失来度量重构损失。
视觉解码器中,目标是从多模态表征中重构出VGG-19的特征,将多模态输出通过两个全连接层来重构出VGG-19的特征,可以用均方误差来度量重构损失。
将解码器视为,
代表了解码器网络中的所有参数,可以将其表达为
在VAE模型中,目标函数包含重构损失和两个分布之间的KL散度,其中文字的重构损失可以定义为
表示词汇表的词汇数量,
是文本中词汇的数量,关于
的理解,预训练好的词向量矩阵中包含了所有文本中不重复单词的词向量,针对一篇新闻文本的交叉熵计算时,只计算该文本里有的单词,即
。
表示第
篇新闻的第
个词的词向量。
可以看作one-hot向量,大小为词汇表的词汇数量,但只有第m篇文章的单词的对应位置处取值为1,其余为0。
图片的重构损失可以定义为
两个分布分别指的是编码器模块中近似的变分分布(后验),参数为和
,以及标准正态分布(先验),这两个分布之间的KL散度通过公式推导可用两个分布的参数表示为
代表了包含多模态信息(图片和文字)的新闻序列,
是VGG-19特征的维度,
是多模态表征的维度
通过最小化这些损失来寻找最优的参数,和
,
虚假新闻检测模块
这个模块同样以多模态表征作为输入来检测这篇新闻是真是假,由两个全连接层组成,将这个模块记为,
则是虚假新闻检测模块中的所有参数,输出为每篇新闻是虚假新闻的概率
并使用交叉熵损失来度量分类损失来度量
表示了一系列真值标签。
通过最小化损失来寻找最优参数和
模块汇总图可以表示为