2021 CVPR 《VLN BERT: A Recurrent Vision-and-Language BERT for Navigation》论文精读笔记
Abstract and Introduction
- 将BERT 结构应用到部分观测的马尔科夫决策过程是很难的
- 这篇文章提出了一种recurrent BERT 模型,用BERT和一个recurrent function来维持跨模态的agent state信息
- 这种方法可以泛化成transformer based结构,并且能够解决navigation和referring expression问多任务
- 之前的方法都是把VLN BERT用于encode或者计算instruction path的能力,这个方法可以直接用来学习去navigate
- VLN可以摆看做马尔科夫决策过程,未来的决策会依赖当前的状态。每次决策时,只对应一部分instruction,并且需要agent保持对过去路径的追踪,然后能确定现在对应哪个sub instruction,然后再作出决定
- VLN需要很大的计算量,因为每个episode都很长,所以直接self attention的话,训练的计算量很大。所以他们用预训练模型来初始化,结合一个recurrent function,并让language token只是作为key来进行query,这样也能降低显存的使用
Proposed Model

- VLN其实就是给出一系列的instruction
,每个时间步 ,agent观察到环境并作出一个action ,将agent的状态从 变成 , 是viewpoint, 是heading的角度, 是elevation的角度。如果agent决定stop,那就结束任务。 - 形式化:
- 输入:
- 上次的agent state
- language tokens
- visual tokens
- object tokens
- 上次的agent state
- 输出:
- 当前的agent state
- action probability
- object grounding probability
- 当前的agent state
- language processing:
- 用预训练模型OSCAR和PREVALENT
- CLS token被用于聚合相关的语义信息,用了对比学习
- 形式化为:
- navigation阶段,返回的X只是用于key和value,不会像
那样self attention,认为language token已经是一个很深层次的语义表达了,不需要进一步encoded
- vision processig:
- 先把image特征转换到BERT的相同空间
, 是指在这个方向 - 然后把
和 拼接到一起,送到模型中,即 - 对于REF 任务,
投影到方向空间中,然后送到模型中
- 先把image特征转换到BERT的相同空间
- state representation:
用来表示在第t个时间步时,所有文本和图像的信息汇总,以及agent在之前做的所有decision - 模型依赖BERT的原始结构来识别时间上依赖的输入,以及recurrent 更新state
- state refinement:
- 没有使用state信息直接预测decision
- 对language和visual tokens分别:
- 计算attention score:
- 得到多头注意力的平均score,然后softmax这些score得到对每个token位置的score。
- 计算attention score:
- 然后再和原有的tokne乘起来,得到加权和。
- 在原始的text和visual 特征之间进行跨模态对齐,是element-wise product的方式。
。这里的 是最后一层的输出state特征。简单来说就是文本和图像特征对齐后和输出的state拼接在一起做了一个线性变换。REVERIE任务中不需要文本特征,因为它的instruction都是比较高层次的 - 最后得到当前的state:
,其中 是selected action。
- decision makig:
- 用state和visual 特征做一个inner product来检验这个方向的state和vision是否对应
- 用了VisualBERT中类似的方式,直接对所有的attention head的最后一层进行权重平均,就像
一样. - 对于remote referring expression task,
,这里是对所有candidate object的
- training:
- 结合了reinforcement learning和imitation learning
- 在RL方面用了A2C,agent在action中通过
采样一个,并在每个时间步计算 的优势 - 在IL方面只用teacher action,就是ground truth,对decision算一个交叉熵损失,
,其中, 是teacher action,在REVERIE任务中,还有一项
Conclusion
- 引入了recurrent 机制,对state的重复使用,就像LSTM中cell state一样,充分利用BERT原有的结构来识别time-dependent的输入。其实就是为了解决马尔科夫链中对过去状态的依赖。
- 用BERT直接作为navigator,而不是像以往作为encoder。就是说输出部分直接得到action probability和object grounding probability(虽然不懂做啥的)
- 用了多任务
- 个人感觉主要是用了预训练模型提升的点,主要是从Table 3里面的3和4实验对比,直接从比较差的效果提升到了接近sota,后面加入的state、decision、matching也只是在这个基础上提升了一点点
- 用了RL和IL
- 用了对比学习