DIN的注意力权重计算,引入激活单元(Activation Unit)的动机?
Deep Interest Network (DIN) 用局部注意力从用户历史行为序列中选出与候选 item 相关的部分。设用户行为序列为 ${e_1,\ldots,e_T}$($e_t$ 为 item 嵌入),候选 item 嵌入为 $\boldsymbol{v}_A$,注意力权重为 \(a_t = \frac{\exp(\text{score}(e_t, \boldsymbol{v}_A))}{\sum_{j=1}^T \exp(\text{score}(e_j, \boldsymbol{v}_A))},\quad \boldsymbol{v}_U = \sum_{t=1}^T a_t e_t.\) 用户表示 $\boldsymbol{v}_U$ 是加权和,与候选相关的历史获得更大权重,实现「候选相关」的兴趣表达。
动机:简单内积 $\text{score}(e_t,\boldsymbol{v}_A)=e_t^\top \boldsymbol{v}_A$ 表达能力有限,无法刻画「行为 item 与候选 item 在多种维度上的复杂匹配」(如类目、品牌、价格等)。引入 Activation Unit (AU) 做一个小型前馈网络,输入为行为与候选的拼接及外积等,输出标量分数: \(\text{score}(e_t, \boldsymbol{v}_A) = \boldsymbol{w}^\top \sigma\bigl(W [e_t; \boldsymbol{v}_A; e_t \odot \boldsymbol{v}_A] + \boldsymbol{b}\bigr).\) 其中 $[e_t;\boldsymbol{v}_A; e_t\odot\boldsymbol{v}_A]$ 提供拼接 + 逐元素乘积,增强交互;$\sigma$ 常用 PReLU。这样模型能学习「在什么维度上、多大程度上相关」,而不是单一内积。
| 返回模块 | 返回总览 |