Loading...
Navigation
Table of Contents

多目标融合公式思考Data

第二次思考

考虑曝光(impression) -> 点击(click) -> 转化(conversion)的业务场景链路,从样本的角度考虑,我们把样本暂时分成2种,click=0的和click=1的。

假设1:对于CVR模型, 考虑到其在click=1的样本上训练的,因此理论上在click=0上的样本预估应该不太准。在这种样本上,我们应该尽可能减少这个pcvr的作用。

假设2:在click=0样本上,如果CTR模型准的话,pctr会相对较小;如果模型不准……

在>2个目标的融合场景下,考虑下面2种公式

  • $(\beta_1 + pctr \times (\beta_2 + pcvr)) \times \text{other_targets}$
  • $(\beta_1 + pctr) \times (\beta_2 + pcvr) \times \text{other_targets}$

在CTR模型准的情况下,公式1达到了我们想要的效果:尽可能减少pvcr的在click=0样本上的作用。在click=0样本上,因为pctr的值小,其实就是增大了平滑项$\beta_1$,此时$(\beta_2 + pcvr)$的作用就会变小。但是公式2不行,因为没有任何变量直接限制$(\beta_2 + pcvr)$这一项。

如果CTR模型不准(最差变成随机预估),应该怎么办?这个时候不好说。首先,我们应该增大$\beta_1$,加强平滑, 减少pctr的作用。其次,如果pcvr能学到一些item上的bias的话,那么公式2似乎更好,如果不能,那两个公式没啥区别。其实也要看后验ctr本身大概多少了,是0.0001或者0.05,这决定了cvr模型能学到多少样本。

如果是多目标联合训练呢?


第一次思考

多目标价值的融合 推荐的终极目标是增加时长、留存,DAU,但是这些目标无法直接去建模,因此会对子目标进行建模,如finish和like,或者是click和conversion之类的,然后融合这些目标,达到间接建模终极目标的效果。 假设每种目标表示一种价值,那么如何将这些价值融合起来:价值相加 or 价值相乘

如果目标较多,价值相加的做法中调节单目标比较麻烦。假设有4个目标v1, v2, v3, v4 ,因为 如果只有两个目标,相加和相乘是区别不大。 假设有目标t1、t2和 t3,其中t3依赖于t2,即只有t2发生了,t3才有可能发生,比如t2是点击,t3是转化。那么有3种融合方式

  • 方式1:(1 + beta1 * t1)^ alpha1 * (1 + beta2 * t2)^ alpha2 * (1 + beta3 * t3)^ alpha3
  • 方式2:(1 + beta1 * t1)^ alpha1 * (1 + beta23 * t2  * t3)^ alpha23
  • 方式3:(1 + beta1 * t1)^ alpha1 * (1 + beta3 * (1 + beta2 * t2)  * t3) ^ alpha23

我们先不考虑alpha的作用,那么上述式子变成

  • 方式1:(1 + beta1 * t1) * (1 + beta2 * t2) * (1 + beta3 * t3)
  • 方式2:(1 + beta1 * t1) * (1 + beta23 * t2  * t3)
  • 方式3:(1 + beta1 * t1) * (1 + (1 + beta2 * t2)  * beta3 * t3)

其中方式1是根据线上的用法直接搬过来的,方式2是最符合直觉的,方式3后面会说。 假设t2的预估分是准确的,我们可以考虑到:如果t2值比较小,说明用户基本上就不会发生t2行为。又由于预估t3的模型是只在t2=1的样本上训练的,因此这时候t3的分数应该非常不准确,所以此时不应该使用t3的分数融合最终预估分上。因此

  • 方式1不如方式2合理;
  • 方式3不如方式2合理

问题:可以根据t2的预估分将数据集做个划分、在每个分区上计算t3的AUC。假设t2的预估分是不太准确的(和真实后验概率差距较大),我们应该考虑弱化t2在最终多目标上的作用(也就是让t2对最终融合分的影响不敏感)。分两种情况:

  • 模型AUC较高,排序能力强,但是就是可能在某个分数区间上不准(预估分和真实均值diff较大)。
  • 模型AUC不高,本身就不准

此时应该给t2的分数加个平滑项。加平滑项为什么可以修正不准确?举个栗子:预估分处于区间[0, 1]中,如果都加上100的平滑项,那么此时预估分接近失效,因此弱化了t2的作用。 然而,此时我们还应该使用t3的预估分吗?如果t3的模型AUC比较高,那么还是应该利用起来t3的信息量。此时,

  • 如果我们把beta23设置很小或者alpha23设置很小的话,方式1似乎比方式2更好。
  • 同理,方式3比方式2更好
  • 关键问题:方式3和方式1的区别?应该是一样的吧,方式3中可以通过beta2调节t2的作用,再通过beta3调节t3的作用(如果t3预估也不准的情况下)。但方式3比方式1更加符合直觉一些,因为是从方式2优化过来的。

问题:t2不准的时候,t3能准吗?最终结论:

  • t2预估准确时,使用方式2
  • t2预估不准确时,使用方式3

问题 什么时候加平滑项:是转化模型不准时,还是低估时 使用-ctr(1-cvr),是否也是一种做法

Last updated on Mar 08, 2021.