美文网首页
推荐系统怎么消除位置偏置

推荐系统怎么消除位置偏置

作者: 小幸运Q | 来源:发表于2020-08-13 09:35 被阅读0次

    位置偏置

    位置偏置的影响.png

    方法1:把位置信息作为一个特征

    image.png

    该方法把位置信息作为特征。在离线训练时,输入特征是特征向量和位置信息的拼接[x,pos],而在线上推断时,我们无法获取实时的位置信息,那么此时的做法有两种:

    第一种做法就是一种暴力探索的方法,首先固定位置为1,然后计算所有广告相应的点击率,将点击率最高的一个广告放在第一个位置,接下来在固定位置为2,计算剩余广告相应的点击率,将点击率最高的广告放在第二个位置,依次类推。这样的做法显然是不可取的,主要是计算复杂度太高,线上性能无法保证。

    第二种做法是当前工业界最为常见的做法,即固定为某一个位置,计算每个广告在该位置下的点击率,从而进行排序。但是,位置不同,所得到的推荐结果也相差很大,所以我们需要找到一个合适的位置,来得到最好的线上效果。此时往往需要通过线下评估的方式,即通过不同位置在相同测试集上的表现,来决定线上使用哪个位置。显然这种做法泛化性也是无法得到保证的。而且一般只能取次优解。

    方法2:位置信息作为模块

    image.png

    通过一个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

    相关文章

      网友评论

          本文标题:推荐系统怎么消除位置偏置

          本文链接:https://www.haomeiwen.com/subject/lthwkktx.html