第 92 题:BERT4Rec的MLM预训练,推荐场景下的掩码比例调优?
题目
BERT4Rec的MLM预训练,推荐场景下的掩码比例调优?
完整讲解
一、BERT4Rec 的 MLM 预训练
BERT4Rec 用双向 Transformer 建模序列,通过 Masked Language Model (MLM) 预训练:随机将序列中比例 $p$ 的 item 替换为 [MASK],模型根据上下文预测被掩位置的原 item。损失为被掩位置上的交叉熵:
\(\mathcal{L} = -\sum_{i \in \mathcal{M}} \ln P(v_i \mid \boldsymbol{S}_{\backslash \mathcal{M}}),\)
其中 $\mathcal{M}$ 为被掩位置集合,$\boldsymbol{S}_{\backslash \mathcal{M}}$ 为未掩的上下文。
二、推荐场景下的掩码比例
通用 NLP(如 BERT)常取 15% 左右;推荐序列通常更短、item 空间更大,需单独调优。
- 比例过小(如 5%):正样本少,学习信号弱,预训练慢、易欠拟合。
- 比例过大(如 50%):上下文损失过多,预测难度大,且序列「残缺」严重,与真实 next-item 分布偏差大。
- 推荐常用区间:多数工作在 0.15~0.4 之间实验,如 0.2~0.3 较常见;也可对长序列略提高、短序列略降低,使被掩数量相对稳定。
三、工程调优建议
- 与微调阶段一致:若微调是 next-item,可适当降低掩码率或结合 last-item 预测损失。
- 可做 span 掩码(连续掩一段)或 随机单 token,推荐里单 token 更常见。
- 结合序列长度与 batch 量:保证每 batch 内有效掩码数足够,以稳定梯度。
面试要点
- 能写出 BERT4Rec MLM 损失形式,并说明与 BERT 的 15% 掩码在推荐中的差异(序列短、item 空间大)。
- 能说清掩码过小导致信号弱、过大导致上下文残缺与分布偏移,推荐常用 0.2~0.3。
- 能提及 span 掩码、与微调目标一致、按序列长度微调等工程点。
记忆要点
- BERT4Rec 预训练:MLM 对被掩位置预测原 item,损失为交叉熵。
- 推荐掩码比例:过小信号弱、过大上下文残缺;常用 0.15~0.4,实践中 0.2~0.3 较多。
- 调优:与微调目标一致、可按序列长度调节、注意每 batch 有效掩码数。