论文浅尝 | KM-BART:用于视觉常识生成的知识增强多模态BART

笔记整理:陈子强,天津大学硕士

69102c414da575d68c4a853b5f9626ac.png

动机

视觉语言模型早期集中在纯理解任务(例如,VQA视觉问答),尽管在理解任务上取得了先进的性能,却很少关注多模态生成任务。当前的预训练任务例如,掩码语言模型(MLM)和掩码区域模型(MRM)使得模型能够在视觉和语言特征之间建立对齐,这种特征对齐无法提高模型的多模态常识推理能力。

亮点

KM-BART的亮点主要包括:

1.作者扩展了BART模型来处理图像和文本的多模态数据,并通过引入任务相关标记来实现多模态推理。;2.为了提高视觉常识生成(VCG)模型的性能,作者通过设计一个新的预训练任务,将外部知识图中的常识知识隐式地融入到KM-BART中,我们称之为基于知识的常识生成(KCG)。3.除了KCG,作者还为KMBART加入了标准的预训练任务,包括掩码语言建模(MLM)、掩码区域建模(MRM)以及归因预测(AP)和关系预测(RP)。实验结果表明,所有的预训练任务都是有效的,结合这些预训练任务, KMBART能够在VCG任务上达到最先进的性能。

模型及预训练任务

视觉常识生成(VCG)是给定图片和文本(event),生成图片中人物之前会发生什么(before),任务当前的意图(intent),以及之后会发生什么(after)。下图是一个例子:

88a0a8f062c5380c82922f6893ab0ec9.png

KM-BART是一种基于Transformer的序列到序列自编码器。作者通过修改原始的BART使模型适用于图像和文本的跨模态输入。通过添加了一些特殊的token使得模型适用于不同的预训练和评估任务。

KM-BART由三部分构成:

•Visual Feature Extractor:通过Masked R-CNN提取图像不同区域特征和每个区域的标签p(v_i )•Cross-Modal Encoder:引入特殊token表示当前任务的类型。对于基于知识的常识生成任务,使用<before>,<after>或者<intent>作为起始标志。对于属性和关系预测任务使用。对于掩码语言任务和掩码区域任务使用<caption>。用<img>和</img>表示图像输入的开始和结束,<event>和</event>表示事件的开始和结束,<mlm>和</mlm>表示文本的开始和结束。•Decoder:自回归的解码器,不将视觉表示当做输入,使用的表示来替换视觉表示。对于掩码语言任务和掩码区域任务使用<cls>代替被掩码的区域或者单词。

模型整体框架如下:

781596d69ed93b2b10868b5dc6284043.png

KM-BART有五个预训练任务:

•基于知识的常识生成(Knowledge-Based Commonsense Generation)

作者从COMET中引入外部知识。COMET是在外部常识知识图谱上预训练的大型语言模型。给定一个自然语言短语和一个关系作为输入,COMET生成自然语言短语作为常识描述。将COMET中xIntent和xWant的预测结果视为intent,将COMET中的xNeed的预测结果视为before,将COMET的预测结果视为after。作者通过这种方式,并对数据进行筛选,从而扩充了预训练数据集。

对于扩充的数据集,为了筛选到合理的数据,作者对数据进行了过滤。首先将BART模型在VCG数据集上进行微调,此时模KM-BART已经取得了不错的效果。这时将COMET生成的数据,输入网络计算交叉熵,取小于阈值(文中3.5)的数据进行保留。

在扩充后的数据集上进行常识生成,损失函数如下:

60346122a4d55603d80b961b5bdbb60a.png

W和V表示输入的图像和文本,L表示句子长度。

•属性预测(Attribute Prediction)&关系预测(Relation Prediction)

由于预训练的Visual Genome数据集存在230万个关系和280万个属性,为了充分利用这个数据集,作者构建了属性预测和关系预测两个预训练任务。可以使得模型学到图像中不同区域之间的内在属性。

在属性预测任务中,将图像特征的解码器输出向量输入到MLP分类器中,计算交叉熵损失。在关系预测任务中,将图像特征两两拼接,输入到MLP分类器中计算交叉熵损失。

91f587c01f180a993ee18c129721eabd.png

fc02460a7ed2a2018f5e7ecbb334806e.png

•掩码语言建模(Masked Language Modeling)

与BERT中类似,以15%的概率随机掩码一些文本单词。在被掩码的单词中80%概率用代替,10%的概率随机替换,10%的概率不变。希望让模型预测出这些被掩码的单词。损失函数如下:

8954299cd2709075fc269e64c46520b0.png

•掩码区域建模(Masked Region Modeling)

以15%的概率掩码图像区域,即用0向量填充图像。模型需要预测被掩码的区域所属的类别分别。损失函数是最小化输出分布和在视觉特征提取中得到的区域标签概率分布之间的KL散度,公式如下:

c5deca9eac7048515b3308f511f5d211.png

实验

文章将模型架构固定为6层编码器和6层解码器。消融实验的设置如下:(1)不进行预训练(2)只进行KCG预训练任务,同时比较数据过滤前后的模型性能(3)只进行AP和RP任务(4)只进行MLM和MRM任务(5)所有的预训练任务都加上。消融实验结果如下:

cac7c32a3057fadfd00a8f226e2dcf6b.png

VCG数据集包括了117.4万个训练样本和14.6个测试样本。评价指标为BLEU-2,METEOR,CIDER。此外也计算量了,Unique和Novel指标。Unique即生成的推理句子占比,Novel即训练数据中不存在的句子占比。对比实验如下:

3a769b7bcdfbf3deba8f46fc839b8df4.png

作者同时进行了人工评估,即抽取若干生成的常识,人工选取合理的结果。最后统计baseline和KM-BART的占比。实验结果如下:

713677112fd285a17646a4ab425460bb.png

总结

文章提出了知识增强的多模态BART (KM-BART ),这是一个基于Transformer的模型,能够从图像和文本的跨模态输入中推理和生成常识描述。同时提出了基于知识的常识生成的预训练任务,该任务通过利用在外部常识知识图上预训练的大型语言模型来提高KM-BART的推理能力。作者使用自我训练来过滤自动生成的常识性描述。在VCG任务上的实验结果表明,KM-BART在预训练任务上达到了最佳性能。进一步的人工评估表明,KM-BART可以产生高质量的常识推理。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

c336e93c0ae938938c0bd9ea1bbaca50.png

点击阅读原文,进入 OpenKG 网站。

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

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

相关文章

AllenAI | 用GPT-3帮助增建数据,NLI任务直接提升十个点!?

文 | iven编 | 小轶用机器构建数据集&#xff0c;这件事可能比机器学习诞生的还要早&#xff0c;很多人做过很多工作。怎样让机器参与进来&#xff1f;前人的工作可以分成两类思路&#xff1a;一类是以远程监督为代表&#xff0c;让机器来标注&#xff0c;主要目的在于得到更多…

论文浅尝 | CLIP-Event: 用事件结构连接文本和图像

笔记整理&#xff1a;康婧淇&#xff0c;东南大学硕士&#xff0c;研究方向为多模态事件抽取、自然语言处理。动机视觉语言预训练模型通过理解图像和文本之间的排列组合&#xff0c;在支持多媒体应用方面取得了巨大成功。虽然现有的视觉语言预训练模型主要侧重于理解图像中的物…

LeetCode 402. 移掉K位数字(贪心,单调栈)

1. 题目 给定一个以字符串表示的非负整数 num&#xff0c;移除这个数中的 k 位数字&#xff0c;使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num "1432219", k 3 输出: "1219" 解释: 移除掉…

Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来&#xff0c;就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中&#xff0c;但是凭借阿里中间件团队的背景&#xff0c;还是得到不少团队的支持&#xff1b;同时&#xff0c;由于Spring …

忙累了躺平,躺醒后该干点啥

文 | 一只菜鸡前几天刷到 微调 的一些碎碎念&#xff0c;觉得自己的2021年还是有蛮多收获的&#xff0c;于是在各位卖萌屋小伙伴的鼓励下&#xff0c;就有了本文。收获很多&#xff0c;我从中挑选出来自我感觉对读者来说比较有用的三点。1. 放低期待&#xff0c;学会适当躺平我…

论文浅尝 | P-Adapters: 从具有不同提示的语言模型中鲁棒地提取事实信息

笔记整理&#xff1a;田玺&#xff0c;浙江大学硕士研究生。研究方向&#xff1a;知识图谱、自然语言处理论文地址&#xff1a;https://openreview.net/forum?idDhzIU48OcZh&#xff0c;录用于ICLR2022摘要之前的工作发现&#xff0c;从大型语言模型&#xff08;LLMs&#xff…

LeetCode 470. 用 Rand7() 实现 Rand10()(随机概率)

1. 题目 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数&#xff0c;试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。 不要使用系统的 Math.random() 方法。 示例 1: 输入: 1 输出: [7]示例 2: 输入: 2 输出: [8,4]示例 3: 输入: 3 输出: [8,1,10]提示: rand…

Spring Cloud Stream同一通道根据消息内容分发不同的消费逻辑

应用场景 有的时候&#xff0c;我们对于同一通道中的消息处理&#xff0c;会通过判断头信息或者消息内容来做一些差异化处理&#xff0c;比如&#xff1a;可能在消息头信息中带入消息版本号&#xff0c;然后通过if判断来执行不同的处理逻辑&#xff0c;其代码结构可能是这样的…

图谱实战 | 再谈图谱表示:图网络表示GE与知识图谱表示KGE的原理对比与实操效果分析...

转载公众号 | 老刘说NLP知识图谱嵌入是一个经典话题&#xff0c;在之前的文章《知识表示技术&#xff1a;图谱表示VS图网络表示及基于距离函数的表示学习总结》中&#xff0c;围绕知识图谱嵌入学习这一主题&#xff0c;对比了知识图谱嵌入与图网络嵌入的异同。而在实际工作中&a…

LeetCode 1247. 交换字符使得字符串相同

1. 题目 有两个长度相同的字符串 s1 和 s2&#xff0c;且它们其中 只含有 字符 “x” 和 “y”&#xff0c;你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&#xff0c;你都可以在两个字符串中各选一个字符进行交换。 交换只能发生在两个不同的字…

图深度学习前沿工作汇总与解析

图深度学习除了可以应用于标准图推理任务以外&#xff0c;还广泛应用于推荐、疾病或药物预测、自然语言处理、计算机视觉、交通预测等领域。可见&#xff0c;基于图的深度学习不仅有助于挖掘现有图数据背后的丰富价值&#xff0c;而且还通过将关系数据自然地建模为图&#xff0…

Spring Cloud Stream消费失败后的处理策略(四):重新入队(RabbitMQ)

应用场景 之前我们已经通过《Spring Cloud Stream消费失败后的处理策略&#xff08;一&#xff09;&#xff1a;自动重试》一文介绍了Spring Cloud Stream默认的消息重试功能。本文将介绍RabbitMQ的binder提供的另外一种重试功能&#xff1a;重新入队。 动手试试 准备一个会…

图谱实战 | 华农夏静波:深层语义知识图谱在药物重定位中的应用

转载公众号 | DataFunSummit分享嘉宾&#xff1a;夏静波 华中农业大学 副教授编辑整理&#xff1a;王金华 电科32所出品平台&#xff1a;DataFunTalk导读&#xff1a;自新冠病毒肺炎疫情发生以来&#xff0c;由于传统药物研发周期长&#xff0c;药物重定位&#xff08;老药新用…

LeetCode 738. 单调递增的数字(贪心)

1. 题目 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整数&#xff0c;同时这个整数需要满足其各个位数上的数字是单调递增。 &#xff08;当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。&#xff09; 示例 1…

晋升挂了,leader说不是我技术不行

本文授权转载自公众号“算法圈的小破事”&#xff0c;点击以上卡片进行关注大家好&#xff0c;我是在互联网危险边缘疯狂试探的皮皮虾。今天跟大家分享一个故事。晋升去年秋季&#xff0c;我参加了校招入职以来的第一场晋升答辩。答辩前&#xff0c;我比来比去&#xff0c;觉得…

Spring Cloud Stream消费失败后的处理策略(二):自定义错误处理逻辑

应用场景 上一篇《Spring Cloud Stream消费失败后的处理策略&#xff08;一&#xff09;&#xff1a;自动重试》介绍了默认就会生效的消息重试功能。对于一些因环境原因、网络抖动等不稳定因素引发的问题可以起到比较好的作用。但是对于诸如代码本身存在的逻辑错误等&#xff…

论文浅尝 | DEKR: 一个基于描述增强知识图谱的机器学习方法推荐系统

笔记整理&#xff1a;刘尧锟&#xff0c;天津大学硕士链接&#xff1a;https://dl.acm.org/doi/pdf/10.1145/3404835.3462900动机面对大量的机器学习&#xff08;ML&#xff09;方法&#xff0c;为给定的数据集和任务选择合适的方法是一个挑战。一般来说&#xff0c;ML方法或数…

Meta AI 发布 data2vec!统一模态的新里程碑!

文 | ZenMoore编 | 小轶如果让大家举一个最成功的自监督模型的例子&#xff0c;尤其对于各位 NLPer&#xff0c;肯定毫不犹豫地祭出我大 BERT. 想当年 BERT 打了一个名叫 MLM (Masked Language Model) 的响指&#xff0c;直接成了 NLP 灭霸。视觉界、语音界闻声而来&#xff0c…

LeetCode 946. 验证栈序列(栈)

1. 题目 给定 pushed 和 popped 两个序列&#xff0c;每个序列中的 值都不重复&#xff0c;只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false 。 示例 1&#xff1a; 输入&#xff1a;…

Spring Cloud Stream消费失败后的处理策略(一):自动重试

之前写了几篇关于Spring Cloud Stream使用中的常见问题&#xff0c;比如&#xff1a; 如何处理消息重复消费如何消费自己生产的消息 下面几天就集中来详细聊聊&#xff0c;当消息消费失败之后该如何处理的几种方式。不过不论哪种方式&#xff0c;都需要与具体业务结合&#xf…