这部分主要介绍增加了注意力机制的深度ctr模型,AFN和DIN在数学形式上都是将以往的直接加和改成了加权和,DIEN除了注意力机制还充分利用了历史行为的序列特性。

AFM

主要思想

AFM实质是在NFM的基础上加上了attention机制,NFM(https://www.yuque.com/zhang00/xqzytl/abi2rv)中的embedding层将不同特征的embedding向量两两交叉之后经过池化,这里池化相当于将所有经过交叉的特征一视同仁,有可能消解了特征中有价值的信息。AFM在embedding特征两两交叉之后加入了attention net,通过这个注意力来为不同的交叉项生成注意力权重。

模型结构

image.png

  • 在embedding向量两两交叉之后的Pair-wise Interaction Layer和池化层之间增加了注意力网络,该注意力网络为每个交叉项生成一个权重,用来衡量交叉项的重要程度;
  • 该注意力网络是通过一个全连接和softmax层,因此要学习的参数是:特征交叉层到全连接层的W和偏b + 全连接层到softmax层的参数h

    DIN

    主要思想

    在base模型中,商品序列的embedding直接经过平均/加和后再进行特征交叉或者直接进入连接层,DIN考虑到:用户的历史行为序列中不同的商品与候选商品的相关度不同,需要投入的“注意力”也不同。DIN计算候选商品与历史行为商品之间的权重,不同商品的embedding在经过加权后再进行pooling。

    模型结构

    image.png

  • AFM的注意力权重是在序列goods_id的embedding池化且池化后的embedding两两交叉后作用到交叉项的,但是DIN的局部激活单元是作用在序列goods_id池化之前,计算出每个goodd_id与候选goods_id之间的相关性权重;

  • 局部激活单元的输入是序列中goods id和候选goods id的embedding向量,经过element-wise minus之后再与原始的两个embedding连接,输入全连接层,输出层是一个单神经元,通过该激活单元生成注意力权重;
  • 序列中所有goods_id 的embedding都经过加权之后再进行sum pooling

    DIEN

    主要思想

    DIEN在DIN的基础上增加了序列模型部分来抽取用户的兴趣和兴趣的进化,DIEN之前的所有模型,尽管有历史行为序列这一特征域,但是DIEN之前的模型最多也只是给了不同行为不同的权重,与行为之间的时间上的序列没有关系。DIEN 利用了历史行为的时间序列,加强了最近行为对下次购买的影响,

    模型结构

    image.png
    彩色部分就是DIEN的创新点所在-“用户兴趣网络”,该网络包含3层:

  • 行为序列层,这一层和其他深度网络一样,只不过按照时间来排列;

  • 兴趣抽取层,该层使用GRU单元,将用户行为向量b(t)抽取为用户状态向量h(t),这一层用来模拟用户兴趣变化,可以做出下一个兴趣状态的预测;
  • 兴趣进化层,在抽取层模拟兴趣变化的基础上,加入注意力机制,强调兴趣与候选商品的相关性,这里的注意力权重的生成和DIN是一样的