今天介绍一篇美团在SIGIR 2021中稿的一篇short paper,主要介绍在解决点击率预估中位置偏置(position-bias)方面的一些工作,一起来看一下。
1、背景
在点击率预估问题中,位置偏置是一类比较常见的问题,展现位置更靠前的广告无论是否真正符合用户的兴趣,都有更高的概率被点击。
过往也有一些工作来解决位置偏置的问题。最常见的做法是将位置特征作为一个模型训练的一个特征,而在线上预测时,所有候选广告使用相同的位置特征输入。这种方案实现较为简单,但是线上预测时,选择不同的位置,得到的推荐结果会存在差异,结果往往是次优的。
华为提出的PAL框架将广告被点击的概率分为两个因素:广告被用户看到的概率和用户看到广告后点击的概率。论文做了进一步的假设:用户是否看到广告只跟广告的位置有关系;同时,用户看到广告后,是否点击广告与位置无关。因此整个框架也是包含两个部分,如下图所示。在线上预测时,只需要部署右边的网络,所得到的点击率就是消除了位置偏置后的点击率。这种方案的缺点是假设太强,将问题过于简化了,没有充分考虑位置偏置与用户特征、上下文特征以及候选item之间的关系。
本文要介绍的文章提出了深度位置交互网络(Deep Position-wise Interaction Network,后文简称DPIN)来有效的建模候选广告在每个位置的点击率,同时使用贪婪的策略对候选广告进行排序,一起来看一下DPIN的结构。
2、DPIN介绍
假设有J个候选广告、K个位置,每次计算的耗时为C,那么预测J个广告在K个位置的整体时间复杂度为O(JKC),这显然是线上扛不住的。因此论文将整个DPIN拆解为了三个模块,分别是base module、deep position-wise interaction module和position-wise combination module,如下图所示。接下来对这几部分module进行分别介绍。
2.1 base module
与大多数的CTR预估模型相同,base module采用embedding和MLP结合的结构对候选广告进行处理。输入为用户特征、上下文特征和单个候选广告的的特征,输出为融合了用户信息和上下文信息的广告向量表示,记作rjitem:
2.2 deep position-wise interaction module
该模块主要是对用户的兴趣进行按位置建模。首先,将用户的历史行为进行按位置进行拆解,如第k个位置的行为序列表示为:
其中,每一个行为包含两部分的信息,分别是广告的信息和点击广告时的上下文信息。每个位置的行为序列中的item,与当前的上下文信息进行attention计算,并进行加权,得到每个位置聚合后的行为序列表示,记作bk:
随后,bk与上下文特征,位置embedding进行拼接,通过一层全连接网络,得到vk。vk可以看作是用户在当前上下文情况下在第k个位置的兴趣表示:
最后,通过transformer层来建模不同位置兴趣的相互关系,最终输出记作rkpos:
2.3 position-wise combination module
该模块的作用是用来计算每个候选广告在每个位置的点击率预估值,其中广告j在位置k的点击率预估值为:
在得到广告在每个位置的点击率矩阵后,同时根据每个广告的出价bid,贪婪的计算收益最大化的排序结果,如下面的结果:
那么对于第一个位置来说,广告A的ctr * bid为0.3,B为0.24,C为0.18,因此A排在第一位,对第二个位置来说,广告B的ctr * bid为0.18,C为0.12,因此B排在第二位,C排在第三位。
这么一种排序方式忽略了已排序的广告对于后面排序广告的影响,是一种比较贪心的策略,还是有一定改进空间的。
3、实验结果及分析
最后看一下实验结果:
好了,本文就介绍到这里,大家端午安康~
网友评论