lr模型优缺点
lr 的优点很明确,首先 sigmoid 函数的取值范围是 0-1,刚好可以解释为点击概率,而输入的范围却可以很宽广。所以 lr 是历史最悠久、使用最广泛的点击率、转化率模型。
(1)使用 lr 需要注意的几个事项,首先是训练算法;如果使用离线训练算法,有比较多的选择,比如 sgd、lbfgs、owlq、tron 等等;其中 sgd 是一种非常通用的优化算法,但个人认为理论研究模型的时候可以用 sgd 快速理解,但实际业务中往往不是最佳选择,尤其是存在其他备选项的情况下;原因可以给一个直观的解释,从 sigmoid 函数图像可以看出来,在 x 大于 4 或者小于-4 以后,函数的取值已经接近于 1 或者 0 了,此时函数的梯度方向接近平行,说明梯度很小,那单个样本对模型参数的贡献也会接近于 0,所以 sgd 的收敛速度越来越慢。这种收敛速度是敏感的,如果你跑一个模型几个小时收敛不了,和另一个算法几分钟就收敛了,那时间的量变就会带来模型性能指标的质变的。(2)lr 模型最需要注意的是特征的呈现方式,从 sigmoid 的解析式可以看到** lr 其实是广义线性模型的一种(GLM),所以 lr 既不能很好的处理连续型特征,也无法对特征进行组合。相反对于 categorical feature 反而处理的很好。**因此,使用 lr 模型的时候往往伴随着大量特征工程方面的工作,包括但不限于连续特征离散化、特征组合等。
特征设计
【a】一个是获取外部关联信息,比如对于新广告,我们要预测点击率的话,因为没有历史数据,我们可以从层次结构来获取一些信息,比如这个广告的 publisher 下面其他广告的点击情况,这个广告的落地页的 url 种的层次关系,比如 xx.com/food/x.html 这类 url,我们是否可以对 food 做一个聚合,看看这类落地页对应的广告的数据情况,作为我们新广告的特征。还有一种技巧,将广告相关的文本,或者广告购买的关键词列表,丢到搜索引擎上去跑一下,取返回的 top10 页面聚合以后做一个分类(类别体系可以提前设计),然后根据关键词列表在不同类别上分布形成的信息熵作为一个 feature,放到 lr 里。在 [1]中使用这种方法得到了一定的提升。【b】另一个套路是使用数据不同方面的信息,这个策略更加隐晦。举个例子,我们可以根据用户的资讯阅读历史计算一个兴趣画像,但是这个画像我们可以分成几个画像,比如拿一周的历史算一个,一个月的历史算一个,然后通过实践 decay 算一个历史全量的。这样长中短期分开的画像可以作为独立的特征放到模型中去。另一个例子是 cf 论文中一个很有意思的做法,在 netflix 的数据集里,user-item 矩阵嵌入了一个隐藏信息是 user-打分 item 的对应关系,所以我们可以从 user-rating 矩阵里提取一个二元取值的 user-item 关联矩阵,如果 u 对 i 打分了,则这个矩阵对应 ui 的位置为 1,否则为 0.把这个矩阵作为一个 implicit feedback 加入到 cf 里,会有进一步的效果提升,这就是数据信息的不同 facet。
评估指标
AUC 指标的不足之处有两点,一是只反映了模型的整体性能,看不出在不同点击率区间上的误差情况;二是只反映了排序能力,没有反映预测精度。
MSE可以衡量预测的精度,该指标不仅可以用来调参,也可以在参数选定以后来分区间看模型的拟合程度。缺点是区分度的问题,很有可能 MSE 的很小的提升,对线上的效果,比如 F 值会有较大的变化,因此在业务优化的时候还可以参考其他更有区分度的指标。
RIG 指标不仅和模型的质量有关,还和数据集的分布情况有关;因此千万注意不可以使用 RIG 来对比不同数据集上生成的模型,但可以用来对比相同数据集上不同模型的质量差异。
点击率模型
BOPR:该算法的基本思想是参数 w 是一个先验分布为正态分布的分布,参数为 u、ó;在贝叶斯框架下,每一个样本都是在修正对应的分布参数 u、ó。该模型的优点是基于贝叶斯模型,每个样本都可以对参数进行微调,可以做到在线学习,同时 online learning 带来了在线学习的能力,可以及时应对用户兴趣的变化。
GBDT+LR:一种解决特征组合问题的方案,基本思路是利用树模型的组合特性来自动做特征组合,具体一点是使用了 GBDT 的特征组合能力。每一个弱分类器只有一个叶子节点输出预测结果,当有n个弱分类器m个叶子节点时,每条训练数据会被转化成1*m的稀疏向量(n个1,m-n个0)。
FTRL
FM:一种可以自有设置特征组合度数的回归算法。FM 的另一个优点是会算出每个 feature 对应的向量 v;这个向量可以看做对 feature 的一种 embeding。FM 的不足之处是在 dense 数据集情况下,反而可能表现不佳.
参考文献
https://cloud.tencent.com/developer/article/1005051
https://cloud.tencent.com/developer/article/1005052