微信搜索并关注公众号“智能推荐系统”,获取更多干货。
说明:C 表示点击数,I 表示展示数,p 表示CTR
1. 普通方法
p = C / I
直接使用帖子的点击数除以曝光数,存在的问题很明显:
1. 可能有的帖子曝光数很少,甚至为 0,以至于得不到准确的 CTR。至于为什么会有0,这和日志统计有关系,因为曝光和点击日志是分开记录的,而日志ETL又是以自然单位时间来进行的,所以对于某个自然时间窗口,帖子的点击事件捕获到了,但是它的曝光事件出现在前面的时间窗口。
至于为什么会很少,那是因为在自然竞争下,帖子的曝光分布绝大多数不是平均的,甚至也不是正态分布的,而是头部很高、尾巴很长的长尾分布。
2. 直接使用帖子的点击数和曝光数,没有考虑曝光事件和点击事件里面的噪音,或者说系统误差,甚至是作弊行为。
2. 贝叶斯平滑
p = C + α / (I + α + β )
贝叶斯平滑,实际上是给了每个帖子一个先验的 点击率, 这个先验的点击率就是 α / ( α + β ),意思就是在正式做实验之前,我们认为已经做了 α + β 次试验,成功的次数为 α 。
至于先验概率参数怎么获取,雅虎的专家们曾经发表过一篇