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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MT3022 召唤神龙

思路&#xff1a;二分答案 。check():检查组p套卡是否成立&#xff0c;即检查r卡是否足够组成p套卡。 &#xff08;易错点&#xff1a;check的思路&#xff0c;开long long&#xff09; #include <bits/stdc.h> using namespace std; long long int n, m; long long int…

【VScode】同时编辑多处

【VScode】同时编辑多处 1. 多光标自定义批量编辑2. 选择多个&#xff0c;同时操作(批量选中局部匹配项)3. 取消选择4. 在不移动光标的情况下滚动屏幕5. 批量选中全局匹配项6.重点6.1 通过上下键选择多行6.2 同时选中所有行的末尾6.3 选中多列另一种方式6.4 通过正则的方式配置…

东方博宜 1582. 马里奥的银币2

东方博宜 1582. 马里奥的银币2 思路&#xff1a;这道题好简单~ 注意的点是 n/2 要记得变成浮点数 n/2.0 或者 n*1.0/2 #include<iostream> using namespace std; int main() {int a[1001] ;int n ;cin >> n ;for(int i 0 ; i < n ; i){cin >> a[i] ;}…

C++奇迹之旅:探索类对象模型内存的存储猜想

文章目录 &#x1f4dd;前言&#x1f320; 类的实例化&#x1f309;类对象模型 &#x1f320; 如何计算类对象的大小&#x1f309;类对象的存储方式猜想&#x1f320;猜想一&#xff1a;对象中包含类的各个成员&#x1f309;猜想二&#xff1a;代码只保存一份&#xff0c;在对象…

CST电磁仿真基本单位设置和保存结果【仿真教程】

保存结果的Result Navigator 积累的结果一目了然&#xff01; 用户界面上的Result Navigator 在一个仿真工程中更改变量取值进行仿真分析或者改变设置进行仿真分析时&#xff0c;之前的1DResult会不会消失呢&#xff1f; 1D Result&#xff1a;CST中1D Result指的是Y值取决…

VirusTaxo:病毒物种注释

https://github.com/omics-lab/VirusTaxo 安装 git clone https://github.com/omics-lab/VirusTaxo mamba create -n VirusTaxo python3.10 mamba activate VirusTaxo cd VirusTaxo python3 -m venv environment source ./environment/bin/activate pip install -r require…

DSP笔记12-PWM基础知识及EPWM

PWM pulse width modulation 脉冲宽度调制&#xff0c;宽度可调节的方波脉冲&#xff0c;驱动开关器件&#xff0c; 参数&#xff1a; 1.频率f 1kHz&#xff0c;2kHz开关损耗 2.周期T 3.幅值&#xff0c;高低电平之间电压 gpio输出3.3V&#xff0c;转换成5V高电平输出 4.占…

使用Springboot配置生产者、消费者RabbitMQ?

生产者服务 1、引入依赖以及配置rabbitmq 此时我们通过使用springboot来快速搭建一个生产者服务 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> applica…

规则引擎之LiteFlow应用

官网地址&#xff1a;LiteFlow DEMO 整体结构 1.引入maven依赖 <dependency><groupId>com.yomahub</groupId><artifactId>liteflow-spring-boot-starter</artifactId><version>2.11.4.2</version> </dependency> 2. 配置yml …

Linux--进程的概念(一)

目录 一、冯诺依曼体系结构二、操作系统2.1 什么是操作系统2.2 操作系统的意义 三、进程3.1 进程的基本概念3.2 描述进程——PCB3.3 进程和程序的区别3.4 task_struct-PCB的一种3.5 task_struct的内容分类 四、如何查看进程4.1 通过系统文件查看进程4.2 通过ps指令查看进程 五、…

uni-app项目创建方式

原生小程序与uni-app的区别 创建uni-app的方式 1.通过HBuilderX创建 2.通过命令行创建 vue3ts版&#xff1a;npx degit dcloudio/uni-preset-vue#vite-ts 项目名称 用vscode开发uni-app项目 安装命令&#xff1a;npm i -D types/wechat-miniprogram uni-helper/uni-app-typ…

大话设计模式——17.状态模式(State Pattern)

简介 对象的行为依赖于它的状态&#xff08;属性&#xff09;&#xff0c;可以根据状态的改变而改变相关行为。 UML图&#xff1a; 应用场景&#xff1a; 对象的行为取决于其状态&#xff0c;并且必须要在运行时刻根据状态而改变行为代码中包含大量与对象状态有关的条件语句 …

4月10日(信息差)

快捷新闻&#xff1a; &#x1f396; 素材来源官方媒体/网络新闻 &#x1f384; 地震预警App被曝收10元年费&#xff0c;回应称仅限苹果系统 &#x1f30d; 2024清明档首日票房破2亿 &#x1f30b; 浙江省杭州市余杭区设立2亿元网络微短剧发展基金 &#x1f381; 抖音拟以超 7…

小狐狸转账失败,提示gas费过高

做web3开发的时候&#xff0c;明明自己小狐狸里还有2.15的代币&#xff0c;但页面我要转出2.1的时候&#xff0c;明明是够的&#xff0c;而且使用小狐狸提示gas费用是21000&#xff0c;这已经是最小的了&#xff0c;但网页转出到其他账户总是提示失败。而且这个错误非常不好捕获…

使用OMP复原一维信号(MATLAB)

参考文献 https://github.com/aresmiki/CS-Recovery-Algorithms/tree/master MATLAB代码 %% 含有噪声 % minimize ||x||_1 % subject to: (||Ax-y||_2)^2<eps; % minimize : (||Ax-y||_2)^2lambda*||x||_1 % y传输中可能含噪 yyw % %% clc;clearvars; close all; %% 1.构…

【Redis】底层跳表实现

先巩固Redis的数据类型以及底层的数据结构&#xff1a; ZSet&#xff08;有序集合&#xff09;可以使用两种不同的内部数据结构来表示&#xff1a;压缩列表&#xff08;ziplist&#xff09;和跳跃表&#xff08;skiplist&#xff09;。 跳表是redis底层SortedSet(ZSet)的数据…

深入理解nginx realip模块[上]

目录 1. 引言2. Real IP模块的使用2.1 启用Real IP模块2.2 配置Real IP模块2.2.1 配置指令2.2.2 举例 3. 变量的使用 深入理解nginx realip模块[上] 深入理解nginx realip模块[下] 1. 引言 nginx 的 Real IP 模块用于解决代理服务器转发请求到nginx上时可能出现的 IP 地址问题…

C++11 如何优雅地封装线程库以实现多线程编程

在C11标准中&#xff0c;多线程编程被正式纳入语言规范&#xff0c;通过引入 <thread> 头文件&#xff0c;C为开发者提供了一套统一且高效的线程API。std::thread 是 C11 标准库中用于创建和管理线程的核心类。本文将详细介绍C11是如何封装Thread库&#xff0c;以及如何通…

QT:信号与槽

作业&#xff1a; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和…

使用axios进行前后端数据传输

最近在和朋友合作写一个新的项目&#xff0c;前后端进行了分离&#xff0c;既然是分离的&#xff0c;肯定需要交互&#xff0c;今天这篇文章详细介绍一下数据交互的一种常见方式&#xff1a;使用axios,希望对大家有所帮助。 前端&#xff1a;以LoginPage.vue登录页面为例&…