当前位置: 首页 > news >正文

论文笔记:基于多粒度信息融合的社交媒体多模态假新闻检测

整理了ICMR2023 Multi-modal Fake News Detection on Social Media via Multi-grained Information Fusion)论文的阅读笔记

  • 背景
  • 模型
  • 实验

背景

  在假新闻检测领域,目前的方法主要集中在文本和视觉特征的集成上,但不能有效地利用细粒度和粗粒度级别的多模态信息。此外,由于模态之间缺乏相关性或每个模态所做的决策之间存在矛盾,它们还存在歧义问题,如图一,为了克服这些挑战,本文提出了一个用于假新闻检测的多粒度多模态融合网络(MMFN)。
  MMFN分别使用两个基于transformer的预训练模型来编码文本和图像的令牌级特征。多模态模块融合细粒度特征,同时考虑到CLIP编码器编码的粗粒度特征。为了解决歧义问题,设计了基于相似性加权的单模态分支,以自适应地调整多模态特征的使用。
在这里插入图片描述

模型

  MMFN的网络设计如图2所示,由多模态特征编码器、多粒度特征融合模块、单模态分支和基于CLIP相似度的模态加权以及分类器组成。
在这里插入图片描述
  具体来说,这篇文章使用了三种预训练的编码器对多模态特征进行编码,分别是基于transformer的BERT和SWIN-T,基于对比学习的CLIP。
  需要注意的是,BERT和SWIN-T的输出都是token级的,BERT的输出表示为 T b = [ t 1 b , t 2 b , . . . , t n w b ] T^b=[t_1^b,t_2^b,...,t_{nw}^b] Tb=[t1b,t2b,...,tnwb],其中 t i b t_i^b tib表示文本嵌入中第i个token(也就是第i个词)的最后一个隐藏状态的输出, d b d_b db是单词嵌入的维度。SWIN-T的输出表示为 V s = [ v 1 s , v 2 s , . . . , v n p s ] V^s=[v_1^s,v_2^s,...,v_{n_p}^s] Vs=[v1s,v2s,...,vnps],其中, v i s ∈ R s s v_i^s\in R^{s_s} visRss为模型最后一层输出处对应于输入的第i个patch的隐藏状态,𝑛𝑝为SWIN-T中的patch数, d s d_s ds为视觉嵌入的隐藏大小。
  CLIP文本和图片编码器的结果为 X c = [ t c , v c ] X^c=[t^c,v^c] Xc=[tc,vc],分别表示图片和文本模态的嵌入向量,他们处于同一个嵌入空间。
  拿到了这些特征后,本文的单模态分支就是把BERT和SWIN-T的token级向量进行平平均池化,然后和CLIP的编码结果拼起来经过一个映射头,作为两个单模态分支特征,即: F t = Φ T ( T b ˉ ; t c ) F^t=\Phi_T(\bar{T_b};t^c) Ft=ΦT(Tbˉ;tc) F v = Φ V ( V s ˉ ; v c ) F^v=\Phi_V(\bar{V_s};v^c) Fv=ΦV(Vsˉ;vc)  接下来我们看粗细粒度的多模态融合模块,所谓细粒度,就是把 T b T_b Tb V s V_s Vs分别送入两个transformer架构的共注意力机制模块,得到互相加权后的文本和图片细粒度特征: F v t = C T ( ( T b W t ) , ( V s W v ) ) F^{vt}=CT((T^bW^t),(V^sW^v)) Fvt=CT((TbWt),(VsWv)) F t v = C T ( ( V s W v ) , ( T b W t ) ) F^tv=CT((V^sW^v),(T^bW^t)) Ftv=CT((VsWv),(TbWt))  然后通过几个全连接层把互相加权过的细粒度特征和粗粒度特征融合: M f = F F N 1 ( F v t ; F t v ) M^f=FFN_1(F^{vt};F^{tv}) Mf=FFN1(Fvt;Ftv) M c = F F N 2 ( t c ; v c ) M^c=FFN_2(t^c;v^c) Mc=FFN2(tc;vc) F m = s i m i l a r i t y ⋅ Φ M ( M f , M c ) F^m=similarity\cdot \Phi_M(M^f,M^c) Fm=similarityΦM(Mf,Mc)  similarity是通过CLIP特征算出来的模态间余弦相似度,作者认为,如果直接将单模态分支表示发送给分类器进行决策,分类器可能更倾向于使用具有更深网络的多模态表示来拟合结果,而单模态分支可能会干扰决策并导致更严重的歧义问题。因此使用CLIP余弦相似度作为多模态特征加权的系数来指导分类器的学习过程,也就是给多模态特征加权。
  将三个分支的特征送入分类头得到pre,损失函数是交叉熵。

实验

  使用的数据集是2017年MM文章提出的Twitter和Weibo,以及Fakenewsnet中的Gossipcop,得到了SOTA效果:
在这里插入图片描述
  消融实验:
在这里插入图片描述
  在微博的测试集上进行的T-SNE降维可视化:
在这里插入图片描述

相关文章:

论文笔记:基于多粒度信息融合的社交媒体多模态假新闻检测

整理了ICMR2023 Multi-modal Fake News Detection on Social Media via Multi-grained Information Fusion)论文的阅读笔记 背景模型实验 背景 在假新闻检测领域,目前的方法主要集中在文本和视觉特征的集成上,但不能有效地利用细粒度和粗粒度…...

攻防世界 xff_referer 题目解析

xff_referer 一:了解xxf和Referer X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。 一般的客户端发送HTTP请求没有X-Forwarded-For头的&#xff0…...

open-cd框架调试记录

源于论文Changer: Feature Interaction Is What You Need forChange Detection 源码位置:open-cd/README.md at main likyoo/open-cd (github.com) 同样是基于MMSegmentation框架的代码,不符合本人编程习惯所以一直也没有研究这东西,近期打…...

【算法刷题day17】Leetcode:110.平衡二叉树、257. 二叉树的所有路径、404.左叶子之和

文章目录 Leetcode 110.平衡二叉树解题思路代码总结 Leetcode 257. 二叉树的所有路径解题思路代码总结 Leetcode 404.左叶子之和解题思路代码总结 草稿图网站 java的Deque Leetcode 110.平衡二叉树 题目:** 110.平衡二叉树** 解析:代码随想录解析 解题思…...

Linux云计算之Linux基础2——Linux发行版本的安装

目录 一、彻底删除VMware 二、VMware-17虚拟机安装 三、MobaXterm 安装 四、Centos 发行版 7.9的安装 五、rockys 9.1的安装 六、ubuntu2204的安装 一、彻底删除VMware 在卸载VMware虚拟机之前,要先把与VMware相关的服务和进程终止 1. 在windows中按下【Windo…...

C++:赋值运算符(17)

赋值也就是将后面的值赋值给变量,这里最常用的就是 ,a1那么a就是1,此外还包含以下的赋值运算 等于int a 1; a10 a10加等于int a 1; a1;a2-减等于int a 1; a-1;a0*乘等于int a 2; a*5;a10/除等于int a 10; a/2;a5%模等于int a 10; a%…...

Spring Boot | Spring Boot的“数据访问“、Spring Boot“整合MyBatis“

目录: 一、Spring Boot”数据访问概述“二、Spring Boot”整合MyBatis”1. 基础环境搭建 (引入对应的“依赖启动器” 配置数据库的“相关参数”)① 数据准备 (导入Sql文件)② 创建项目,引入相应的启动器,编写数据库对应的“实体类”③额外添加pom.xml文…...

ActiViz中的数据集vtkPolyData

文章目录 前言一、数据结构二、数据内容三、几何操作四、数据导入与导出五、数据可视化六、函数详解1、SetPoints(vtkPoints points):2、SetPolys(vtkCellArray polys):3、GetNumberOfPoints():4、GetNumberOfCells():5、GetPointData():6、GetCellData():7、Ge...

【测试篇】测试用例

文章目录 前言具体设计测试用例等价类边界值场景设计法判定表(因果图)正交排列(用的非常少)错误猜测法 前言 什么是测试用例?? 测试用例是针对软件系统或应用程序的特定功能或场景编写的一组步骤&#xf…...

Shell学习 - 2.24 Shell let命令:对整数进行数学运算

let 命令和双小括号 (( )) 的用法是类似的,它们都是用来对整数进行运算,读者已经学习了《Shell (())》,再学习 let 命令就相当简单了。 注意:和双小括号 (( )) 一样,let 命令也只能进行整数运算,不能对小数…...

langchain Chroma 构建本地向量数据库

langchain Chroma 构建本地向量数据库 # import from langchain_community.document_loaders import TextLoader from langchain_community.embeddings.sentence_transformer import (SentenceTransformerEmbeddings, ) from langchain_community.embeddings import HuggingFa…...

Rust 中的字符串类型:`str` 和 `String`

Rust 中的字符串类型:&str 和 String 文章目录 Rust 中的字符串类型:&str 和 String1. &str:不可变的字符串引用2. String:可变的字符串3、字符串使用综合案例代码执行结果 在 Rust 编程语言中,有两种主要…...

Visual Studio(VS) 搭建 QT 开发环境

Visual Studio(VS) 搭建 QT 开发环境 在当今的软件开发领域,Visual Studio(VS)是一款备受欢迎的集成开发环境(IDE),而 QT 则是一个强大的跨平台应用程序框架。将两者结合使用,可以为开发人员提供高效、便捷的开发体验。本文将详细介绍如何在 VS2022 中搭建 QT 开发环…...

Qt模拟面试(超硬核)

1. 请简要介绍一下你的 Qt 开发经验。 建议:诚实地描述你的 Qt 经验,包括你使用过的 Qt 版本、开发过的项目类型、遇到的挑战以及如何解决它们。 假如你没有开发经验,可以提供一些关于 Qt 开发的一般信息和常见的经验分享。 Qt 是一个跨平…...

某眼实时票房接口获取

某眼实时票房接口获取 前言解决方案1.找到veri.js2.找到signKey所在位置3.分析它所处的这个函数的内容4.index参数的获取5.signKey参数的获取运行结果关键代码另一种思路票房接口:https://piaofang.maoyan.com/dashboard-ajax https://piaofang.maoyan.com/dashboard 实时票房…...

cesium键盘控制相机位置和姿态

该类主要用于监听键盘事件并在用户按下不同按键时执行相应的相机操作,如改变相机的位置、偏航角、俯仰角和翻滚角,从而实现在三维场景中的漫游。 以下是代码的主要逻辑: 导入Cesium库,并定义一个flags对象,其中包含了…...

基于ArrayList实现简单洗牌

前言 在之前的那篇文章中,我们已经认识了顺序表—>http://t.csdnimg.cn/2I3fE 基于此,便好理解ArrayList和后面的洗牌游戏了。 什么是ArrayList? ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表&…...

Paddle实现人脸对比

人脸对比 人脸对比,顾名思义,就是对比两个人脸的相似度。本文将用Paddle实现这一功能。 PS:作者肝了整整3天才稍微搞明白实现方法 数据集准备 这里使用百度AI Studio的开源数据集: 人脸数据_数据集-飞桨AI Studio星河社区 (b…...

挖一挖:PostgreSQL Java里的double类型存储到varchar精度丢失问题

前言 大概故事是这样的,PostgreSQL数据库,表结构: create table t1(a varchar);然后使用标准的Java jdbc去插入数据,其基本代码如下: import java.sql.*; public class PgDoubleTest {public static void main(Stri…...

函数对象基本使用

一、函数对象概念 1.重载函数调用操作符的类,其对象常称为函数对象 2.函数对象使用重载的()时,行为类似函数调用,也叫仿函数 本质: 函数对象(仿函数)是一个类,不是一个函数 二、函数对象使用 特点: 函…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

pam_env.so模块配置解析

在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...

WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)

一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...

EtherNet/IP转DeviceNet协议网关详解

一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

初探Service服务发现机制

1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源&#xf…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机(无人驾驶飞行器,UAV)技术的快速发展,其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统,无人机的“黑飞”&…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...