今天看啥  ›  专栏  ›  Shentao

论文阅读 (001): Classic CTR Prediction (LR)

Shentao  · 掘金  ·  · 2021-02-06 21:59
阅读 82

论文阅读 (001): Classic CTR Prediction (LR)

阅读论文--2007 Predicting Clicks: Estimating the Click-Through Rate for New Ads

简介

本文做的是搜索广告的CTR估计,方法比较老但是其中工程的点感觉很细致,值得参考。

为什么做CTR估计

  • 提高媒体的收入,在搜索页面上展示点击率高的广告。
  • 提升用户的浏览体验,给用户展示用户愿意点击的广告。

原始的解决方法:用极大似然方式来估计点击率,即广告被点击的次数除以广告的总展示次数。

缺点如下

  • 广告实际被点击的次数可能很少,计算误差会比较大

  • 对于新广告,无法解决冷启动问题

在搜索广告中,CTR估计模型如下所示

p(p( click ad,\mid a d, pos )=p()=p( click \mid ad, seen )p() p( seen \mid pos ))

其中ad为广告,pos为搜索页面中展示位置,seen为广告被用户看到(不同展示位置概率不一样),click为被用户点击。

p(p( seen \mid pos ))可以通过相应的实验获得,因此点击率预估最后转化为得到p(p( click \mid ad, seen ))

数据

本文通过逻辑回归预测点击率,输入数据如下:

  • 登陆页:用户在点击广告时被重定向到的URL
  • 竞价词:该广告应该显示的查询(可能是多个词,例如“机器学习书籍”)
  • 标题:广告展示的标题
  • 正文:广告的正文描述
  • 展示URL:广告底部展示给用户的URL
  • 点击:广告在被曝光后的点击次数
  • 曝光:广告被曝光的次数

训练的真实CTR估计为:点击次数展示次数\frac{\text{点击次数}}{\text{展示次数}},然而真实的CTR是无法获知的。当展示次数较少时,上述估计可能不准确,因此文章中将曝光次数小于100的广告进行过滤。

模型

使用逻辑回归估计CTR

CTR=11+eZC T R=\frac{1}{1+e^{-Z}}Z=iwifi(ad)Z=\sum_{i} w_{i} f_{i}(a d)

其中fi(ad)f_{i}(a d)为广告中第i个特征,wiw_{i}为特征对应的权重。

评价指标

使用MSE和KL散度进行评价

CTR估计

Term CTR

f0(ad)=αCTR+N(adterm)CTR(adterm)α+N(adterm)f_{0}(a d)=\frac{\alpha \overline{C T R}+N\left(ad_{term}\right) C T R\left(a d_{t e r m}\right)}{\alpha+N\left(a d_{t e r m}\right)}

其中N(adterm)N\left(a d_{t e r m}\right)为数据中具有相同搜索关键词的广告数,CTR(adterm)C T R\left(a d_{t e r m}\right)为这类广告的平均CTR值(估计的),CTR\overline{C T R}为数据集中所有广告的平均CTR,α\alpha用于调节先验的强度。

Related Term CTR

定义Rmn(t)\mathbf{R}_{m n}(t)用于扩展搜索词。

Rmn(t)={adterm t>0 and ad:tadterm =m and adterm t=n}\mathbf{R}_{m n}(t)=\left\{\begin{array}{c}\left|a d_{\text {term }} \cap t\right|>0 \text { and } \\ a d:\left|t-a d_{\text {term }}\right|=m \text { and } \\ \left|a d_{\text {term }}-t\right|=n\end{array}\right\}

对于t为red shoes时,buy red shoes出现在R01\mathbf{R}_{01},shoes出现在R10\mathbf{R}_{10},blue shoes出现在R11\mathbf{R}_{11}

根据上述定义,计算相关的CTR

CTRmn(term)=1Rmn(term)xRmn(term)CTRxC T R_{m n}(t e r m)=\frac{1}{\left|\mathbf{R}_{m n}(t e r m)\right|} \sum_{x \in \mathbf{R}_{m n}(t e r m)} C T R_{x}

实验结果如下

特征选择

广告特征

考虑以下因素

  • 外观:广告是否美观
  • 吸引注意力:广告吸引用户吗
  • 声誉:广告客户是知名品牌还是信誉良好的品牌?如果用户对广告主不熟悉,会不会猜出广告主是好品牌?
  • 登陆页面质量:虽然登陆页面只有在用户点击广告后才会被看到,但我们假设很多广告点击都是用户已经熟悉的广告商(如eBay、Amazon等)。因此,登陆页面的质量可能预示着用户点击广告的概率。
  • 相关性:广告与搜索关键词的相关性有多大

通过上述特征,加入85个广告的特征(+Ad Quality),同时考虑10000个常用词(unigrams),使用0-1进行编码,实验结果如下

搜索覆盖类别

搜索覆盖范围越广,定向越不准确,可能点击率越低。文章中将搜索结果进行分类,使用朴素贝叶斯分74类,将分布的熵作为特征输入,实验结果如下

额外搜索数据

使用以下特征(为啥要用这些数据呢,看着感觉作者就是想多用点数据试试)。

  • 搜索词在互联网上出现次数
  • 用户使用该搜索词的次数

实验结果如下(一点点提升)

讨论

  1. 使用逻辑回归模型中参数来分析特征的重要程度,结果不展示。
  2. 作者讨论在不同曝光次数下点击率估计的误差,部分细节没看懂,意思是曝光次数在50-100次后使用均值预估和使用文章模型预估的才会显著不同。
  3. 曝光次数越多的广告,模型提升越明显,文章给出的解释是曝光越多的广告噪声越小。

作者控制变量对比特征重要程度,单独用某类特征,取得的提高如下:

  1. 广告质量特征,提升12%(其中,广告词语的unigram特征就提升了10%)
  2. 广告specificity特性,提升9%
  3. 搜索数据体征(外部数据特征)提升3%

总结

文章中作者也提到:提升模型做好的方法是将更多的特征利用进去。全文虽然使用了简单的逻辑回归来预估CTR,但是在特征方面做了较多的探索,感觉蛮有意义的。

参考

  1. Predicting Clicks- Estimating the Click-Through Rate for New Ads by _Microsoft_2007_WWW【Review】
  2. 【点击模型学习笔记】Predicting Clicks_Estimating the Click-Through Rate for New Ads_MS_www2007



原文地址:访问原文地址
快照地址: 访问文章快照