sgr-interview-300

第 91 题:SASRec的自注意力序列,因果掩码与双向编码的取舍?

题目

SASRec的自注意力序列,因果掩码与双向编码的取舍?


完整讲解

一、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 到序列中任意位置,表达力强。

二、因果掩码(Causal Mask)

因果掩码:在 $(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,但需注意训练与推理的一致性。


面试要点


记忆要点

返回模块 返回总览