计算机系统应用教程网站

网站首页 > 技术文章 正文

深度兴趣网络(DIN,Deep Interest Network)

btikc 2024-10-17 08:42:52 技术文章 7 ℃ 0 评论

[转]https://running-bad-ai.github.io/2018/08/02/DIN/

摘要

深度兴趣网络(DIN,Deep Interest Network):

该方法由阿里妈妈的精准定向检索及基础算法团队提出, 针对电子商务领域(e-commerce industry), 充分利用/挖掘用户历史行为数据中的信息来提高CTR预估的性能.


  1. contributions/key words:


1
2
3
4
-diversity 
-local activation (attention) 
-mini-batch aware regularizer 
-data adaptive activation function (dice)

  1. old methods:


1
2
3
4
5
6
7
常见的算法, 比如 Wide&Deep, DeepFM等, 通常流程是: 
Sparse Features -> Embedding Vector (-> pooling layer) -> MLPs -> Sigmoid -> Output 
通过Embedding层, 将高维离散特征转换为固定长度的连续特征, 然后通过多个全联接层, 学习非线性, 最后通过一个sigmoid函数转化为0-1值, 代表点击的概率
优点:通过神经网络可以拟合高阶的非线性关系, 同时减少了人工特征的工作量. 
缺点:在对用户历史行为数据进行处理时, 每个用户的历史点击个数是不相等的, 包含了许多兴趣信息, 我们要把它们编码成一个固定长的向量, 需要做pooling (sum or average), 会损失信息

  1. DIN:
1
2
Diversity:用户在浏览电商网站的过程中显示出的兴趣是十分多样性的. 
Local activation: 由于用户兴趣的多样性, 只有部分历史数据会影响到当次推荐的物品是否被点击, 而不是所有的历史记录.

  1. Features:



1
2
只有用户行为特征是multi-hot, 即多值离散. 
没有人工组合特征, 会在dnn中自己学习.

  1. Architecture:



1
2
Activation Unit实现Attention机制, 对Local Activation建模. 
Pooling(weighted sum)对Diversity建模, 直接sum体现不出差异多样性, 加权可以.




1
2
3
4
5
6
7
8
9
其中: 
Vi表示behavior id的嵌入向量, 比如good_id, shop_id等; 
Vu是所有behavior ids的加权和, 表示的是用户兴趣; 
Va是候选广告的嵌入向量; 
wi是候选广告影响着每个behavior id的权重, 也就是Local Activation; 
wi通过Activation Unit计算得出, 这一块用函数去拟合, 表示为g(Vi,Va). 
在实际实现中, 权重用激活函数Dice的输出来表示, 输入是Vi和Va. 
优点:针对不同的候选广告, 用户的兴趣向量是不同的, 而不像单纯的sum pooling兴趣永远是不变的.

  1. DICE: data adaptive activation function:



类似relu + BN 的组合:


1
2
3
4
5
6
优点: 
1.将数据做标准化估计, 统一所有维度的量纲, 也是个非常重要的技巧, 有点类似BN.
--在训练过程中, 分别是当次batch的均值和方差.
--在Test时, 这里的E[s]和Var[s]用的是moving_average.
2.可以发现当E[s]=0, Var[s]=0 时, Dice几乎等同于PRELU.
3.? is a small constant which is set to be 10?8 in our practice.

  1. GAUC: 计算了用户级别的AUC, 在将其按展示次数进行加权, 消除了用户偏差对模型评价的影响, 更准确地描述了模型对于每个用户的表现效果



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
AUC意义: AUC值越大, 当前的分类算法越有可能将正样本排在负样本前面, 即能够更好的分类.
首先要肯定的是, AUC是要分用户看的, 我们的模型的预测结果, 只要能够保证对每个用户来说, 他想要的结果排在前面就好了.
Example 1:
假设有两个用户A和B, 每个用户都有10个商品, 10个商品中有5个是正样本.
我们分别用TA, TB, FA, FB来表示两个用户的正样本和负样本.
假设模型预测的结果大小排序依次为TA, FA, TB, FB
1)如果把两个用户的结果混起来看, AUC并不是很高, 因为有5个正样本排在了后面.
2)但是分开看的话, 每个用户的正样本都排在了负样本之前, AUC应该是1.显然, 分开看更容易体现模型的效果, 这样消除了用户本身的差异.
Example 2:
还有一种差异是用户的展示次数或者点击数, 这种差异同样需要消除.
如果一个用户有1个正样本, 10个负样本; 另一个用户有5个正样本, 50个负样本.
那么GAUC的计算, 不仅将每个用户的AUC分开计算, 同时根据用户的展示数或者点击数来对每个用户的AUC进行加权处理, 进一步消除了用户偏差对模型的影响.
通过实验证明, GAUC确实是一个更加合理的评价指标.

  1. mini-batch aware Regularization (MBA):


1
2
3
4
5
6
7
8
9
10
11
场景:
CTR中输入稀疏而且维度高, 通常的做法是加入L1、L2、Dropout等防止过拟合.
--但是论文中尝试后效果都不是很好:用户数据符合长尾定律(long-tail law), 也就是说很多的feature id只出现了几次, 而一小部分feature id出现很多次.
--这在训练过程中增加了很多噪声, 并且加重了过拟合.
对于这个问题一个简单的处理办法就是:
--直接去掉出现次数比较少的feature id.但是这样就人为的丢掉了一些信息, 导致模型更加容易过拟合.
--同时阈值的设定作为一个新的超参数, 也是需要大量的实验来选择的.
MBA的优点:
1.频率自适应 
2.每次迭代只更新非0部分权重,减少计算量

原理:



  1. 效果:



1
2
利用候选的广告, 反向激活历史兴趣, 不同的历史兴趣爱好对于当前候选广告的权重不同, 做到了local activation.
--可以看到, 对于候选的广告是一件衣服的时候, 用户历史行为中跟衣服相关性越高的在attention后获得的权重越高(即越能描述用户对这个广告的兴趣), 而非衣服的部分, 权重较低.



1
2
3
以上面年轻妈妈为例, 选取9个类别各100条商品, 作为candidate ad输入模型, 得到每件商品的embedding vector以及预测得分.
进行可视化如上图, 红色表示得分最高, 蓝色表示得分最低,可以发现:
--用户的兴趣分布有多个峰.且DIN有较好的聚类效果.

  1. summary:
1
2
3
4
5
6
7
1.用户有多个兴趣爱好, 即访问了多个good_id, shop_id.为了降低维度并使得商品店铺间的算术运算有意义, 我们先对其进行Embedding嵌入.
那么我们如何对用户多种多样的兴趣建模?
--使用Pooling对Embedding Vector求和或者求平均.同时这也解决了不同用户输入长度不同的问题, 得到了一个固定长度的向量.这个向量就是用户表示, 是用户兴趣的代表.
2.但是, 直接求sum或average(相当于平均权重, 没有侧重)损失了很多信息.
--所以稍加改进, 针对不同的behavior赋予不同的权重, 这个权重是由用户历史behavior和当前候选广告共同决定的.这就是Attention机制, 实现了Local Activation.
3.DIN使用activation unit来捕获local activation的特征, 使用weighted sum pooling来实现diversity结构.
4.在模型学习优化上, DIN提出了Dice激活函数、MBA(自适应正则化) , 显著的提升了模型性能与收敛速度.

  1. Reference:
1
2
3
4
5
6
Github: https://github.com/running-Bad-AI/DeepInterestNetwork
Deep Interest Network for Click-Through Rate Prediction
Learning piece-wise linear models from large scale data for ad click prediction
https://www.leiphone.com/news/201707/t0AT4sIgyWS2QWVU.html
https://www.leiphone.com/news/201706/pDfOAoMYp8mqNKEC.html
盖坤的分享视频 http://www.itdks.com/dakalive/detail/3166

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表