在电商领域,每个用户都有丰富的历史行为数据,这些数据具有如下特点:
-
多样性(Diversity):用户可能对多种商品感兴趣,例如手机、衣服。
-
局部激活(Local Activation):用户是否点击新商品,仅仅取决于历史行为中与新商品相关度高的部分数据。
如何从中捕获特征对CTR预估模型非常重要。论文 《Deep Interest Network for Click-Through Rate Prediction 提出了深度兴趣网络 Deep Interest Network,以下简称 DIN 模型,设计了类似 attention 的网络结构来激活历史行为数据中与候选广告相关度高的行为,即:增大与目标广告相关性高的历史行为权重。
模型解读
基准模型
论文并没有直接讲解DIN模型,而是先介绍了基准模型的结构:
此模型主要功能是将输入的用户特征、行为特征、候选广告以及上下文特征转换成 embedding,然后将这些 embedding 拼接在一起用几个全连接层完成点击率的预测。这里面有几个需要注意的细节:
1,用户行为序列的长度一般是不同的,所以为了能够将不同序列长度的embedding 向量转换成相同的大小,一种思路是将所有的 embedding 向量进行 sum pooling,即对所有 embedding 向量求和,得到一个固定大小的向量,作为全连接层的输入。
2,直接对行为的 embedding 向量求和,会损失很多信息,即:无法捕捉到候选广告与历史行为信息中的局部相关性。
DIN模型
于是,在论文中又提出了改进后的模型: DIN,网络结构如下图:
与基准模型相比,最大的区别在于:引入了与 attention 机制功能相似的 Activation Unit 用于根据候选广告计算历史行为的权重。
如果用 {
e 1 , e 2 , . . . , e H e_1, e_2, ... , e_H e1,e2,...,eH} 表示用户 U 对 H 个商品行为 embedding 向量, v A v_A vA 表示候选广告的向量,那么用户 U 对广告 A 的兴趣向量 v U ( A ) v_U(A) vU(A) 可以用下面的公式计算:
v U ( A ) = f ( v A , e 1 , e 2 , . . . , e H ) = ∑ j = 1 H a ( e j , v A ) e j = ∑ j = 1 H w j e j v_U(A) = f(v_A,e_1,e_2,...,e_H)=\sum_{j=1}^Ha(e_j,v_A)e_j=\sum_{j=1}^Hw_je_j vU(A)=f(vA,e1,e2,...,eH)=j=1∑Ha(ej,vA)ej=j=1∑Hwjej
其中, a ( ⋅ )