week5--淘宝定向广告演化

379 阅读9分钟

定向广告 VS 搜索广告

用户没有很明显的意图(主动的Query查询)

用户来到淘宝之前,自己也没有特别明确的目标(利用以往的历史行为 => item推荐)

p(y=1 | ad, context, user)

ad 表示广告候选集

user 表示用户特征,年龄、性别

context 表示上下文场景,设备,时间

定向广告演化

LR模型(线性模型)

LR模型 + 人工特征,LR模型不能处理非线性特征,所以需要特征工程去加入非线性特征

[1] MLR模型(非线性模型)

Mixed Logistic Regression,混合逻辑回归,

采用分而治之的策略,用分段线性+级联,拟合高维空间的非线性分类面,相比于人工来说提升了效率和精度

DNN模型(深度学习)

能使用GPU,处理复杂模型和大数据量

[2] Deep Interest Network

对用户历史行为的洞察:

Diversity,多样性,一个用户可以对多种品类的东西感兴趣

Local Activation,局部激活,只有部分历史行为对目前的点击预测有帮助

[3] Deep Interest Evolution Network

Motivation:

• 综合序列随机跳转多,没有规律,噪音大

• 具体到某个兴趣,存在随时间逐渐演化的趋势

[4] Deep Session Interest Network

Motivation:

• 将用户行为序列看成多个会话

• 会话内相近,会话与会话之间差别大

深度兴趣网络DIN

Deep Interest Network for Click-Through Rate Prediction,2018

解决的问题:

CTR预估,根据给定广告、用户和上下文情况等信息,对每次广告的点击情况做出预测

对用户历史行为的洞察:

Diversity,多样性,一个用户可以对多种品类的东西感兴趣

Local Activation,局部激活,只有一部分的历史数据对目前的点击预测有帮助,比如系统向用户推荐泳镜时会和用户点击过的泳衣产生关联,和用户买的书关系不大

深度兴趣进化网络DIEN

Deep Interest Evolution Network for Click-Through Rate Prediction,2018

定向广告DNN Base Model

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的预估点击概率

什么是Attention

Attention机制:

在对用户行为的embedding计算上引入了attention network (也称为Activation Unit)

把用户历史行为特征进行embedding操作,视为对用户兴趣的表示,之后通过Attention Unit,对每个兴趣表示赋予不同的权值

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向量,vA表示候选广告A的embedding向量,vU(Λ)对于不同的广告得到的表示向量不同a(.)是前馈神经网络,得到的结果是激活权重(activation weight)

a(.)不对点击序列的Attention分数做归一化,直接将分数与对应商品的embedding向量做加权和,目的在于保留用户的兴趣强度

比如,用户的点击序列中90%是衣服,10%是电子产品,有两个候选ad(T恤和手机),T恤的候选ad 激活属于衣服和衣服的大部分历史行为会比手机获得更大的兴趣强度

用SoftMax不能体现用户的行为强度,比如90%时间看衣服,10%看电子产品

深度兴趣网络DIN

阿里深度兴趣网络DIN

Deep Interest Network for Click-Through Rate Prediction,2018

arxiv.org/abs/1706.06…

解决的问题:

CTR预估,根据给定广告、用户和上下文情况等信息,对每次广告的点击情况做出预测

对用户历史行为的洞察:

Diversity,多样性,一个用户可以对多种品类的东西感兴趣

Local Activation,局部激活,只有一部分的历史数据对目前的点击预测有帮助,比如系统向用户推荐泳镜时会和用户点击过的泳衣产生关联,和用户买的书关系不大

Attention Weight可视化

Attention Weight是由用户历史行为和候选广告进行匹配计算得到的,对应着洞察(用户兴趣的Diversity,以及Local Activation)

DIN的工程化(评价指标,Dice函数,MBA-Reg正则)

评价指标:

对评价指标AUC进行改进

AUC广泛在CTR场景中使用,含义是正样本得分比负样本得分高的概率,以往的评价指标是对样本不区分用户地进行AUC计算

改进的AUC,不是将所有用户的正负样本在一起计算,而是对于每个用户单独计算自身的AUC,并根据其自身的行为数量(如点击)进行加权处理

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

评价指标RelaImpr

RelaImpr代表相对于based model的相对改进指标,对于随机猜测的话,值AUC是0.5

激活函数Dice

激活函数PReLU,Data Adaptive Activation Function(基于数据的自适应激活函数)

Dice函数是对PReLU进行改进,应用于阿里妈妈

Dice函数引入了输入数据的统计信息

表示输入数据的每一个mini-batch的平均值和方差

在工程中,设置 ,Dice是PReLU的一种泛化形式,根据输入数据分布的不同,自适应变化。当E[s]=0, Var[s]=0的时候,Dice退化为PReLU

MBA-Reg****正则:

自适应正则,mini-batch aware regularization

MBA-Reg 不是新的正则,为了工业场景专门定制

MBA-Reg将L2-norm 推广到样本层面,每一步迭代只计算样本相关参数

深度兴趣进化网络DIEN

阿里深度兴趣进化网络DIEN

Deep Interest Evolution Network for Click-Through Rate Prediction,2018

DIEN结构:

输入层,user profile,ad,context这三类特征的低维嵌入向量的学习(与base model处理相同)

使用behavior layer,interest extractor layer 以及 interest evolving layer从用户历史行为中挖掘用户与目标商品相关的兴趣及演变

目标损失函数,采用负对数似然(negative log-likelihood loss )

P(x)对应的是网络的输出

通过引入序列模型 AUGRU 模拟了用户兴趣进化的过程

在 Embedding layer 和 Concatenate layer 之间加入了生成兴趣的 Interest Extractor Layer 和模拟兴趣演化的 Interest Evolving layer

Interest Extractor Layer 使用了GRU的结构抽取了每一个时间片内用户的兴趣

Interest Evolving layer 利用序列模型 AUGRU 的结构将不同时间的用户兴趣串联起来,形成兴趣进化的链条

最终把当前时刻的“兴趣向量”输入上层的多层全连接网络,与其他特征一起进行最终的 CTR 预估

DIEN的工程化(辅助损失函数)

用来从历史行为序列中捕获用户的短期兴趣点,同时增加了辅助损失函数auxiliary loss,用来监督学习每一步的兴趣点抽取

使用GRU比LSTM速度快,避免了RNN梯度消失问题,适合电子商务系统

interest extractor layer 用 GRU时间产生的序列行为建模,捕捉行为之间的依赖,生成的 interest state h(i)作为 Interest Evolving Layer 的输入

工程中的 auxiliary loss(辅助损失函数):

使用auxiliary loss 进行额外的监督,用下一时刻的行为监督当前时刻兴趣的学习,促使GRU在提炼兴趣表达上更高效

当前时刻的兴趣直接影响了下一时刻行为的发生(下一个行为就是当前行为的预估的正例)

loss采用负对数似然,负例的选择从用户未交互过的商品中随机抽取,或者从已展示给用户但没有点击的商品中随机抽取

α用来平衡 interest representation 和 CTR prediction

使用辅助损失函数,更好的预测下一步用户会做什么 => 让每一个 hidden state进行充分的训练,更好的表达interest

TIPS:auxliary loss更好的提取兴趣

广告样本在商品描述上是有局限的(不是所有的商品都是ad)引入的auxiliary loss监督是个全网的监督情况,对于兴趣的学习效果更好

深度会话兴趣网络DSIN

DIEN结构:

输入层,user profile,ad,context这三类特征的低维嵌入向量的学习(与base model处理相同)

使用behavior layer,interest extractor layer 以及 interest evolving layer从用户历史行为中挖掘用户与目标商品相关的兴趣及演变

目标损失函数,采用负对数似然(negative log-likelihood loss )

P(x)对应的是网络的输出