推荐系统论文阅读(四十五)-华为(PAL):通过联合训练来消除position bias

论文:

论文题目:《PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems 》

论文地址:https://www.researchgate.net/publication/335771749_PAL_a_position-bias_aware_learning_framework_for_CTR_prediction_in_live_recommender_systems

我们在之前的文章中介绍过很多召回/排序算法,但是好像没介绍过关于推荐系统里面的bias的论文,最近对bias比较感兴趣,我们就来先看看华为这篇关于如何通过联合训练的方式来消除position bias的论文吧。

一 、背景

在推荐/广告领域,用户点击一个item与否是很受位置因素的影响的,也就是说,如果把一个用户不怎么感兴趣的item放在靠前的位置,这个用户是有很大的概率去点击这个item的,当然也会出现另一种情况,如果用户非常感兴趣的item被放在了稍微靠后的位置,用户也有一定的概率不去点击。

在广告领域,一般是用ctr*bid来进行排序的,BID基于广告主的出价,一般来说是平台不能控制的(除了一些智能竞价或者ocpc),所以CTR预估显得至关重要。

我们来先看一下下面的这个图:

我们从上面这两张图可以看出来,position越小的item被点击的概率越大,跟我们在前面的说法是一样的,也就是说我们在考虑ctr预估的时候就应该把position考虑进去。

这就引入了position bias的问题,我们知道在模型进行线上推导的时候是不知道position信息的,但是我们在离线训练模型的时候又可以获取到这个信息,怎么来解决这个问题呢?

一种方法是,把position当作特征,离线训练模型的时候把这个特征也加进去训练,然后在线上推断的时候,设置一个固定的值,这样的做法最简单,但是只能得到次优解。

还有一种方式是这样,把position特征单独做一个子模型,其他特征做一个主ctr预估模型,在离线的时候还是使用所有的特征,线上推断的时候把position子模型关掉,只用另一部分。

第二种方式中,有很多将position模型和ctr预估模型结合的方式,我们今天来讲讲华为在PAL中是怎么做的吧。

二、模型

2.1 模型的输入

模型的输入有只有两部分信息,一个是x,这是一些user profile,item 特征,还有一些上下文特征,另一个是pos,这是位置信息特征。

2.2 处理pos信息的方法

处理pos信息大致上有两类方法,我们在前面也讲过来,第一种是作为特征,第一种是构建一个子模型,我们来简单介绍一下这两种模型吧。

2.2.1 作为特征

如上图所示,我们把pos当作特征,离线训练的时候使用[x,pos]->y 去训练,但是由于线上infer的时候缺失pos信息,这时候我们有两种方式来解决。

1.我们遍历所有的pos,比如从1->10,然后计算出所有位置的ctr,比如,我们先固定pos的位置为1,然后计算所有广告的ctr,把最高的放在1的位置上,然后在计算2,3,4..的所有位置。这种方法比较耗费时间,复杂度很大,所以一般不采用这种方法。

2.就像我们之前所说的,采用一个固定的pos,对所有的广告都一视同仁,这种是最简单的方法,但是比如前一种方法来的次优,而且一般这个固定的位置是通过a/b来决定,而且泛化性较差。

2.2.2 作为模块

PAL论文做了一个假设,广告从曝光到被点击,有两个阶段,第一个是广告被看到的概率,第二个是看到后被点击的概率:

也就是说,广告首先要曝光,然后再被点击,这两个概率我们做了独立性假设,可以联想一下esmm,跟里面的假设是有点像的,回到PAL中,这个假设可以进一步的理解:

首先,用户是否看到广告只跟广告的位置有关系;然后,用户看到广告后,是否点击广告与广告的位置无关。这时候公式改写为:

看到这个公式后,聪明的你已经想到怎么做了,如果说曝光后的ctr预估跟位置没关系了,那么我们就可以在训练的时候使用pos信息来联合训练,然后在infer的时候只需要使用后面那个概率就可以了,因为这个概率的计算不涉及到pos,所以可以直接来作为ctr预估。

PAL的框架:

可以看到这两个p是联合训练的,如果分开训练,虽然这两个任务可以各自取得最优解,但是会损失一些共有的信息,导致次优解。

如果是联合训练的话,就可以解决这个问题。

PAL使用的损失函数为:

线上infer的时候,只使用右半部分的模型计算的概率作为ctr就可以来。

三 、实验结果

base跟PAL的离线结果对比如上,base采用1-10的位置来对比。

下面的是在线的效果对比。

总结下,这是一篇建模思路非常清晰的论文,总体的结构不是很复杂,从另一种角度来建模这个问题。但是我有一个疑惑的地方在于,该使用x中的那些特征连同pos去预估第一个概率呢,也就是说我们在预测广告是否被看到是跟x本身的那些特征是相关的?左边这个模型需要轻量化嘛?希望可以讨论下。

你可能感兴趣的:(推荐系统论文阅读(四十五)-华为(PAL):通过联合训练来消除position bias)