VLN 基础模型:序列建模、跨模态注意力与动作预测
视觉语言导航模型需要把完整指令、当前观测与过去经历转化为下一步行动。本文从带注意力的 Seq2Seq 基线出发,解释跨模态读取、候选动作预测与历史表示,并通过 Recurrent VLN-BERT 和 HAMT 比较固定状态与显式历史两种设计。
“穿过客厅,在第二个门口右转;如果走到楼梯旁,就返回刚才的红色沙发。”同一幅门口图像,在刚出发、已经经过第一扇门和正在回退时,可能对应不同动作。模型既要理解眼前的场景,也要判断指令执行到了哪里。
上一篇讨论了任务、动作接口与评价口径。本篇把问题推进到模型内部:信息如何编码、如何按当前需要读取,以及如何形成可执行的动作分布。 重点是路线跟随中的序列结构与融合机制;地图表示、预训练目标和策略优化分别需要进一步展开。
一、在线决策的计算结构
1.1 完整指令与逐步产生的观测
记指令为 ,当前观测为 ,历史为 ,则一步策略是
完整指令在出发时已经给定;未来画面则取决于接下来采取的动作。向左进入房间与向右进入走廊,会产生不同的下一帧。因此,“语言序列映射为动作序列”只是模型的形式概括,实际导航仍必须逐步读取环境反馈。
用 表示环境状态,包含状态、观测、动作的联合轨迹可按闭环过程分解为
这里采用常见的马尔可夫环境抽象, 是该回合记录的决策长度,终止后的转移可定义为吸收状态。策略只有中间的动作概率项带参数 ;它并不直接读取完整的 。这一区分有助于避免把训练轨迹中的未来图像提前送给在线策略。
1.2 编码、记忆、读取与动作头
模型可以拆成四项相互连接的工作:
| 组件 | 输入与产出 | 需要回答的问题 |
|---|---|---|
| 语言与视觉编码 | 词、图像、方向 → 特征 | 哪些信息进入模型? |
| 历史表示 | 已见观测、已执行动作 → 状态或序列 | 哪些经历被保留下来? |
| 跨模态读取 | 当前状态与语言、视觉、历史交互 | 此刻哪些信息与决策相关? |
| 动作头 | 融合后的表示 → 动作分布 | 输出对应固定动作,还是当前候选? |
图 1:在线导航的数据流示意。模型内部状态与真实环境状态是两个对象;执行后的观测重新进入下一次决策。 查看原图
后续方法的区别,可以落到这四项分工上。更换编码器不一定改变历史的保存方式;增加历史序列也不一定改变动作接口。
二、Seq2Seq:从词级上下文到下一动作
2.1 语言编码与循环状态
R2R 原始基线使用带注意力的 LSTM 编码器—解码器。语言编码器保留各词位置的隐藏状态,而非只把整段指令交付为一个不可再读取的向量;解码器每步接收当前图像和上一动作,再读取语言上下文。R2R,§5.1
下面用统一符号展开这种计算。设词嵌入 ,编码结果 :
为突出数据流,式中省略 LSTM 的细胞状态;实现时隐藏状态与细胞状态都要传递。指令编码完成后, 可供各决策步重复读取。
设图像编码器输出 ,上一动作的嵌入为 ,解码器更新为
分号表示拼接。 吸收当前观测与此前经历,是模型学习的内部摘要,不能直接当作机器人位姿或完整地图。第一步需要约定起始动作标记及初始状态,不能把不存在的上一动作当成普通运动动作。
2.2 按当前状态读取指令
当智能体已经进入客厅,下一步可能需要关注“第二个门口”;遇到楼梯后,又应重新读取“返回红色沙发”。用当前状态作为查询,可以构造双线性语言注意力:
若 ,则 ;每个匹配分数是标量, 与词特征维度相同。批量训练中,补齐长度的 padding 词必须在 softmax 前屏蔽。
语言上下文与当前状态融合后,再预测固定动作类别:
这些式子将语言对齐、汇聚和输出投影分别写出,以便检查维度。注意力并不强制单调向后移动,也不保证模型正确识别指令阶段;它是一种可学习的信息读取机制。
2.3 观测范围与动作接口必须配套
原始 R2R 基线使用当前视野的 ResNet-152 特征,输出 left、right、up、down、forward、stop 六类动作。后来常用的全景候选导航,会对多个可达方向分别打分。两者都可以使用循环网络,但一次输出承担的空间决策不同。R2R 动作与视觉定义
| 设计 | 模型看到的视觉单元 | 动作头组织方式 |
|---|---|---|
| 原始 R2R Seq2Seq | 当前相机视野的图像特征 | 固定六类输出 |
| 全景候选策略 | 多个方向的视觉与角度特征 | 每个合法候选共享打分,再加入 STOP |
| 连续环境低层策略 | 按协议取得的 RGB、深度等观测 | 对运动原语分类,或使用规定的控制输出 |
“Seq2Seq”不能单独说明模型是否使用全景、深度或候选节点。阅读架构图时,需要同时看输入定义和动作头;将全景候选公式直接套到固定六动作基线,会改变复现对象。
三、跨模态注意力:相关性、位置与可见性
3.1 Query、Key、Value 的具体作用
前面的 查询语言序列,是跨来源读取的一种形式。缩放点积注意力将这一操作写成矩阵:
其中 、、。注意力权重矩阵 的形状是 :每行代表一个查询,沿 key 维归一化;输出 的形状是 。 在允许读取处取零,在禁止位置取 。Attention Is All You Need,§3.2
Query 表达当前表示要检索的内容,Key 用于计算匹配,Value 承载汇聚内容。这些向量通常由学习的线性投影产生,没有预先固定的“门”“沙发”等语义槽位。
图 2:缩放点积注意力(左)与多头注意力(右)。原图:Vaswani 等,Attention Is All You Need,Figure 2;© Google。 点积注意力原尺寸 · 多头注意力原尺寸 · 论文图 2
沿左图从下向上读:第一次 MatMul 是 ,Scale 对应除以 ,Mask 在归一化前排除不可见位置,最后一次 MatMul 才用权重汇聚 。右图则将这条计算链复制到多个投影子空间,最后 Concat 并经 Linear 输出。图本身没有规定模态;将视觉特征投影为 、语言特征投影为 ,才得到“视觉读取语言”。
| 操作 | Query 来自哪里 | Key / Value 来自哪里 | 输出更新谁 |
|---|---|---|---|
| 语言自注意力 | 语言 | 语言 | 各词表示 |
| 视觉读取语言 | 当前视觉 | 语言 | 各视觉表示 |
| 语言读取视觉 | 语言 | 当前视觉 | 各词表示 |
| 状态读取历史 | 当前状态 | 已保存的经历 | 当前状态 |
两个跨模态方向不是同一次操作的不同叫法。假设有 20 个词和 8 个视觉单元,视觉查询语言产生 的关系矩阵;语言查询视觉产生 的矩阵,更新的对象也不同。
3.2 缩放与加权汇聚的算例
若 query 与 key 的各分量近似独立、均值为零且方差为一,则点积方差随 增长。除以 有助于稳定分数量级,避免 softmax 过早进入高度饱和区。这是缩放设计的解释条件,不是对所有训练中特征分布的保证。
取一个教学例子:
此时 ,缩放分数为 ,于是
输出仍然混合了两个 value。若屏蔽第二个位置,权重才变成 。如果所有 key 都被屏蔽,softmax 的归一化会失去定义,因此实现必须保证每个有效 query 至少能读取一个有效位置。
这个例子只说明计算。真实注意力中的高权重不等于“模型已经理解该物体”,也不能独立证明某个词对最终动作具有因果作用。
3.3 多头、位置信息与在线约束
多头注意力使用不同投影重复上述读取,再拼接和投影:
每个 对应一组独立的 。不同头可以学习不同关系,但没有规则保证某个头专管动作、另一个专管物体。Transformer 还包含逐 token 的前馈变换、残差连接与归一化,不能只用一张注意力热图概括整个层的作用。
导航同时存在多种位置:词在句子中的顺序、视图相对机器人朝向的角度、经历发生的时间步。它们不能共用一个含义模糊的序号。常见输入可以抽象为
但 position 的定义必须匹配 token:语言 token 记录词序,视觉 token 记录方向,历史 token 记录步序。方向也可先经独立投影后与视觉特征融合,具体结构由模型决定。
在线导航的合法可见性可以明确写成:
| 信息 | 时刻 是否已知 | 允许的读取方式 |
|---|---|---|
| 完整指令 | 是 | 可以双向编码 |
| 之前已发生的历史 | 是 | 可以相互读取,或由当前状态查询 |
| 当前观测 | 是 | 按传感器和模拟器协议提供 |
| 未来实际观测与动作真值 | 否 | 不可用于当前动作预测 |
因此,双向编码完整指令不会自动泄漏未来;问题在于有没有读到未来的环境信息。Transformer 可以并行处理已经取得的 token,但真实环境中的第 次观测仍要等待第 次动作执行。
四、历史表示:Recurrent VLN-BERT 与 HAMT
4.1 Recurrent VLN-BERT 的状态 token
Recurrent VLN-BERT 将循环状态放进 Transformer 内部。初始化时编码完整指令,用输出的 [CLS] 表示构造初始状态 ,同时得到语言特征 。导航时输入上一状态、固定的语言特征和当前候选视觉 token;REVERIE 设置还加入物体 token。Recurrent VLN-BERT,§3.3
用 表示模型内部状态,与第一节的环境状态 区分;其更新可概括为:
初始化后的语言在导航步中作为 key 和 value,状态与视觉 token 可以读取它,但语言 token 不再作为 query 反复改写自身表示。于是“完整指令一直可访问”和“每步重新编码语言”被分开了。

图 3:Recurrent VLN-BERT 的初始化与逐步导航。原图:Yicong Hong、Qi Wu、Yuankai Qi、Cristian Rodriguez-Opazo、Stephen Gould,CVPR 2021,Figure 2;版权归原权利人。 原尺寸 · 论文图 2
阅读这张图时先区分橙色初始化区与蓝色导航区,再沿绿色状态线追踪跨步传递。原图的 对应本文的内部状态 ,不对应第一节的环境状态。橙色语言分支在导航区只有 ,正好说明语言特征的复用;右侧蓝色 Scene 分支负责场景候选,青色 Objects 与 REF probs 分支用于 REVERIE 的物体指认。讨论 R2R 时应沿场景动作分支读取,不能把两种输出混为同一个动作头。
动作分布直接利用最后层状态对候选视觉的匹配分数。对头 ,设状态 query 为 ,候选 key 为 ,则可按论文规则写成
这里先平均各头的分数,再做 softmax。 它通常不等于对各头已经归一化的概率取平均;实现时应按照实际公式辨认“attention score”和“attention weight”。归一化范围是动作候选集合,不能直接取跨全部语言与视觉 token 归一化后的任意切片充当动作概率。
状态还经过精炼。令 分别为按状态注意力汇聚的原始语言、视觉特征;对于论文的 R2R 形式:
表示逐元素乘, 是选中动作的方向特征。此处采用行向量记法,投影矩阵写在右侧。下一步状态因此携带跨模态匹配与已选动作信息。REVERIE 的精炼分支有所不同,不能把这一式不加区分地套到所有任务。
这仍然是固定大小的历史摘要。Transformer 增强了读取与融合,并没有让每张过去图像都自动成为下一步输入。
4.2 HAMT 的全景—时间分层记忆
HAMT 显式保留过去各步的表示。假设已有 个历史全景,每个全景有 个视图:若全部展平,历史序列长为 ;如果每步只留机器人朝向的一张图,又可能丢掉左右两侧的地标。HAMT,§3.1
其折中做法分两层:先处理同一全景内的空间关系,再处理不同时间步的关系。全景表示通过视图编码、全景 Transformer、平均池化,并加入朝向视图特征的残差得到。之后加入执行动作方向与步序等信息,形成历史 token。

图 4:HAMT 的历史编码对比。上:分层编码(原图 2a);下左:全部视图展平(2b);下右:仅朝向视图的时间编码(2c)。原图:Shizhe Chen、Pierre-Louis Guhur、Cordelia Schmid、Ivan Laptev,NeurIPS 2021,Figure 2;版权归原权利人。各子图独立展示,内容未改绘。 分层原尺寸 · 展平原尺寸 · 仅时间原尺寸 · 论文
图中的绿、蓝、黄区分不同时间步,深色圆点标记该步的朝向视图。上图先在同一颜色内聚合,再通过 Temporal Transformer 建立跨步联系;下左将不同步、不同方向的视图一起处理;下右则只保留每步一个深色圆点。三者分别回答“如何压缩全景”“是否保留所有视图”“是否舍弃侧向观测”,对应下一节的计算量与信息取舍。
HAMT 当前观测中的方向编码是
其中 分别表示相对航向与俯仰。当前视图嵌入可写为
是视觉特征, 为层归一化, 区分可导航、不可导航和 STOP, 标记当前观测类型。视觉与角度特征分别归一化,避免简单拼接或求和时忽视二者的量级差异。
历史第 步则使用全景汇聚结果 、当时执行动作的方向编码 与步嵌入:
于是“看到了什么”“当时朝哪里走”“发生在第几步”具有不同入口。显式历史仍有压缩:图像先被编码,全景又被汇聚,历史 token 不等于原始视频的无损副本。
4.3 分层历史编码的计算复杂度
只计历史注意力中的两两关系,忽略通道宽度和层数,展平与分层的关系规模分别是
第一项 是每个全景内部的关系,第二项 是全景汇聚后的时间关系。取 :
两者相差约 19.7 倍。这是简化注意力关系数的比值,并非整模型速度提升:图像编码、特征投影、前馈网络、跨模态层和设备访存都未计入。
分层也改变了信息交互路径。展平模型允许任意两个历史视图直接匹配;分层模型先压缩全景,再比较不同时间步。计算降低与细节汇聚之间存在取舍,无法仅凭复杂度断定某种结构在所有任务上更优。
4.4 三路输入与动作预测
HAMT 分别编码语言、历史和当前观测,再将历史与当前观测合并为视觉流,与语言流做双向跨注意力和各自的自注意力。

图 5:HAMT 的三路输入及跨模态编码。原图:Shizhe Chen、Pierre-Louis Guhur、Cordelia Schmid、Ivan Laptev,NeurIPS 2021,Figure 1;版权归原权利人。 原尺寸 · 论文图 1
先沿左半部自下而上读取:Text、History、Observation 分别组成 ,对应词序、历史步序、当前方向三套编码。再看右侧局部层:语言流 与视觉流 交换 key/value,随后各自进行自注意力和前馈变换。图 4 展开的是中间的 Hierarchical Vision Transformer;图 5 则说明它的输出如何参与最终决策。
顶部的 Action Prediction 接收融合后的表示,但运动候选来自当前观测。动作头使用当前候选表示 与语言汇聚表示 :
是输出标量的两层全连接网络, 为当前合法候选与 STOP。它与 Recurrent VLN-BERT 直接使用状态—视觉注意力分数的设计不同。HAMT,§3.2
历史可以帮助选择现在的动作,但历史中的某个旧视点不因此自动变成可直接执行的远端目标。若要选择远端节点并沿连通关系返回,需要额外的地图与执行机制。
| 架构 | 历史保存方式 | 当前决策怎样读取 | 动作分布来源 |
|---|---|---|---|
| 带注意力的 Seq2Seq | 循环隐藏状态与细胞状态 | 当前状态读取词级上下文 | 融合表示后的输出投影 |
| Recurrent VLN-BERT | 固定大小的循环状态 token | 状态、视觉读取固定语言特征 | 最后层状态—候选分数聚合 |
| HAMT | 各步全景汇聚、动作与步序 token | 历史、当前观测和语言交互 | 候选与语言汇聚相乘后经 MLP |
五、候选动作预测的实现边界
5.1 可变候选与合法动作掩码
全景图导航每个位置的候选数量 不同。模型可以用同一个打分函数 处理每个候选特征 :
合法位置的 ,补齐候选或禁止动作处为 。若输入批次大小为 ,统一补齐至 ,则 logits 与合法性掩码都应为 。每个候选索引必须与模拟器中的候选标识保持一致。
例如,打分为 ,第三项是 padding,第四项是 STOP。屏蔽前最大分数来自一个不存在的动作;正确屏蔽后:
这类错误可能表现为训练损失异常、动作索引越界,或“高置信度撞墙”。模型结构本身无法补偿候选与掩码错位。
5.2 STOP、监督标签与动作执行
STOP 应参与动作竞争。它没有普通移动候选的真实图像,并不妨碍模型通过状态、类型及约定的 token 表示学习何时结束。不能在测试时读取目标真值距离替模型停止,否则改变了任务协议。
有专家标签 时,一步交叉熵为
同一个损失可以施加在不同的状态分布上:训练一直执行专家动作,与训练执行模型动作后重新查询专家,是不同的学习过程。偏航后必须检查标签是否仍对应当前状态;原演示第 步的动作,未必适用于已经走错的位置。
一个通用的在线接口可用下面的伪代码表达。它刻意把模型状态、动作选择与环境反馈分开,具体缓存结构由架构决定:
1 | |
如果底层控制允许动作失败,后续还应把实际执行结果纳入状态更新。图导航的节点跳转与机器人底盘运动承担不同执行责任;不能默认“策略选中了某方向”就等于已经移动到该位置。
六、架构收益与实验解释
6.1 历史结构与训练策略的消融对比
HAMT 的历史编码消融使用相同 ResNet-152 特征,以 RL+IL 训练导航网络,避免不同预训练初始化干扰历史结构比较。下表仅列论文表 1 的自家三种变体在 R2R val-unseen 上的结果;视觉特征保持固定,数值是作者报告。HAMT,§4.2
| 历史编码变体 | SR / % | SPL / % |
|---|---|---|
| 循环摘要 | 52.2 ± 0.7 | 47.0 ± 0.5 |
| 仅朝向视图的时间序列 | 53.2 ± 0.1 | 48.0 ± 0.4 |
| 全景与时间分层 | 54.4 ± 0.4 | 48.7 ± 0.4 |
分层历史相对循环变体增加 2.2 个 SR 百分点、1.7 个 SPL 百分点。在该比较条件下,更丰富的历史表示有收益;不能由此推断任何长历史都必然改善导航。
同一论文的表 2a 还表明,分层模型在固定 ResNet-152 特征下加入代理任务训练后,val-unseen SR 从 54.4 提高到 63.5,SPL 从 48.7 提高到 57.5。这个变化说明训练配方同样重要,不能把完整系统的提升全部归给分层注意力。
6.2 主要瓶颈与诊断依据
| 现象 | 首先检查的机制 | 结构之外还要检查什么 |
|---|---|---|
| 找不到早先见过的地标 | 历史是否保存,是否有方向与步序 | 视觉特征是否识别了地标 |
| 走错一步后持续偏离 | 历史更新与当前语言读取 | 训练是否覆盖偏航,专家标签是否重新计算 |
| 已见环境好、未见环境差 | 表示是否依赖场景纹理 | 训练数据、预训练、划分与信息权限 |
| 经过目标但未停止 | STOP 表示与动作竞争 | 停止监督、终止协议、探索预算 |
模型比较还应报告观测范围、候选构建、视觉骨干、初始化、训练数据与搜索方式。只比较论文最终 SR,容易把输入增强、预训练和推理预算的收益混在架构名称里。
从 Seq2Seq 到 Recurrent VLN-BERT,再到 HAMT,可以看到两条相互独立的设计轴:保存经历的方式从循环摘要扩展到显式序列,读取信息的方式从单次语言注意力扩展到多层跨模态交互。动作头将这些表示落实为当前合法选择,环境执行再把新的证据送回模型。只有同时理解记忆、读取和执行接口,才能判断一个架构究竟增加了什么能力,以及哪些问题仍需由训练或地图系统解决。
第三方论文插图的版权归原权利人,未纳入本站原创内容的许可协议。
参考资料
- Vision-and-Language Navigation: Interpreting Visually-Grounded Navigation Instructions in Real Environments:§5 的 Seq2Seq 基线、观测与动作接口。
- Attention Is All You Need:§3 的缩放点积注意力、多头、位置和掩码。
- VLN BERT: A Recurrent Vision-and-Language BERT for Navigation:§3.3 的循环状态、语言缓存、动作概率和状态精炼。
- History Aware Multimodal Transformer for Vision-and-Language Navigation:§3.1–3.2 的分层历史与动作头,§4.2 的结构与训练消融。




