VLN 基础模型:序列建模、跨模态注意力与动作预测

视觉语言导航模型需要把完整指令、当前观测与过去经历转化为下一步行动。本文从带注意力的 Seq2Seq 基线出发,解释跨模态读取、候选动作预测与历史表示,并通过 Recurrent VLN-BERT 和 HAMT 比较固定状态与显式历史两种设计。

“穿过客厅,在第二个门口右转;如果走到楼梯旁,就返回刚才的红色沙发。”同一幅门口图像,在刚出发、已经经过第一扇门和正在回退时,可能对应不同动作。模型既要理解眼前的场景,也要判断指令执行到了哪里。

上一篇讨论了任务、动作接口与评价口径。本篇把问题推进到模型内部:信息如何编码、如何按当前需要读取,以及如何形成可执行的动作分布。 重点是路线跟随中的序列结构与融合机制;地图表示、预训练目标和策略优化分别需要进一步展开。

一、在线决策的计算结构

1.1 完整指令与逐步产生的观测

记指令为 W=(w1,…,wL)W=(w_1,\ldots,w_L),当前观测为 OtO_t,历史为 Ht=(O<t,a<t)H_t=(O_{<t},a_{<t}),则一步策略是

at∼πθ(⋅∣W,Ht,Ot).a_t\sim\pi_\theta(\cdot\mid W,H_t,O_t).

完整指令在出发时已经给定;未来画面则取决于接下来采取的动作。向左进入房间与向右进入走廊,会产生不同的下一帧。因此,“语言序列映射为动作序列”只是模型的形式概括,实际导航仍必须逐步读取环境反馈。

用 sts_t 表示环境状态,包含状态、观测、动作的联合轨迹可按闭环过程分解为

pθ(s1:T+1,O1:T,a1:T∣W)=p(s1∣W)∏t=1Tp(Ot∣st) πθ(at∣W,Ht,Ot) p(st+1∣st,at).\begin{aligned} &p_\theta(s_{1:T+1},O_{1:T},a_{1:T}\mid W)\\ &=p(s_1\mid W)\prod_{t=1}^{T} p(O_t\mid s_t)\, \pi_\theta(a_t\mid W,H_t,O_t)\, p(s_{t+1}\mid s_t,a_t). \end{aligned}

这里采用常见的马尔可夫环境抽象,TT 是该回合记录的决策长度,终止后的转移可定义为吸收状态。策略只有中间的动作概率项带参数 θ\theta;它并不直接读取完整的 sts_t。这一区分有助于避免把训练轨迹中的未来图像提前送给在线策略。

1.2 编码、记忆、读取与动作头

模型可以拆成四项相互连接的工作:

组件 输入与产出 需要回答的问题
语言与视觉编码 词、图像、方向 → 特征 哪些信息进入模型?
历史表示 已见观测、已执行动作 → 状态或序列 哪些经历被保留下来?
跨模态读取 当前状态与语言、视觉、历史交互 此刻哪些信息与决策相关?
动作头 融合后的表示 → 动作分布 输出对应固定动作,还是当前候选?

语言、观测和状态进入决策,动作执行后产生下一步观测

图 1:在线导航的数据流示意。模型内部状态与真实环境状态是两个对象;执行后的观测重新进入下一次决策。 查看原图

后续方法的区别,可以落到这四项分工上。更换编码器不一定改变历史的保存方式;增加历史序列也不一定改变动作接口。

二、Seq2Seq:从词级上下文到下一动作

2.1 语言编码与循环状态

R2R 原始基线使用带注意力的 LSTM 编码器—解码器。语言编码器保留各词位置的隐藏状态,而非只把整段指令交付为一个不可再读取的向量;解码器每步接收当前图像和上一动作,再读取语言上下文。R2R,§5.1

下面用统一符号展开这种计算。设词嵌入 ei∈Rdee_i\in\mathbb R^{d_e},编码结果 xi∈Rdxx_i\in\mathbb R^{d_x}:

xi=LSTM⁡enc(ei,xi−1),X=(x1,…,xL).x_i=\operatorname{LSTM}_{\rm enc}(e_i,x_{i-1}), \qquad X=(x_1,\ldots,x_L).

为突出数据流,式中省略 LSTM 的细胞状态;实现时隐藏状态与细胞状态都要传递。指令编码完成后,XX 可供各决策步重复读取。

设图像编码器输出 vtv_t,上一动作的嵌入为 e(at−1)e(a_{t-1}),解码器更新为

qt=[vt;e(at−1)],ht=LSTM⁡dec(qt,ht−1).q_t=[v_t;e(a_{t-1})],\qquad h_t=\operatorname{LSTM}_{\rm dec}(q_t,h_{t-1}).

分号表示拼接。hth_t 吸收当前观测与此前经历,是模型学习的内部摘要,不能直接当作机器人位姿或完整地图。第一步需要约定起始动作标记及初始状态,不能把不存在的上一动作当成普通运动动作。

2.2 按当前状态读取指令

当智能体已经进入客厅,下一步可能需要关注“第二个门口”;遇到楼梯后,又应重新读取“返回红色沙发”。用当前状态作为查询,可以构造双线性语言注意力:

et,i=ht⊤Waxi,αt,i=exp⁡(et,i)∑j=1Lexp⁡(et,j),e_{t,i}=h_t^\top W_a x_i,\qquad \alpha_{t,i}=\frac{\exp(e_{t,i})}{\sum_{j=1}^{L}\exp(e_{t,j})},

ct=∑i=1Lαt,ixi.c_t=\sum_{i=1}^{L}\alpha_{t,i}x_i.

若 ht∈Rdhh_t\in\mathbb R^{d_h},则 Wa∈Rdh×dxW_a\in\mathbb R^{d_h\times d_x};每个匹配分数是标量,ctc_t 与词特征维度相同。批量训练中,补齐长度的 padding 词必须在 softmax 前屏蔽。

语言上下文与当前状态融合后,再预测固定动作类别:

h~t=tanh⁡(Wc[ct;ht]),pt=softmax⁡(Woh~t+bo).\widetilde h_t=\tanh(W_c[c_t;h_t]),\qquad p_t=\operatorname{softmax}(W_o\widetilde h_t+b_o).

这些式子将语言对齐、汇聚和输出投影分别写出,以便检查维度。注意力并不强制单调向后移动,也不保证模型正确识别指令阶段;它是一种可学习的信息读取机制。

2.3 观测范围与动作接口必须配套

原始 R2R 基线使用当前视野的 ResNet-152 特征,输出 left、right、up、down、forward、stop 六类动作。后来常用的全景候选导航,会对多个可达方向分别打分。两者都可以使用循环网络,但一次输出承担的空间决策不同。R2R 动作与视觉定义

设计 模型看到的视觉单元 动作头组织方式
原始 R2R Seq2Seq 当前相机视野的图像特征 固定六类输出
全景候选策略 多个方向的视觉与角度特征 每个合法候选共享打分,再加入 STOP
连续环境低层策略 按协议取得的 RGB、深度等观测 对运动原语分类,或使用规定的控制输出

“Seq2Seq”不能单独说明模型是否使用全景、深度或候选节点。阅读架构图时,需要同时看输入定义和动作头;将全景候选公式直接套到固定六动作基线,会改变复现对象。

三、跨模态注意力:相关性、位置与可见性

3.1 Query、Key、Value 的具体作用

前面的 hth_t 查询语言序列,是跨来源读取的一种形式。缩放点积注意力将这一操作写成矩阵:

A=softmax⁡row(QK⊤dk+M),Z=AV.A=\operatorname{softmax}_{\rm row} \left(\frac{QK^\top}{\sqrt{d_k}}+M\right),\qquad Z=AV.

其中 Q∈Rnq×dkQ\in\mathbb R^{n_q\times d_k}、K∈Rnk×dkK\in\mathbb R^{n_k\times d_k}、V∈Rnk×dvV\in\mathbb R^{n_k\times d_v}。注意力权重矩阵 AA 的形状是 nq×nkn_q\times n_k:每行代表一个查询,沿 key 维归一化;输出 ZZ 的形状是 nq×dvn_q\times d_v。MM 在允许读取处取零,在禁止位置取 −∞-\infty。Attention Is All You Need,§3.2

Query 表达当前表示要检索的内容,Key 用于计算匹配,Value 承载汇聚内容。这些向量通常由学习的线性投影产生,没有预先固定的“门”“沙发”等语义槽位。

缩放点积注意力:QK乘积经过缩放、掩码和Softmax,再与V相乘 多头注意力:独立线性投影、并行注意力、拼接和输出投影

图 2:缩放点积注意力(左)与多头注意力(右)。原图:Vaswani 等,Attention Is All You Need,Figure 2;© Google。 点积注意力原尺寸 · 多头注意力原尺寸 · 论文图 2

沿左图从下向上读:第一次 MatMul 是 QK⊤QK^\top,Scale 对应除以 dk\sqrt{d_k},Mask 在归一化前排除不可见位置,最后一次 MatMul 才用权重汇聚 VV。右图则将这条计算链复制到多个投影子空间,最后 Concat 并经 Linear 输出。图本身没有规定模态;将视觉特征投影为 QQ、语言特征投影为 K,VK,V,才得到“视觉读取语言”。

操作 Query 来自哪里 Key / Value 来自哪里 输出更新谁
语言自注意力 语言 语言 各词表示
视觉读取语言 当前视觉 语言 各视觉表示
语言读取视觉 语言 当前视觉 各词表示
状态读取历史 当前状态 已保存的经历 当前状态

两个跨模态方向不是同一次操作的不同叫法。假设有 20 个词和 8 个视觉单元,视觉查询语言产生 8×208\times20 的关系矩阵;语言查询视觉产生 20×820\times8 的矩阵,更新的对象也不同。

3.2 缩放与加权汇聚的算例

若 query 与 key 的各分量近似独立、均值为零且方差为一,则点积方差随 dkd_k 增长。除以 dk\sqrt{d_k} 有助于稳定分数量级,避免 softmax 过早进入高度饱和区。这是缩放设计的解释条件,不是对所有训练中特征分布的保证。

取一个教学例子:

q=(1,0).q=(1,0).

K=[1001],V=[2002].K=\begin{bmatrix}1&0\\0&1\end{bmatrix},\qquad V=\begin{bmatrix}2&0\\0&2\end{bmatrix}.

此时 dk=2d_k=2,缩放分数为 (1/2,0)(1/\sqrt2,0),于是

A≈(0.6698,0.3302),Z≈(1.3395,0.6605).\begin{aligned} A&\approx(0.6698,0.3302),\\ Z&\approx(1.3395,0.6605). \end{aligned}

输出仍然混合了两个 value。若屏蔽第二个位置,权重才变成 (1,0)(1,0)。如果所有 key 都被屏蔽,softmax 的归一化会失去定义,因此实现必须保证每个有效 query 至少能读取一个有效位置。

这个例子只说明计算。真实注意力中的高权重不等于“模型已经理解该物体”,也不能独立证明某个词对最终动作具有因果作用。

3.3 多头、位置信息与在线约束

多头注意力使用不同投影重复上述读取,再拼接和投影:

MHA⁡(Q,K,V)=Concat⁡(Z1,…,ZH)WO.\operatorname{MHA}(Q,K,V) =\operatorname{Concat}(Z_1,\ldots,Z_H)W_O.

每个 ZhZ_h 对应一组独立的 WQh,WKh,WVhW_Q^h,W_K^h,W_V^h。不同头可以学习不同关系,但没有规则保证某个头专管动作、另一个专管物体。Transformer 还包含逐 token 的前馈变换、残差连接与归一化,不能只用一张注意力热图概括整个层的作用。

导航同时存在多种位置:词在句子中的顺序、视图相对机器人朝向的角度、经历发生的时间步。它们不能共用一个含义模糊的序号。常见输入可以抽象为

zi=fcontent(i)+eposition(i)+etype(i),z_i=f_{\rm content}(i)+e_{\rm position}(i)+e_{\rm type}(i),

但 position 的定义必须匹配 token:语言 token 记录词序,视觉 token 记录方向,历史 token 记录步序。方向也可先经独立投影后与视觉特征融合,具体结构由模型决定。

在线导航的合法可见性可以明确写成:

信息 时刻 tt 是否已知 允许的读取方式
完整指令 是 可以双向编码
tt 之前已发生的历史 是 可以相互读取,或由当前状态查询
当前观测 是 按传感器和模拟器协议提供
未来实际观测与动作真值 否 不可用于当前动作预测

因此,双向编码完整指令不会自动泄漏未来;问题在于有没有读到未来的环境信息。Transformer 可以并行处理已经取得的 token,但真实环境中的第 t+1t+1 次观测仍要等待第 tt 次动作执行。

四、历史表示:Recurrent VLN-BERT 与 HAMT

4.1 Recurrent VLN-BERT 的状态 token

Recurrent VLN-BERT 将循环状态放进 Transformer 内部。初始化时编码完整指令,用输出的 [CLS] 表示构造初始状态 r0r_0,同时得到语言特征 XX。导航时输入上一状态、固定的语言特征和当前候选视觉 token;REVERIE 设置还加入物体 token。Recurrent VLN-BERT,§3.3

用 rtr_t 表示模型内部状态,与第一节的环境状态 sts_t 区分;其更新可概括为:

(rtraw,…)=Fθ(rt−1,X,Vt).(r_t^{\rm raw},\ldots)=F_\theta(r_{t-1},X,V_t).

初始化后的语言在导航步中作为 key 和 value,状态与视觉 token 可以读取它,但语言 token 不再作为 query 反复改写自身表示。于是“完整指令一直可访问”和“每步重新编码语言”被分开了。

Recurrent VLN-BERT 原论文架构:语言初始化、循环状态、场景与物体分支

图 3:Recurrent VLN-BERT 的初始化与逐步导航。原图:Yicong Hong、Qi Wu、Yuankai Qi、Cristian Rodriguez-Opazo、Stephen Gould,CVPR 2021,Figure 2;版权归原权利人。 原尺寸 · 论文图 2

阅读这张图时先区分橙色初始化区与蓝色导航区,再沿绿色状态线追踪跨步传递。原图的 sts_t 对应本文的内部状态 rtr_t,不对应第一节的环境状态。橙色语言分支在导航区只有 KL,VLK^L,V^L,正好说明语言特征的复用;右侧蓝色 Scene 分支负责场景候选,青色 Objects 与 REF probs 分支用于 REVERIE 的物体指认。讨论 R2R 时应沿场景动作分支读取,不能把两种输出混为同一个动作头。

动作分布直接利用最后层状态对候选视觉的匹配分数。对头 hh,设状态 query 为 qt(h)q_t^{(h)},候选 key 为 kt,j(h)k_{t,j}^{(h)},则可按论文规则写成

bt,j(h)=qt(h)⊤kt,j(h)dk,pt(j)=softmax⁡j(1H∑h=1Hbt,j(h)).b_{t,j}^{(h)}=\frac{q_t^{(h)\top}k_{t,j}^{(h)}}{\sqrt{d_k}}, \qquad p_t(j)=\operatorname{softmax}_{j} \left(\frac1H\sum_{h=1}^{H}b_{t,j}^{(h)}\right).

这里先平均各头的分数,再做 softmax。 它通常不等于对各头已经归一化的概率取平均;实现时应按照实际公式辨认“attention score”和“attention weight”。归一化范围是动作候选集合,不能直接取跨全部语言与视觉 token 归一化后的任意切片充当动作概率。

状态还经过精炼。令 Ftx,FtvF_t^x,F_t^v 分别为按状态注意力汇聚的原始语言、视觉特征;对于论文的 R2R 形式:

rtf=[rtraw;Ftx⊙Ftv]Wr,rt=[rtf;e(at)]Ws.r_t^f=[r_t^{\rm raw};F_t^x\odot F_t^v]W_r, \qquad r_t=[r_t^f;e(a_t)]W_s.

⊙\odot 表示逐元素乘,e(at)e(a_t) 是选中动作的方向特征。此处采用行向量记法,投影矩阵写在右侧。下一步状态因此携带跨模态匹配与已选动作信息。REVERIE 的精炼分支有所不同,不能把这一式不加区分地套到所有任务。

这仍然是固定大小的历史摘要。Transformer 增强了读取与融合,并没有让每张过去图像都自动成为下一步输入。

4.2 HAMT 的全景—时间分层记忆

HAMT 显式保留过去各步的表示。假设已有 NN 个历史全景,每个全景有 KK 个视图:若全部展平,历史序列长为 NKNK;如果每步只留机器人朝向的一张图,又可能丢掉左右两侧的地标。HAMT,§3.1

其折中做法分两层:先处理同一全景内的空间关系,再处理不同时间步的关系。全景表示通过视图编码、全景 Transformer、平均池化,并加入朝向视图特征的残差得到。之后加入执行动作方向与步序等信息,形成历史 token。

HAMT 原论文分层历史编码:单视图、全景内关系和跨时间关系
HAMT 图2b:所有时间步的视图展平后统一做注意力 HAMT 图2c:每步只保留朝向视图,进行时间编码

图 4:HAMT 的历史编码对比。上:分层编码(原图 2a);下左:全部视图展平(2b);下右:仅朝向视图的时间编码(2c)。原图:Shizhe Chen、Pierre-Louis Guhur、Cordelia Schmid、Ivan Laptev,NeurIPS 2021,Figure 2;版权归原权利人。各子图独立展示,内容未改绘。 分层原尺寸 · 展平原尺寸 · 仅时间原尺寸 · 论文

图中的绿、蓝、黄区分不同时间步,深色圆点标记该步的朝向视图。上图先在同一颜色内聚合,再通过 Temporal Transformer 建立跨步联系;下左将不同步、不同方向的视图一起处理;下右则只保留每步一个深色圆点。三者分别回答“如何压缩全景”“是否保留所有视图”“是否舍弃侧向观测”,对应下一节的计算量与信息取舍。

HAMT 当前观测中的方向编码是

eiA=(sin⁡θi,cos⁡θi,sin⁡ϕi,cos⁡ϕi),e^A_i=(\sin\theta_i,\cos\theta_i,\sin\phi_i,\cos\phi_i),

其中 θi,ϕi\theta_i,\phi_i 分别表示相对航向与俯仰。当前视图嵌入可写为

oi=LN⁡(Wvoiimg)+LN⁡(WaeiA)+eiN+eobs.o_i=\operatorname{LN}(W_vo_i^{\rm img}) +\operatorname{LN}(W_ae^A_i)+e_i^N+e^{\rm obs}.

oiimgo_i^{\rm img} 是视觉特征,LN⁡\operatorname{LN} 为层归一化,eiNe_i^N 区分可导航、不可导航和 STOP,eobse^{\rm obs} 标记当前观测类型。视觉与角度特征分别归一化,避免简单拼接或求和时忽视二者的量级差异。

历史第 ii 步则使用全景汇聚结果 vihv_i^h、当时执行动作的方向编码 eA(ai)e^A(a_i) 与步嵌入:

hi=LN⁡(Wvhvih)+LN⁡(WaheA(ai))+eistep+ehist.h_i=\operatorname{LN}(W_v^hv_i^h) +\operatorname{LN}(W_a^he^A(a_i))+e_i^{\rm step}+e^{\rm hist}.

于是“看到了什么”“当时朝哪里走”“发生在第几步”具有不同入口。显式历史仍有压缩:图像先被编码,全景又被汇聚,历史 token 不等于原始视频的无损副本。

4.3 分层历史编码的计算复杂度

只计历史注意力中的两两关系,忽略通道宽度和层数,展平与分层的关系规模分别是

Cflat∝N2K2,Chier∝NK2+N2.C_{\rm flat}\propto N^2K^2,\qquad C_{\rm hier}\propto NK^2+N^2.

第一项 NK2NK^2 是每个全景内部的关系,第二项 N2N^2 是全景汇聚后的时间关系。取 N=20,K=36N=20,K=36:

(20×36)2=518400,20×362+202=26320.(20\times36)^2=518400, \qquad20\times36^2+20^2=26320.

两者相差约 19.7 倍。这是简化注意力关系数的比值,并非整模型速度提升:图像编码、特征投影、前馈网络、跨模态层和设备访存都未计入。

分层也改变了信息交互路径。展平模型允许任意两个历史视图直接匹配;分层模型先压缩全景,再比较不同时间步。计算降低与细节汇聚之间存在取舍,无法仅凭复杂度断定某种结构在所有任务上更优。

4.4 三路输入与动作预测

HAMT 分别编码语言、历史和当前观测,再将历史与当前观测合并为视觉流,与语言流做双向跨注意力和各自的自注意力。

HAMT 原论文整体架构与双流跨模态 Transformer 层

图 5:HAMT 的三路输入及跨模态编码。原图:Shizhe Chen、Pierre-Louis Guhur、Cordelia Schmid、Ivan Laptev,NeurIPS 2021,Figure 1;版权归原权利人。 原尺寸 · 论文图 1

先沿左半部自下而上读取:Text、History、Observation 分别组成 X,Ht,OtX,H_t,O_t,对应词序、历史步序、当前方向三套编码。再看右侧局部层:语言流 XX 与视觉流 [Ht;Ot][H_t;O_t] 交换 key/value,随后各自进行自注意力和前馈变换。图 4 展开的是中间的 Hierarchical Vision Transformer;图 5 则说明它的输出如何参与最终决策。

顶部的 Action Prediction 接收融合后的表示,但运动候选来自当前观测。动作头使用当前候选表示 oj′o'_j 与语言汇聚表示 xcls′x'_{\rm cls}:

zt,j=fSAP(oj′⊙xcls′),pt(j)=exp⁡(zt,j)∑k∈Atexp⁡(zt,k).z_{t,j}=f_{\rm SAP}(o'_j\odot x'_{\rm cls}),\qquad p_t(j)=\frac{\exp(z_{t,j})}{\sum_{k\in\mathcal A_t}\exp(z_{t,k})}.

fSAPf_{\rm SAP} 是输出标量的两层全连接网络,At\mathcal A_t 为当前合法候选与 STOP。它与 Recurrent VLN-BERT 直接使用状态—视觉注意力分数的设计不同。HAMT,§3.2

历史可以帮助选择现在的动作,但历史中的某个旧视点不因此自动变成可直接执行的远端目标。若要选择远端节点并沿连通关系返回,需要额外的地图与执行机制。

架构 历史保存方式 当前决策怎样读取 动作分布来源
带注意力的 Seq2Seq 循环隐藏状态与细胞状态 当前状态读取词级上下文 融合表示后的输出投影
Recurrent VLN-BERT 固定大小的循环状态 token 状态、视觉读取固定语言特征 最后层状态—候选分数聚合
HAMT 各步全景汇聚、动作与步序 token 历史、当前观测和语言交互 候选与语言汇聚相乘后经 MLP

五、候选动作预测的实现边界

5.1 可变候选与合法动作掩码

全景图导航每个位置的候选数量 KtK_t 不同。模型可以用同一个打分函数 gθg_\theta 处理每个候选特征 ut,ju_{t,j}:

zt,j=gθ(ht,ct,ut,j),pt(j)=exp⁡(zt,j+mt,j)∑kexp⁡(zt,k+mt,k).z_{t,j}=g_\theta(h_t,c_t,u_{t,j}), \qquad p_t(j)=\frac{\exp(z_{t,j}+m_{t,j})} {\sum_k\exp(z_{t,k}+m_{t,k})}.

合法位置的 mt,j=0m_{t,j}=0,补齐候选或禁止动作处为 −∞-\infty。若输入批次大小为 BB,统一补齐至 Kmax⁡K_{\max},则 logits 与合法性掩码都应为 B×Kmax⁡B\times K_{\max}。每个候选索引必须与模拟器中的候选标识保持一致。

例如,打分为 (2,1,8,0)(2,1,8,0),第三项是 padding,第四项是 STOP。屏蔽前最大分数来自一个不存在的动作;正确屏蔽后:

p=softmax⁡(2,1,−∞,0)≈(0.6652,0.2447,0,0.0900).p=\operatorname{softmax}(2,1,-\infty,0) \approx(0.6652,0.2447,0,0.0900).

这类错误可能表现为训练损失异常、动作索引越界,或“高置信度撞墙”。模型结构本身无法补偿候选与掩码错位。

5.2 STOP、监督标签与动作执行

STOP 应参与动作竞争。它没有普通移动候选的真实图像,并不妨碍模型通过状态、类型及约定的 token 表示学习何时结束。不能在测试时读取目标真值距离替模型停止,否则改变了任务协议。

有专家标签 at∗a_t^* 时,一步交叉熵为

Lt=−log⁡pt(at∗).\mathcal L_t=-\log p_t(a_t^*).

同一个损失可以施加在不同的状态分布上:训练一直执行专家动作,与训练执行模型动作后重新查询专家,是不同的学习过程。偏航后必须检查标签是否仍对应当前状态;原演示第 tt 步的动作,未必适用于已经走错的位置。

一个通用的在线接口可用下面的伪代码表达。它刻意把模型状态、动作选择与环境反馈分开,具体缓存结构由架构决定:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
language, memory = initialize(instruction)
previous_action = START
observation = environment.reset(episode)
episode_finished = false

while not episode_finished:
candidates, valid_mask = action_interface(observation)
logits, intermediate = policy(
language, memory, observation, previous_action, candidates
)
action = select(mask_logits(logits, valid_mask))
memory = update_memory(intermediate, observation, action)
observation, episode_finished = environment.step(action)
previous_action = action

如果底层控制允许动作失败,后续还应把实际执行结果纳入状态更新。图导航的节点跳转与机器人底盘运动承担不同执行责任;不能默认“策略选中了某方向”就等于已经移动到该位置。

六、架构收益与实验解释

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,可以看到两条相互独立的设计轴:保存经历的方式从循环摘要扩展到显式序列,读取信息的方式从单次语言注意力扩展到多层跨模态交互。动作头将这些表示落实为当前合法选择,环境执行再把新的证据送回模型。只有同时理解记忆、读取和执行接口,才能判断一个架构究竟增加了什么能力,以及哪些问题仍需由训练或地图系统解决。

第三方论文插图的版权归原权利人,未纳入本站原创内容的许可协议。

参考资料

  1. Vision-and-Language Navigation: Interpreting Visually-Grounded Navigation Instructions in Real Environments:§5 的 Seq2Seq 基线、观测与动作接口。
  2. Attention Is All You Need:§3 的缩放点积注意力、多头、位置和掩码。
  3. VLN BERT: A Recurrent Vision-and-Language BERT for Navigation:§3.3 的循环状态、语言缓存、动作概率和状态精炼。
  4. History Aware Multimodal Transformer for Vision-and-Language Navigation:§3.1–3.2 的分层历史与动作头,§4.2 的结构与训练消融。

VLN 基础模型:序列建模、跨模态注意力与动作预测
https://ethanyliang.github.io/2026/10/13/VLN基础模型-序列建模跨模态注意力与动作预测/
作者
EthanYLiang
发布于
2026年10月13日
更新于
2026年10月14日
许可协议