位置偏置
位置偏置的影响.pngimage.png方法1:把位置信息作为一个特征
该方法把位置信息作为特征。在离线训练时,输入特征是特征向量和位置信息的拼接[x,pos],而在线上推断时,我们无法获取实时的位置信息,那么此时的做法有两种:
第一种做法就是一种暴力探索的方法,首先固定位置为1,然后计算所有广告相应的点击率,将点击率最高的一个广告放在第一个位置,接下来在固定位置为2,计算剩余广告相应的点击率,将点击率最高的广告放在第二个位置,依次类推。这样的做法显然是不可取的,主要是计算复杂度太高,线上性能无法保证。
第二种做法是当前工业界最为常见的做法,即固定为某一个位置,计算每个广告在该位置下的点击率,从而进行排序。但是,位置不同,所得到的推荐结果也相差很大,所以我们需要找到一个合适的位置,来得到最好的线上效果。此时往往需要通过线下评估的方式,即通过不同位置在相同测试集上的表现,来决定线上使用哪个位置。显然这种做法泛化性也是无法得到保证的。而且一般只能取次优解。
image.png方法2:位置信息作为模块
通过一个shallow tower(可理解为比较轻量的模型)来预测位置偏置信息,输入的特征主要是一些和位置偏置相关的特征。在sigmoid前,将shallow tower的输出结果加入进去。而在预测阶段,则不考虑shallow tower的结果。
方法3:PAL框架
Position-bias Aware Learning framework (PAL) 基于如下的假设,即用户点击广告的概率由两部分组成:广告被用户看到的概率和用户看到广告后,点击广告的概率。
image.png该假设可进一步进行化简,首先,用户是否看到广告只跟广告的位置有关系(去掉看不看到广告里面的广告因子x);其次,用户看到广告后,是否点击广告与广告的位置无关(去掉看到后的位置pos)。此时公式可写作:
image.png 左边训练p(seen|pos)右边训练p(y=1|x,seen).png可以看到,两个模块是联合进行训练的,如果分开进行优化,两个模块的训练目标不同,可能导致整个的系统是次优化的。
ProbSeen:预估广告被用户看到的概率
pCTR:用户看到广告后,点击广告的概率
损失函数采用交叉熵损失:
image.png通过SGD算ProbSeen(简称ps)和pCTR
image.png
网友评论