推荐系统 - DIN模型

1. 简介

Deep Interest Network(DIN)模型由阿里巴巴2018年发表在KDD 2018会议上。本文的主要动机是,将NLP中机器翻译的Attention机制引入CTR预估模型中,即在计算用户兴趣向量的时候,根据候选广告的不同从而动态的改变用户兴趣向量的值:计算候选广告与用户历史交互的个商品计算Attention权重,然后将个商品向量加权平均得到用户兴趣向量。 本文的改进基于以下思考:
(1)兴趣多样性: 用户的兴趣是多样化的,比如对于一个电商系统,用户可能同时对很多东西感兴趣;
(2)局部聚焦性: 在预测用户是否点击某个广告/商品的时候,是根据用户历史与某类商品进行了交互;比如,一个用户是否会点击泳衣,是因为用户历史购买过泳镜,而不是因为她购买过外套。

2. DIN模型结构

2.1 Base Model

  • Base Model在得到每个商品对应的向量之后,通过sum/mean pooling得到用户兴趣向量;
  • 注意:商品向量由三个向量拼接而成:1. goods_id对应向量;2. goods商铺对应向量;3. goods类别对应向量;
Base Model.png
  • 阿里巴巴在线广告系统,使用的特征如下:使用的都是ID类的特征;
特征集合.png

2.2 DIN Model

  • DIN模型在Base Model基础上进行改进,将sum/mean pooling改成了加权平均;动态的根据候选广告的不同,计算与每一个用户历史交互商品的Attention权重,最后通过加权平均的方式得到用户兴趣向量。 因此,通过这种方式得到的用户兴趣向量,是根据候选广告的不同动态变化的。
DIN Model.png
  • 其中,Activation Unit用于计算Attention权重,其输入是广告embedding和历史交互商品embedding,和这两个向量的点积。最后将三者concate在一起,一起输入到DNN网络中,最后一层使用sigmoid激活函数得到Attention权重。中间隐层,使用PRelu/Dice激活函数。

3. 训练优化

3.1 Mini-batch Aware Regularization [小批量感知正则化]

  • 本文提出的正则化方法,与常用的和正则不同;本文提出的正则方法,只对特征取值非零的特征进行正则化。对于特征其最终对应的更新公式如下:其中,表示第次mini batch,表示在此次mini batch中第个特征,是否存在一个样本取值不为0;表示特征在整个训练样本。
加入正则后参数更新公式.png

3.2 Data Adaptive Activation Function [数据自适应激活函数 - Dice]

  • PRelu是常使用的激活函数,其对应的数学表达式如下。文中作者对PRelu激活函数做了改进,使得曲线中间变得更平滑,并且平滑力度也跟数据分布相关。和分别表示每一次mini batch的均值和方差,测试阶段通过moving average的方式计算这两个值。
PRelu激活函数.png
Dice激活函数.png
PRelu&Dice激活函数.png

4. 评价指标

  • 论文中使用两个评价指标 GAUC和RelaImpr,计算公式如下。其中表示用户数量; RelaImpr指标为了测试实验模型,比较基模型的相对提升比例;
    GAUC计算公式.png
RelaImpr计算公式.png

参考资料:

  • 【DIN论文】https://arxiv.org/pdf/1706.06978.pdf
  • 开源代码:https://github.com/zhougr1993/DeepInterestNetwork 【tensorflow】
  • 详解 Deep Interest Network: 为阿里创造更多广告收入 https://zhuanlan.zhihu.com/p/54085498

你可能感兴趣的:(推荐系统 - DIN模型)