枢纽
数据集HumanML3D,MotionMillion

Riemannian Motion Generation:让动作生成本来就「活在弯曲的流形」上

Fangran Miao, Jian Huang, Ting Li(香港理工大学 + 南方科技大学)。Preprint arXiv:2603.15016(2026-03)。 arXiv · action generationflow matchingmanifold / geometry-aware

🧠 一句话心智模型:人体的关节旋转天生「活」在一个弯曲的球面(单位四元数 $S^3$)上,不是平直的欧式空间。以前的动作生成方法硬把它摊平到 $\mathbb{R}^{12J}$ 里去生成,相当于在球面上「拉直线」——必然引入冗余、扭曲和不稳定。RMG 把动作放回它本来的乘积流形 $\mathbb{R}^3\times(S^3)^J$,并让 flow matching 沿着测地线(geodesic)学速度场,结果:维度砍掉 2/3、训练更稳、动作更逼真。

🎯 为什么重要:动作表示的「冗余原罪」

人体有 $J$ 个关节,每个关节本质上是 3 维的旋转(SO(3)),所以一帧姿态的内在自由度大约是 $3J$。然而主流数据集(HumanML3D、MotionStreamer…)为了方便,把同一个状态用多种坐标视角同时记录——关节旋转、关节位置、关节速度、脚触地标记…塞进 $12J$ 维的欧式向量里。

这就造成一个被忽视的代价:模型在一个远大于数据真实维度的空间里学,损失景观里会出现 $d-m$ 个零曲率的冗余方向(论文命题 1 严格证明了这点)。直觉上:沿这些方向走,姿态根本不变,但梯度会告诉你「这里很平」,让优化茫然。

核心矛盾:动作数据「住在」低维弯曲流形上,主流方法却把它摊平到高维欧式空间去生成。几何被破坏了——而生成模型最依赖「数据流形上的几何结构」来学速度场。
表示格式包含的因子环境维度问题
HumanML3D$R_\text{Joint}+P+dT+dR_J+dP$$12J-1$冗余最大;姿态/位置/速度三套并存
MotionStreamer$R_\text{Joint}+P+dT+dR_J$$12J+8$同上
DART$T+R_\text{Ori}+R_J+P+dT+dR_J$$12J+12$加入全局平移与朝向,更冗余
HY-Motion$T+R_\text{Ori}+R_J$$9J+3$已较紧凑,但仍用 6D 旋转表示
RMG(本文)$T+R_\text{Ori}+R_J$,单位四元数$4J+3$每个因子放在它的「自然流形」上

论文表 1 的一行总结:过去所有方法的维度都是 $9J$ 起步,而 RMG 只用 $4J+3$。当 $J=22$(SMPL 标准骨架),就是 91 维 vs 263 维——少了一个数量级。

💡 核心思想:把动作拆成「带几何的因子」,每个因子放回它本来的流形

RMG 把一帧姿态分解成两类因子,每类都映射到对应的黎曼流形

平移 T 全局根节点位置 M_T = ℝ³ 平直、零曲率 朝向 + 关节旋转 R 每关节单位四元数 q∈H, ‖q‖=1 M_R = (S³)^J 弯曲、正常曲率(球面) 局部位形 P (可选) Kendall pre-shape M_P = S^{3J} 消融后弃用 ↓ 每个因子在其自然流形上,组合成「乘积流形」 M_RMG = M_T × M_R = ℝ³ × (S³)^J 维度 4J+3(最低) · 内禀归一化(无需 mean/std 标准化) 黎曼 Flow Matching:从 x₀ 到 x₁ 沿测地线插值,速度场活在切空间 x_t = Exp_{x₀}(t · Log_{x₀}(x₁))
图 1:RMG 的乘积流形与几何感知 flow matching。每个动作因子被放在它「本来居住」的弯曲流形上,再也不必把球面摊平。

关键转变有三:
① 单位四元数代替 6D 旋转——直接落在 $S^3$ 上,4 维刚好,没有冗余,测地线天然光滑;
② 切空间监督——神经网络输出仍是个欧式向量,但训练时投影到当前点的切平面 $\Pi_{T_{x_t}M}$ 再与目标速度做 MSE,数学保证速度「永远朝流形内部走」;
③ 流形保持积分——推理时用黎曼 Euler 法 $x_{t+h}=\mathrm{Exp}_{x_t}(h\cdot v_\theta)$,每步积分后自动回到流形上,无需事后正交化。

🛠️ 三步把 flow matching 搬到弯曲流形

环节欧式版(旧)黎曼版(RMG)为什么必要
① 插值路径$x_t = (1-t)x_0 + t x_1$(直线)$x_t = \mathrm{Exp}_{x_0}(t\,\mathrm{Log}_{x_0}(x_1))$(测地线)旋转的「直线插值」会脱离球面 → 必须沿测地线,结果始终是合法旋转
② 目标速度$v_t = x_1 - x_0$(常数)$v_t = \frac{1}{1-t}\mathrm{Log}_{x_t}(x_1)$(切向量)切空间里的向量,才能数学一致地「指回数据点」
③ 网络输出直接回归$\Pi_{T_{x_t}M}\,v_\theta(x_t,t)$ 投影网络输出在 $\mathbb{R}^D$,必须投影到切空间才是合法速度
④ 推理积分$x_{t+h} = x_t + h\,v$$x_{t+h} = \mathrm{Exp}_{x_t}(h\,v)$Exp 映射「把切空间向量绕回流形」,保证约束 by construction
⑤ 先验分布高斯 $\mathcal{N}(0,I)$「包裹高斯」$\mathrm{RN}(\mu,\Sigma)$:先在切空间采噪声,再 Exp 到流形球面上的「高斯」不是直接采样,而是切空间采样+指数映射
🔮 直觉:为什么「维度砍掉」真的有用?
论文命题 2 给出严格证明:当数据支撑在 $d$ 维流形上、环境维度 $D\gg d$ 时,黎曼 flow matching 的 $W_2$ 误差率是 $n^{-2s/(2s+d)}$,欧式版只能达到 $n^{-2s/(2s+D)}$。分母里的 $D$ 换成 $d$,收敛快得多。这不是工程 trick,是把生成模型放回数据真实维度带来的统计红利。

具体实现:DiT(Diffusion Transformer)骨干;HumanML3D 上文本编码用 Qwen3-Embedding-0.6B(1024 维特征),MotionMillion 上换成 Qwen3-1.7B + 单流 MM-DiT;classifier-free guidance(dropout 10%)+ EMA + cosine warmup。

📊 结果:FID 0.043(HumanML3D SOTA),MotionStreamer 格式全指标第一

维度数字对比
HumanML3D 格式 FID↓0.043±0.002前 SOTA MoMask 0.045,RMG 略胜
HumanML3D R@1↑0.525±0.002第二(仅次于 MotionCLR 0.542)
HumanML3D Diversity / MModality9.555 / 2.748同时保持高多样性(不像 MotionCLR 偏科)
MotionStreamer 格式 FID↓5.835±0.060碾压前 SOTA MotionStreamer 11.790(砍半
MotionStreamer 格式 R@1↑0.710第一(GT 0.702 居然被超过)
MotionStreamer 格式 4 指标4/4 全部第一唯一一个在所有报告指标上同时领先
MotionMillion FID↓(guidance 2.0)5.6对比 MotionMillion-7B 的 10.3(分布差距近半)
MotionMillion R@1↑(guidance 3.0)0.86超 7B 模型的 0.79,模型尺寸却更小(0.5B+1.7B)
关键洞察:RMG 在两种评测格式、两种数据规模(小数据 HumanML3D + 大数据 MotionMillion)上同时提升,且参数量更小却击败 7B 模型。这说明增益不来自规模,而来自「把动作放回它的几何本位」这个表示选择本身。

消融:哪些因子真正重要?

表示FID 在 guidance sweep 下的表现结论
T+R(本文采用)0.084→0.043→0.101(ω: 2.5→6.5→9.5)最稳、最低、最鲁棒
T+P(无旋转)0.20→0.44 单调恶化没有旋转,guidance 越强越崩
T+R+P中间,恢复方式影响大加 P 不带来增益
T+dR(用速度替旋转)0.44→1.03时序差分「丢全局、保局部」,长程结构弱

两个研究问题的答案:(RQ1) 旋转因子是稳定性主因,pose-coordinate 无额外贡献;(RQ2) 时序差分反而有害——绝对的位置+旋转表示最鲁棒。这与动画 / 机器人管线的实践一致:运动总是由「根节点平移 + 关节旋转」驱动

🌐 在领域中的位置

VAE / GAN 动作生成(TEMOS, T2M) 欧式扩散/Flow Matching(MDM, MLD, MoMask) RMG:几何感知 flow matching ⭐ 几何感知 VLA / 机器人操作(旋转流形上的动作生成)

RMG 是动作生成「几何化」的里程碑。它把「旋转活在 SO(3)/$S^3$、不是 $\mathbb{R}^6$」这件数学事实首次完整地搬到大模型 + 大数据上,并给出严格的理论解释(命题 1 冗余产生零曲率方向、命题 2 流形 flow matching 收敛率严格更优)。线索:与 Diffusion Policy、π0 等 action head 工作共通——后者也开始思考「动作头要不要几何感知」。关联线索:动作生成的几何化分支。

❓ 常见误区

这和「6D 旋转表示」(Zhou 2019)有什么区别?

6D 表示是「把旋转用 6 个数表示,再正交化」——它仍是欧式空间的产物,需要事后 re-orthogonalization 才合法。RMG 用单位四元数,直接落在 $S^3$ 上:4 维(vs 6D)、无需正交化、测地线天然光滑。前者是「摊平后修补」,后者是「一开始就在球面上」

「黎曼 flow matching」是不是只是把欧式公式里的直线换成测地线?

形式上是这样,但收益来自三层叠加:(1) 插值路径不脱离流形(避免无效中间态);(2) 监督信号在切空间(保证速度合法);(3) 推理时 Exp 映射自动回弹(约束 by construction)。三层合起来才能让模型在低维弯曲空间里学到正确的速度场

为什么消融里「时序差分(速度)反而更差」?直觉上速度应该有用啊?

因为 flow matching 本身就是「学一个时间相关的速度场」——网络已经在学「朝下一个状态走多快」。再显式加一层时序差分输入,相当于让模型用「局部速度」代替「全局姿态」,削弱了对长程结构的把握。实验在 guidance 增大时尤为明显:T+dR 的 FID 从 0.44 涨到 1.03。

和 Diffusion Policy 比,有什么共通点和差异?

共通:都把动作生成从「回归」换成了「生成模型学分布」。差异:Diffusion Policy 解决的是多模态动作分布问题(在欧式空间里用扩散);RMG 解决的是动作空间的几何问题(在弯曲流形上做 flow matching)。两者正交,理论上可以合体——让 Diffusion Policy 的动作头跑到旋转流形上。