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

[Information Sciences 2023]用于假新闻检测的相似性感知多模态提示学习

推荐的一个视频:p-tuning

在这里插入图片描述
P-tunning直接使用连续空间搜索

做法就是直接将在自然语言中存在的词直接替换成可以直接训练的输入向量。本身的Pretrained LLMs 可以Fine-Tuning也可以不做。

这篇论文也解释了为什么很少在其他领域结合知识图谱的原因:就是因为大模型本身就是一个很好的KG,作者在视频中讲到利用P-tuning的方法完全可以在WikiData上实现60%的准确率,也就说可以完全通过大模型形成60%的WikiData中三元组表示内容。而且随着模型规模的上升,这个精度也会继续增加。

在这里插入图片描述
【使用Fine-tunning的方法,BERT的性能表现要高于GPT;而基于P-tunning的方法,GPT的性能表现高于BERT】

通讯作者简介:
青岛科技大学-王宜敏教授主页

摘要

假新闻检测的标准范式依赖于利用文本信息来建模新闻的真实性。然而,网络假新闻的微妙本质使得仅仅依靠文本信息进行揭穿具有挑战性。近年来针对多模态假新闻检测的研究表明了该方法与纯文本检测方法同样具有优越的性能,从而建立了检测假新闻的新范式。然而,这种范例可能需要大量的训练实例或更新整套预训练的模型参数。此外,现有的多模态方法通常集成跨模态特征,而不考虑来自不相关语义表示的可能引入的噪声。此外,现有的多模态方法通常集成跨模态特征,而不考虑来自不相关语义表示的潜在噪声引入。为了解决这些问题,本文提出了相似性感知多模态提示学习(SAMPLE)框架。将提示学习融入多模式假新闻检测中,我们使用三个带有软语言器的提示模板来检测假新闻。 此外,我们引入了一种相似性感知融合方法,该方法自适应地融合多模态表示的强度,以减轻来自不相关的跨模态特征的噪声注入。评估结果表明,SAMPLE 的性能优于之前的工作,在两个多模态基准数据集上获得了更高的 F1 和准确度分数,无论数据丰富还是少样本设置都证明了其在现实场景中的可行性。

Introduction

社交媒体的日益普及极大地影响了信息传播和消费的方式。 虽然社交媒体平台为人们寻找和分享信息提供了有效的方式,但假新闻的传播给国际社会造成了巨大伤害。 为了减轻在线假新闻的影响,学术界和工业界开发了各种技术。 早期研究[29,4]主要集中于分析假新闻的文本内容。然而,假新闻可以采取多种形式,仅依靠文本信息来验证其真实性需要专业知识,这可能非常耗时。 例如,图 1 显示了两个新闻片段,这对仅通过文本信息来识别其真实性提出了挑战。 因此,最近开发了多模态假新闻检测(FND)技术来利用图像和文本信息,展示了通过跨模态分析提供的互补优势的良好性能。

多模态 FND 旨在结合图像和文本的特征来自动识别虚假新闻帖子。 传统的深度学习方法,例如卷积神经网络 (CNN)、循环神经网络 (RNN) 和 Transformer,在假新闻的文本和图像表示建模方面取得了重大进展。然而,这些方法通常受到依赖大量注释数据来实现令人满意的性能的限制。 最近,人们对利用大型预训练模型进行 FND 越来越感兴趣。许多研究[42,2]使用预训练的语言模型(例如 BERT [10])和预训练的视觉模型(例如 ResNet [16])分别对新闻帖子的文本和图像特征进行编码。然而,预训练模型通常是在不特定于任何特定领域的大型、未经精炼的语料库上进行训练的。 尽管预训练模型可以利用外部知识来识别虚假帖子,但 FND 系统的有效性高度依赖于其焦点领域 [19]。

微调是使预训练模型适应不同下游任务的常用技术。 在最近的研究中,BERT 的变体,包括原始的预训练模型,已经专门针对 FND 进行了微调 [7]。 然而,由于需要大量标记实例来训练额外的分类器,FND 的微调通常会在资源匮乏的情况下带来困难 [5]。 传统的预训练语言模型采用完形填空式的目标进行训练,其中涉及预测屏蔽词以了解其分布,而微调的目的是直接识别目标标签。 因此,预训练模型需要大量标记数据来针对特定任务进行微调。 同时,由于预训练模型的大小,微调、更新单个任务的所有模型参数给现实世界的 FND 带来了挑战 [27]。 提示学习是一种旨在通过向输入添加附加信息并在调整过程中使用完形填空式任务来更好地利用预训练知识的方法,从而更有效地应用预训练信息[37]。此外,提示学习对于现实世界的 FND 场景尤其重要,因为在现实世界中,手动标记的假新闻数据很少。 它使预先训练的模型即使在标记数据有限的资源匮乏的环境中也能获得有竞争力的性能[5]。 然而,当前基于提示的 FND 方法[19]主要考虑文本信息,对假新闻帖子中跨模态特征的分析尚不成熟。
在这里插入图片描述
图 1. 两个假新闻片段及其原始报道。

与直接输出类别分布的微调模型相比,提示学习与语言建模目标保持一致,通过在原始文本输入之前添加补充信息来生成与 FND 相关的特定答案词。 **如图1左侧的新闻片段所示,通过在原文前引入提示(例如,“这是一条新闻。前总统和违法者巴拉克·奥巴马……” ),这种方法的目的是检索提示文本的屏蔽标记。**然而,离散提示的局限性在于它需要嵌入模板词以与自然语言词的嵌入保持一致。 为了解决这个问题,连续提示[35]通过直接在预训练模型的连续空间中执行提示来消除离散提示的约束,例如“< soft > < soft >…< soft > < mask >,Former president and breaker of laws, Barack Obama…” ,其中每个 < soft > 可以与随机初始化的可训练向量相关联。此外,混合提示[19]不是利用完全可学习的提示模板,而是将可训练向量合并到离散提示模板中(例如:“< soft > This is a piece of < mask > news < soft >. Former president and breaker of laws, Barack Obama…”)并展示了比单独使用每种提示类型更优越的性能。

以前的多模态 FND 方法 [26,41] 旨在通过直接融合多模态表示来提高性能。 然而,仅仅结合图像和文本特征并不能保证信息的可靠性,因为新闻文章的真实性并不完全与图文相关性相关。 在这种情况下,文本和图像特征之间的相关性往往较弱,导致多模态表示出现噪声。 因此,多模态 FND 模型掌握不同模态之间的语义相关性并自适应地结合多模态特征进行准确分类至关重要。

语义相似度的方法大概率来自于SAFE模型。

本文提出了一种用于 FND 的相似性感知多模态提示学习(SAMPLE)框架。 三种流行的提示学习方法(离散提示(DP)、连续提示(CP)和混合提示(MP))被系统地集成到用于 FND 任务的软言语器中。 此外,应用预训练模型对比语言-图像预训练(CLIP)[36]来提取文本和图像特征,用于生成多模态表示。 为了解决文本和图像之间语义表示不相关的问题,该框架计算了它们特征之间的语义相似度为了调整聚合多模态表示的强度,语义相似性被进一步归一化。 为了评估所提出的 SAMPLE 框架的性能,使用了两个特定领域的可公开访问的数据集:PolitiFact 和 GossipCop [39])。 我们将 SAMPLE 与现有的 FND 方法以及标准微调方法进行比较,在少样本和数据丰富的场景下模拟真实世界的 FND 设置。 实验结果表明,无论数据丰富还是少样本场景,SAMPLE 在宏观 f1 和准确性指标方面都显著优于传统的深度学习和微调方法。

本文的贡献是:

  • 我们提出了一个名为 SAMPLE 的框架,它自适应地将 CLIP 模型生成的多模态特征与预先训练的语言模型的文本表示融合在一起,以帮助快速学习来检测假新闻。
  • 所提出的框架通过使用预训练 CLIP 模型生成的标准化余弦相似度来调整融合多模态特征的强度,从而缓解了不相关的跨模态语义问题。
  • SAMPLE 在两个基准多模式假新闻检测数据集上进行了评估,在资源匮乏和数据丰富的场景中都优于以前的方法。

Related work

假新闻被描述为“通过新闻媒体或互联网以真实新闻为幌子传播以获取政治或经济利益的虚假信息”[30]。 此外,最近的许多研究旨在将虚假内容与类似概念区分开来,例如错误信息[20]和虚假信息[43]。 在这种情况下,错误信息是由于失误或认知偏见而产生的虚假信息,而虚假信息是故意捏造的,在这两种情况下,其形式并不限于新闻媒体。

单模态虚假新闻检测

对单模态 FND 的早期研究通常使用手工特征来识别帖子文本或图像中的异常情况。 传统的图像篡改检测方法[8]可以有效地检测新闻图像的篡改行为。 这些方法从假新闻中学习图像取证、语义、统计和上下文特征。 假新闻的特点通常是违反常识的语义不一致[24],以及图像质量差[14]。 在文本模式中,之前的研究 [32] 设计了一个模块化工具 MedOSINT 来识别与 Covid-19 相关的假新闻。 王等人[45]提出了一种双层次压缩学习框架,其中包括多种数据增强策略和 FND 的三个对比学习任务。 Khullar 和 Singh [23] 建立了一个联邦学习框架来对假新闻进行分类并维护数据隐私。 虽然单模态 FND 是检测假新闻的可靠基线,但 FND 中各模态的相关性和一致性尚未确定。

多模态虚假新闻检测

先前多模态假新闻检测(FND)的研究通常集中在两种方法:设计复杂网络或利用预先训练的模型作为特征提取器。周等人 [46]提出了SAFE模型,该模型使用Image2Sentence模型将图像转换为文本标题,并扩展Text-CNN模型以从新闻描述中提取文本特征。为了检测假新闻,该模型使用稍微修改的余弦相似性度量来计算文本和视觉信息之间的相关性,然后将其输入分类器。 Meel 和 Vishwakarma [31] 结合了分层注意力网络、图像字幕和取证分析来检测多模式假新闻。

最近,许多研究选择利用预先训练的模型来提取 FND 中的文本和视觉特征。 例如,CAFE [9]采用 BERT 和 ResNet-34 作为分别编码文本和视觉特征的预训练模型。 同样,周等人 [47]提出了FND-CLIP模型,该模型同时使用基于ResNet的编码器、基于BERT的编码器和两个成对的CLIP编码器从图像和文本中提取特征表示。 华等人[18]建立了一种基于 BERT 的反向翻译文本和整个图像多模态模型,具有对比学习和数据增强功能。 静等人[22]设计了一个渐进融合网络来捕获每种模态在不同级别的特征表示,并实现了一个混合器来建立模态之间的连接。

此外,一些研究发现,微调预训练模型也可以产生有竞争力的性能,而不仅仅是将它们用作特征提取器。 例如,Ro-CT-BERT [7] 用专业短语扩展了词汇量,并采用了对抗性训练中激烈的 softmax 损失来提高模型的鲁棒性。 尽管传统的多模态 FND 方法以准确检测假新闻而闻名,但它们通常需要大量人工注释的数据才能有效地训练模型。 此外,虽然在早期阶段检测假新闻可以最大限度地减少其有害影响[40],但 FND 方法仍然受到人工注释数据可用性的限制。

针对于虚假新闻检测的提示学习

近年来,提示学习已成为自然语言处理(NLP)的新范式,并在各种 NLP 任务中表现出与标准微调相当的性能。 例如,朱等人 [48]开发了PLST框架,该框架在短文本分类任务中结合了文本输入和来自开放知识图的外部知识。 韩等人[15]提出了PTR模型,该模型是为多类文本分类而设计的,并使用包含多个子提示的逻辑规则构造提示。 基于提示的模型也被用来帮助假新闻检测(FND)。 例如,El Vaigh 等人 [11] 利用 DistilGPT-2 的基于提示的模型结合多任务学习来检测 MediaEval-2021 中与冠状病毒相关的假新闻。 江等人[19]提出了KPL,通过整合外部知识来检测假新闻。 然而,KPL 依赖于人为设计的提示和语言器,这可能非常耗时且可能不可靠。 此外,它没有解决新闻帖子多模态表示的融合如何增强假新闻检测。

Methodology

所提出的方法旨在利用文本和图像来识别新闻文章的真实性。 多模态 FND 的主要目标是为给定的包含 n n n个单词的文本输入 x = [ w 1 , w 2 , . . . , w n ] x = [\mathcal{w}_1,\mathcal{w}_2,...,\mathcal{w}_n] x=[w1,w2,...,wn]以及 m m m个图像 i = [ i 1 , i 2 , . . . , i m ] i = [i_1,i_2,...,i_m] i=[i1,i2,...,im]的新闻文章分配标准二元分类标签 y ∈ { 0 , 1 } y \in\{0,1\} y{0,1}​,其中 0 代表真实新闻,1 代表假新闻。为了识别与给定新闻文章文本相对应的最相关图像,使用预先训练的 CLIP 模型分别对文本和图像表示进行编码。 在此过程中,仅保留与文本表示具有最高余弦相似度的图像,而丢弃其余图像。这里说明了含有多个图像的帖子的处理方法
在这里插入图片描述
图 2. 用于假新闻检测SAMPLE的整体结构。

离散提示

在本节中,我们利用离散提示[38],它主要对应于自然语言短语并自动搜索离散空间中描述的模板。 此外,我们引入了一个称为连续提示的扩展版本[35],它使用包含预训练语言模型词汇中不存在的伪标记的提示。 我们还采用了混合提示,结合了 FND 的离散提示和连续提示。 最后,我们标准化文本和图像之间的语义相似性来调整融合的多模态表示。 图 2 说明了所提出的 SAMPLE 的整体结构。

我们利用手动构建的离散模板作为提示机制。 为了使模型能够检索被屏蔽的单词,文本输入最初在提示学习阶段被屏蔽。 离散提示涉及通过有限的、人为设计的模板故意扭曲文本输入,并用掩码替换单个关键字。 我们研究了五个不同的离散模板,因为模板的选择可能会对语言模型的性能产生重大影响,如附录 A 所示。离散模板 d t dt dt="This is a news piece with < mask > information"是一个人为设计的模板。接下来,我们通过预训练的语言模型计算与 FND 任务的目标相关的屏蔽词的表示。 为了实现这一点,我们将任意模板 d t dt dt 与初始输入 x x x 连接起来以生成提示, x d = [ d t ; x ] x_d=[dt;x] xd=[dt;x]。随后,计算 x d x_d xd的隐藏状态:
在这里插入图片描述
其中, h i d t ( i ∈ [ 1 , m ] ) h^{dt}_i(i\in[1,m]) hidt(i[1,m]) h m a s k d t h^{dt}_{mask} hmaskdt分别是长度为m和< mask >离散模板标记的隐藏向量。 h j x ( j ∈ [ 1 , n ] ) h^x_j(j\in[1,n]) hjx(j[1,n])是长度为n的输入文本的隐藏向量, P L M ( ) PLM() PLM()是屏蔽语言模型的输出。

其中, h i d t ( i ∈ [ 1 , m ] ) h^{dt}_i(i\in[1,m]) hidt(i[1,m]) h m a s k d t h^{dt}_{mask} hmaskdt分别是长度为m和< mask >离散模板标记的隐藏向量。 h j x ( j ∈ [ 1 , n ] ) h^x_j(j\in[1,n]) hjx(j[1,n])是长度为n的输入文本的隐藏向量, P L M ( ) PLM() PLM()是屏蔽语言模型的输出。

连续提示

尽管离散提示自然地继承了任务描述的可解释性,但它受到在自然语言中嵌入模板词的要求的限制。 此外,离散提示可能不是最理想的,因为预训练的语言模型可能已经从完全不同的上下文中学习了目标知识。 这种手动设计的约束也可以应用于言语生成器,因为手动言语生成器通常基于有限的信息来确定预测。例如,标准语言描述器映射$ fake ⟶ {counterfeit, sham, …, falsify}$,这意味着在推断过程中,只有预测那些与token相关的词才会被认为是正确的,而不管对其他相关词的预测,如“unreal”或“untrue”,这些也具有有用的信息。

为了解决上述问题,通过用连续模板替换可训练标记来重新格式化离散模板 s t st st=“ < s o f t 1 > , < s o f t 2 > , . . . , < s o f t t > , < m a s k > <soft_1>,<soft_2>,...,<soft_t>,<mask> <soft1>,<soft2>,...,<softt>,<mask>”,其中每一个 < s o f t > < soft > <soft>与随机初始化的可训练向量相关联。(三种初始化方法的比较如附录 B 所示。实验结果表明,随机初始化实现了可比的性能,验证损失的收敛速度比其他方法稍快。

在这里插入图片描述
其中, h k s t ( k ∈ [ 1 , t ] ) h^{st}_k(k\in[1,t]) hkst(k[1,t]) h m a s k s t h^{st}_{mask} hmaskst分别是长度为 t t t的隐藏向量和连续模板的 m a s k mask mask标记。

混合提示

最近的研究表明,与单独使用它们相比,采用混合连续和离散模板的混合提示表现出更优越的性能[15]。在此基础上,我们将可训练tokens合并到离散提示模板中。 具体来说,我们在混合模板的开头和结尾插入了两个可训练的tokens, h h e a d m t h^{mt}_{head} hheadmt h t a i l m t h^{mt}_{tail} htailmt,表示为

mt = “$<h^{mt}{head}>This\space is\space a\space piece\space of<h^{mt}{mask}>\space news.<h^{mt}_{tail}> $”。

与离散提示类似,新的混合提示 x m = [ m t ; x ] x_m=[mt;x] xm=[mt;x]​。 然后我们计算其隐藏状态如下:

在这里插入图片描述
其中, h i m t ( i ∈ [ 1 , m ] ) h^{mt}_i(i\in[1,m]) himt(i[1,m]) h m a s k m t h^{mt}_{mask} hmaskmt分别是长度为 m m m的隐藏向量和混合模板的 m a s k mask mask标记。

相似性感知的多模态特征融合

根据之前的研究[47],从预训练模型中提取的文本和图像特征表现出很大的语义差距。 因此,多模态特征的直接融合无法捕获内在的语义相关性。单模态预训练模型,例如 BERT 和 ViT-B-32,倾向于关注琐碎的线索,而不是提取语义上有意义的信息。 BERT 可以更好地从文本输入中学习情感特征,而 ViT-B-32 可以捕获图像中的噪声模式。 因此,即使文本和图像在语义上相关,单模态特征的直接融合也可能会将噪声注入多模态表示中。 相比之下,预先训练的 CLIP 模型利用大量图像-文本对数据集来捕获情感特征或噪声模式之外的语义相关性。

为了有效地整合图像和文本特征,应用预训练的CLIP模型来独立提取这些特征。 CLIP 模型由用于文本编码的文本 Transformer 组成,并采用 Vision Transformer (ViT-B-32) 作为图像编码器。 为了降低编码器提供的粗略特征的维数并消除冗余信息,我们利用单独的投影头 P t x t P_{txt} Ptxt P i m g P_{img} Pimg来处理文本和图像特征。每个投影头具有两组全连接层 (FC),后面是批量归一化、修正线性单元 (ReLU) 激活函数和一个 dropout 层。接下来,我们测量 P t x t P_{txt} Ptxt P i m g P_{img} Pimg之间的余弦相似度 s i m sim sim来修正融合特征 f f u s e d f_{fused} ffused的强度:
在这里插入图片描述
在实验过程中,我们注意到某些新闻帖子,无论其真实性如何,都没有表现出明确的跨模态语义关系。 因此,连接单模态特征以生成融合特征可能会引入噪声,特别是在相似度较低的情况下。 为了解决这个问题,我们应用标准化和 Sigmoid 函数将相似度值限制在 [0 −1] 范围内。标准化涉及在训练期间计算平均值和标准差,从 s i m sim sim中减去运行平均值,然后将结果除以运行标准差。然后可以使用标准化相似度来调整最终跨模式表示的强度 m f u s e d m_{fused} mfused:
在这里插入图片描述

软言语器

为了恢复提示模板中的屏蔽单词,使用软语言器将标签映射到其相应的单词。 在本研究中,我们利用 WARP [13] 来识别连续嵌入空间中的最佳提示,其中预先训练的语言模型通过进行搜索来预测屏蔽标记。 我们在上述三种模板类型中使用软语言来比较不同的提示方法。为了确定提示和言语嵌入的最佳参数 θ = { θ P , θ V } \theta=\{\theta^P,\theta^V\} θ={θP,θV}​,我们首先使用残差连接将掩码语言模型的输出向量添加到调整后的跨模态表示中。 然后将组合输出输入 FC 层:
在这里插入图片描述
其中 x ′ x' x是上面的提示模板之一相连接的输入序列。分类概率 p ( y ∣ x ′ ) p(y|x') p(yx)可以计算为:
在这里插入图片描述
其中的C是类别的集合, θ y V \theta^V_y θyV是真实标签的嵌入, θ i V \theta^V_i θiV是预测标签词的嵌入。最后,交叉熵损失可以最小化为:
在这里插入图片描述

Experiment

我们在资源匮乏和数据丰富的场景中在两个基准 FND 数据集上评估了我们提出的方法。 本节的第一部分概述了基准多模式 FND 数据集,包括其统计数据。 在第二部分中,我们解释了数据丰富和少样本设置的实现细节。 最后,我们对我们提出的方法以及基线模型进行了详细的讨论和分析。

数据

我们使用两个可公开访问的数据集来检测虚假信息,即 PolitiFact 和 GossipCop,它们分别包含政治新闻和名人八卦,并包含在 FakeNewsNet 项目中 [39]。 使用提供的数据爬行脚本,我们从 PolitiFact 检索了 1,056 条新闻,从 GossipCop 检索了 22,140 条新闻。为了减少冗余,对于具有多个图像的新闻,我们仅根据文本和图像的余弦相似度保留最相关的图像。 没有图像或图像 URL 无效的新闻将被排除。 结果数据集统计数据如表 1 所示。
在这里插入图片描述

实施细节

采用 HuggingFace 库中预训练的 RoBERTa 作为快速学习的主要模块。 应用来自预训练 CLIP (ViT-B-32) 模型的文本和图像编码器来提取各自的特征。 隐藏层投影层的大小设置为768,dropout率为0.6。 我们使用 AdamW 优化器来优化模型参数,学习率为 3e−5,衰减参数为 1e−3,这两个参数都是根据经验确定的。 该模型经过 20 个 epoch 的训练,我们选择能够产生最佳验证性能的模型检查点来进行测试。 我们在少样本和数据丰富的设置中评估该方法。

在少样本设置中,我们的模型是使用从数据集中随机抽样的少量实例( n n n)进行训练的。具体地说,我们考虑 n ∈ [ 2 , 4 , 8 , 16 , 100 ] n∈[2,4,8,16,100] n[24816,100]​ 。其余实例用于测试。此外,还会创建与训练集大小相同的验证集用于模型选择。PolitiFact 数据集包含数量有限的新闻条目。 为了解决这一限制,我们采用了一种称为 PolitiFact 100-shot 设置的特定配置。 在此配置中,我们分配 100 个实例用于训练,50 个实例用于开发目的。 由于训练集和验证集质量对模型性能的显着影响,我们使用不同的随机种子重复上述数据采样方法五次。然后,我们计算平均分数(排除最高和最低分数),以评估模型在少样本设置中的性能。 对于训练集和验证集,我们确保训练阶段标记实例的平衡分布。
在数据丰富的情况下,两个数据集被分为三部分,即训练集、验证集和测试集,分割比例为8:1:1。 为了评估所提出模型的稳定性,我们使用不同的随机种子重复上述数据采样过程五次。 我们报告平均分数,计算为从五次运行中去除最高和最低分数后的分数平均值。

基线模型

我们将所提出的 SAMPLE 模型与之前在 FND 数据集上实现了最先进性能的几个模型进行了比较。 具体来说,我们的比较涉及单模态方法 (1-2)、多模态方法 (3-6) 和标准微调方法 (7)。 为了初始化单词嵌入,我们利用在 60 亿个单词的语料库上训练的预训练 100 维 GloVe 嵌入 [34]。

  • (1) LDA-HAN [21]:该模型将潜在狄利克雷分配(LDA)[3]主题分布纳入分层注意力网络中。
  • (2) T-BERT [2]:这种基于特征的方法使用级联三重 BERT 模型来预测假新闻。
  • (3) SAFE [46]:该模型将图像转换为其文本描述,并利用文本和视觉信息之间的相关性来检测假新闻。
  • (4) RIVF[44]:该模型利用VGG和BERT模型对图像和文本特征进行编码。 它将缩放点积注意力机制应用于融合的多模态特征来捕获文本和图像之间的关系。
  • (5) SpotFake[42]:该模型使用预训练的图像模型VGG和BERT来提取各自的图像和文本特征,将它们连接起来以对假新闻进行分类。
  • (6) CAFE [9]:该模型使用模糊感知多模态方法来自适应聚合单模态特征和相关性。
  • (7) FT-RoBERTa:这是预训练语言模型 RoBERTa 的标准、微调版本。

结果

表2.基线和多模态提示学习框架之间的整体宏观 F1 和准确性。 D-SAMPLE、C-SAMPLE 和 M-SAMPLE 分别表示所提出的 SAMPLE 框架中的离散提示、连续提示和混合提示。
在这里插入图片描述
表 2 显示了将所提出的 SAMPLE 框架与微调方法、多模态和单模态 FND 方法进行比较的总体结果。

与微调相比。 首先,我们通过评估各自的 F1 分数来研究标准微调 RoBERTa (FT-RoBERTa) 和提议的 SAMPLE 的性能。我们计算 M-SAMPLE 的平均改进(即 ( 0.44 − 0.39 ) + . . . ( 0.58 − 0.52 ) 5 × 2 + ( 0.47 − 0.46 ) + . . . ( 0.81 − 0.77 ) 5 × 2 \frac{(0.44−0.39)+...(0.58−0.52) }{5×2}+ \frac{(0.47−0.46)+...(0.81−0.77)}{ 5×2 } 5×2(0.440.39)+...(0.580.52)+5×2(0.470.46)+...(0.810.77)),C-SAMPLE 和 D-SAMPLE 优于 FT-RoBERTa,发现所有 SAMPLE 方法分别优于 FT-RoBERTa 0.05、0.024 和 0.035。随着训练样本数量的减少,这种改进更加显着,凸显了在资源匮乏的场景下即时学习的优越性。

然而,在数据丰富的情况下,改进变得更小,其中 F1 的平均改进分别为 0.005、0.005 和 0.01,这表明 FT-RoBERTa 在训练数据充足时能够实现可比的性能。 SAMPLE 方法和 FT-RoBETRa 之间的准确性比较与上述观察结果一致,证明了所提出的方法在利用 PLM 信息方面的优越性,特别是在训练数据稀缺的情况下。 然而,在数据丰富的环境中,标准微调方法仍然可以作为可靠的基线。

与多模态方法进行比较。 我们与之前的多模态 FND 方法相比评估了 SAMPLE 的性能。 我们的结果表明,无论是多模态还是单模态方法,SAMPLE 的 F1 和准确度得分在所有设置中都优于以前的方法。 例如,在 PolitiFact 数据集上进行评估时,与 CAFE 相比,M-SAMPLE 在 100 个样本设置中实现了高达 0.29 秒的显着改进。 这一改进主要归功于 CLIP 模型的学习方法,它利用大量的图像文本对来学习多模态语义的提取。 相反,CAFE 常用的预训练模型(如 BERT 和 ResNet-34)可能无法有效捕获以异构特征分布为特征的单模态特征。

不同提示模板的分析。 结果表明,混合提示 (M-SAMPLE) 优于 C-SAMPLE 和 D-SAMPLE,F1 的平均改进分别为 0.04 和 0.02。 这一发现表明,连续提示不如离散和混合提示方法。 具体来说,C-SAMPLE 的使用可能无法提供足够的先验人类知识来帮助语言表达者从连续空间中捕获标签词。

总体而言,实验结果表明,无论采用少镜头还是数据丰富的设置,所提出的 SAMPLE 方法在多模态 FND 任务中都表现出优越的性能。

分析

本小节在少样本和数据丰富的设置中对所提出的 SAMPLE 方法进行了全面分析。 首先,评估图像模态的重要性。 接下来,给出了所提出的模型在各种数据设置下的标准差。 消融研究进一步检查了 SAMPLE 的关键组成部分。 最后,我们可视化并比较不同基线模型生成的嵌入。

图像模态的影响

将图像和文本特征之间的语义相似性集成到 SAMPLE 中的多模态表示中,可以自动调整跨多种模态的相关性。 然而,该方法不允许直接测量图像模态的有效性。

在这里插入图片描述
图 3. 所提出框架中图像模态的重要性。
为了理解视觉模态对模型推理的影响,我们引入了一个可调节参数,参数 α \alpha α,来调节视觉模态在少样本训练过程中的参与程度。准确地说,融合的多模态特征乘以 α ∈ [ 0 , 1 ] \alpha\in[0,1] α[0,1]。将 α \alpha α设置为0会消除视觉模态的贡献,而将 α \alpha α设置为1则充分利用图像和文本两个模态。在这个实验中,我们应用了M-SAMPLE,它实现了最高的F1。 根据图 3 所示的结果,随着 α \alpha α的增加,M-SAMPLE 获得了更高的 F1,这表明视觉模态的参与可以增强模型性能。然而,我们也观察到包含视觉模态会导致 F1 下降的情况,特别是当训练样本数量相对较小时,例如在 2-shot、4-shot 和 8-shot 设置中。 这表明,当与其他模态的相关性有限时,视觉模态特征的存在可能会对少样本设置中的整体性能产生不利影响。

稳定性测试

在这里插入图片描述
​ 图 4. 所提出框架中 F1 的标准差和准确度。

在本研究中,我们通过测量少样本和数据丰富设置中 F1 的标准差和准确性来评估 SAMPLE 模型的稳定性。 如图 4 所示,我们展示了对每个样本模型进行的上述五次实验的平均标准差。 我们观察到标准差随着训练样本数量的增加而减小,特别是在 PolitiFact 数据集中,如图 4a 所示。 此外,GossipCop 数据集比 PolitiFact 数据集相对更不稳定,如图 4b 所示。 这可能归因于 GossipCop 中语义的复杂性,这也导致所有模型的 F1 分数和准确性较低。

多模态融合策略

附录C:CLIP 与预训练单模态模型进行特征提取的比较
在这里插入图片描述
图 7. 预训练模型之间的对数尺度语义相似度比较。

在这里插入图片描述
图 5. 不同多模态融合策略的比较。
如图5所示,我们使用M-SAMPLE来评估各种多模态融合方法对模型性能的影响。 具体来说,比较了四种基于规则的融合策略 [1] 的 F1 分数。 利用基于规则的融合策略背后的动机植根于 CLIP 模型在单模态特征之间生成有效时间对齐的能力 [47],如附录 C 所示。具体来说,符号“MAX”表示使用 最大池化层。 类似地,“AVG”表示通过平均池化层进行融合。 另一方面,“PRODUCT”表示多模态特征是通过所有单模态特征的元素乘积形成的。 最后,“CONCAT”意味着将单模态特征串联起来以创建多模态特征。 结果表明,在少样本设置中,与其他融合策略相比,两个单模态特征的串联可以产生更好的 F1 分数。

可训练参数比较

我们比较了基线和 SAMPLE 之间的可训练参数数量,如表 3 所示。SAMPLE 框架中的可训练参数相当小,大部分来自语言器和模板。 相比之下,当对整个模型进行完全微调时,FT-RoBERTa 具有最多数量的可训练参数。 因此,与微调相比,即时学习需要更低的计算成本,同时仍能获得与其他深度学习方法相当的结果。
在这里插入图片描述

消融实验

在这里插入图片描述
我们通过评估 SAMPLE 框架在各种部分配置下的性能来检查 SAMPLE 框架中关键组件的影响。 我们采用 M-SAMPLE,在每次测试中删除不同的组件,并从头开始训练框架。 表 4 中的结果表明,当在大多数测试设置中移除 M-SAMPLE 的任何组件时,M-SAMPLE 的性能会下降。 这表明了 SAMPLE 中每个单独关键模块的有效性。 具体来说,我们发现当删除自动相似性调整“-SA”时,性能略有下降。 这一观察结果凸显了在多模态特征融合中标准化语义相似性的重要性。 这样做有助于减少假新闻分类中的不相关信息,同时还可以减轻不同模态的多模态特征带来的噪音。

此外,与在框架内删除图像特征(“-IF”)相比,从 CLIP 中删除文本特征(“-TF”)通常会导致 F1 分数和准确性较低。 我们的研究结果表明,虽然图像模态被证明在 FND 中很有价值,如图 3 所示,但值得注意的是,文本特征在提示学习过程中仍然至关重要。 这主要是由于提示学习的训练目标,其重点是从模板中恢复屏蔽标记。 该目标主要与从预训练模型中提取的文本特征保持一致并利用。 从不同的预训练模型 RoBERTa 和 CLIP 中提取两个文本特征,为分类器提供了更加多样化和更具表现力的文本信息。 另一方面,图像特征的主要作用是最小化不同模态之间的差异可能产生的噪声。

当从 CLIP 模型获得的融合多模态特征(“-MF”)被删除时,所提出的框架归结为提示学习方法的普通版本,该方法利用预先训练的语言模型来直接预测 FND。 分析结果表明,即使是基本的提示学习方法也可以优于仅依赖文本特征的单模态方法。 这一观察结果强调了 FND 中提示学习的优越性。

T-SNE可视化

在这里插入图片描述
图 6. 在分类器之前从 M-SAMPLE、D-SAMPLE、C-SAMPLE、RoBERTa、CAFE、SPOTFAKE、T-BERT 和 LDA-HAN 在 2-PolitiFact 测试集上学习的特征的 T-SNE 可视化2-shot设置。

如图 6 所示,在 2-shot 设置的 PolitiFact 测试集上分析了分类器之前学习到的特征。假新闻和真实新闻的降维特征表示由红点和蓝点表示。 从图 6a、图 6b 和图 6c 中,我们注意到与 D-SAMPLE 和 C-SAMPLE 相比,M-SAMPLE 的边界似乎更加清晰。 这表明 M-SAMPLE 中学习到的特征表示更具辨别力。 虽然 FT-RoBERTa 在 F1 和准确度方面表现出相当的性能,但它确实在 2-shot 设置中显示了一些明显的错误分类实例。 此外,与 SAMPLE 相比,FT-RoBERTa 中学习到的特征表示往往更稀疏,如图 6d 所示。 这意味着在少样本场景中,多模态特征和即时学习方法的组合优于标准微调方法。 我们还可视化了 CAFE 和 SPOTFAKE 的特征表示,如图 6e 和图 6f 所示。 分析表明,与即时学习和微调方法相比,错误分类实例的数量明显更高。 此外,我们的研究结果表明,T-BERT 和 LDA-HAN 等单峰方法表现出最多的错误分类实例。 这表明,与仅依赖文本特征相比,结合多模态特征可以捕获更具表现力的信息,如图 6g 和图 6h 所示。

Discussion

所提出的 SAMPLE 框架将多个提示学习模板与软语言器集成在一起,以便能够在少量样本和数据丰富的环境中自动检测假新闻。 首先,本节首先分析我们的方法与现有研究之间的关系。 接下来,我们详细阐述所提出的 SAMPLE 方法如何对 FND 领域产生积极影响并为实际应用提供支持。 最后,本文讨论了我们方法的局限性,并概述了未来工作的潜在途径。

与前人作品的联系和比较

无论是在少量样本还是数据丰富的场景中,SAMPLE 在检测假新闻方面都表现出了令人满意的性能。 当将SAMPLE与FND领域的其他方法进行比较时,传统方法可以分为三类:(1)仅基于文本或图像特征的单模态方法[6,8]; (2)通过预训练模型或深度学习表示来同化文本和视觉特征的多模态方法[44]; (3)标准微调方法,使用特定任务的数据微调预先训练的单峰模型[33]。

在本研究中,SAMPLE 包含 (2) 和 (3) 的混合方法。 然而,由于它利用了提示学习算法,因此它与标准微调方法不同。 尽管微调有可能实现最佳性能,但它会消耗大量内存。 这是因为微调会更新整套模型参数,以满足特定任务的目标。 相比之下,提示学习利用自然语言提示来查询语言模型,保持了与预训练类似的目标,同时显示出可比较的性能,特别是在有限的训练实例中。 通过将标准微调的结果与SAMPLE的结果进行比较,实验结果证实了上述推理,如表2所示。

先前的多模态方法,例如 CAFE 和 SAFE,依赖于外部跨模态模块来对齐和测量不同的单模态特征。 然而,此类外部模块需要足够数量的训练实例来捕获跨模态相关性,这通常会导致性能不足,特别是在少数样本设置中。 我们的新颖提案引入了一种相似性感知的多模态特征融合方法,该方法利用了 CLIP 的预训练策略。 CLIP 利用大量图像-文本对来学习多模态语义的集成。 此外,跨模态特征相关性的标准化结合了 Sigmoid 函数来确定文本和图像输入之间的语义相似性。 进行了消融研究,以研究我们在少样本设置中的方法,如表 4 所示。结果清楚地表明少样本性能的显着改善,这归因于提示学习和所提出的相似性感知多模态融合过程的结合。

对未来研究的贡献

我们引入了一种新颖的 FND 框架 SAMPLE,用于通过提示学习来识别假新闻。 尽管提示学习在众多分类任务中表现出了高性能,但不同提示策略与多模态特征的集成仍有待探索。 本文提出了一种有前途的方法,该方法取得了令人印象深刻且稳健的结果,并且可以作为多模式 FND 未来研究的重要基线。

传统的多模态 FND 系统通常需要大量的训练数据才能达到令人满意的性能水平。 然而,在现实环境中获取带注释的数据具有挑战性。 本文证明 SAMPLE 提供了可比较的结果,特别是在少数样本场景中,表明其在现实情况下检测假新闻的能力。 此外,所提出的将相似性感知多模态特征与提示学习相融合的方法对于未来类似性质的分类任务具有潜力。

局限性和未来的工作

本研究有几个局限性。 首先,SAMPLE 主要关注研究软语言表达器的效果,该语言器旨在自动从词汇表中识别适当的标签词。 然而,在低数据条件下优化更广泛词汇量的软语言器仍然是一个相当大的挑战。 这表明需要额外的自适应修改来提高整体性能。 其次,新提出的基于相似性感知策略的多模态融合方法,旨在减少相关性较弱的跨模态特征中的噪声注入。 它没有明确考虑不相关的跨模态关系。 第三,仍然需要进一步探索包含不同模式的多模态FND 方法,例如新闻实体和社交网络。

多项研究表明,语言表达者的选择对表现有很大影响。 手动语言器[38]尤其依赖于特定于任务的先验知识,并且需要大量的劳动来识别代表类别的标签词。 另一方面,尽管软语言器[12]旨在简化这一过程,但在低数据环境中针对大词汇量有效优化它仍然具有挑战性。 此外,知识丰富的提示调整方法[17]利用外部知识库来扩大标签词的覆盖范围,并减少与手动语言器相关的偏差。 研究不同言语者的影响将是我们未来工作的一部分。 此外,整合新闻实体、主题和社交网络等其他模式有可能在未来进一步扩展多模态融合方法。

Conclusion

本文提出了一种新颖的相似性感知多模态 FND 框架,名为 SAMPLE,它利用提示学习。 为了缓解数据不足的问题,SAMPLE 对原始输入文本结合了三种流行的提示模板:离散提示、连续提示和混合提示。 采用预训练的语言模型 RoBERTa 从提示中获取文本特征。 此外,使用预训练的 CLIP 模型来获取输入文本、图像及其语义相似度。 为了解决语义差距并改善图像和文本模态之间的协作,我们引入了一种相似性感知的多模态特征融合方法,该方法应用标准化和 Sigmoid 函数来调整最终跨模态表示的强度。 最后,将多模态特征输入全连接层来投影并获得与特定新闻类别相对应的词分布。

我们在两个基准数据集上进行了多模态 FND 实验来评估所提出的方法。 SAMPLE 的性能与单模态、多模态和标准微调方法进行了广泛的比较。 我们的实验结果表明,无论是少量样本还是数据丰富的设置,SAMPLE 的性能都优于以前的方法。 此外,我们的结果表明,尽管图像模态提供了有意义的信息,但不相关的跨模态特征会对 FND 性能产生负面影响,特别是当训练实例数量有限时。 此外,我们方法的每个组成部分,特别是标准化的多模态特征融合模块,有助于来自预训练模型的单模态特征更有效地协作,挖掘 FND 的关键特征。

我们评估了来自各种预训练模型的文本和图像特征之间的语义相似性。 具体来说,我们应用 BERT 模型和 VGG-19 从每个训练样本中提取特征。 随后,计算平均相似度分数,以评估真实新闻和假新闻之间的语义相似度。 类似地,我们使用 CLIP 文本转换器和视觉转换器来提取单峰特征并计算它们的语义相似度。 我们还增加了样本数量来观察语义相似度的任何变化。 最后,为了准确地表示单峰模型之间的微小差异,我们对轴上的值进行对数缩放。

我们的实验结果表明,与从单模态模型获得的文本和图像特征相比,从 CLIP 模型提取的文本和图像特征表现出更高的一致性,如图 7 所示。这可以归因于 CLIP 通过联合训练和学习多模态表示的能力。 它利用对比损失函数,有助于区分相关对和不相关对。 结果,无论样本数量多少,真实新闻(CLIP_TRUE)的语义相似度始终高于假新闻(CLIP_FAKE)。 相比之下,BERT-VGG19组合分别从文本和图像中提取特征,这可能会在特征提取过程中引入更多噪声。

附录A:离散模板的提示工程

为了评估各种模板对性能的影响,我们创建了离散模板,如表 5 所示。由于即时工程涉及的时间和成本,我们在本文中将我们的研究限制为仅五个离散模板。 随后,我们选择获得最高 F1 分数的离散模板作为我们实验中的最终模板。

在这里插入图片描述

附录B:连续模板的不同初始化方法的比较

该研究比较了连续模板中<𝑠𝑜𝑓𝑡>标记的三种初始化方法,如表6所示。“随机”初始化方法即随机初始化<𝑠𝑜𝑓𝑡>标记。“FC”方法用另一个可训练矩阵重新参数化 <𝑠𝑜𝑓𝑡 > 标记,并通过 FC 层向前传播它[25]。“LSTM”方法通过 LSTM 层提供 < 𝑠𝑜𝑓𝑡 > token,并将输出用作可训练向量 [28]。尽管三种初始化方法在 F1 和精度方面的表现略有不同,但研究还观察到,与“随机”初始化相比,“FC”和“LSTM”初始化导致验证损失较晚收敛。 这是由于需要额外的训练来获得 < 𝑠𝑜𝑓𝑡 > 向量。

在这里插入图片描述

相关文章:

[Information Sciences 2023]用于假新闻检测的相似性感知多模态提示学习

推荐的一个视频&#xff1a;p-tuning P-tunning直接使用连续空间搜索 做法就是直接将在自然语言中存在的词直接替换成可以直接训练的输入向量。本身的Pretrained LLMs 可以Fine-Tuning也可以不做。 这篇论文也解释了为什么很少在其他领域结合知识图谱的原因&#xff1a;就是因…...

自定义vue3 hooks

文章目录 hooks目录结构demo hooks 当页面内有很多的功能&#xff0c;js代码太多&#xff0c;不好维护&#xff0c;可以每个功能都有写一个js或者ts&#xff0c;这样的话&#xff0c;代码易读&#xff0c;并且容易维护&#xff0c;组合式setup写法与此结合&#x1f44d;&#…...

《昇思25天学习打卡营第21天 | 昇思MindSporePix2Pix实现图像转换》

21天 本节学习了通过Pix2Pix实现图像转换。 Pix2Pix是基于条件生成对抗网络&#xff08;cGAN&#xff09;实现的一种深度学习图像转换模型。可以实现语义/标签到真实图片、灰度图到彩色图、航空图到地图、白天到黑夜、线稿图到实物图的转换。Pix2Pix是将cGAN应用于有监督的图…...

【文档+源码+调试讲解】科研经费管理系统

目 录 目 录 摘 要 ABSTRACT 1 绪论 1.1 课题背景 1.2 研究现状 1.3 研究内容 2 系统开发环境 2.1 vue技术 2.2 JAVA技术 2.3 MYSQL数据库 2.4 B/S结构 2.5 SSM框架技术 3 系统分析 3.1 可行性分析 3.1.1 技术可行性 3.1.2 操作可行性 3.1.3 经济可行性 3.1…...

linux 下 rm 为什么要这么写?

下面代码中的rm 为什么要写成/bin/rm? 大文件清理&#xff0c;高宿主含量样本可节约>90%空间/bin/rm -rf temp/qc/*contam* temp/qc/*unmatched* temp/qc/*.fqls -l temp/qc/ 这是一个很好的问题&#xff0c;观察很仔细, 也带着了自己的思考。 rm是 Linux 下的一个危险…...

【Spring Boot】Spring AOP中的环绕通知

目录 一、什么是AOP?二、AOP 的环绕通知2.1 切点以及切点表达式2.2 连接点2.3 通知&#xff08;Advice&#xff09;2.4 切面(Aspect)2.5 不同通知类型的区别2.5.1 正常情况下2.5.2异常情况下 2.6 统一管理切点PointCut 一、什么是AOP? Aspect Oriented Programming&#xff…...

docker部署前端,配置域名和ssl

之前使用80端口部署前端项目后&#xff0c;可以使用IP端口号在公网访问到部署的项目。 进行ICP域名备案后&#xff0c;可以通过域名解析将IP套壳&#xff0c;访问域名直接访问到部署的项目~ 如果使用http协议可以很容易实现这个需求&#xff0c;对nginx.conf文件进行修改&#…...

初学Spring之 IOC 控制反转

Spring 是一个轻量级的控制反转&#xff08;IOC&#xff09;和面向切面编程&#xff08;AOP&#xff09;的框架 导入 jar 包&#xff1a;spring-webmvc、spring-jdbc <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc&…...

rpc的仅有通信的功能,在网断的情况下,比网通情况下,内存增长会是什么原因

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;主要负责在分布式系统中透明地调用远程服务&#xff0c;就像调用本地函数一样。它封装了网络通信的细节&#xff0c;使得开发者可以专注于业务逻辑而非底层通信协议。RPC通信通常包括序列化、网络传输…...

从零开始:如何设计一个现代化聊天系统

写在前面: 此博客内容已经同步到我的博客网站,如需要获得更优的阅读体验请前往https://mainjaylai.github.io/Blog/blog/system/chat-system 在当今数字化时代,聊天系统已成为我们日常生活和工作中不可或缺的一部分。从个人交流到团队协作,从客户服务到社交网络,聊天应用…...

香橙派OrangePi AIpro初体验:当小白拿到一块开发板第一时间会做什么?

文章目录 香橙派OrangePi AIpro初体验&#xff1a;当小白拿到一块高性能AI开发板第一时间会做什么前言一、香橙派OrangePi AIpro概述1.简介2.引脚图开箱图片 二、使用体验1.基础操作2.软件工具分析 三、香橙派OrangePi AIpro.测试Demo1.测试Demo1&#xff1a;录音和播音(USB接口…...

【C语言内存函数】

目录 1.memcpy 使用 模拟实现 2.memmove 使用 模拟实现 3.memset 使用 4.memcmp 使用 1.memcpy 使用 void * memcpy ( void * destination, const void * source, size_t num );目的地址 源地址 字节数 destination&#xff1a;指向要复制内…...

Mysql部署MHA高可用

部署前准备&#xff1a; mysql-8.0.27下载地址&#xff1a;https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar mha-manager下载地址&#xff1a;https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-mana…...

【算法学习】射线法判断点在多边形内外(C#)以及确定内外两点连线与边界的交点

1.前言&#xff1a; 在GIS开发中&#xff0c;经常会遇到确定一个坐标点是否在一块区域的内部这一问题。 如果这个问题不是一个单纯的数学问题&#xff0c;例如&#xff1a;在判断DEM、二维图像像素点、3D点云点等含有自身特征信息的这些点是否在一个区域范围内部的时候&#x…...

SQL语句(DML)

DML英文全称是Data Manipulation Language&#xff08;数据操作语言&#xff09;&#xff0c;用来对数据库中表的数据记录进行增删改等操作 DML-添加数据 insert into employee(id, workno, name, gender, age, idcard) values (1,1,Itcast,男,10,123456789012345678);select *…...

uniapp小程序打开地图导航

uniapp uni.getLocation({type: gcj02, //返回可以用于uni.openLocation的经纬度success: function (res) {const latitude res.latitude;const longitude res.longitude;uni.openLocation({latitude: latitude,longitude: longitude,success: function () {console.log(suc…...

webstorm格式化或保存时 vue3引入的组件被删除了

解决办法 保存时设置 格式化设置...

Java时间转换

一、线程不安全 Date date new Date(); SimpleDateFormat dateFormat new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String prefix dateFormat.format(date);二、线程安全,建议使用 String t1 LocalDateTime.now().format(DateTimeFormatter.ofPattern("y…...

Spring Boot与WebFlux的实战案例

Spring Boot与WebFlux的实战案例 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将探讨如何利用Spring Boot和WebFlux构建响应式应用的实战…...

vue3引入本地静态资源图片

一、单张图片引入 import imgXX from /assets/images/xx.png二、多张图片引入 说明&#xff1a;import.meta.url 是一个 ESM 的原生功能&#xff0c;会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用 注意&#xff1a;填写自己项目图片存放的路径 /** vite的特殊性…...

git 禁止dev合并到任何其他分支

创建 pre-merge-commit 钩子 导航到 Git 仓库的钩子目录&#xff1a; cd /path/to/your/repo/.git/hooks创建或编辑 pre-merge-commit 钩子&#xff1a; 也可以通过指令创建 nano pre-merge-commit在钩子文件中添加以下代码&#xff1a; #!/bin/sh# 获取当前分支名称 curr…...

第二节:如何使用thymeleaf渲染html(自学Spring boot 3.x的第一天)

大家好&#xff0c;我是网创有方&#xff0c;今天来学习如何使用thymeleaf渲染html。该模板运用不广泛&#xff0c;所以本节内容了解既可。 第一步&#xff1a;创建html文件。 在模板templates目录下创建一个html文件。 编写代码如下&#xff1a; <!DOCTYPE html> <…...

计算机相关术语科普之什么叫网关(Gateway)

网关&#xff08;Gateway&#xff09;是一个在计算机网络中起到关键作用的设备或系统&#xff0c;它扮演着网络间连接器或协议转换器的角色。 一、定义与功能 1&#xff09;定义&#xff1a; 网关是在不同网络之间实现互连的复杂设备&#xff0c;仅用于两个高层协议不同的网…...

B站网页部分API

https://www.bilibili.com/ 数据结构 mid: 用户id name: 用户名 face: 用户头像url noface.jpg为默认头像 sign&#xff1a; 签名level: b站等级 coins: b站硬币粉丝 https://api.bilibili.com/x/relation/fans?vmid{mid}&pn{pn}&ps{limit}&orderdesc&…...

使用Spring Boot和Spring Security保护你的应用

使用Spring Boot和Spring Security保护你的应用 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何利用Spring Boot和Spring Security来保护…...

CVE-2019-12272 Openwrt可视页面LuCi命令注入漏洞复现(完结)

声明 本文所使用的一些源代码等内容已经上传至github&#xff0c;具体地址如下 Vulnerability_POC-EXP/OpenWrt/CVE-2019-12272 at main a2148001284/Vulnerability_POC-EXP GitHub 漏洞简介 参考内容&#xff1a; CVE-2019-12272 OpenWrt图形化管理界面LuCI命令注入分析 |…...

【多线程开发 4】从源码学习LockSupport

从源码学习LockSupport 2024年6月30日 大家好啊&#xff0c;好久没写博客了&#xff0c;今天打算写一下&#xff0c;讲一下JUC里面LockSupport这个类。 这个是一个工具类&#xff0c;实际上也是为了线程通信开发的。它的源码比较短&#xff0c;也只引用了Unsafe一个类。所以…...

gameui C++的代码

gameui C的代码 #include <graphics.h> #include "gameboard.h" const int WIDTH 560; const int HEIGHT 780; const int GRID_SIZE 120; class GameUi { private: public:GameUi(GameBoard& gb) {// 初始化图形窗口initgraph(WIDTH, HEIGHT);// 设置…...

1.什么是js?特点是什么?组成部分?

Js是一种直译式脚本语言&#xff0c;一种动态类型&#xff0c;弱类型&#xff0c;基于原型的高级语言。 直译式&#xff1a;js程序运行过程中直接编译成机器语言。 脚本语言&#xff1a;在程序运行过程中逐行进行解释说明&#xff0c;不需要预编译。 动态类型&#xff1a;js…...

爬虫是什么?

目录 1.什么是互联网爬虫&#xff1f; 2.爬虫核心? 3.爬虫的用途? 4.爬虫分类&#xff1f; 5.反爬手段&#xff1f; 1.什么是互联网爬虫&#xff1f; 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那一台计算机上的数据便是蜘蛛网上的一个猎物&#xff0c;而爬虫程序…...

深入理解Presto分页查询:方法与最佳实践

目录 引言为什么需要分页查询Presto简介分页查询的基本概念Presto分页查询的实现方法 使用LIMIT和OFFSET使用游标分页结合外部工具和框架 分页查询的性能优化 索引优化查询计划优化数据分区 实际案例分析最佳实践与常见问题 大数据集分页复杂查询分页实时性要求高的场景 总结 …...

如何使用Go语言中的并发函数实现网络爬虫的分布式部署?

如何使用go语言中的并发函数实现网络爬虫的分布式部署&#xff1f; 在当今的互联网时代&#xff0c;大量的信息蕴藏在各个网站中&#xff0c;爬虫成为了一种重要的工具。而对于大规模的数据爬取任务&#xff0c;采用分布式部署能够更有效地提升爬取速度和效率。Go语言的并发机…...

STM32第九课:DHT11温湿度传感器

文章目录 需求一、DHT11温湿度传感器二、模块配置流程1.配置时钟和IO2.读取数据3.数据处理 三、导入语音模块四、关键代码总结 需求 1.完成DHT11温湿度检测模块的配置。 2.处理DHT11获取的数据&#xff0c;在串口打印处理后的实时数据。 2.通过Su-03t语音识别模块实现实时温湿…...

JVM线上监控环境搭建Grafana+Prometheus+Micrometer

架构图 一: SpringBoot自带监控Actuator SpringBoot自带监控功能Actuator&#xff0c;可以帮助实现对程序内部运行情况监控&#xff0c;比如监控内存状况、CPU、Bean加载情况、配置属性、日志信息、线程情况等。 使用步骤&#xff1a; 1. 导入依赖坐标 <dependency><…...

MyBatis(17)MyBatis 如何处理枚举类型

MyBatis 处理枚举类型的机制相对直接&#xff0c;它提供了一种灵活的方式来处理Java枚举&#xff08;enum&#xff09;类型和数据库之间的映射。在MyBatis中&#xff0c;你可以通过两种方式处理枚举类型&#xff1a;使用枚举的名称&#xff08;name&#xff09;或者枚举的序号&…...

云数据中心运维新纪元:让Linux服务器如虎添翼

文章目录 一、Linux系统管理的高级技巧1. 性能调优与监控&#xff1a;2. 自动化与脚本编写&#xff1a;3. 文件系统与存储管理&#xff1a; 二、服务器配置优化的策略1. 硬件选型与配置&#xff1a;2. 网络配置与优化&#xff1a;3. 应用部署与调优&#xff1a; 三、安全策略的…...

C# 多线程造成CPU占用率高

当线程多的时候就会造成CPU内存占用率过高 private void button1_Click(object sender, EventArgs e){Thread TH1, TH2, TH3, TH4, TH5;TH1 new Thread(Thread1){IsBackground true};TH2 new Thread(Thread2){IsBackground true};TH3 new Thread(Thread3){IsBackground t…...

谈谈在不同公司中的SAP职位

今天反客为主&#xff0c;聊一下这个HR的话题&#xff0c;考虑到SAP职位的专业性&#xff0c;感觉还是有必要谈一谈这个话题。最近跟几位HR的小伙伴聊了一下&#xff0c;讨论了下不同公司的SAP职位的招聘要求&#xff0c;感觉还是有那么几个存在的问题&#xff1a; 追求完美的…...

服务器连接不上

记录今天2024/07/02的问题&#xff1a; 我今天真的是非常无语&#xff0c;今天在连服务器的时候&#xff0c;突然发现连不上了。 后来才意识到&#xff0c;原来是我笔记本先是开了全局代理&#xff0c;然后再用easy connected连接。当时还跳出了一个窗口如下&#xff0c;我当时…...

论文辅导 | 基于贝叶斯优化-卷积神经网络-双向长短期记忆神经网络的锂电池健康状态评估

辅导文章 模型描述 准确估计电池健康状态是设备稳定运行的关键。针对当前健康状态研究中容量难以直接测量、估计模型调参费时等问题&#xff0c;提出基于多健康特征的贝叶斯优化&#xff08;BO&#xff09;算法优化卷积神经网络&#xff08;CNN&#xff09;与双向长短期记忆&a…...

安卓实现微信聊天气泡

一搜没一个能用的&#xff0c;我来&#xff1a; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xml…...

软件测试(功能、接口、性能、自动化)详解 | 测试人生路

一、软件测试功能测试 测试用例编写是软件测试的基本技能&#xff1b;也有很多人认为测试用例是软件测试的核心&#xff1b;软件测试中最重要的是设计和生成有效的测试用例&#xff1b;测试用例是测试工作的指导&#xff0c;是软件测试的必须遵守的准则。 黑盒测试常见测试用…...

【面试题】网络IO模型

IO&#xff08;Input/Output&#xff09;模型指的是计算机系统中对输入/输出操作进行处理的不同方式。它定义了操作系统内核、应用程序和I/O设备之间如何交互和协调数据传输。不同的IO模型在效率、复杂性和适用场景方面都有所差异。以下是几种主要的IO模型及其特点&#xff1a;…...

数据结构-----【链表:基础】

链表基础 1、链表的理论基础 1&#xff09;基础&#xff1a; 链表&#xff1a;通过指针串联在一起的线性结构&#xff0c;每个节点由两部分组成&#xff0c;一个是数据域&#xff0c;一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个指针…...

如何在pycharm里面运行pytest用例

pycharm运行三种方式 1.以xx.py脚本方式直接执行&#xff0c;当写的代码里面没用到unittest和pytest框架时&#xff0c;并且脚本名称不是以test_开头命名的&#xff0c;此时pycharm会以xx.py脚本方式运行 2.当脚本命名为test_xx.py时&#xff0c;用到unittest框架&#xff0c…...

Charles抓包工具踩坑记录

请添加图片描述 Charles抓包工具 证书问题 输入网址&#xff1a;chls.pro/ssl 第一个下载证书网址&#xff0c;会出现一直加载不出来&#xff0c;无法下载证书的情况 解决&#xff1a;选择下面save Charles Root。。。 2 证书在mac中禁止修改问题 解决也很简单&#xff0c;按照…...

【RabbitMQ实战】邮件发送(直连交换机、手动ack)

一、实现思路 二、异常情况测试现象及解决 说明:本文涵盖了关于RabbitMQ很多方面的知识点, 如: 消息发送确认机制 、消费确认机制 、消息的重新投递 、消费幂等性, 二、实现思路 1.简略介绍163邮箱授权码的获取 2.编写发送邮件工具类 3.编写RabbitMQ配置文件 4.生产者发起调用…...

python 笔试面试八股(自用版~)

1 解释型和编译型语言的区别 解释是翻译一句执行一句&#xff0c;更灵活&#xff0c;eg&#xff1a;python; 解释成机器能理解的指令&#xff0c;而不是二进制码 编译是整个源程序编译成机器可以直接执行的二进制可运行的程序&#xff0c;再运行这个程序 比如c 2 简述下 Pyth…...

《SpringBoot+Vue》Chapter04 SpringBoot整合Web开发

返回JSON数据 默认实现 依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>在springboot web依赖中加入了jackson-databind作为JSON处理器 创建一个实体类对象…...

腾讯地图异步调用

<template><!-- 定义地图显示容器 --><div id"container"></div> </template><script setup>import { onMounted } from vue;const mapKeys import.meta.env.VITE_GLOB_TX_MAP_KEYS;function initMap() {// //定义地图中心点坐…...

Java的编程之旅46——List集合

1.List集合的特殊方法 List接口是Collection接口的子接口&#xff0c;提供了一系列操作元素的方法。 常见的List集合实现类有ArrayList和LinkedList。ArrayList我们在前面已经介绍过了&#xff0c;这一章中着重介绍一下List集合的特有方法。 List<String> list new Arr…...

Python爬虫实战案例——王者荣耀皮肤抓取

大家好&#xff0c;我是你们的老朋友——南枫&#xff0c;今天我们一起来学习一下该如何抓取大家经常玩的游戏——王者荣耀里面的所有英雄的皮肤。 老规矩&#xff0c;直接上代码&#xff1a; 导入我们需要使用到的&#xff0c;也是唯一用到的库&#xff1a; 我们要抓取皮肤其…...

07 docker 容器存储持久化

目录 1. Docker Volumes 特点 示例 2. Bind Mounts 特点 示例 对比总结 3. tmpfs Mounts 4. Docker Storage Plugins 5. Kubernetes Persistent Volumes 6. Network Attached Storage (NAS) 和 Storage Area Network (SAN) 1. Docker Volumes 使用存储卷进行存储持久…...

去中心化社会的崛起:探索区块链对社会结构的影响

随着区块链技术的发展和应用&#xff0c;我们正逐步迈向一个去中心化的社会结构。本文将深入探讨区块链技术如何影响社会结构&#xff0c;从经济、政治到文化等多个方面进行探索和分析&#xff0c;揭示其可能带来的革命性变革。 1. 区块链技术的基本原理回顾 1.1 分布式账本与…...

代码随想录Day71(图论Part07)

53.寻宝 题目&#xff1a;53. 寻宝&#xff08;第七期模拟笔试&#xff09; (kamacoder.com) 思路&#xff1a;首先&#xff0c;我不知道怎么存这样的东西&#xff0c;用三维数组吗&#xff0c;没搞懂&#xff0c;果断放弃 prim算法实现 import java.util.*;class Main {publi…...

Java网络编程基础与Socket实现技术

Java网络编程基础与Socket实现技术 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 网络编程是现代应用程序开发中的一个重要领域。在Java中&#xff0c;网络编…...

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}

文章目录 1.确认应答机制2.超时重传机制&#xff1a;超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释&#xff1a; 数据分段与发送&#xff1a; 发送方将要发送的数据分成一…...

2024 年 5 个 GO REST API 框架

什么是API&#xff1f; API是一个软件解决方案&#xff0c;作为中介&#xff0c;使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值&#xff1a; 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码&#xff1b;这些是为移动开…...

【busybox记录】【shell指令】unlink

目录 内容来源&#xff1a; 【GUN】【unlink】指令介绍 【busybox】【unlink】指令介绍 【linux】【unlink】指令介绍 使用示例&#xff1a; 删除文件 - 默认 常用组合指令&#xff1a; 指令不常用/组合用法还需继续挖掘&#xff1a; 内容来源&#xff1a; GUN &#x…...

爬虫案例-亚马逊反爬分析-验证码突破(x-amz-captcha)

总体概览&#xff1a;核心主要是需要突破该网站的验证码&#xff0c;成功后会返回我们需要的参数后再去请求一个中间页&#xff08;类似在后台注册一个session&#xff09;&#xff0c;最后需要注意一下 IP 是不能随意切换的 主要难点&#xff1a; 1、梳理整体反爬流程 2、验证…...

算法学习笔记(7)-贪心算法

##什么是贪心算法 一种常见的解决优化类型的问题&#xff0c;基本的思想是在问题的每个决策阶段&#xff0c;都选择当前看起来最优的选择&#xff0c;即贪心地做出局部最优解的决策&#xff0c;以期待获得全局最优解。 ##贪心算法与动态规划的区别&#xff08;二者都为解决优化…...

戴尔台式机win10家庭版操作系统,插上耳机之后听不到声音。(成功解决)

问题描述 戴尔台式机win10家庭版操作系统&#xff0c;外放有声音&#xff0c;插上耳机之后只有滋啦滋啦的声音&#xff0c;听不到音乐&#xff0c;耳机无损坏&#xff08;在其他台式机和手机上都能听到声音&#xff09;。尝试解决办法如下。 尝试解决 尝试一&#xff1a;更新…...