一、演化过程
1、LR模型(线性模型)
LR模型 + 人工特征,LR模型不能处理非线性特征,所以需要特征工程去加入非线性特征 [1]
2、MLR模型(非线性模型) Mixed Logistic Regression,
混合逻辑回归, 采用分而治之的策略,用分段线性+级联,拟合高维空间的非线性分类面,相比于人工来说提升了效率和精度
https://arxiv.org/abs/1704.05194v1
3、DNN模型(深度学习)
能使用GPU,处理复杂模型和大数据量
优势:处理复杂模型和大数据量
不足:试图用定长embedding表达用户多种多样的兴趣
4、DIN(Deep Interest Network)
对用户历史行为的洞察:
Diversity,多样性,一个用户可以对多种品类的东西感兴趣
Local Activation,局部激活,只有部分历史行为对目前的点击预测有帮助
解决的问题:
CTR预估,根据给定广告、用户和上下文情况等信息,对每次广告的点击情况做出预测
5、DIEN(Deep Interest Evolution Network)
Motivation: 综合序列随机跳转多,没有规律,噪音大
具体到某个兴趣,存在随时间逐渐演化的趋势
6、DSIN(Deep Session Interest Network)
Motivation:将用户行为序列看成多个会话 会话内相近,会话与会话之间差别大
二、具体模型
1、Base Model(传统的DNN模型):
embedding+MLP
Step1,将不同的特征转换为对应的embedding表示
Step2,将所有特征的embedding做拼接
Step3,输入到多层感知机MLP(DNN),计算结果
特征表示:
user profile、user behavior、ad 以及 context
每个特征类别包括多个feature field feature
field是单值特征 => one-hot编码
feature field是多值特征 => multi-hot编码
Embedding Layer,将高维稀疏向量转换为低维稠密向量
Pooling Layer + Concat Layer,使用Pooling解决每个用户行为 的维度不同的问题,并与其他三个类别中的embedding结果进行拼接,作为MLP Layer的输入
MLP Layer,学习给到的拼接embedding,自动学习高阶特征之间的组合
Loss,损失函数采用negative log-likelihood loss
S代表训练样本的个数,x是网络的输入,y是{0, 1}样本标签, p(x)代表输入x的预估点击概率
Base Model的不足: 针对电商场景中,用户的兴趣是多样的,可能在一段时间内点击过衣服,电子产品,鞋子等。
对于不同的candidate来说,浏览过的相关商品对于预测帮助更大,不相关的商品对于CTR预估并不起作用,比如用户看过的iphone,鞋子对于衣服的预测没有帮助
三、Attention机制:
1、在对用户行为的embedding计算上引入了attention network (也称为Activation Unit)
2、把用户历史行为特征进行embedding操作,视为对用户兴趣的表示,之后通过Attention Unit,对每个兴趣表示赋予不同的权值
3、Attention Weight是由用户历史行为和候选广告进行匹配计算得到的,对应着洞察(用户兴趣的Diversity,以及Local Activation)
Attention思想:在pooling的时候,与 candidate Ad 相关的商品权重大一些,与candidate Ad 不相关的商品权重小一些
Attention分数,将candidate Ad与历史行为的每个商品发生交互来计算
Activation Unit输出Activation Weight,输入包括用户行为embedding和候选广告embedding以外,还考虑了他们两个的外积。对于不同的candidate ad,得到的用户行为表示向量也不同
{e1, e2, ..., eH}表示用户U的行为embedding向量, 表示候选广告A的embedding向量, 对于不同的广告得到的表示向量不同 是前馈神经网络,得到的结果是激活权重(activation weight)
不对点击序列的Attention分数做归一化,直接将分数与对应商品的embedding向量做加权和,目的在于保留用户的兴趣强度
比如,用户的点击序列中90%是衣服,10%是电子产品,有两个候选ad(T恤和手机),T恤的候选ad 激活属于衣服和衣服的大部分历史行为会比手机获得更大的兴趣强度
用SoftMax不能体现用户的行为强度,比如90%时间看衣服,10%看电子产品
评价指标:
对评价指标AUC进行改进
AUC广泛在CTR场景中使用,含义是正样本得分比负样本得分高的概率,以往的评价指标是对样本不区分用户地进行AUC计算
改进的AUC,不是将所有用户的正负样本在一起计算,而是对于每个用户单独计算自身的AUC,并根据其自身的行为数量(如点击)进行加权处理
计算了用户级别的AUC,按展示次数进行加权,消除了用户偏差对模型评价的影响,更准确地描述了模型对于每个用户的表现效果
四、激活函数
激活函数Dice:
激活函数PReLU,Data Adaptive Activation Function(基于数据的自适应激活函数)
Dice函数是对PReLU进行改进,应用于阿里妈妈 Dice函数引入了输入数据的统计信息
表示输入数据的每一个mini-batch的平均值和方差 在工程中,设置 ,
Dice是PReLU的一种泛化形式,根据输入数据分布的不同,自适应变化。当E[s]=0, Var[s]=0的时候,Dice退化为PReLU