推荐系统如何消除位置偏执

1、背景

  在推荐场景中,为了最大化用户体验以及下单率,CTR预估以及CVR等预估显得至关重要。
  一般的推荐系统,通过收集用户、上下文信息和内容信息,来离线训练点击率预估模型,并应用于线上。但用户和内容的交互信息中存在一个很重要的影响因素,那就是广告的展示位置
  对于不同的位置来说,点击率是不同的,展示位置越靠前,则点击率越高。对于同一个广告来说,当它展示位置越靠前时,点击率同样是越高的,下面的两张图证明了这一点:

image.png

  这也就是说,训练样本存在位置偏置(position bias)信息,用户点击某个广告,并非出于喜好,有可能仅仅与展示位置有关。所以在建模过程中有必要对位置偏置信息进行建模

2、解决位置偏置方法

  首先我们假设收集到的离线训练数据为S={(xi,posi->yi)},其中xi是特征向量,包括用户特征、广告特征、交互特征和上下文特征,posi是广告展示的位置,yi是用户的点击结果。
  一般的解决位置偏置的方法有两种作为特征(as a feature)和作为模块(as a module)

2.1 位置信息作为特征

该方法的示意图如下所示:

image.png

  该方法把位置信息作为特征。在离线训练时,输入特征是特征向量和位置信息的拼接[x,pos],而在线上推断时,我们无法获取实时的位置信息,那么此时的做法有两种:
  第一种做法就是一种暴力探索的方法,首先固定位置为1,然后计算所有广告相应的点击率,将点击率最高的一个广告放在第一个位置,接下来在固定位置为2,计算剩余广告相应的点击率,将点击率最高的广告放在第二个位置,依次类推。这样的做法显然是不可取的,主要是计算复杂度太高,线上性能无法保证。
  第二种做法是当前工业界最为常见的做法,即固定为某一个位置,计算每个广告在该位置下的点击率,从而进行排序。但是,位置不同,所得到的推荐结果也相差很大,所以我们需要找到一个合适的位置,来得到最好的线上效果。此时往往需要通过线下评估的方式,即通过不同位置在相同测试集上的表现,来决定线上使用哪个位置。显然这种做法泛化性也是无法得到保证的。

2.2 位置信息作为模块

  上面分析了将位置信息作为特征输入的不足之处,因此本文提出了一种将位置信息作为一个模块单独预测的方法。

  值得一提的是,youtube在论文《Recommending What Video to Watch Next: A Multitask Ranking System》中也提出了一种作为模块的方法,来回顾一下:


image.png

3、PAL框架

本文提出的消除位置偏置信息的框架称为Position-bias Aware Learning framework (PAL) 。其基于如下的假设,即用户点击广告的概率由两部分组成:广告被用户看到的概率和用户看到广告后,点击广告的概率。

image

该假设可进一步进行化简,首先,用户是否看到广告只跟广告的位置有关系;其次,用户看到广告后,是否点击广告与广告的位置无关。此时公式可写作:

image

基于该假设,就可以分开建模,PAL的框架如下图所示:

image

可以看到,两个模块是联合进行训练的,如果分开进行优化,两个模块的训练目标不同,可能导致整个的系统是次优化的。

损失函数采用交叉熵损失:

image

这里再说一下,论文中并没有给出训练位置信息的模块所使用的特征,可以参考youtube论文中的思路,加入位置特征和上下文特征来训练

参考:

https://www.jianshu.com/p/37768b399cd8

你可能感兴趣的:(推荐系统如何消除位置偏执)