1. 为什么要做ctr(click througth rate)预估
互联网广告行业涉及媒体、广告主和用户三方。准确的预估ctr对广告主来说可以获得更高的用户转化率,对用户来说可以找到自己感兴趣的物品,对媒体方来说可以带来更多收益。
2. 广告ctr预估怎么转化为数学问题
$p(y=1|x)=\sigma(w, x)=\sigma(w, u_{x}, a_{x}, c_{x})$,$u_{x}$是用户特征、$a_{x}$是广告特征、$c_{x}$是上下文特征,本质上就是针对一个用户,在特定的情景下,预估其点击一个广告的概率问题。
这里的预估函数$\sigma(w, u_{x}, a_{x}, c_{x})$可以任意取,但问题在于怎么衡量其预估结果与真实情况之间的差距呢?
这里假设有n个样本$(x_{i}, y_{i})$,那么就希望预测结果$p(x_{i}, w)$和$y_{i}$尽可能接近。
整体上也就是希望似然函数$L(w, x_{i}, y_{i})=\prod\limits_{i=1}^{n}p(w, x_{i})^{y_{i}}(1-p(w,x_{i}))^{1-y_{i}}=\prod\limits_{i=1}^{n}\sigma(w, x_{i})^{y_{i}}(1-\sigma(w, x_{i}))^{1-y_{i}}$最大。
简单变化换后,就等价于最小化损失函数$Loss(w, x_{i}, y_{i}) = \frac{-\sum\limits_{i=1}^{n}(y_{i}log(\sigma(w, x_{i}))+(1-y_{i})log(1-\sigma(w,x_{i})))}{n}$
这样ctr预估问题就变成了一个机器学习的二分类问题。
3. ctr预估问题的难点在哪
- 广告数据$(u_{x},a_{x},c_{x})$的特点
- 数据多:亿级到千亿级
- 维度高: 百万维到上亿维
- 很稀疏:90%都是0
- 多域:年龄、性别、省份、时间、广告创意、广告文字、图片
- 离散值:每个特征的取值都是有限的
- 特征x与标签y之间的关系未知,选取的$\sigma$函数往往带有主观偏见;不同的模型对输入的要求不同,简单模型往往需要工程人员对输入做大量变换,复杂模型往往难以解释。
- 训练数据量大、维度高、模型复杂、响应时间严苛带来的线上工程化问题
4. 工业界怎么做ctr预估
- 主要是基于机器学习模型来对ctr进行计算,把ctr预估问题转化为二分类问题。
- 离线训练的效果基于auc和logloss来衡量
- 线上通过流量abtest来对比不同模型的效果
- 模型一般每天都要进行离线训练,定时和线上的模型进行同步;针对复杂模型,线上一般都要定制实现
5. 工业界ctr预估模型的演进
5.1 general linear model
- Logistic Regression
- $p(w,x)=\frac{1}{1+e^{-w^{T}x}}$
- Piece-Wise linear model
- 阿里巴巴提出
- $p(w,x)=\sum\limits_{i=1}^{m}\frac{e^{u_{i}^{T}x}}{\sum\limits_{j=1}^{m}e^{u_{j}^{T}x}}·\frac{1}{1+e^{-w_{i}^{T}x}}$
GBDT+LR
- FaceBook提出
- 使用gbdt对原始数据做特征交叉,然后再给到LR模型使用
优点:模型容易解释,容易存储
- 缺点:线性模型无法学习到不同特征之间的交叉效果,需要工程人员进行大量的手工特征交叉
5.2. non-linear model
5.2.1 Factorization Machine及其变种
- 分解机在模型层面上引入特征之间的组合,并通过对特征进行隐向量分解来更好的学习特征交互项的参数。比较适合于稀疏的广告数据。
- FM
- $\phi_{FM}(w, x) = w_{0}+\sum\limits_{i=1}^{n}w_{i}x_{i}+\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^{n}w_{ij}x_{i}x_{j} = w_{0}+\sum\limits_{i=1}^{n}w_{i}x_{i}+\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^{n}(v_{i}^{T}v_{j})x_{i}x_{j}$
- Field-aware FM
- $\phi_{FFM}(w, x) = w_{0}+\sum\limits_{i=1}^{n}w_{i}x_{i}+\sum\limits_{i=1}^{n-1}\sum\limits_{j=i+1}^{n}(v_{i,f_{j}} \cdot v_{j,f_{i}})x_{i}x_{j}$
- 考虑到不同特征域之间组合时重要性的差异
- Field-weighted FM
- $\Phi_{FwFM}(x) = w_{0} + \sum\limits_{i=1}^{m}x_{i}w_{i} + \sum\limits_{i=1}^{m}\sum\limits_{j=i+1}^{m}x_{i}x_{j}
r_{F(i),F(j)}$
- $\Phi_{FwFM}(x) = w_{0} + \sum\limits_{i=1}^{m}x_{i}w_{i} + \sum\limits_{i=1}^{m}\sum\limits_{j=i+1}^{m}x_{i}x_{j}
5.2.2 Neural Network及和其他模型的融合
- 直觉是Neural Network Model有更大的capacity,可以学习更加复杂的特征的交叉关系
- Wide & Deep
- Google提出
- 对LR和MLP进行融合,统一训练,综合dnn的记忆能力强和lr泛化能力强的特点
- $p(y=1|x)=\sigma(w_{wide}^{T}[x, \phi(x)]+w_{deep}^{T}a^{f}+b)$
- DeepFM
- 华为提出
- 对FM和MLP进行融合,统一训练,避开lr模型需要进行的大量特征工程
- Deep & Cross Network
- Google提出
- 相对于FM一般只能学习二阶域特征交叉,增加一个能显示学习更高阶域特征交叉的cross network,并与MLP进行融合
- $x_{l+1}=x_{0}x_{l}^{T}w_{l}+b_{l}+x_{l}$
- Deep Interest Network
- 阿里巴巴提出
- 更好地利用电商网站用户历史行为数据中的多样性和局部激活的特点
- 利用注意力机制和用户的历史行为来对用户进行更好的表征
- $V_{u}=\sum\limits_{i=1}^{N}=g(V_{i}, V_{a})*V_{i}$
- XDeepFM
- MSRA提出
- 一方面通过dnn来隐式地学习特征之间的交叉,一方面在模型层面显示地学习不同域的特征交叉,比DeepFM更加通用
6. 其他问题
- 转化率及点击率同时预估
- 阿里巴巴的Entire Space Multi-task Model,使用两个模型分别估计ctr和cvr,并且两个模型共享基础的Embedding结构且进行统一训练,避免单一使用转化数据带来的稀疏性问题