VD-BERT(统一视觉对话 2020 EMNLP)

提出VD-BERT,一种结合视觉与对话任务的Transformer模型,能在视觉对话基准上实现SOTA表现,支持判别式和生成式训练,无需额外预处理。

在这里插入图片描述

VD-BERT: A Unified Vision and Dialog Transformer with BERT
https://github.com/salesforce/VD-BERT.

本文贡献

  1. 展示了BERT可以通过简单的视觉基础训练来有效地适应视觉对话任务,以捕捉复杂的视觉对话交互。此外,VD-BERT是第一个支持discriminative和 generative训练设置的统一模型,没有显式解码器。
  2. 不需要对外部视觉语言数据进行预处理,模型在视觉对话基准的discriminative设置和generative设置中产生了SOTA结果。

The VD-BERT Model

问题定义

给定一个基于图像III的第ttt轮question:QtQ_tQt,以及它的对话历史:在这里插入图片描述
CCC表示图像的标题,agent被要求去预测它的答案AtA_tAt,通过排名100个候选答案:
在这里插入图片描述
一般来说,有两种类型的解码器来预测答案:对候选答案进行排序并使用交叉熵损失进行训练的判别decoder,或者合成答案并使用最大对数似然损失进行训练的生成decoder。

Model

在这里插入图片描述
首先,使用一个统一的vision-dialog Transformer 来编码vision和dialog历史,其中在输入中添加了一个正确答案,以早期融合的方式模拟它们的交互。接下来,采用基于视觉的MLM和NSP目标,使用两种类型的自我注意masked——bidirectional和seq2seq去训练视觉和对话融合模型。最后设计了一个Rank模块来进一步微调。

Vision-Dialog Transformer Encoder

Faster RCNN提取图像特征:
在这里插入图片描述
OiO_iOi∈∈RRR2^220^004^448^88kkk是目标的数量(被固定在36)

Language Features

将所有文本元素(标题和多轮对话)打包成一个长序列。使用WordPiece标记器将它分成一个单词序列www,其中每个单词都嵌入了一个绝对位置代码,跟BERT一样。

Cross-Modality Encoding

[CLS] 开始
[SEP] 分割类型
[EOT] 对话结束标志
因此,输入序列:
xxx = ([CLS],o1o_1o1,…,oko_kok,[SEP],CCC,[EOT],Q1Q_1Q1A1A_1A1,[EOT],…,QtQ_tQtAtA_tAt,[SEP])
为了通知模型答案预测,在QtQ_tQtAtA_tAt pair之间插入一个[PRED]标记。最后,将每个输入tokens嵌入与它的位置嵌入和片段嵌入(0或1,指示它是图像还是文本)和层归一化相结合。

Transformer Backbone

将嵌入的vision-dialog输入表示为H0H^0H0= [e1e_1e1,…,eee∣_|x_xx∣_|],然后将它们编码成多级上下文表示HlH^lHl = [hhhl^ll1_11,…,hhhl^ll∣_|x_xx∣_|]使用LLL堆叠变压器模块,其中第LLL个Transformer模块表示为HlH^lHl =Transforemer(HHHl^ll−^-1^11),LLL∈∈[111LLL]。在每个Transformer模块中,前一层的输出HHHl^ll−^-1^11∈∈RRR∣^|x^xx∣^|×^××D^DDh^hh使用多头self-attention进行聚合:
在这里插入图片描述
MMM是masked矩阵。

Visually Grounded Training Objectives

使用MLM和NSP来训练,旨在捕捉模态间(即图像-对话)和模态内(即图像-图像-对话)之间的密集交互:
文本段中15%的标记(包括像[EOT]和[SEP]这样的特殊标记)被随机屏蔽掉,并用特殊标记[MASK]替换。然后,要求模型不仅基于周围的标记,还基于图像III来恢复它们(图像中不做mask处理):
在这里插入图片描述
对于NSP,与BERT不同:不是模拟两个句子之间的关系或图像-文本对的匹配,而是基于对图像和对话历史的共同理解来预测附加的回答是否正确:
在这里插入图片描述
S(·)取[CLS]位置的表示送到最后一层得到概率。

Discriminative Setting

为了在辨别环境中进行训练,将选择答案的任务转化为一个逐点二元分类问题。
从候选库中抽取一个答案样本,并将其附加到输入序列中,然后要求NSP辨别所抽取的答案是否正确。使用双向self-attention(mask矩阵M都设置为0)掩码。为了避免不平衡的类分布,在每个epoch中保持正负实例的比例为1:1。在推理过程中,根据NSP heads的正类别分数对答案进行排名。

Generative Setting

为了自回归生成答案,作者还使用seq2seq self -attention mask训练VD-BERT。将每个Transformer的输入序列分为两个子序列,上下文和答案:
在这里插入图片描述

通过将MMM的左边部分设置为全0允许上下文中的tokens被完全可见。对于答案序列,屏蔽掉“未来”标记(通过设置为负无穷)以获得自回归关注(参见图2中的红点)。

在这里插入图片描述
在推理过程中,我们依赖于相同的统一Transformer encoder ,该encoder具有顺序MLM操作,而没有显式解码器。通过递归地在序列的末尾添加一个[MASK]标记,以触发one-step预测,然后用预测的token替换它,用于下一个token预测。解码过程基于贪婪采样,并在发出[SEP]时终止,所得的对数似然分数将用于对候选答案进行排序。

Fine-tuning with Rank Optimization

由于一些候选答案在语义上可能是相似的(例如,图2中的“brown”对“brown tan”),
在这里插入图片描述
作者提供了注释:该注释为100个候选答案指定实值相关性分数,[s1s_1s1,…,s1s_1s10_000_00]带sis_isi∈∈ [000111]。为了对此进行微调,将来自模型的所有候选答案的NSP分数组合成向量[p1p_1p1,…,p1p_1p10_000_00]。由于密集注释的微调通常是一个学习排名(LTR)的问题,所以可以利用一些排名优化方法。本文采用List-Net with top-1 approximation作为VD-BERT的排序模块:在这里插入图片描述

实验

DATASETS

VisDial v0.9 and v1.0 datasets

参数

BASE-BERT作为主干。将最大输入序列长度(包括36个可视对象)保持在250。
Adam以3e-5的初始学习率和32的batch_size来训练模型。线性学习率衰减:0.1
首先使用MLM和NSP LLLOOOSSSSSS(具有相等的系数)在4个V100 GPUs的集群上训练VD-BERT 30个epochs。

结果

VisDial v1.0:
在这里插入图片描述
VisDial v0.9
在这里插入图片描述
消融实验:
在这里插入图片描述
(a)训练设置:BERT初始化最优
(b)对话上下文设置:全历史多指标最优
(c)loss设置:ListNet 和ApproxNDCG
(d)选择标准

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值