• 推荐系统


    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, eta))。对于每一个广告的点击次数,均服从二项分布 (Binomial(I_i,r_i))。我们使用 MLE 来估计参数 (alpha)(eta)

      [p(C_1, C_2, ..., C_N | I_1, I_2, ..., I_N, alpha, eta) = prod_{i=1}^{N} p(C_i | I_i, alpha, eta) = prod_{i=1}^{N} int_{r_i} p(C_i | I_i, r_i) p(r_i | alpha, eta) d r_i ]

      使用不动点迭代计算 (hat{alpha})(hat{eta})。最后,每个 ((p, a_i)) 的后验估计为

      [hat{r_i} = (C_i + hat{alpha}) / (I_i + hat{alpha} + hat{eta}) ]

      1. 对于 ((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 ]

      1. 组合
        在事件数据的指数平滑(时序)之后,利用数据层次来进一步减轻稀疏性问题。
  • 相关阅读:
    动态代理的两种实现方式
    BeanFactory和ApplicationContext的区别
    spring为什么使用三级缓存而不是二级缓存
    updatealternatives简明用法
    在windows10下的命令行终端中vim无法使用鼠标右键粘贴和复制
    在debian11中编译安装vim8.2
    sqlserver使用cpu比较高的语句
    Go 并发编程 — 结构体多字段的原子操作 atomic.Value
    Go单元测试模拟服务请求和接口返回
    关于性能优化技巧
  • 原文地址:https://www.cnblogs.com/viredery/p/click_through_rate_estimation.html
Copyright © 2020-2023  润新知