深入理解推荐系统:Position Bias

Position Bias现象:

在排序结果中,排在前面的结果通常能获取更高点击率,如图1(a);对于同一个结果,排在不同的位置,点击率也有差异,排在靠前的位置时,它的点击率也越高,另外排在尾部是点击率也较高,如图1(b)。在一个信息流中,我们可能更容易记住头部和尾部的内容,对中间的内容容易忽视。从而使模型对用户偏好的感知出现偏差,预估CTR不准,并进一步通过feedback loop造成马太效应。


解决方法

bias主要有两大来源:输入数据推荐机制。所以要进行debias,我们可以采取干预数据改进推荐机制两种方式。

干预数据的目的是为了获取无偏或者接近无偏的数据,但是,在很多场景下,我们无法获得无偏的数据,那么就只能从改进推荐机制入手,显式建模相应的bias或者对推荐结果施加debias约束

这里介绍一些实践工作中的解决方案:

1. 通过某位置的历史平均CTR计算位置效应

比如在计算item的历史CTRi_CTR_real)的时候,根据某种假设进行去除position bias。一个常见的假设是,把表现CTRi_CTR)看成是真实CTR(i_CTR_real)和位置效应的乘积,而位置效应所有item在某个位置p的CTR的平均值进行表示。

2. 位置信息作为特征

最常见的做法是在构建训练样本时,把展示位置信息作为特征,在线推断时,因为无法获取位置特征这一点,把展示的位置特征设置一个统一置的值,比如0。

离线训练时加入位置特征,在线不获取,能够使模型更好地学习其余特征和点击率之间的关系。需要注意的是位置特征不能与其他特征做交叉(这里的原因是否有读者知道?)。

补充:

  1. 不与其他特征做交叉的原因:这里实际上指的是不与其他特征的结果做运算。一般是在做sigmoid前,与其他特征经过一系列运算后的embedding concat到一起, sigmoid前的logit相当于是f(position) 和 f(non-position)的加权和。让non-position的部分学得更准。与其他特征做交叉,线上实验效果有时候是好的,之前遇到过。但是与user和item侧特征发生过多关系,可能会不稳定。
  2. 当加入受position影响的特征,可以先做基于位置的归一化。比如点击率,可以统计展示位置的历史ctr,归一,再交叉。
  3. 问:关于在训练时候加入位置信息,线上使用默认值。线下训练既然使用了位置,那说明最后的得分是受到位置特征影响的,线上拿不到这个特征,不就意味着,线上线下是有偏的么?实际效果是否有用?
    :对,是有偏的。可以这么理解,理想情况下,离线建模时把位置偏差都建模到了position相关的部分,其余部分学习到的就是没有偏差的参数了。把它当做第二、三两种方法的简化版本就容易理解了。效果得看具体场景,我们有的场景拿到效果,有的没有。

3. 位置信息作为子网络

单独用一个子网络建模position bias,线上serving时关闭该部分

通过一个shallow tower(可理解为比较轻量的模型或者子网络)来预测位置偏置信息,输入的特征主要是一些和位置偏置相关的特征。在最后的sigmoid前,将shallow tower的输出结果加入进去。而在预测阶段,则不考虑shallow tower的结果。(相当于考虑了一些和position相关的特征以及交叉特征的整体影响)

4. 完全展示随机化的结果:

最简单的干预数据的方法,就是在推荐时展示完全随机化的结果,使得用户点击行为排除结果相关性的影响,仅仅与position有关,以此获取需要的训练数据。

原理也可以理解为随机呈现推荐结果,获得的数据即为position bias的预测结果,计算出position bias,作为修正项参与Training和Serving。

缺点:实际工作场景往往是对已有推荐算法的场景进行优化,所以比较少会采用这种方法,(大场景可考虑单独一路的ABTest来专门生成该类训练数据);

5. 对训练数据进行各种加权处理

直接对rank排名较高的样本在迭代时进行降权处理

QA:
问:感觉前面三种方法没有本质区别呀,都是把pos当做一个特征,不管是不是有单独的pos小网络
答:对,从大的方向上是这样,经典的方式是隐式建模position,另外两种是利用子模块显式建模position

问:离线感觉如何评价?
答:我们离线测的时候position是置空的,和线上保持一致;如果测试的时候也用了position,auc是提升的

参考地址:https://zhuanlan.zhihu.com/p/145448160?from_voters_page=true

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,560评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,104评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,297评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,869评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,275评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,563评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,833评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,543评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,245评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,512评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,011评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,359评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,006评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,062评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,825评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,590评论 2 273
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,501评论 2 268

推荐阅读更多精彩内容