推荐系统 - CTR预估

Click-Through Rate Estimation for Rare Events in Online Advertising

  1. 问题描述

    互联网广告有多种形式,包括展示广告、竞价排名、上下文广告。对于按点击付费的广告,一个很重要的指标就是广告点击率(用户点击的次数 Click / 展示的次数 Impression)。本文主要讨论的是上下文广告的点击率预估问题。即,给定一个网页 page 和一个广告 ad(page/ad pair),我们来预估其点击率。

  2. 主要挑战

    对于低频事件的 CTR 预估的结果存在很大的方差。主要包括两种情况

    • 展示次数很少(few),但出现了一次点击
    • 展示次数很多(thousands of Inpression),但没有点击
  3. 处理问题的前提条件

    我们认为这些罕见事件之间并非相互独立,相反,事件之间存在一定的相关性来对预估的结果进行调节。

    1. 数据分层。
      对于出版商来说,页面可能是分层的,比如 页面1、页面2、页面3 均属于科技板块下,页面之间存在共同的主题。对于广告主来说,广告也可能是分层的。比如一个广告主有一个账户,一个账户下有多个推广计划,一个推广计划下存在多个广告。

    2. 数据连续性
      大多数事件的数据是随时间收集的,而广告活动是在一段时间内进行的。时间久远的数据对预测的价值可能不如近期的数据。

  4. 解决方法

    对于:(页面/广告)对,已知对应的展示 \(I\) 和点击 \(C\)

    1. 存在一个账户下的 \(N\) 个广告 \((a_1, a_2, ..., a_N)\) 和一个页面 \(p\),预估 \((p, a_i)\), for \(i = 1, 2, ..., N\)。已知 \((I_1, I_2, ..., I_N)\)\((C_1, C_2, ..., C_N)\)。假设该账户下的所有广告在该页面下的隐含的点击率 \(r_i\) 均服从同一先验分布 \(Beta(\alpha, \beta)\)。对于每一个广告的点击次数,均服从二项分布 \(Binomial(I_i,r_i)\)。我们使用 MLE 来估计参数 \(\alpha\)\(\beta\)
      \[p(C_1, C_2, ..., C_N | I_1, I_2, ..., I_N, \alpha, \beta) = \prod_{i=1}^{N} p(C_i | I_i, \alpha, \beta) = \prod_{i=1}^{N} \int_{r_i} p(C_i | I_i, r_i) p(r_i | \alpha, \beta) d r_i\]
      使用不动点迭代计算 \(\hat{\alpha}\)\(\hat{\beta}\)。最后,每个 \((p, a_i)\) 的后验估计为
      \[\hat{r_i} = (C_i + \hat{\alpha}) / (I_i + \hat{\alpha} + \hat{\beta})\]

    2. 对于 \((a, p)\),已知连续 \(M\) 天的展示次数 \((I_1, I_2, ..., I_M)\) 和点击次数 \((C_1, C_2, ..., C_M)\),我们评估第 \(M\) 天的点击率。
      \[\hat{C}_1 = C_1, \hat{C_i} = \gamma C_i + (1 - \gamma) \hat{C}_{i-1}\]
      \(I_i\) 同理。超参数 \(0 < \gamma < 1\)
      \[\hat{r} = \hat{C}_M / \hat{I}_M\]

    3. 组合
      在事件数据的指数平滑(时序)之后,利用数据层次来进一步减轻稀疏性问题。

猜你喜欢

转载自www.cnblogs.com/viredery/p/click_through_rate_estimation.html