MoMask:用「残差量化 + 双向 Masked Transformer」把文本→动作做到 FID 0.045
🎯 为什么重要:自回归不是「动作生成」的唯一答案
T2M-GPT 这类 VQ-VAE + 自回归 GPT 的方案虽然打败了扩散,但作者敏锐地指出两个内生缺陷:
① 单层 VQ 的量化误差——动作被压进一个 codebook 后,细节必然丢失。这是表示能力的上限。
② 自回归的单向解码——每个 token 只看前面的 token(local context),看不到全局;而且「错一步错到底」(误差累积)。
虽然离散扩散能做双向解码,但需要 几百步迭代,效率很差。
MoMask 同时解决这三个问题:
| 已有方案的痛点 | MoMask 的对应解法 |
|---|---|
| 单层 VQ 量化误差大 | Residual VQ (RVQ):第一层做粗量化,后续层依次量化「上一层没编码进去的残差」,多层叠加逼近原信号 |
| 自回归单向、误差累积 | BERT 式 Masked Transformer:base 层用双向注意力,「并行」预测所有 mask token——每个 token 都看得到全局上下文 |
| 离散扩散几百步太慢 | 仅 ~10 步迭代:每步并行填一部分,置信度高的 token 锁定不重画,10 步就收敛 |
这套思路来自图像领域的 generative masked modeling(Muse、MAGE、Magvit 等)——把 BERT 的「mask 后预测」改造为生成范式。MoMask 是首个把它成功用到 3D 动作生成上的工作。
💡 核心思想:RVQ 多层 token + 两个 Transformer 分工
两个关键巧思:
- Mask ratio 用 cosine 调度 $\gamma(\tau) = \cos(\frac{\pi \tau}{2})$:训练时不是固定 mask 比例(BERT 原版用 15%),而是从 0 到 1 平滑采样。这让模型学会「从全 mask 一路填到全可见」的整条路径——和推理时「从全 mask 开始填」对齐,消除 train/test gap。
- Replacing-and-Remasking(RRmask):推理时每步把所有 mask token 都预测一遍,但只把置信度最高的几个「锁定」,其他重新 mask 再预测——类似 MaskGIT 在图像上的策略。这让生成过程「先确定整体骨架,再补细节」,避免早早锁定错误。
🛠️ 四个让 MoMask 真正高效的关键设计
| 设计 | 心智 | 为什么必要 |
|---|---|---|
| ① Residual VQ(RVQ) | 第 0 层做粗量化;第 j 层量化第 j-1 层的残差 $r_{j+1} = r_j - \hat{b}_j$ | 多层叠加逼近原信号——从单层 VQ 的 0.070 FID 降到多层 RVQ 的 0.019(Table 2 重建) |
| ② Quantization Dropout(QDropout) | 训练时随机跳过一些残差层(ratio q) | 让 R-Transformer 学会处理不完整的残差链,提升鲁棒性;最佳 q ≈ 0.2-0.4 |
| ③ M-Transformer(BERT) | base 层用双向 attention,训练随机 mask,推理全 mask 并行填 | 双向 vs 自回归单向——每个 token 都看得到全局上下文,避免误差累积 |
| ④ R-Transformer(残差) | 单网络处理所有残差层,输入 layer indicator j | 用一个模型处理 V 层残差——参数共享,效率高 |
动作的相邻 token 高度相关(姿势前后依赖),自回归逐 token 生成时「错一步错到底」。Masked Transformer 并行填时,每个 mask 位置都能看到所有未 mask 的上下文(包括「未来」)——相当于做「带约束的全局优化」。再加上 RRmask(每步锁定高置信 token),整体效果是「先定骨架后补细节」,错误不会单向累积。
训练规模:M-Transformer 与 R-Transformer 各 6 层 / 6 heads / dim 384;Transformer 的 batch=64(HumanML3D)/ 32(KIT-ML),RVQ-VAE 的 batch=512;linear warmup 2000 iter 到 lr 2e-4(论文未明示后续 LR 衰减形式)。Mask ratio 用 cosine 调度 γ(τ)=cos(πτ/2)。RVQ-VAE 沿用 T2M-GPT 的 EMA + Code Reset 套路。论文未给单卡训练时长(§4.1 实现细节简短)。
📊 关键结果:FID 0.045(比 T2M-GPT 提升 3×)+ 推理更快
Table 1:HumanML3D
| 方法 | R-Precision Top-1 ↑ | Top-2 ↑ | Top-3 ↑ | FID ↓ | MM-Dist ↓ | MModality ↑ |
|---|---|---|---|---|---|---|
| MDM(扩散) | — | — | 0.611 | 0.544 | 5.566 | 2.799 |
| MLD(潜扩散) | 0.481 | 0.673 | 0.772 | 0.473 | 3.196 | 2.413 |
| T2M-GPT(VQ+GPT) | 0.492 | 0.679 | 0.775 | 0.141 | 3.121 | 1.831 |
| MoMask (base) | 0.504 | 0.699 | 0.797 | 0.082 | 3.050 | 1.050 |
| MoMask(完整) | 0.521 | 0.713 | 0.807 | 0.045 | 2.958 | 1.241 |
Table 1:KIT-ML:MoMask FID 0.204(vs T2M-GPT 0.514,2.5× 改善)。
Table 2:RVQ-VAE 重建 + 设计消融(HumanML3D)
| 方法 | 重建 FID ↓ | 生成 FID ↓ |
|---|---|---|
| T2M-GPT VQ | 0.070 | 0.141 |
| MoMask (V=2) | 0.049 | 0.072 |
| MoMask (V=4) | 0.027 | 0.069 |
| MoMask (V=5, 最佳) | 0.019 | 0.051(base)/ 0.045(含 R-Trans) |
Fig.7:推理超参扫描——最佳 guidance scale s ≈ 4;10 步迭代就收敛(更多步无增益)。
用户研究(Fig.5):MoMask 与 MDM/MLD/T2M-GPT 对比都获多数偏好;42% 用户认为 MoMask 与真值动作持平(即分不出哪个是生成的)。
额外应用:时序 Inpainting(Fig.6)——无需重训,直接 mask 一段动作让 MoMask 补全。68% 用户偏好 MoMask 而非 MDM。
🌐 在领域中的位置
MoMask 是动作生成「双向 mask 建模」范式的奠基。它和 T2M-GPT 形成有趣对照:同样的 VQ 表示,把自回归换成 mask 建模,FID 又砍 3×。这强化了「动作 = 离散 token 序列」这一表示的合理性,同时确立了 generative masked modeling 在动作领域的地位。关联线索:T08 动作生成谱系。
❓ 常见误区
「Masked Transformer」和 BERT 是一回事吗?怎么用于生成?
BERT 原本是判别式模型——只能预测 mask,不能凭空生成。MoMask 借鉴 Ghazvininejad 等(2019)和 Muse 的做法:推理时从「全 mask」开始,每步并行预测所有 mask,锁定高置信的,重 mask 其他的,迭代 ~10 步直到全填满。这就是「generative masked modeling」。
「Residual VQ」和普通 VQ 有什么不同?
普通 VQ 把向量量化一次:$\hat{b} = Q(r_0)$,残差 $r_0 - \hat{b}$ 就丢了。RVQ 把残差再量化:$r_1 = r_0 - \hat{b}_0$, $\hat{b}_1 = Q(r_1)$, $r_2 = r_1 - \hat{b}_1$, ...——多层叠加 $\sum_j \hat{b}_j$ 越来越逼近原向量。这是音频编码(EnCodec、SoundStream、AudioLM)里的成熟技术,MoMask 把它搬到动作上。
15 步迭代真的够吗?动作会不会很短时就不准?
论文 Fig.7 实测:~10 步就收敛,更多步无增益。原因是每步并行填多个 token,而不是像自回归逐个填——15 步内填完几十个 token 完全够用。对短动作尤其友好。
MoMask 有什么局限?
论文 §5 自承三条:(1)多样性较低——精度高但生出来的动作变化不够(MModality 比 MLD/MDM 低);(2)需要输入目标长度(不像 T2M-GPT 用 End token 自动停),得配一个 text2length 模块;(3)快速变向动作(如原地旋转)生成不准——这是 VQ 系方法的通病。
它和 T2M-GPT 到底什么关系?继承还是替代?
「继承 + 改造」。MoMask 的 RVQ-VAE 训练直接复用 T2M-GPT 的 EMA + Code Reset;但把单层 VQ 换成 RVQ、把自回归 GPT 换成 Masked + Residual 双 Transformer。结果:表示精度更高、生成更快、FID 更好。可以看作 T2M-GPT 路线的自然进化版。