Behavior Sequence Transformer for E-commerce Recommendation in Alibaba
Transformer를 사용한 CTR 예측 논문
입력값에서 User Behavior Sequence를 그대로 입력값으로 넣는다.
Sequence가 아닌 정보들은 바로 MLP Layer로 보낸다.
엄밀히 말하자면 Transformer의 Encoder Layer만 활용한 것이다.
Transformer Encoder Layer
$$ \begin{aligned}& \operatorname{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V})=\operatorname{softmax}\left(\frac{\mathbf{Q K}^T}{\sqrt{d}}\right) \mathbf{V} \\& \mathbf{Q}=\mathbf{E W}^Q, \quad \mathbf{K}=\mathbf{E W}^K, \quad \mathbf{V}=\mathbf{E W}^V\end{aligned} $$
$$ \begin{gathered}\mathbf{S}=\mathrm{MH}(E)=\text { Concat }\left(\text { head }_1, \text { head }_2, \ldots, \text { head }_h\right) \mathbf{W}^H \\\text { head }_i=\text { Attention }\left(\mathbf{E W}^Q, \mathbf{E W}^K, \mathbf{E W}^V\right)\end{gathered} $$
point-wise Feed-Forward Neural Networks
Stacking the Self-Attention blocks
vs. DIN
local activation layer ⇒ transformer layer
user behavior feature ⇒ user behavior sequence
BST에서는 과거 아이템 소비 순서까지 고려한다.
vs. Transformer
dropout과 leakyReLU 추가
레이어 1~4개 사용 (최고성능: 1개)
Custom Positional Encoding
Transformer와 다른 방식으로 Positional Encoding을 생성한다.
$pos(v_i) = t(v_t) - t(v_i)$
Transformer는 CTR Prediction Task에서도 SOTA의 성능을 보인다.
단, Transformer 블록을 2개 이상 쌓을 때 오히려 성능이 감소한다.
이유: CTR 예측 Task의 sequence는 machine translation와 같은 NLP sequence보다는 덜 복잡한 것으로 보인다.