计算广告CTR预估系列(七)–Facebook经典模型LR+GBDT理论与实践
一、介绍
本文主要介绍Facebook提出的CTR预估模型LR(Logistic Regression)+GBDT。当时深度学习还没有应用到计算广告领域,Facebook提出利用GBDT的叶节点编号作为非线性特征的表示,或者说是组合特征的一种方式。
LR+GBDT相比于单纯的LR或者GBDT带来了较大的性能提升,论文中给出数据为3%,这在CTR预估领域确实非常不错。除此之外,Facebook还在在线学习、Data freshness、学习速率、树模型参数、特征重要度等方面进行了探索。
相比于搜索广告领域,根据用户query来给出候选广告,然后利用Rank模型对候选广告进行排序。这些广告要么显式要么隐式的和用户query相关联。但是在Facebook这样的社交场合中,广告并没有和用户query相关联,但是用户看到的广告一定程度上反映了用户的人口统计特性和兴趣特性。基于这个原因,在Facebook上展示的广告相比于搜索广告中的要多一些。
在实际的生产环境中,Facebook做了多个分类器,并把他们级联起来。但是论文中分析的是最后的那一个prediction模型。它直接给出最后的CTR概率。
二、评估函数
论文目的是分析机器学习模型的影响因素,所以没有使用实际利益相关的评测函数。而是主要从以下两方面进行:
- Normalized Cross-Entropy 或者叫做 Normalized Entropy, 缩写NE
- Calibration 校准
2.1 Normalized Cross-Entropy(NE)
NE的公式如下:
- NE等于预测的log loss除以background CTR的熵
- NE越小模型性能越好
- 除以了background CTR的熵,使得NE对background CTR不敏感
- p代表平均经验CTR
2.2 Calibration
- Calibration校准是期待或预测的点击数除以实际的点击数。它是一个比例。
- Calibration越接近1,模型性能越好
AUC也是一个非常不错的评价指标,但是它有个问题。比如当我们的模型预测的CTR概率都偏高了2倍,我们可以通过Calibration校准,使用一个全局的0.5的系数来修正。修正之后NE也会提高,而AUC却保持不变。
在实际工作中,我们希望得到的是尽可能准确的预测每个广告被点击的概率,而不是仅仅得到相对的概率排序。所以AUC不如上面的NE、Calibration合适。
三、模型架构
经过多次实验,FB得出结论:正确的模型 + 强特征是提升模型性能的核心。相比于这两点,其他的因素的影响就小很多,比如学习速率、采样率等。当数据量足够大时,一个好的模型应该是稳定的,也就说参数的调整不会导致模型性能出现剧烈的震荡。
这里面,正确的模型就是指:Logistic Regression + Boosting Decision Tree。特征的话包含两方面的特征:用户或广告的历史信息特征、上下文特征。其中,用户或广告的历史信息特征取决定性作用。
学习算法是用的是Stochastic Gradient Descent(SGD),或者Bayesian online learning scheme for probit regression(BOPR)都可以。但是最终选择的是SGD,原因是资源消耗要小一些。
SGD和BOPR都可以针对单个样本进行训练,所以他们可以做成流式的学习器(stream learner)。
3.1 决策树Feature Transforms
为了提升线性分类器的准确度,有两种方法进行特征变换:
对于连续特征。先进行离散化bin,然后把bin的编号作为离散型特征。这样的话,线性模型可以分段的学习到一个非线性的映射,在每一段内的映射是不变的。另外,对于bin边界的学习非常重要
对于离散特征。做笛卡尔积,生成的是tuple input features。笛卡尔积穷举了所有的特征组合,其中也包含部分没用的组合特征,不过可以筛选出来。
提升决策树(boosted decision tree)就可以很方便很好的实现上面我们说的这种非线性和tuple特征变换。对于一个样本,针对每一颗树得到一个类别型特征。该特征取值为样本在树中落入的叶节点的编号。举例来说:
上图中的提升决策树包含两棵子树,第一棵树包含3个叶节点,第二棵树包含2个叶节点。输入样本x,在两棵树种分别落入叶子节点2和叶子节点1。那么特征转换就得到特征向量[0 1 0 1 0]
。也就是说,把叶节点编号进行one-hot编码。
那么, 怎么样直观的理解这种特征变化:
看做是一种有监督的特征编码。把实值的vector转换成紧凑的二值的vector。
从根节点到叶节点的一条路径,表示的是在特征上的一个特定的规则。所以,叶节点的编号代表了这种规则。表征了样本中的信息,而且进行了非线性的组合变换。
最后