龙空技术网

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

用户77267181483 304

前言:

现在你们对“vector 求和”大概比较讲究,小伙伴们都需要分析一些“vector 求和”的相关资讯。那么小编在网上网罗了一些对于“vector 求和””的相关知识,希望看官们能喜欢,朋友们一起来了解一下吧!

[转]

摘要

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

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

contributions/key words:

1234-diversity -local activation (attention) -mini-batch aware regularizer -data adaptive activation function (dice)
old methods:

1234567常见的算法, 比如 Wide&Deep, DeepFM等, 通常流程是: Sparse Features -> Embedding Vector (-> pooling layer) -> MLPs -> Sigmoid -> Output 通过Embedding层, 将高维离散特征转换为固定长度的连续特征, 然后通过多个全联接层, 学习非线性, 最后通过一个sigmoid函数转化为0-1值, 代表点击的概率优点:通过神经网络可以拟合高阶的非线性关系, 同时减少了人工特征的工作量. 缺点:在对用户历史行为数据进行处理时, 每个用户的历史点击个数是不相等的, 包含了许多兴趣信息, 我们要把它们编码成一个固定长的向量, 需要做pooling (sum or average), 会损失信息
DIN:
12Diversity:用户在浏览电商网站的过程中显示出的兴趣是十分多样性的. Local activation: 由于用户兴趣的多样性, 只有部分历史数据会影响到当次推荐的物品是否被点击, 而不是所有的历史记录.
Features:

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

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

123456789其中: 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兴趣永远是不变的.
DICE: data adaptive activation function:

类似relu + BN 的组合:

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

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

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

原理:

效果:

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

123以上面年轻妈妈为例, 选取9个类别各100条商品, 作为candidate ad输入模型, 得到每件商品的embedding vector以及预测得分.进行可视化如上图, 红色表示得分最高, 蓝色表示得分最低,可以发现:--用户的兴趣分布有多个峰.且DIN有较好的聚类效果.
summary:
12345671.用户有多个兴趣爱好, 即访问了多个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(自适应正则化) , 显著的提升了模型性能与收敛速度.
Reference:
123456Github:  Interest Network for Click-Through Rate PredictionLearning piece-wise linear models from large scale data for ad click prediction盖坤的分享视频 

标签: #vector 求和