美文网首页
【阅读笔记】快手OCPX广告冷启动影子价格法

【阅读笔记】快手OCPX广告冷启动影子价格法

作者: 子游同学 | 来源:发表于2020-12-16 21:55 被阅读0次

    本文为阅读张任宇老师论文《Cold Start on Online Advertising Platforms: Data-Driven Algorithms and Field Experiments》的读书笔记。据张老师分享,该方法目前被应用到快手广告线上冷启动,取得了不错的收益。

    问题背景

    信息流广告冷启动面临的核心技术问题:

    1. 新广告数据量不足,其价值难以准确预估
    2. 合理分配广告流量,平衡消耗与冷启动价值
    优化目标

    找到合适的广告推送策略,最大化消耗与冷启动收益之和

    符号说明

    广告集合A:\{1,2,...,k\}

    转化出价b:\{b_1,b_2,...,b_k\}

    y_{t,j}表示广告j是否被展现给用户t=1,2,3,...,T

    x_t=i表示第t个用户的特征i

    c_{i,j}=ctr 在特征i下广告j的实际点击率

    \hat{c_{t,i,j}}=pctr 用户t特征i下广告j的预估点击率

    cv_{i,j}=ctr*cvr

    \hat{cv_{t,i,j}}=pctr*pcvr

    \beta_j 表示冷启动时单次转化的价值(设为2b_i)

    \alpha T 冷启动成功的阈值(设为10)

    问题建模

    maxV(y_{s,j})=\sum_{s\leq t-1}\sum_{j\in A}\hat{cv_{t,i,j}}*b_j*y_{s,j}+\sum_{j\in A}\beta_j * min\{(\sum_{s\in t-1}\hat{cv_{t,i,j}}*y_{s,j}),\alpha(t-1) \}

    其中第一项里面其实就是pctcvr*cpa*isShow,也就是ecpm。

    第二项是取当前转化数\sum_{s\in t-1}\hat{cv_{t,i,j}}*y_{s,j}和冷启动阈值\alpha (t-1)的最小值,再乘以冷启动单个转化价值\beta_j得到冷启动总价值。

    约束条件:
    s.t. \{ y_{s,j}\geq 0, \sum_{j \in A} y_{s,j} \leq 1\}
    第一个约束是说一个广告要么曝光要么没曝光。
    第二个约束是说对于一个用户,假设所有广告中总是只有小于等于一个广告获得展现。

    对偶问题推导

    由于原问题维数为T*K,即用户数x广告数,维数太高不好求解,需要转化到对偶空间。

    先做一次线性化:
    maxV(y_{s,j})=\sum_{s\leq t-1}\sum_{j\in A}\hat{cv_{t,i,j}}*b_j*y_{s,j} +\sum_{j\in A}\beta_j * [ \alpha(t-1)- \mu_j]

    其中\mu_j为广告离冷启动阈值还差多少个转化

    s.t.
    y_{s,j}\geq 0, \sum_{j \in A} y_{s,j} \leq 1,\forall s \leq t-1 , \forall j \in A
    \sum_{s \leq t-1}\hat{cv_{t,i,j}}*y_{s,j} + \mu_j \geq \alpha(t-1)

    为简化问题,忽略其他约束,只考虑最后一个约束条件,写出其增广拉格朗日公式

    L(y,\lambda)= \sum_{s\leq t-1}\sum_{j\in A}\hat{cv_{t,i,j}}*b_j*y_{s,j}+
    \sum_{j\in A}\beta_j * [ \alpha(t-1)- \mu_j]+
    \sum_{j \in A}\lambda_j\{\sum_{s \leq t-1}\hat{cv_{t,i,j}}*y_{s,j} + \mu_j - \alpha(t-1)\}
    展开得
    L(y,\lambda)= \sum_{s\leq t-1}\sum_{j\in A}\hat{cv_{t,i,j}}*b_j*y_{s,j}
    +\sum_{j \in A}\lambda_j \sum_{s \leq t-1}\hat{cv_{t,i,j}}*y_{s,j}
    +\sum_{j \in A}\lambda_j( \mu_j - \alpha(t-1))
    +\sum_{j\in A}\beta_j * [ \alpha(t-1)- \mu_j]
    化简得
    L(y,\lambda)= \sum_{s\leq t-1}\sum_{j\in A}\hat{cv_{t,i,j}}*(b_j+\lambda_j)*y_{s,j}
    +\sum_{j \in A}\mu_j(\lambda_j-\beta_j)
    +\sum_{j\in A}\beta_j * [ \alpha(t-1)]
    -\alpha (t-1) \sum_{j \in A}\lambda_j

    (\lambda_j-\beta_j)分类讨论求sup_y L(y,\lambda)

    (\lambda_j-\beta_j) \leq 0时候,在0处取得sup。又由一个队列只能有一个展现,可以约掉广告集合的求和项,得
    sup_yL(y,\lambda)= \sum_{s\leq t-1}\max\{\hat{cv_{t,i,j}}*(b_j+\lambda_j)\}
    +\sum_{j\in A}\beta_j * [ \alpha(t-1)]
    -\alpha (t-1) \sum_{j \in A}\lambda_j
    否则,sup_y L(y,\lambda)为正无穷。
    g(\lambda)=sup_yL(y,\lambda)
    f(\lambda)=min. g(\lambda)
    略去跟自变量\lambda无关的常数项,得
    f(\lambda)=min\{ \sum_{s\leq t-1}\max\{\hat{cv_{t,i,j}}*(b_j+\lambda_j)\} - \alpha (t-1) \sum_{j \in A}\lambda_j \}
    s.t.
    \lambda_j \in [0,\beta_j]

    这个对偶问题的第一项我们可以看成是调整后的新ecpm。

    我们对广告主竞价b_j加了一个“影子出价”\lambda_j来增加新广告的曝光率以提升长期冷启动的价值。

    冷启动价值系数\beta_j则是最优影子出价\lambda_j的上界。

    求解对偶问题

    主函数为凸函数,线上使用Sub-Gradient Descent Method(次梯度下降法)对其进行求解。

    其次梯度为:
    g_j=\frac{\partial f(\lambda)}{\partial \lambda_j}= \sum_{s\leq t-1}\hat{cv_{t,i,j}}*I(\lambda_j)-\alpha(t-1)
    其中,I是示性函数,当广告j的新ecpm排名最高时,I为1,否则I为0。
    \lambda_j^{(k+1)}=\lambda_j^{(k)}-t_k * g^{(k)}
    这里k为迭代次数,t_k为步长。
    迭代终止条件为:
    f(\lambda_j^{(k+1)})-f(\lambda_j^{(k)})<\epsilon
    此次\lambda更新完成。

    线上实现基本思路

    MAB+Linear Programming

    Shadow Bidding with Learning(SBI)算法

    对于每个时刻:

    1. 观测用户特征x_t=i,以\epsilon_t=t^{-\frac{1}{3}}(Klogt)^{\frac{1}{3}}概率随机等可能展示一个广告;以1-\epsilon的概率展示广告argmax_j({\hat{cv_{t,i,j}}}*(b_j+\lambda_j))

    2. 到了需要更新的时刻,解empirical dual;更新冷启动广告的影子出价\lambda

    3. 更新DNN模型以及对应的pCTR,pCVR.

    实验结论

    SBI算法几乎能达到“上帝视角”的最优价值。

    AB实验冷启动成功率+61.62%,冷启动价值+47.71%,CTR预测的AUC+7.84%,短期消耗和超成本情况几乎不变。

    相关文章

      网友评论

          本文标题:【阅读笔记】快手OCPX广告冷启动影子价格法

          本文链接:https://www.haomeiwen.com/subject/wcnogktx.html