Motionlm_multi Agent motion forecasting as language modeling

这篇论文提出了一种名为 MotionLM 的新方法,用于预测道路上多个智能体(如车辆、行人、自行车)的未来运动 。其核心创新在于将这个复杂的预测任务类比为语言建模 。模型学习预测代表智能体轨迹的“运动标记”序列,而不是像传统语言模型那样预测文本序列中的下一个词 。

关键概念与方法详解

  1. 运动标记 (Motion Tokens)

    • 离散化表示:MotionLM 将智能体连续的运动轨迹(即 (x, y) 坐标序列)转换为离散的“运动标记”序列 。这些标记代表了连续时间步之间位置的量化变化(Δx,Δy) 。

    • 优势:这种离散化使得模型可以将预测问题视为一个分类任务,在每个时间步通过标准的 softmax 层输出选择下一个标记 。同时,这可能有助于减轻连续值预测中可能出现的累积误差 。

    • 生成方式:通过对智能体在 t=0 时刻位置和朝向归一化的轨迹进行均匀量化得到 。采用贪婪搜索来选择能够最小化重建误差的量化动作序列 。还引入了 “Verlet” 步骤,即零动作表示重复上一步的位移,这有助于减小词汇表大小 。最终,每个坐标轴的动作通过笛卡尔积合并成一个单一的整数标记 。

  2. 语言建模框架

    • 目标:模型被训练来最大化观测到的真实运动标记序列的概率,这与语言模型最大化文本序列概率的目标一致 。

    • 训练:采用标准的语言建模目标,即最大化序列标记的平均对数概率 。训练时使用 “teacher-forcing”,即在每个时间步提供真实的先前标记,而不是模型自己预测的标记 。

  3. 自回归生成 (Autoregressive Generation)

    • 逐步预测:MotionLM 以自回归的方式逐步生成未来轨迹 。在每个时间步,模型会同时预测所有被建模智能体的运动标记 。

    • 依赖关系:每个预测都基于当前的场景上下文信息(如道路布局、交通灯状态、智能体的历史信息)以及到该时间点为止所有已预测出的运动标记 。

  4. 联合预测与交互建模 (Joint Prediction & Interaction Modeling)

    • 单一过程:MotionLM 的一个显著优点是它能在单一的自回归解码过程中生成多个智能体未来行为的联合分布 。这意味着模型在生成轨迹的同时就考虑了智能体之间的相互作用,而不是先独立生成轨迹再进行事后交互评分 。

    • 避免启发式方法:该方法绕开了那些先生成个体轨迹再进行交互评分的后处理启发式方法 。

  5. 时间因果性 (Temporal Causality)

    • 定义:模型的设计确保了预测遵循时间顺序,即任何时刻的预测仅依赖于过去发生的信息,未来的信息不会影响过去的预测 。这对于预测智能体之间真实的反应至关重要 。

    • 实现:通过模型的自回归分解结构以及在训练时使用特定的注意力掩码(呈现阶梯状,确保每个智能体在每个时间步只能注意到其他智能体在该步之前的历史信息)来实现 。

    • 优势:能够进行时间因果的条件性推演(rollouts),这对于评估自动驾驶系统的规划方案具有重要意义 。

  1. 模型架构 (Figure 2)

场景编码器 (Scene Encoder)

  • 输入 (Multimodal Scene Inputs):模型接收多种类型的场景信息作为输入。这包括相对于每个被建模智能体(例如图中的 Agent 1 和 Agent 2)的异构场景特征 。这些特征可能包括地图信息、交通信号灯状态、其他智能体的历史轨迹等。

  • 处理 (Projection):这些原始输入特征经过一个投影(Projection)层进行初步处理。
  • 输出 (Scene embeddings):场景编码器最终输出场景嵌入,其形状为 [R,N,H] 。

    • R 代表推演(rollouts)的次数 。在推断过程中,为了并行采样,嵌入会在批次维度上重复 R 次 。

    • N 代表联合建模的智能体数量 。

    • H 代表每个嵌入的维度 。

2. 自回归 Transformer 解码器 (Autoregressive Transformer Decoder)

  • 核心任务:该解码器以自回归的方式为多个智能体在时间上逐步(temporally causal manner)生成 T 个离散的运动标记(discrete motion tokens) 。

  • 输入
    • 场景嵌入:解码器通过交叉注意力(Cross Attention)机制来利用场景编码器提供的场景嵌入信息。
    • 先前生成的标记:在自回归的过程中,解码器接收先前时间步已生成的运动标记。这些标记首先经过一个嵌入(Embed)层转换成向量表示。
    • 起始标记 (Start token):在生成过程的初始时间步(t=0),会输入一个起始标记。
  • 处理
    • 自注意力 (Self Attention):解码器内部使用自注意力机制来处理标记序列内部的依赖关系。given a target sequence of length T for each of N agents, we perform self-attention over NT elements
    • 采样 (Sample):在每个时间步(从 t=1 到 t=T),解码器会输出一个概率分布,然后从中采样(Sample)出当前时间步的运动标记。这个过程是针对所有 N 个智能体同时进行的。
  • 输出 (Decoded motion tokens):解码器最终输出的是一系列解码后的运动标记,这些标记共同构成了预测的智能体轨迹。

  • 运动标记嵌入 (Motion Token Embedding)

    • 每个离散的运动标记(例如,词汇表中的 169 个标记之一)都会被映射到一个学习到的高维向量。这通常通过一个嵌入层 (Embedding Layer) 来实现。
    • 这个嵌入层可以看作是一个查找表 (lookup table),其中每一行对应一个标记的向量表示。当一个标记输入时,就取出对应的行向量。这些向量的参数是在模型训练过程中学习得到的。
  • 位置编码/嵌入 (Positional Encoding/Embedding)

    • 由于 Transformer 模型本身不直接处理序列的顺序信息(它是基于注意力机制的,注意力机制本身对顺序不敏感),我们需要额外的方式来告诉模型标记在序列中的位置。
    • 时间步嵌入 (Timestep Embedding):为了表示标记在时间序列中的位置(例如,这是第 1 步的动作还是第 5 步的动作),会为每个时间步学习一个位置嵌入向量,或者使用固定的位置编码函数(如原始 Transformer 中的正弦/余弦函数)。论文中提到:“We compute a learned value embedding and two learned positional embeddings (representing the timestep and agent identity) for each discrete motion token…” 。这表明 MotionLM 使用的是学习到的时间步嵌入。

    • 智能体身份嵌入 (Agent Identity Embedding):因为模型是为多个智能体同时生成轨迹的,所以还需要区分这些标记是属于哪个智能体的。因此,也会为每个智能体的身份学习一个嵌入向量 。
  • 组合嵌入 (Combining Embeddings)

    • 上述几种嵌入(运动标记的词义嵌入、时间步嵌入、智能体身份嵌入)会通过某种方式组合起来,形成最终输入到 Transformer 解码器层的向量表示。
    • 论文中明确指出:“which are combined via an element-wise sum prior to being input to the transformer decoder.” 。这意味着这几种嵌入向量会进行逐元素相加,得到一个综合了标记本身含义、时间位置以及所属智能体信息的丰富向量表示

3. 集成与推演聚合 (Ensemble & Rollout aggregation)

  • 目的:从多次推演(采样)中恢复出具有代表性的未来轨迹模式。
  • 输入:解码器生成的 R 次推演结果,以及可能来自多个集成模型(xE)的推演。此时,轨迹数据形状为 [R,N,T,2](假设每个时间步的标记最终解码为二维坐标)。

  • 处理
    • 非极大值抑制 (NMS - Non-Maximum Suppression):首先使用 NMS 来对大量的推演结果进行初步筛选和简化。
      • 对所有候选轨迹进行评分(这个分数可能基于轨迹的似然度,或者在某些情况下就是它们的密集程度),选择得分最高的轨迹。 将所有与该最高分轨迹重叠度(例如,轨迹间的平均距离或最终位移小于某个阈值)过高的其他轨迹抑制掉。在剩下的轨迹中重复步骤 2 和 3,直到没有轨迹剩下或者达到了预设的输出数量。
    • K-means 聚类 (K-means):然后,利用 K-means 聚类算法将推演结果聚类成少数几个模式。NMS 的结果可以用来初始化 K-means 的聚类中心 。
  • 输出:最终输出 K 个具有代表性的联合轨迹模式,形状为 [K,N,T,2] 。这些模式代表了模型对未来场景最可能的几种预测。
  1. 无需锚点和潜在变量优化 (Anchor-Free & Latent Variable-Free)

    • MotionLM 不需要预设的锚点(anchors)或显式的潜在变量优化来学习多模态分布 。

    • 预测的多样性(multimodality)完全来自于在每个时间步对离散标记的分类分布进行采样这一过程 。

  2. 推演聚合 (Rollout Aggregation)

    • 目的:为了从模型生成的大量随机推演(rollouts)中提取出少量具有代表性的联合未来模式及其概率,以满足基准测试的要求(例如,WOMD 要求输出 K 个带权重的模式) 。

    • 方法:采用了一种结合 K-means 聚类和非最大抑制(NMS)的聚合方案 。NMS 用于初始化 K-means 的聚类中心 。此外,还使用了模型集成(ensembling)来进一步提升预测质量 。

实验结果与贡献

  1. 数据集与指标

    • 主要在 Waymo 开放运动数据集 (WOMD) 上进行评估 。WOMD 包含真实的驾驶场景数据,并设有边际预测和交互式预测两项挑战 。

    • 评估指标包括 soft mAP、mAP、Miss Rate、minADE、minFDE 以及自定义的预测重叠率 (Prediction Overlap) 。

  2. 定量结果

    • 交互式预测:MotionLM 在 WOMD 交互式预测挑战中取得了最先进 (state-of-the-art) 的性能,在 mAP 指标上相对提高了 6% 。

    • 边际预测:在边际预测任务上表现也具有竞争力,显著降低了未命中率 。

    • 场景一致性:获得了最低的预测重叠率,表明其预测的场景一致性更好 。对比实验显示,联合版本的模型(进行交互式注意力)比边际版本的重叠率显著降低,证明了交互式注意力的有效性 。

  3. 消融研究 (Ablation Studies)

    • 交互式注意力的频率:实验表明,增加智能体间交互式注意力的频率,通常能提升预测性能并减少不合理的预测重叠 。图 5 直观展示了有无交互注意力的预测差异 。

    • 推演次数:增加每个模型副本的推演次数(采样数量)通常也能改善性能指标 。论文指出,排行榜结果使用了每副本 512 次推演,但仅用 32 次推演就已能超越之前的最佳联合 mAP 记录 。

  4. 条件推演 (Conditional Rollouts)

    • MotionLM 天然支持时间因果的条件预测

    • 实验对比了三种设置:边际预测、时间因果条件预测、以及非因果条件预测(即目标智能体可以“看到”查询智能体的完整未来轨迹) 。

    • 结果显示,虽然非因果条件预测在指标上提升更大(因为它获得了更多信息),但这些高分可能来自于不符合真实交互逻辑的“反应” 。例如,在一个跟随场景中,领头车的行为是因,跟随车的行为是果,非因果条件预测可能会混淆这种方向性 。

    • 时间因果的条件建模对于评估自动驾驶车辆规划方案的安全性至关重要 。图 7 的例子清晰地展示了在(时间因果)条件预测下,行人会根据车辆的转弯行为做出让行的合理反应,而边际预测则可能预测行人直接穿越 。

论文的主要贡献

  1. 将多智能体运动预测问题成功地形式化为语言建模任务,引入了基于离散运动标记的时间因果解码器,并使用因果语言建模损失进行训练 。

  2. 结合模型采样和简单的推演聚合方案,实现了对联合轨迹加权模式的有效识别,并在 Waymo 开放运动数据集的交互预测挑战中取得了新的最先进性能

  3. 对所提出的方法进行了广泛的消融研究,并深入分析了其时间因果条件预测的能力,这是许多现有联合预测模型不完全支持的特性 。

Share: X (Twitter) Facebook LinkedIn