Interpretable Multimodal Misinformation Detection with Logic Reasoning

原文链接

Hui Liu, Wenya Wang, and Haoliang Li. 2023. Interpretable Multimodal Misinformation Detection with Logic Reasoning. In Findings of the Association for Computational Linguistics: ACL 2023, pages 9781–9796, Toronto, Canada. Association for Computational Linguistics.

核心:多模态、可解释

基本架构

输入为文本 T T T和图片 I I I,(此处貌似只允许输入一张图片,而实际上情况中可能不止一张)

使用Tokenizer处理 T T T,另用CNN处理 I I I,将处理后的feature用GCN组合到一起得到object o o o,由

Methodology

在这里插入图片描述

Feature Extraction

对于文本 T T T,先将其分割成 m m m个token,对每个token再使用BERT+一层LSTM将其转换为 d d d维的向量 X T \textbf{X}_T XT m m m个token总共得到 T ∈ R m × d \textbf{T}\in \mathcal{R}^{m\times d} TRm×d

对于图片 I I I,先resize到 224 × 224 224\times224 224×224,再划分为 z = r 2 z=r^2 z=r2个patch,每个patch大小为 224 / z × 224 / z 224/z\times224/z 224/z×224/z,每个patch使用ResNet34+ViT+2层MLP转化为 d d d为向量 X I \textbf{X}_I XI,最后得到 I ∈ R r × d \textbf{I}\in \mathcal{R}^{r\times d} IRr×d

Cross-modal Object Generation

在这一步,生成单模态和跨模态的隐式表征。

在这篇工作中,定义了5种Object,分别是单文本、单图像、双文本、双图像以及文本图像混合,如下所示。
在这里插入图片描述
在上一步得到若干feature后,我们通过GCN将这些feature结合起来,将之前提取出的 X T , X I \textbf{X}_T,\ \textbf{X}_I XT, XI当作GCN中的节点,这些节点的embedding就是一个 d d d维向量。在连GCN的边时,使用Spacy技术寻找token之间的依赖关系,在存在依赖关系的token之间连边,而对每个patch则是将在原图片里相邻的patch连在一起,而文本和图片之间则是直接全连接的。

GCN的初始输入 H 0 = [ T , I ] ∈ R ( m + r ) × d \textbf{H}^0=[\textbf{T},\textbf{I}]\in\mathcal{R}^{(m+r)\times d} H0=[T,I]R(m+r)×d,邻接矩阵 A ∈ R ( m + r ) × ( m + r ) \textbf{A}\in \mathcal{R}^{(m+r)\times (m+r)} AR(m+r)×(m+r) ,每一层graph都有一个线性变换权重矩阵 W ∈ R d × d W\in\mathcal{R}^{d\times d} WRd×d,整个GCN的转移方程为 H l = ReLU ( D − 1 2 A D − 1 2 H l − 1 W l ) \textbf{H}^l=\text{ReLU}(\textbf{D}^{-\frac{1}{2}}\textbf{A}\textbf{D}^{-\frac{1}{2}}\textbf{H}^{l-1}\textbf{W}^l) Hl=ReLU(D21AD21Hl1Wl)。如此即可得到每一层的每个节点的feature,即 H l = [ T l , V l ] , l ∈ { 0 , 1 , 2 , ⋯ , L } \textbf{H}^l=[\textbf{T}^l, \textbf{V}^l], l\in \{0, 1, 2, \cdots, L\} Hl=[Tl,Vl],l{0,1,2,,L}

利用这些feature,即可根据上表中的公式计算出每层的5种Objects,分别是 O t l ∈ R m × d , O v l ∈ R r × d , O t , t l ∈ R ( m × m ) × d , O v , v l ∈ R ( r × r ) × d , O t , v l ∈ R ( m × r ) × d \textbf{O}_t^l\in\mathcal{R}^{m\times d},\textbf{O}_v^l\in\mathcal{R}^{r\times d},\textbf{O}_{t,t}^l\in\mathcal{R}^{(m\times m)\times d},\textbf{O}_{v,v}^l\in\mathcal{R}^{(r\times r)\times d},\textbf{O}_{t,v}^l\in\mathcal{R}^{(m\times r)\times d} OtlRm×d,OvlRr×d,Ot,tlR(m×m)×d,Ov,vlR(r×r)×d,Ot,vlR(m×r)×d

每种 O \textbf{O} O中的小 o ∈ R d \textbf{o}\in \mathcal{R}^{d} oRd会再通过一个一层+ReLU的MLP,得到一个分数。每个种类的 O \textbf{O} O种top-k的object会被抽出,记作 O ^ t l , O ^ v l , O ^ t , t l , O ^ v , v l , O ^ t , v l \hat{\textbf{O}}_t^l,\hat{\textbf{O}}_v^l,\hat{\textbf{O}}_{t,t}^l,\hat{\textbf{O}}_{v,v}^l,\hat{\textbf{O}}_{t,v}^l O^tl,O^vl,O^t,tl,O^v,vl,O^t,vl,均属于 R k × d \mathcal{R}^{k\times d} Rk×d。为了让这个过程可以反向传播,实现的时候可以通过disable其他非top-k的节点实现。

Clause Generation

得到这些object的feature之后,我们就要计算他们支持不同label的概率,首先要得到对应body predicate,比如 b t ( t , y ) b_t(t,y) bt(t,y) 的表征,记作 B t ∈ R k × d \textbf{B}_t\in \mathcal{R}^{k\times d} BtRk×d,其他同理。 B t \textbf{B}_t Bt计算如下
B t = sparsemax ( [ O ^ t , y ] W t e C t T ) C T \textbf{B}_t=\text{sparsemax}([\hat{\textbf{O}}_t,\textbf{y}]\textbf{W}_t^e\textbf{C}_t^T)\textbf{C}^T Bt=sparsemax([O^t,y]WteCtT)CT [ O ^ t , y ] ∈ R k × 2 d , 其中 y ∈ R k × d [\hat{\textbf{O}}_t,\textbf{y}]\in\mathcal{R}^{k\times 2d}, 其中\textbf{y}\in\mathcal{R}^{k\times d} [O^t,y]Rk×2d,其中yRk×d为label的 d d d维表征广播为 k × d k\times d k×d的产物, W t e ∈ R 2 d × d \textbf{W}_t^e\in\mathcal{R}^{2d\times d} WteR2d×d为可学习参数, C t ∈ R g × d \textbf{C}_t\in\mathcal{R}^{g\times d} CtRg×d则是预先定义的correlation(这里的“预先定义”指每个correlation对应的predicate是先定义好的,实际上也是随机初始化的)但在训练过程中也是可学习的。

以此类推,我们也可以得到其他几种predicate的表征, B = [ B t , B v , B t , t , B v , v , B t , v ] ∈ R 5 k × d \textbf{B}=[\textbf{B}_t,\textbf{B}_v,\textbf{B}_{t,t},\textbf{B}_{v,v},\textbf{B}_{t,v}]\in\mathcal{R}^{5k\times d} B=[Bt,Bv,Bt,t,Bv,v,Bt,v]R5k×d(这应该只是一个label对应的表征,严格来说应该写作 B y \textbf{B}_y By作为区分)。

除了这几个从GCN里提取的表征,我们还对整个文本和图片进行了编码,文本的编码 t T = T T softmax ( T W T ) ∈ R d \textbf{t}_T=\textbf{T}^T\text{softmax}(\textbf{T}\textbf{W}_T)\in\mathcal{R}^d tT=TTsoftmax(TWT)Rd,图片的编码 v I = V T softmax ( V W I ) ∈ R d \textbf{v}_I=\textbf{V}^T\text{softmax}(\textbf{V}\textbf{W}_I)\in\mathcal{R}^d vI=VTsoftmax(VWI)Rd,其中 W T , W I \textbf{W}_T,\textbf{W}_I WT,WI均属于 R d × 1 \mathcal{R}^{d\times 1} Rd×1为可学习参数,注意与之前一层的打分MLP不是参数共用的。

接下来,我们计算两种attention score,分别是
S T , I = sparsemax ( B X T , I [ t T , v I ] ) , S y = sparsemax ( [ B , y , B − y , B ∘ y ] W y ) \textbf{S}_{T,I}=\text{sparsemax}(\textbf{B}\textbf{X}_{T,I}[\textbf{t}_T,\text{v}_I]),\\ \textbf{S}_y=\text{sparsemax}([\textbf{B},\textbf{y},\textbf{B}-\textbf{y},\textbf{B}\circ\textbf{y}]\textbf{W}_y) ST,I=sparsemax(BXT,I[tT,vI]),Sy=sparsemax([B,y,By,By]Wy)其中, X T , I ∈ R d × 2 d , W y ∈ R 4 d × 1 \textbf{X}_{T,I}\in\mathcal{R}^{d\times 2d}, \textbf{W}_y\in\mathcal{R}^{4d\times 1} XT,IRd×2d,WyR4d×1均为可学习参数。这两个分数一个注重news的内容(文本和图片),另一个注重和label的关系,最终两个score再合为一个score, S ∈ R 5 k \textbf{S}\in\mathcal{R}^{5k} SR5k
S = sparsemax ( S T , I ∘ S y ) \textbf{S}=\text{sparsemax}(\textbf{S}_{T,I}\circ\textbf{S}_y) S=sparsemax(ST,ISy)每个分数描述了其对应的clause(根据我的理解,predicate是模板,填入内容后称为clause)与判断整个news是否为真的相关性,因此我们并不需要将整个 5 k 5k 5k个clause全部用到,而是筛选其中一部分,即top- ⌊ 5 k × β ⌋ \lfloor5k\times \beta\rfloor 5k×β的predicate。这些筛选出的clause进入下一个step。

Clause Evaluation

以上只是生成clause的过程,最终目的还是要判断这个news是不是真的。从可解释性的角度出发,一个news为不为真的可以从某些clause为不为真推导出来,因此我们需要先得到这些clause为真的概率。

对于 b t ( t , y ) b_{t}(t,y) bt(t,y),他的truth value可以计算为:
μ ( b t ( t , y ) ) = sigmoid ( [ b t , p , b t − p , b t ∘ p ] W μ ) \mu(b_{t}(t,y))=\text{sigmoid}([\textbf{b}_t,\textbf{p},\textbf{b}_t-\textbf{p},\textbf{b}_t\circ\textbf{p}]\textbf{W}_{\mu}) μ(bt(t,y))=sigmoid([bt,p,btp,btp]Wμ)其中, p = o t ∘ y ∈ R d , W μ ∈ R 4 d × 1 \textbf{p}=\textbf{o}_t\circ\textbf{y}\in\mathcal{R}^d,\textbf{W}_{\mu}\in\mathcal{R}^{4d\times 1} p=otyRd,WμR4d×1为可训练参数, b t ∈ R d \textbf{b}_t\in\mathcal{R}^{d} btRd是从 B t \textbf{B}_t Bt的对应行中取出的。

将这些clause的truth value用and运算连接,即可得到对应label的概率。更进一步,由于GCN中每层都会输出一组 O ^ t l , O ^ v l , O ^ t , t l , O ^ v , v l , O ^ t , v l \hat{\textbf{O}}_t^l,\hat{\textbf{O}}_v^l,\hat{\textbf{O}}_{t,t}^l,\hat{\textbf{O}}_{v,v}^l,\hat{\textbf{O}}_{t,v}^l O^tl,O^vl,O^t,tl,O^v,vl,O^t,vl,因此我们也会得到 L L L组object及其后面的clause,这些clause可以看作是相对独立的,因此可以用or运算连接。记第 l l l层第 i i i个clause的truth value为 b i l b_i^l bil,则整则news为label y y y的概率为
( b 1 0 ∧ ⋯ ) ∨ ( b 1 1 ∧ ⋯ ) ∨ ⋯ ∨ ( b 1 L ∧ ⋯ ) ⇒ h ( ( T , I ) , y ) (b_1^0\land\cdots)\lor(b_1^1\land\cdots)\lor\cdots\lor(b_1^L\land\cdots)\Rarr h((T,I),y) (b10)(b11)(b1L)h((T,I),y)这里的and和or运算使用product T-norm,即 a ∧ b = a b , a ∨ b = 1 − ( 1 − a ) ( 1 − b ) a , b ∈ [ 0 , 1 ] a\land b=ab,a\lor b=1-(1-a)(1-b)\ \ a,b\in[0,1] ab=ab,ab=1(1a)(1b)  a,b[0,1]

对于每个label y y y,都算出一个truth value,使用cross-entropy计算loss。

实验

指标

在三个数据集上实施了实验,两个misinformation数据集Twitter和Weibo,一个sarcasm数据集sarcasm。
在这里插入图片描述
在这里插入图片描述
从准确性来讲,很好,都是SOTA,而且在有一定解释性的基础上还提升了模型性能。另外,Precision明显要比其他的模型好,可能是logic帮助模型更好的学习到了rule而不是对噪声过拟合。

可解释性

在这里插入图片描述
cd展现出模型会根据文本中是否有足够清晰的表述来判断一则消息是否是rumor,a则是模型发现图片中有地方是P的,b则是人类不是很能理解但判断对了的例子。

消融实验

调整Correlation的多少,即 g g g,发现最初随着 g g g升高,performance一路升高,但到达一个峰值后缓慢下降。
在这里插入图片描述
调整筛选Clause的阈值,即 β \beta β,发现在 β \beta β超过 0.15 0.15 0.15后性能急剧下降,可能有两个原因:1)选出来的clause多了以后,conjunction的操作会导致指数消失,最后得到的概率很小。2)选出来的clause太多,包含了一些低分的clause,引入了噪声。
在这里插入图片描述
同时,考察GCN不同Layer的选取对实验结果的影响,发现只挑选第二层时效果最佳,说明经过多层GCN整合后的多模态信息对判断misinformation更有用,但加了多层以后似乎效果有所下降。
在这里插入图片描述

可改进

只支持一张图片,实际操作中可能不止一张图片。
product T-norm 的 conjunction操作容易遭遇概率消失,或许可以使用其他方法连接这些clause的truth value。
文本和图片直接全部匹配连接,这部分是否可以改进?
predicate只能填入两个变量,不知道 t , t t,t t,t v , v v,v v,v的predicate是否有那么大的作用,因为GCN同样有融合几个feature的功能。

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

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

相关文章

uniapp自定义进度条组件

目标效果 原型设计为这样的样式&#xff0c;但是现有的进度条组件样式都无法满足需求&#xff0c;于是编写组件实现。 设计引用格式为 <zLineProgress :total"15" :val"7" title"你好吗" />定义组件 <template><view style&…

递增子序列(回溯)

题目描述 给你一个整数数组 nums &#xff0c;找出并返回所有该数组中不同的递增子序列&#xff0c;递增子序列中 至少有两个元素 。你可以按 任意顺序 返回答案。 数组中可能含有重复元素&#xff0c;如出现两个整数相等&#xff0c;也可以视作递增序列的一种特殊情况。 样例…

继上海车展后,英信翻译再进广州车展大显身手

第二十一届广州车展于2023年11月17日-26日在广州琶洲盛大举行 &#xff0c;历时十天的展会共吸引到场观众84.7万人次&#xff0c;举办了67场新闻发布会&#xff0c;近5000家海内外媒体机构的1.2万名媒体人员参与报道了展会盛况&#xff0c;再创历史新高。本届广州车展在国内外企…

Oracle(2-9) Oracle Recovery Manager Overview and Configuration

文章目录 一、基础知识1、User Backup VS RMAN2、Restoring &Recovering DB 还原&恢复数据库3、Recovery Manager Features 管理恢复功能4、RMAN Components RMAN组件5、Repository1: Control File 存储库1:控制文件6、Channel Allocation 通道道分配7、Media Manageme…

解决IDEA springboot“spring-boot-maven-plugin“报红问题方法

本篇文章小编给大家分享一下解决IDEA springboot"spring-boot-maven-plugin"报红问题方法&#xff0c;文章代码介绍的很详细&#xff0c;小编觉得挺不错的&#xff0c;现在分享给大家供大家参考&#xff0c;有需要的小伙伴们可以来看看。 使用环境 项目环境&#x…

CodeTON Round #7 (Div. 1 + Div. 2) A~E

A.jagged Swaps&#xff08;思维&#xff09; 题意&#xff1a; 给出一个包含 n n n个数字的序列&#xff0c;每次可以选择一个同时大于左右两边相邻的数字&#xff0c;将这个数字与它右边的数字交换&#xff0c;问能否在经过若干次操作后使序列变为升序。 分析&#xff1a;…

华为S9700S-S无线控制器修改SSID密码

PS&#xff1a;在两台无线控制器做了VRRP的情况下&#xff0c;只能在Master上面修改&#xff0c;Slave没有修改权限&#xff0c;密码是以密文的方式存在&#xff0c;看不到密码本身字符 软件版本&#xff1a;Version 5.170 (AirEngine9700S-S V200R020C00SPC300) AP配置→AP组…

Find My保温杯苹果Find My技术与保温杯结合,智能防丢,全球定位

保温杯一般是由陶瓷或不锈钢加上真空层做成的盛水的容器&#xff0c;顶部有盖&#xff0c;密封严实&#xff0c;真空绝热层能使装在内部的水等液体延缓散热&#xff0c;以达到保温的目的。几乎每一款保温杯都有自己与众不同的特点&#xff0c;有的是双重盖设计&#xff0c;开车…

如何快速生成项目目录结构树?

经常在网上看到下面这种由一个项目&#xff0c;生成一个结构树&#xff0c;你知道它是怎么生成的吗&#xff1f; 这就是利用本文要介绍的一个工具——Treer&#xff0c;treer就是一款专门用来快速生成目录结构树的命令行工具。 第一步&#xff1a;安装treer 在终端执行全局…

C语言碎片知识

sizeof 1.sizeof是C语言中的一个操作符&#xff0c;同时也是关键字&#xff01;&#xff01;&#xff01;&#xff01; 2.sizeof的操作数可以是类型&#xff0c;变量或表达式 如图&#xff0c;第一个为什么是6&#xff1f;&#xff0c;因为先计算了3的大小&#xff0c;占4个字…

STM32存储左右互搏 SPI总线读写FRAM MB85RS16

STM32存储左右互搏 I2C总线读写FRAM MB85RS16 在中低容量存储领域&#xff0c;除了FLASH的使用&#xff0c;&#xff0c;还有铁电存储器FRAM的使用&#xff0c;相对于FLASH&#xff0c;FRAM写操作时不需要预擦除&#xff0c;所以执行写操作时可以达到更高的速度&#xff0c;其…

众里寻她千百度:使用Excalidraw一句话绘制进销存系统采购入库流程

引言&#xff1a; 本文将介绍如何使用Excalidraw这一在线绘图工具来绘制进销存系统中的采购入库流程&#xff0c;帮助您更好地理解和优化采购流程。 正文&#xff1a; 1. 打开Excalidraw网站&#xff1a; 在浏览器中输入"https://excalidraw.com"&#xff0c;打开Ex…

图书馆座位预约时间冲突提示(前后端全) 前端elementUI 时间选择器只显示时和分,SQL实现时间冲突判断

背景 帮客户定制项目&#xff0c;要实现图书馆预约座位的功能。 功能描述如下&#xff1a;学生选择开始时间和结束时间&#xff0c;只选择小时和分钟&#xff0c;提交预约后&#xff0c;如果该时间有冲突提示学生修改预约时间。 问题 前端样式选择的是elmentUI&#xff0c;但…

深入了解JavaScript事件绑定:实现高效可靠的事件处理

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript-事件绑定方式 目录 事件绑定方式 什么是事件 DOM0级 事件 DOM0级事件…

OSPF下的宣告默认路由方法

作者简介&#xff1a;大家好&#xff0c;我是Asshebaby&#xff0c;热爱网工&#xff0c;有网络方面不懂的可以加我一起探讨 :1125069544 个人主页&#xff1a;Asshebaby博客 当前专栏&#xff1a; 网络HCIP内容 特色专栏&#xff1a; 常见的项目配置 本文内容&am…

【OpenGL】窗口的创建

从今天开始我们开始学习OpenGL&#xff0c;从0开始&#xff0c;当然是有C基础的前提 首先包含glad和GLFW的头文件 #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostream> 初始化 GLFW 在 main 函数中&#xff0c;我们首先使用 glfwInit 初…

数学建模-基于集成学习的共享单车异常检测的研究

基于集成学习的共享单车异常检测的研究 整体求解过程概述(摘要) 近年来&#xff0c;共享单车的快速发展在方便了人们出行的同时&#xff0c;也对城市交通产生了一定的负面影响&#xff0c;其主要原因为单车资源配置的不合理。本文通过建立单车租赁数量的预测模型和异常检测模型…

深入理解URL、URI和URN在Web开发中的重要性

引言&#xff1a; 在Web开发中&#xff0c;我们经常听到URL、URI和URN这几个术语&#xff0c;它们是构建和理解互联网资源的基础。虽然它们看起来相似&#xff0c;但实际上代表着不同的概念。本文将深入研究URL、URI和URN的定义、用途以及在Web开发中的重要性。 一、什么是URI&…

成为AI产品经理——模型稳定性评估(PSI)

一、PSI作用 稳定性是指模型性能的稳定程度。 上线前需要进行模型的稳定性评估&#xff0c;是否达到上线标准。 上线后需要进行模型的稳定性的观测&#xff0c;判断模型是否需要迭代。 稳定度指标(population stability index ,PSI)。通过PSI指标&#xff0c;我们可以获得不…

了解 ignore_above 参数对 Elasticsearch 中磁盘使用的影响

在 Elasticsearch 中&#xff0c;ignore_above 参数允许你忽略&#xff08;而不是索引&#xff09;长于指定长度的字符串。 这对于限制字段的大小以避免性能问题很有用。 在本文中&#xff0c;我们将探讨 “ignore_above” 参数如何影响 Elasticsearch 中字段的大小&#xff0c…