SASRec的自注意力序列,因果掩码与双向编码的取舍?
SASRec 用自注意力对用户行为序列建模:设序列 $\boldsymbol{S} = (v_1,\ldots,v_T)$,嵌入为 $\boldsymbol{E} \in \mathbb{R}^{T \times d}$,加位置编码后得到 $\boldsymbol{M}$。自注意力计算 \(\text{Attention}(\boldsymbol{Q},\boldsymbol{K},\boldsymbol{V}) = \text{softmax}\left(\frac{\boldsymbol{Q}\boldsymbol{K}^\top}{\sqrt{d}}\right)\boldsymbol{V},\) 其中 $\boldsymbol{Q}=\boldsymbol{M}\boldsymbol{W}^Q$,$\boldsymbol{K}=\boldsymbol{M}\boldsymbol{W}^K$,$\boldsymbol{V}=\boldsymbol{M}\boldsymbol{W}^V$。每位置可 attend 到序列中任意位置,表达力强。
因果掩码:在 $(i,j)$ 处若 $j>i$ 则掩为 $-\infty$,预测 $t+1$ 时只能看到 $v_1,\ldots,v_t$,避免信息泄露,符合自回归 next-item 设定。形式为下三角掩码矩阵 $\boldsymbol{M}_{ij} = -\infty \cdot \mathbb{1}[j>i]$,再对 $\boldsymbol{Q}\boldsymbol{K}^\top$ 做 mask 后 softmax。
双向(如 BERT4Rec):可同时利用左右上下文,表征更丰富,但预测时存在「看到未来」的泄露,需用 MLM 等掩码目标;且线上 serving 时若要做 next-item,仍需取最后一位置输出或单独做因果解码。因果(SASRec):严格符合 next-item 设定、实现简单、线上直接取最后位置输出即可;代价是无法利用右侧上下文,对「完形填空」类任务弱于双向。
工程取舍:纯 next-item 召回/排序优先因果;若强调利用全序列做表征或预训练再微调,可选用双向 + MLM,但需注意训练与推理的一致性。
| 返回模块 | 返回总览 |