【王树森推荐系统】行为序列02:DIN模型(注意力机制)
简单平均的用户行为序列建模
- 系统记录 last-n,也就是最近交互过的 n 个物品
- 把 n 个物品ID做 embedding,然后对所有 embedding 取平均得到一个向量作为对用户行为的表征
- 取平均是最简单的,但是效果不是最好的
DIN模型
- DIN 用加权平均代替平均,即注意力机制
- 权重:候选物品与用户 LastN 物品的相似度,那个物品与候选物品更相似,它的权重就越高
- 红色的向量是用户交互过的 LastN 物品的向量表征,蓝色向量 q 是候选物品的向量表征
- 候选物品的含义:比如粗排选出了 500 个物品,它们就是精排的候选物品,精排模型要给每个候选物品打分,分数表示用户对候选物品的兴趣,最后根据分数高低对这 500 个候选物品做排序,保留分数最高的几十个展示给用户
- 需要注意区分 last-n 物品和候选物品
- 计算向量 x1x_1x1 与候选物品向量 qqq 的相似度记作 α1\alpha_1α1,它是个实数
- 计算相似度的方法有很多,比如内积,余弦相似度,也可以用更复杂的方法
- 同样的方法计算 x2x_2x2 和 qqq 的相似度,记作 α2\alpha_2α2,以此类推得到 n 个相似度,每个 α\alphaα 对应一个 xxx 向量
- 把 α\alphaα 和对应的向量相乘,然后把结果相加得到紫色的向量,紫色向量就是 last-n 向量的加权和,权重是相似度 α\alphaα
DIN模型总结
- 对于某候选物品,计算它与用户 last-n 物品的相似度
- 以相似度作为权重,求用户 last-n 物品向量的加权和,结果是一个向量
- 把得到的向量作为一种用户特征,输入排序模型,预估(用户,候选物品)的点击率,点赞率等指标
- 本质是注意力机制
DIN的本质是注意力机制
- 我们把红色向量 x1x_1x1 到 xnx_nxn 作为 key 和 value
- 右边蓝色向量作为 query
- 输入单头注意力层
- query 只有一个向量,所以注意力层的输出也是一个向量
简单平均 vs 注意力机制
- 简单平均和注意力机制都适用于精排模型
- 简单平均适用于双塔模型,三塔模型
- 简单平均只需要用到 last-n,属于用户自身的特征,与候选物品无关
- 把 last-n 向量的平均作为用户塔的输入
- 注意力机制不适用于双塔模型,三塔模型
- 注意力机制需要用到 last-n + 候选物品
- 用户塔看不到候选物品,不能把注意力机制用在用户塔。比如在召回的时候,一共有上亿个候选物品,用户只能看到用户特征而看不到候选物品特征,但是 DIN 需要知道候选物品的特征