论文笔记:面向实体的多模态对齐与融合网络假新闻检测

整理了2022TMM期刊 Entity-Oriented Multi-Modal Alignment and Fusion Network for Fake News Detection)论文的阅读笔记

  • 背景
  • 模型
    • 改进的动态路由算法
    • Cross-Modal Fusion
  • 实验

背景

  现有的假新闻方法对多模态特征进行各种跨模态交互和融合,在检测常见假新闻方面已经被证明是有效的。但是,多模态新闻的描述是围绕实体进行的,之前的方法对这一特性的关注较少,在需要以实体为中心的比较的假新闻检测方面表现不佳。基于此,本文探索了一种通过对齐和融合多模态实体来检测假新闻的新范式,并提出了面向实体的多模态对齐和融合网络(EMAF)。该工作采用以实体为中心的跨模态交互,可以保留语义完整性并捕获多模态实体的细节。
  作者认为,现有的假新闻检测方法大致可以分为粗粒度和细粒度两种,细粒度方法在词级和像素级(图2中的(a))进行跨模态交互,但是无法保持实体的语义完整性。粗粒度方法在句子级和图像级特征(图2中的(b))上进行跨模态交互,可能会忽略同一模态内对象之间的关系。本文提出了一种面向实体的跨模态交互方法,实现了粗粒度和细粒度方法之间的折衷。
在这里插入图片描述

模型

  EMAF由封装模块、跨模态对齐模块、跨模态融合模块和最终的分类器组成。具体来说,采用改进的动态路由算法(胶囊算法)设计了对齐模块,并引入了基于比较的融合模块,前者对重要实体进行对齐和捕获,后者对以实体为中心的特征进行比较和聚合。将聚合地特征送入最终的分类器中得到结果。
  设T和V分别表示原始文本句子和图像输入,TE、VE和AE分别表示文本实体、视觉实体和对齐实体的集合。实体集合的每一个元素都是指一个特定实体的表示。本文的视觉实体由预训练的Faster R-CNN提取,文本实体是怎么得到的没有说明。
  EMAF的输入由文本实体集 T E = { t e 1 , … , t e M } TE=\{te_1,…,te_M\} TE={te1,,teM}和可视化实体集 V E = { v e 1 , . . . , v e N } VE = \{ve_1,...,ve_N\} VE={ve1,...,veN}。包含视觉实体和文本实体的胶囊单元分别被指定为主胶囊和数字胶囊。对齐模块采用一种改进的动态路由算法,实现可视化实体与文本实体之间的跨模态交互,该过程生成对齐实体集 A E = { a e 1 , . . . , a e M } AE=\{ae_1,...,ae_M\} AE={ae1,...,aeM}
  为了捕获对齐实体和源文本实体之间的一致性和差异性,在跨模态融合模块中引入了Attend、Compare和Aggregate方法来执行二阶交互。收集与真实性相关的重要特征,并生成样本的固定大小表示。然后,分类器根据这个表示给出最终的预测。算法为:
在这里插入图片描述整个模型的结构:
在这里插入图片描述

改进的动态路由算法

  首先初始化 b i , j 1 b_{i,j}^1 bi,j1(这里的上标1和下面的k表示堆叠结构中的第k层),它用来测量 v e i ve_i vei t e j T te_j^T tejT的对齐程度: b i , j 1 = v e i ⋅ t e j T b_{i,j}^1=ve_i\cdot te_j^T bi,j1=veitejT  然后使用softmax对 b i , j k b_{i,j}^k bi,jk进行归一化,得到一个对齐的分布 c j k c_j^k cjk,并以类似于注意机制的方式对视觉实体进行加权和。这样,视觉实体被组装为第j个文本实体,并产生 s j k s_j^k sjk c j k = s o f t m a x ( [ b 1 , j k , . . . , b i , j k , . . . , b N , j 1 ] ) c_j^k=softmax([b_{1,j}^k, ...,b_{i,j}^k,...,b_{N,j}^1]) cjk=softmax([b1,jk,...,bi,jk,...,bN,j1]) s j k = ∑ i c i , j k v e i s_j^k=\sum_ic_{i,j}^kve_i sjk=ici,jkvei  接下来,为了测量当前第j个数字胶囊所代表的实体是否存在于 s j k s_j^k sjk中,使用了一个称为“压扁”的非线性激活函数。 v j k = ∣ ∣ s j k ∣ ∣ 2 1 + ∣ ∣ s j k ∣ ∣ 2 s j k ∣ ∣ s j k ∣ ∣ v_j^k=\frac{||s_j^k||^2}{1+||s_j^k||^2}\frac{s_j^k}{||s_j^k||} vjk=1+∣∣sjk2∣∣sjk2∣∣sjk∣∣sjk  在将对齐的视觉实体信息收集到 v j k v_j^k vjk后,通过一个门将对应的 v j k v_j^k vjk t e j K te_j^K tejK组合到一起,这个门把v向量的长度作为权重,更新相应文本实体的表示: G j k = ∣ ∣ v j k ∣ ∣ G_j^k=||v_j^k|| Gjk=∣∣vjk∣∣ t e j k + 1 = ( 1 − G j k ) ⋅ t e j k + G J k ⋅ v j k te_j^{k+1}=(1-G_j^k)\cdot te_j^k+G_J^k\cdot v_j^k tejk+1=(1Gjk)tejk+GJkvjk  这样,我们就得到了进行一轮更新后的文本实体表示,再把这个表示作为数字胶囊进入下一轮更新,这样,文本实体会与和这个实体相似度高的视觉实体相似度score增加,文章称之为”被接受“,而相似度低的视觉实体相似度score减少,称之为”被拒绝“。
  该过程在达到K次迭代后停止,并且从视觉实体派生的 T E K = [ t e 1 k , … , t e j k , … , t e M k ] TE^K = [te_1^k,…,te_j^k,…,te_M^k] TEK=[te1k,,tejk,,teMk]被认为是文本实体的对齐表示。
为了表示方便,将 T E K = [ t e 1 k , … , t e j k , … , t e M k ] TE^K = [te_1^k,…,te_j^k,…,te_M^k] TEK=[te1k,,tejk,,teMk]重新定义为 A E = [ a e 1 , … , a e j , … , a e M ] AE = [ae_1,…,ae_j,…,ae_M] AE=[ae1,,aej,,aeM]
在这里插入图片描述

Cross-Modal Fusion

  跨模态融合模块旨在捕获对齐实体与原始文本实体之间的一致性和差异性,并进一步提取验证样本真实性所需的特征。
  在上文中,我们得到了对齐后的文本实体TE与对齐实体AE之间建立了一一对应关系。但是本文提出,由于在对齐过程中没有考虑来自相同模态的实体之间的语义关系。以图3中的样本为例,“大象”与“岩石”的关系来源于“象形岩石”这句话。自然不能交付给对齐的实体。反过来,从图像中衍生出的“象”与“石”的关系,也无法传递给文本实体。为了弥补这一遗漏,引入了Attend组件,旨在从同一模态中追求实体之间的关系。
  对于来自TE的每个实体,将其与所有文本实体连接起来,以捕获其与其他文本实体的关系,然后利用多层感知器(MLP)将连接的结果映射到关系空间。最后,执行max-pooling来选择实体 t e i te_i tei的重要关系特征 t r i tr_i tri。最终,我们得到了TR代表TE, AR代表AE的关系表示: t r i = M a x p o o l i n g ( M L P ( [ t e i ; T E ] ) ) tr_i=Maxpooling(MLP([te_i;TE])) tri=Maxpooling(MLP([tei;TE])) a r i = M a x p o o l i n g ( M L P ( [ a e i ; A E ] ) ) ar_i=Maxpooling(MLP([ae_i;AE])) ari=Maxpooling(MLP([aei;AE]))  对于TE和AE,执行元素减法来捕获差异,此外还进行了元素点积来捕获相似性。将所有比较特征串联起来,分别在实体级和关系级得到EC和RC: e c i = [ a e i ; t e i ; a e i − t e i ; a e i ⋅ t e I ] ec_i=[ae_i;te_i;ae_i-te_i;ae_i\cdot te_I] eci=[aei;tei;aeitei;aeiteI] r c i = [ a r i ; t r i ; a r I − t r i ; a r I ⋅ t r i ] rci=[ar_i;tr_i;ar_I-tr_i;ar_I\cdot tr_i] rci=[ari;tri;arItri;arItri]  最后,在实体集EC和关系集RC上执行平均池化和最大池化策略,通过连接池化操作的结果获得用于标签预测的最终向量C,送入分类头进行预测: C = [ A v g ( E C ) ; M a x ( E C ) ; A v g ( R C ) ; M a x ( R C ) ] C=[Avg(EC);Max(EC);Avg(RC);Max(RC)] C=[Avg(EC);Max(EC);Avg(RC);Max(RC)]

实验

  本文的实验使用了Reddit、微博和Twitter三个数据集。
在这里插入图片描述  对比实验结果:在这里插入图片描述  在Reddit数据集上,本文的模型和之前模型的对比:在这里插入图片描述  消融实验:在这里插入图片描述
  可视化:在多层迭代中,数字胶囊单元(文本实体)和主胶囊(视觉实体)之间逐渐被对齐。在这里插入图片描述  检测结果的示例:在这里插入图片描述
  这篇文章并没有开源,我自己实现的效果与论文中相差很大,如果您也复现了这篇文章或是对这篇文章感兴趣,欢迎私信我一起讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/531604.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

刷题之Leetcode203题(超级详细)

203.移除链表元素 力扣题目链接(opens new window)https://leetcode.cn/problems/remove-linked-list-elements/ 题意:删除链表中等于给定值 val 的所有节点。 示例 1: 输入:head [1,2,6,3,4,5,6], val 6 输出:[1,2,3,4,5] …

C++ stl容器vector的认识与简单使用

目录 前言: 本篇文档图片引用自:https://cplusplus.com/reference/vector/vector/ 1.vector的结构 2.迭代器类型 3.构造函数 4.迭代器 反向迭代器遍历 const迭代器 5.容量 maxsize shrink_to_fit reverse resize 6.修改 insert和erase 7.…

心跳机制原理学习

心跳机制 应用场景: 在长连接下,有可能很长一段时间都没有数据往来。理论上说,这个连接是一直保持连接的,但是实际情况中,如果中间节点出现什么故障是难以知道的。更要命的是,有的节点(防火墙…

4月6号排序算法(2)

堆排序 讲堆排序之前我们需要了解几个定义 什么叫做最大堆,父亲节点,以及孩子节点 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。 每个节点都是它的子树的根节点的父亲 。 反过来每个节点都是它父亲的孩子 。 …

Matplotlib实现数据可视化

Matplotlib是Python中应用较为广泛的绘图工具之一,首次发布于2007年。它在函数设计上参考了MATLAB,因此名字以"Mat"开头,中间的"plot"代表绘图功能,结尾的"lib"表示它是一个集合。Matplotlib支持众…

HarmonyOS实战开发-短时任务

介绍 本示例主要展示后台任务中的短时任务。 通过ohos.resourceschedule.backgroundTaskManager ,ohos.app.ability.quickFixManager 等接口实现应用热更新的方式去展现短时任务机制。 效果预览 使用说明 1.安装本应用之前,先编译好未签名的应用包&a…

【MPI并行程序】完美解决Attempting to use an MPI routine before initializing MPI

文章目录 错误原因解决方案 最近在写并行程序,犯了一个小错误,记录一下,以防止以后再犯。 Attempting to use an MPI routine before initializing MPI(在初始化 MPI 之前尝试使用 MPI 例程) 错误原因 这个错误通常是因…

MySQL学习笔记2——基础操作

基础操作 一、增删改查1、添加数据2、删除数据3、修改数据4、查询语句 二、主键三、外键和连接1、外键2、连接 一、增删改查 1、添加数据 INSERT INTO 表名[(字段名[,字段名]…)] VALUES (值的列表); --[]表示里面的内容可选添加数据分为插入数据记录和插入查询结果 插入数据…

【Vuforia+Unity】AR判断当前平台获取点击/触摸坐标点选中识别的二维码跳转网页

实现了:【VuforiaUnity】判断当前平台获取点击/触摸坐标点选中识别的二维码跳转网页 using UnityEngine; using Vuforia; public class BarcodeScanner : MonoBehaviour { public TMPro.TextMeshProUGUI barcodeAsText; string platformNum""; privat…

Java研学-RBAC权限控制(一)

一 权限控制 1 介绍 RBAC(Role-Based Access Control,基于角色的访问控制)是一种流行的权限控制策略,用于实现复杂系统的安全访问管理。它通过将权限与角色相关联,而不是直接与用户相关联,从而简化了权限管…

《QT实用小工具·二十三》 Ntp校时类

1、概述 源码放在文章末尾 该项目实现了 Ntp校时类 ,包含如下功能: 可设置Ntp服务器IP地址。 推荐用默认的阿里云时间服务器 ntp1.aliyun.com 收到时间信号发出。 时间精确到秒。 下面是demo演示: 项目部分代码如下: #if…

组态王与美国罗克韦尔AB PLC之间无线通讯方案详解

组态王与多台美国罗克韦尔AB PLC间的无线通信测试需要用到以下设备: 三菱PLC型号:FX5u 2台 上位机:组态王6.55 1台 达泰欧美系PLC无线通讯终端——DTD418MB 3块 主从关系:1主2从 通讯接口:RJ45接口 供电&…

传统前端 JS 开发者有福了

大家好,春天的百花绽放之际,各个行业也迎来了各自的新生与挑战。有的继续沉下心来夯实基础,有的大力发展出海业务,又或者通过顶级促销套路天女散花般地贩卖高仿保时捷……这厢 Mendix 各位技术小伙伴继续紧跟时代脉搏,…

【linux】拓展知识-linux图形界面(GUI 程序)、X11介绍

linux图形界面 Linux 本身是没有图形化界面的,linux只是一个基于命令行的操作系统,所谓的图形化界面系统只不过中 Linux 下的应用程序。没有图形界面linux还是linux,很多装linux的WEB服务器就根本不装X服务器。 这一点和 Windows 不一样。W…

制作一个RISC-V的操作系统十-Trap和Exception(流 mtvec mepc mcause mtval mstatus trap完整流程)

文章目录 流mtvecmepcmcausemtvalmstatustrap 初始化trap的top half(硬件完成)trap的bottom half(软件完成)从trap返回代码实现 流 控制流:程序控制的执行流 trap分为中断和异常 mtvec base:存储trap入…

python|sort_values()排序

sort_value()可以用来对值(比如说年龄)进行排序 根据 ‘Age’ 列进行升序排序,如果 ‘Age’ 相同则根据 ‘Name’ 列进行降序排序 df_sorted_multi df.sort_values(by[Age, Name], ascending[True, False]) print(df_sorted_multi)

如何在WHM面板上更改主机名

本周有一个客户,购买Hostease的独立服务器并选择了WHM控制面板,询问我们的在线客服,如何在WHM面板上更改主机名。我们为用户提供教程,用户很快完成了设置。在此,我们分享这个操作教程,希望可以对您有帮助。…

SpringBoot内容协商快速入门Demo

1.什么内容协商 简单说就是服务提供方根据客户端所支持的格式来返回对应的报文,在 Spring 中,REST API 基本上都是以 json 格式进行返回,而如果需要一个接口即支持 json,又支持其他格式,开发和维护多套代码显然是不合理…

超图SuperMap-Cesium,地形图层,可以渲染一个或多个地形(地形可缓存DEM,TIN方式),webGL代码开发(2024-04-08)

1、缓存文件类型TIN格式,TIN的地形sct只能加一个 const viewer new Cesium.Viewer(cesiumContainer); viewer.terrainProvider new Cesium.CesiumTerrainProvider({isSct: true, // 是否为iServer发布的TIN地形服务,stk地形设置为falserequestWaterMask : true,…

代理IP在爬虫中的连接复用与开销减少

目录 一、引言 二、代理IP的基本概念 三、代理IP在爬虫中的使用 四、代理IP的连接复用 五、减少开销的策略 六、代码示例与注释 七、总结 一、引言 在爬虫开发中,代理IP的使用是常见的做法,尤其在目标网站设置了反爬虫机制时。代理IP能够帮助爬虫…