DIN
今天来学习深度推荐模型中的深度兴趣模型DIN(Deep Interest Network),该模型是由阿里在17年提出的,该模型充分利用用户历史行为数据中的信息来提高CTR预估的能力。以这个模型的使用场景是非常注重用户的历史行为特征(历史购买过的商品或者类别信息)
模型背景
常用的CTR预估模型都是将高维离散型特征转换为固定长的连续型特征,然后通过多个全连接层,最后通过一个激活函数转化为0-1的值,来代表点击的概率,过程即为Sparse Features -> Embedding Vector -> MLPs -> Sigmoid -> Output.这种方法可以通过神经网络可以拟合高阶的非线性关系,同时减少了人工特征的工作量。但是用户的兴趣往往是多样性的,不是用户所有的历史行为特征都会对某个商品广告点击预测起到作用,这种方法往往显得较为吃力。针对此类问题,阿里提出DIN模型,充分考虑用户的历史点击商品与当前商品的关联。
模型结构与原理
DIN模型涉及到的特征有四个,分别用户特征、用户行为特征、广告特征、上下文特征,如下图所示:
除了上述所说的特征之外,还有一个BaseModel模型,这里的base 模型,就是上面提到过的Embedding&MLP的形式, 这个之所以要介绍,就是因为DIN网络的基准也是他,只不过在这个的基础上添加了一个新结构(注意力网络)来学习当前候选广告与用户历史行为特征的相关性,从而动态捕捉用户的兴趣。结构如下所示
上面的基准模型有一个明显的缺点,就是对于所有的历史行为都是同等对待,没有区分开,所以DIN模型对于用户的历史行为加入一个注意力机制。这样在预测当前广告是否点击的时候,让模型更关注于与当前广告相关的那些用户历史产品,也就是说与当前商品更加相关的历史行为更能促进用户的点击行为。
上面是DIN的模型结构图,由图可以看出,相较于BaseModel模型引入了一个activation unit,这里面是一个前馈神经网络,输入是用户历史行为商品和当前的候选商品, 输出是它俩之间的相关性, 这个相关性相当于每个历史商品的权重,把这个权重与原来的历史行为embedding相乘求和就得到了用户的兴趣表示 v U ( A ) \boldsymbol{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 \boldsymbol{v}{U}(A)=f\left(\boldsymbol{v}{A}, \boldsymbol{e}{1}, \boldsymbol{e}{2}, \ldots, \boldsymbol{e}{H}\right)=\sum_{j=1}^{H} a\left(\boldsymbol{e}{j}, \boldsymbol{v}{A}\right) \boldsymbol{e}{j}=\sum{j=1}^{H} \boldsymbol{w}{j} \boldsymbol{e}{j} vU(A)=f