DIN

两个版本:17年arXiv 和 18年kdd attention方式差异:使用[v_i, v_u, v_i-v_u];后者使用[v_i, v_u, outer product(v_i, v_u)],相较于前者,外积是有方向的,且方向垂直于原向量,相当于增加了维度(从x,y扩展到x,y,z)

Motivation

把序列特征分别embedding后做sum/average pooling为一个定长的向量(group-wise embedding),平滑了用户的多兴趣,忽略了用户兴趣和候选广告直接的交互(用户emb,不会随着候选广告的变更而改变)

---> 怀人老师先前的特征解法(hard attention):用判断候选广告在历史行为序列的出现次数,把这个当做特征喂给模型。

实现细节

image.png

Attention机制(activation unit):

  1. 用户的历史行为序列中的item embedding和候选集广告embedding以[v_i, v_u, outer product(v_i, v_u)] + DICE + FC成1位weight) 生成权重
  2. 因此,候选集作为生成用于emb的一个参数


    image.png

模型效果

image.png

其他创新点

激活函数:PReLU ---> DICE

PReLU (Parametric ReLU)

image.png

p(s)是indicator function,截断太过“生硬”,长这样:

image.png

DICE

更泛化版PReLU,截断控制点考虑了数据的分布:

image.png

( E 和 Var 分别是min-batch内的均值和方差(test里使用移动平均))

模型相对衡量指标RelaImpr

Weight AUC (user-gAUC)
image.png
RelaImpr
image.png

附录

外积

参考:https://www.cnblogs.com/gxcdream/p/7597865.html

内积

对应元素相乘相加为标量:

  1. 表征向量的投影;
  2. 成乐模长后的夹角

外积

计算方式特殊,且计算完后是向量,方向为垂直于两向量

wikipedia.png
计算方式
a = np.array([1, 2, 3, 4, 5]).reshape([5,1])
b = np.array([6, 7, 8, 9, 10]).reshape([1,5])
a*b
#################################################

a = tf.expand_dims(a, axis=-1) 
b = tf.expand_dims(b, axis=-1) 
outer = tf.matmul(a, b, transpose_b=True)

WHY not LSTM

电商历史行为序列特定:Rapid jumping and sudden ending over these interests

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容