DIN
image.png-
思路
从输入特征中获取用户历史行为,并筛选出对预估任务有效的特征进行权重分配,进而对当前商品广告与用户历史行为商品的局部兴趣进行打分(注意力得分)。
// 方法:
在embedding与MLP之间加入注意力机制。===》不同场景,特征权重分配不一样;筛选出有用特征,划分好哪些是重要特征。
image.png -
特征
image.png
- 网络结构
base model
image.png
缺陷:
image.png
- 喂入模型前,history与ad无交互。
- 喂入模型后,将会丢失交互信息,不仅如此,还将无关特征带来的冗余信息作为噪音进入模型训练。
Activation Unit输出Activation Weight,输入包括用户行为User-Embedding和候选广告Candidate Ad-Embedding。相当于得到Attention分数,将candidate Ad与历史行为的每个商品进行交互,还考虑了他们两个的外积(在三维几何中,向量a和向量b的叉乘结果是一个向量,更为熟知的叫法是法向量,该向量垂直于a和b向量构成的平面)。
image.png
对于不同的candidate ad,得到的用户行为表示向量也不同:
image.png
最后输出标量权重。
image.png
几个问题
// why sum-pooling?
https://zhuanlan.zhihu.com/p/365999532
对长度不等的embedding向量进行维度统一。pooling目的是为了保持某种不变性(旋转、平移、伸缩等)。
mean-pooling,即对邻域内特征点只求平均,max-pooling,即对邻域内特征点取最大。根据相关理论,特征提取的误差主要来自两个方面:(1)邻域大小受限造成的估计值方差增大;(2)卷积层参数误差造成估计均值的偏移。一般来说,mean-pooling能减小第一种误差,更多的保留图像的背景信息,max-pooling能减小第二种误差,更多的保留纹理信息。Stochastic-pooling则介于两者之间,通过对像素点按照数值大小赋予概率,再按照概率进行亚采样,在平均意义上,与mean-pooling近似,在局部意义上,则服从max-pooling的准则。
可以看出,base model的pooling策略是不考虑特征重要度差异化的,activation环节主要是解决差异化区分的问题,以此优化pooling使模型从特征中get到更多信息。
// 如何实现attention?
这个讲得比较清楚:https://zhuanlan.zhihu.com/p/339754431
Paper认为:softmax只能证明用户对哪个商品感兴趣的概率最大。比如,长history归一化后,各个权重会变得很小,尤其是差异特别小。Attention Weight如果不做归一化处理,就能很好地保留用户的兴趣强度。
- Mini-batch Aware Regularization
模型训练中的问题
-
防止过拟合过程中,由于embedding参数矩阵更新导致的参数过度庞大。
image.png - 用户数据符合长尾定律,出现次数很多的往往是一小部分特征,大部分特征比较稀疏,考虑其权重,容易过拟合。
如何解决?
a)利用特征稀疏性,小批量数据下,部分列由于全0,不用更新,减小计算。
image.png
b)正则自适应:对于高频特征,给予小的正则化强度减小惩罚;对于低频特征,给予大的正则化强度增大惩罚。
那正则化尺度在哪呢?
按照每个batch样本统计频率进行正则化。
// 公式
image.png
image.png
image.png
image.png
- Data Adaptive Activation Function
面临的问题:
ICS问题
https://www.bilibili.com/video/BV1zK4y137Se?spm_id_from=333.999.0.0
https://blog.csdn.net/mao_xiao_feng/article/details/54317852
why 数据分布变了?分布变了有啥影响?
参数更新引起的Covariate Shift导致同分布假设被破坏。造成:
- 独立同分布假设破坏(训练数据和测试数据分布一致性被破坏),影响模型准确性。
- 下层输入变化导致进入激活函数的饱和区,导致梯度消失。
-
上层不断需要适应分布变化,影响学习速率。
每层输入数据分布发生变化,变得不可控。那如何使分布可控呢?
两种思路:
a) 改变数据分布,适应激活函数。
b) 改变激活函数,适应分布变化。(Dice)
image.png
// Dice数据自适应激活函数
image.png
p(s)控制激活函数左右移动,适应数据分布,临界值控制临界点;还要使p(s)取值得到的激活函数足够平滑。
image.png
如何优化p(s)?
均值取代临界值;sigmoid取代阶跃函数(细节优化:E(s)控制左右平移,var控制带宽,方差与带宽正相关)。
-
评价系统
image.png
gauc距0.5的偏移度,越大越好。
- DIN实现
这个过程拆解的比较好,但是看看就好:
https://zhuanlan.zhihu.com/p/338050940
image.png
实际应用建议deepctr项目。
DIEN
https://arxiv.org/pdf/1809.03672.pdf
仍然是面向阿里电商广告提出的,算是DIN升级版,但是模型结构比较复杂,实践当中没有DIN那么经典,但不失为一种探索思路。
- 思路
与DIN的差异在于对于兴趣的建模方式不一样,将用户兴趣的先验知识引入建模过程。DIEN最大的特点是不但要找到用户的interest,还要抓住用户interest的进化过程
如何表达兴趣?
image.png
以往的模型认为用户行为即兴趣,但这种思路不严谨,真正的用户兴趣包含在用户行为之中(当然无交互的并不意味着用户一定不感兴趣,毕竟推荐系统本身就是个非充分激励系统),二者并非等价,文章在寻找一种用户兴趣演进的一种表达。
问题:
- 行为!=兴趣。
- 显示行为难以表达用户潜在兴趣。
- 用户潜在行为如何获取并表达兴趣?
-
用户“下一次购买”,不同于在历史序列中综合推荐。
兴趣?什么是兴趣?如何表达?
image.png
ps:原文中用RNN来实现兴趣表达,实际上,我感觉用HMM应该也可以。
-
网络结构
image.png
// 行为序列层
就用户行为序列embedding,没啥花头。 - 兴趣抽取层
- GRU记忆性网络,参数少,获取序列关系,缓解梯度消失。
- 多输入多数出结构,提取每一个时刻的兴趣状态。
- 辅助损失函数,通过二分类的方式计算兴趣抽取准确性,有监督学习,防止兴趣状态失真。(下一时刻真实行为正例,负采样得到的行为作为负例,与抽取兴趣h分别喂到辅助网络中,计算加权loss作为总的loss的调整项)
- 兴趣进化层
- attention筛选与target ad相关的兴趣演化路径。
- 加权层将注意力操作嵌入GRU更新门,构造AUGRU结构。(DIN就是加权组合)
// GRU
https://zhuanlan.zhihu.com/p/32481747
// AUGRU为什么这么选?
-
与target不相关状态,也可能影响状态演化,状态保持。
image.png -
保持更新门向量各个维度重要性。
image.png
DSIN模型
这个模型,结构复杂,实践中的意义可能不如研究意义大,大概了解下。
https://arxiv.org/pdf/1905.06482.pdf
- 思路
用户的行为sequences其实是由多个sessions组成,其中多个sessions是通过用户的点击时间来区分。采用会话建模的方式,刻画不同session用户兴趣演化。 -
模型结构
image.png
1)序列切分层session division layer
2)会话兴趣抽取层session interest extractor layer
3)会话间兴趣交互层session interest interacting layer
4)会话兴趣激活层session interest acti- vating layer - 实现
https://github.com/shenweichen/DSIN/blob/ffe2d0b4f7d8d507cf32fa6c9d583d5b9486e17f/code/models/dsin.py
仅供学习
attention机制 :https://zhuanlan.zhihu.com/p/339754431
https://arxiv.org/pdf/1706.06978.pdf
https://zhuanlan.zhihu.com/p/51623339
https://blog.csdn.net/u010352603/article/details/80590152
https://zhuanlan.zhihu.com/p/71695849
https://www.bilibili.com/video/BV1eV41147oi?from=search&seid=11155975345295308253&spm_id_from=333.337.0.0
https://zhuanlan.zhihu.com/p/54838663
https://www.bilibili.com/video/BV1wK4y1u7zN?spm_id_from=333.999.0.0
https://zhuanlan.zhihu.com/p/48601882
https://zhuanlan.zhihu.com/p/89700141
网友评论