论文笔记:相似感知的多模态假新闻检测
整理了RecSys2020 Progressive Layered Extraction : A Novel Multi-Task Learning Model for Personalized Recommendations)论文的阅读笔记
- 背景
- 模型
- 实验
论文地址:SAFE
背景
在此之前,对利用新闻文章中文本信息和视觉信息之间的关系(相似性)的关注较少。这种相似性有助于识别虚假新闻,例如,虚假新闻也许会试图使用不相关的图片来吸引读者的注意力。本文提出了一种相似感知的新闻检测方法(SAFE),该方法研究新闻文章的多模态(文本和视觉)信息。首先,分别提取文本特征和视觉特征进行新闻表示。进一步研究了跨模态提取的特征之间的关系。这种新闻文本和视觉信息的表征以及它们之间的关系被共同学习并用于预测假新闻。所提出的方法有助于根据文本、图像或不匹配来识别新闻文章的真实性。
SAFE由三个模块组成,分别进行(1)多模态(文本和视觉)特征提取;(2)模态内(或者说模态无关)假新闻预测;(3)跨模态相似性提取。
主要贡献:提出了第一种研究新闻文本和视觉信息之间的关系(相似性)在预测假新闻中的作用的方法,联合利用多模态(文本和视觉)和关系信息来学习新闻文章的表示和预测假新闻。
模型
符号定义:对于一篇新闻(article) A = { T , V } A=\{T,V\} A={T,V}由视觉信息 V V V和文本信息 T T T组成,定义 t ∈ R d t\in R^d t∈Rd和 v ∈ R d v\in R^d v∈Rd作为相应的表示, t = M t ( T , θ t ) t=M_t(T,\theta_t) t=Mt(T,θt)、 v = M v ( V , θ v ) v=M_v(V,\theta_v) v=Mv(V,θv),定义相似度函数 s = M s ( t , v ) s=M_s(t,v) s=Ms(t,v),s是个0到1之间的值。通过这些信息,SAFE得到文章的二分类目标 y ^ = 0 / 1 \hat y=0/1 y^=0/1,定义总的函数: M p : ( M t , M v , M s ) ⟶ θ t , θ v , θ s y ^ ∈ { 0.1 } M_p:(M_t,M_v,M_s)\stackrel{\theta_t,\theta_v,\theta_s}{\longrightarrow}\hat y\in\{0.1\} Mp:(Mt,Mv,Ms)⟶θt,θv,θsy^∈{0.1}。
文本特征提取:本文使用经过全连接层扩展的Test-CNN提取每篇文章的表示,其结构如图二:

包含一个卷积层和最大池化,给定一段包含n个单词的内容,每个单词首先被编码为 x t l ∈ R k , l = 1 , 2 , . . . , n x_t^l\in R^k,l=1,2,...,n xtl∈Rk,l=1,2,...,n经过卷积层,我们会得到一个featuremap,定义为 C t = { c t i } i = 1 n − h + 1 C_t=\{c_t^i\}_{i=1}^{n-h+1} Ct={cti}i=1n−h+1, h h h就是卷积核的大小,对相邻的h个单词的表示进行卷积,这个过程的公式: c t i = σ ( w t ⋅ x t i : ( i + h − 1 ) + b t ) c_t^i=\sigma(w_t\cdot x_t^{i:(i+h-1)}+b_t) cti=σ(wt⋅xti:(i+h−1)+bt) x i : ( i + h − 1 ) = x i ⊕ x i + 1 ⊕ . . . ⊕ x i + h − 1 x^{i:(i+h-1)}=x_i\oplus x_{i+1} \oplus...\oplus x_{i+h-1} xi:(i+h−1)=xi⊕xi+1⊕...⊕xi+h−1 其中 ⊕ \oplus ⊕表示的是concat操作。通过公式我们可以看到,他这里所谓的卷积就是把窗口大小的单词表示全部拼接起来然后过一个全连接层,经过卷积后,每一个卷积核h,我们都会拿到一个n乘1的表示,n是单词数量。然后对于每一个卷积核形成的featuremap进行最大池化。到这里,我们定义拿到的结果为 c ^ t = m a x { c t i } i = 1 n − h + 1 , c ^ t ∈ R g \hat c_t=max\{c_t^i\}_{i=1}^{n-h+1},\hat c_t \in R^g c^t=max{cti}i=1n−h+1,c^t∈Rg,这个g就是卷积核的数量。
然后作者又对它进行了进一步的处理: t = W t c ^ t + b t t = W_t\hat c_t+b_t t=Wtc^t+bt拿到最终的文本表示。这是一个d维的,所以 W t W_t Wt的维度应该是d乘g。
图像特征提取,首先使用预训练的image2sentence model,然后还是使用Test-CNN提取表示,流程与上文相同,最后一步为 v = W v c ^ v + b v v = W_v\hat c_v+b_v v=Wvc^v+bv,拿到图像的d维表示。
到这里,我们可以直接把新闻中提取到的文本和图像表示拼起来进行预测了,可以用交叉熵损失训练模型。作者认为,除此之外,新闻文章的虚假性也可以通过评估文本信息与视觉信息的相关性来检测;假新闻创作者有时会主动使用不相关的图像进行虚假陈述,以吸引读者的注意,或者由于难以找到支持性的非操纵图像而被动使用它们。与提供相关文字和视觉信息的新闻文章相比,那些陈述和图片不一致的新闻文章更有可能是假的。于是作者基于余弦相似度定义了一个相似度: M s ( t , v ) = t ⋅ v + ∣ ∣ t ∣ ∣ ∣ ∣ v ∣ ∣ 2 ∣ ∣ t ∣ ∣ ∣ ∣ v ∣ ∣ M_s(t,v)=\frac {t\cdot v+||t|| \ ||v||}{2||t|| \ ||v||} Ms(t,v)=2∣∣t∣∣ ∣∣v∣∣t⋅v+∣∣t∣∣ ∣∣v∣∣ 这个相似度是在[0,1]的范围取值,通过计算得到的这个相似度,作者重新定义了损失函数,把相似度加进去: L ( θ t , θ v ) = − E ( a , y ) ( y l o g ( 1 − M s ( t , v ) ) + ( 1 − y ) l o g M s ( t , v ) ) \mathcal{L}(\theta_t,\theta_v)=-E_{(a,y)}(ylog(1-M_s(t,v))+(1-y)logM_s(t,v)) L(θt,θv)=−E(a,y)(ylog(1−Ms(t,v))+(1−y)logMs(t,v)) 本文总的模型:
实验
实验使用的数据集是FakeNewsNet中的PolitiFact(政治)和 GossipCop(八卦)两个领域的数据集,数据集概览:
实验结果:
消融实验设置:(1)综合新闻文本信息、视觉信息及其关系(SAFE)在所有变体中表现最好;(2)使用多模态信息(SAFE\S或SAFE\W)比使用单模态信息(SAFE\T或SAFE\V)表现更好;(3)通过独立使用多模态信息(SAFE\S)或挖掘它们之间的关系(SAFE\W)来检测假新闻是相当的;(4)文本信息(SAFE\V)比视觉信息(SAFE\T)更重要。
相关文章:
论文笔记:相似感知的多模态假新闻检测
整理了RecSys2020 Progressive Layered Extraction : A Novel Multi-Task Learning Model for Personalized Recommendations)论文的阅读笔记 背景模型实验 论文地址:SAFE 背景 在此之前,对利用新闻文章中文本信息和视觉信息之间的关系(相似…...
5G技术对物联网的影响
随着数字化转型的加速,5G技术作为通信领域的一次重大革新,正在对物联网(IoT)产生深远的影响。对于刚入行的朋友们来说,理解5G技术及其对物联网应用的意义,是把握行业发展趋势的关键。 让我们简单了解什么是…...
Nacos1.X源码解读(待完善)
目录 下载源码 注册服务 客户端注册流程 注册接口API 服务端处理注册请求 设计亮点 服务端流程图 下载源码 1. 克隆git地址到本地 # 下载nacos源码 git clone https://github.com/alibaba/nacos.git 2. 切换分支到1.4.7, maven编译(3.5.1) 3. 找到启动类com.alibaba.na…...
算法之双指针系列1
目录 一:双指针的介绍 1:快慢指针 2:对撞指针 二:对撞指针例题讲述 一:双指针的介绍 在做题中常用两种指针,分别为对撞指针与快慢指针。 1:快慢指针 简称为龟兔赛跑算法,它的基…...
苍穹外卖面试题
8. 如何理解分组校验 很多情况下,我们会将校验规则写到实体类中的属性上,而这个实体类有可能作为不同功能方法的参数使用,而不同的功能对象参数对象中属性的要求是不一样的。比如我们在新增和修改一个用户对象时,都会接收User对象…...
【Qt 学习之路】在 Qt 使用 ZeroMQ
文章目录 1、概述2、ZeroMQ介绍2.1、ZeroMQ 是什么2.2、ZeroMQ 主线程与I/O线程2.3、ZeroMQ 4种模型2.4、ZeroMQ 相关地址 3、Qt 使用 ZeroMQ3.1、下载 ZeroMQ3.2、添加 ZeroMQ 库3.3、使用 ZeroMQ3.4、相关 ZeroMQ 案例 1、概述 今天是大年初一,先给大家拜个年&am…...
CI/CD到底是啥?持续集成/持续部署概念解释
前言 大家好,我是chowley,日常工作中,我每天都在接触CI/CD,今天就给出我心中的答案。 在现代软件开发中,持续集成(Continuous Integration,CI)和持续部署(Continuous D…...
golang常用库之-disintegration/imaging图片操作(生成缩略图)
文章目录 golang常用库之什么是imaging库导入和使用生成缩略图 golang常用库之 什么是imaging库 官网:https://github.com/disintegration/imaging imaging 是一个 Go 语言的图像处理库,它提供了一组功能丰富的函数和方法,用于进行各种图像…...
CSS 控制 video 标签的控制栏组件的显隐
隐藏下载功能 <video src"" controlsList"nodownload" />controlslist 取值如下(设定多个值则使用空格进行间隔) 如:controlslist"nodownload nofullscreen noremoteplayback"nodownload:取消更多控件弹窗的下载功…...
数据可视化之维恩图 Venn diagram
文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 维恩图(Venn diagram),也叫文氏图或韦恩图,是一种关系型图表,用于显示元素集合之间的重叠区…...
2024刘谦春晚第二个扑克牌魔术
前言 就是刚才看春晚感觉这个很神奇,虽然第一个咱模仿不过来,第二个全国人民这么多人,包括全场观众都有成功,这肯定是不需要什么技术,那我觉得这个肯定就是数学了,于是我就胡乱分析一通。 正文 首先准备…...
【k8s系列】(202402) 证书apiserver_client_certificate_expiration_seconds
apiserver_client_certificate_expiration_second证书定义的位置:kubernetes/staging/src/k8s.io/apiserver/pkg/authentication/request/x509/x509.go at 244fbf94fd736e94071a77a8b7c91d81163249d4 kubernetes/kubernetes (github.com) apiserver_client_certi…...
Rust变量与常量介绍
Rust是一门注重安全性和性能的系统编程语言,其中变量和常量的概念有着独特的设计和特性。在本文中,我们将深入了解Rust中的变量和常量,并解释它们之间的区别,同时通过多个例子进行说明。 Rust常量 在Rust中,常量是不…...
Flask基础学习2
连接mysql数据库测试(专业版) [注意1:要导入text库,否则可能出现找不到select 1错误] [注意2:若出现下列问题,可按照模板代码的顺序db SQLAlchemy(app) 的位置] RuntimeError: Either SQLALCHEMY_DATABASE_URI or SQLALCHEMY_B…...
文章页的上下篇功能是否有必要?boke112百科取消上下篇功能
也不知道是从什么时候开始,我们很多站长的博客网站文章页都会在文末添加上“上一篇”和“下一篇”功能,目的是进行站内SEO优化和方便用户阅读上下篇文章。 boke112百科不管是以前使用的Three主题还是现在使用的YIA主题,刚开始的文章页都是有…...
Lua序列化
我们经常需要序列化一些数据,为了将数据转换为字节流或者字符流,这样我们就可以保存到文件或者通过网络发送出去。我们可以在 Lua 代码中描述序列化的数据,在这种方式下,我们运行读取程序即可从代码中构造出保存的值。 number/st…...
Acwing---839. 模拟堆
模拟堆 1.题目2.基本思想3.代码实现 1.题目 维护一个集合,初始时集合为空,支持如下几种操作: I x,插入一个数 x;PM,输出当前集合中的最小值;DM,删除当前集合中的最小值(…...
STM32 STD/HAL库驱动W25Q64模块读写字库数据+OLED0.96显示例程
STM32 STD/HAL库驱动W25Q64 模块读写字库数据OLED0.96显示例程 🎬原创作者对W25Q64保存汉字字库演示: W25Q64保存汉字字库 🎞测试字体显示效果: 📑功能实现说明 利用W25Q64保存汉字字库,OLED显示汉字的时…...
Android 移动应用开发 创建第一个Android项目
文章目录 一、创建第一个Android项目1.1 准备好Android Studio1.2 运行程序1.3 程序结构是什么app下的结构res - 子目录(所有图片、布局、字AndroidManifest.xml 有四大组件,程序添加权限声明 Project下的结构 二、开发android时,部分库下载异…...
MATLAB语音去噪系统
目录 一、背景 二、GUI页面 三、程序 3.1 LMS滤波程序 3.2 GUI程序 四、附录 一、背景 本文介绍了一种最佳的自适应滤波器结构,该结构采用最小均方差(LMS)作为判据,通过不断迭代自适应结构来调整得到最佳滤波器…...
【JavaEE】-- HTTP
1. HTTP是什么? HTTP(全称为"超文本传输协议")是一种应用非常广泛的应用层协议,HTTP是基于TCP协议的一种应用层协议。 应用层协议:是计算机网络协议栈中最高层的协议,它定义了运行在不同主机上…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
