Ren Y., Tang H. and Zhu S. Unbiased learning to rank with biased continuous feedback. In International Conference on Information and Knowledge Management (CIKM), 2022.
概
如何把 IPS 推广到连续的情形.
符号说明
- u, user;
- xi, item xi 在第 i 个位置被推荐给 u;
- ri∈{0,1}, xi,u 存在紧密联系, 若 ri=1;
- ci∈{0,1}, u 点击 xi;
- ei∈{0,1}, xi 是否被 u 看到;
- θi=P(ei=1|i);
- θ−i=P(ei=1|i,ci=0;
- ϵ+ij=P(ci>cj|ei=1,ej=1,ri>rj,i,j);
- ϵ−ij=P(ci>cj|ei=1,ej=1,ri≤rj,i,j);
- γu,xi,xj=P(ri>r|u,xi,xj);
- βu,xi=P(ri>0|u,xi).
Motivation
-
在推荐系统中, 存在严重的 position bias, 即 ci=1 可能是仅仅是因为 xi 被推荐的位置 i 比较靠前, 并非代表用户对它的兴趣很高 (ri=1).
-
为了描述这种结构, 我们可以假设
P(ci=1|u,xi,i)=P(ri=1|u,xi,i)P(ei=1|u,x,i)=P(ri=1|u,xi)P(ei=1|i),(1)
即一个样本 xi 得到正反馈的概率取决于:
1. 用户对它是否感兴趣 ri=1;
2. 它是否被看到了 ei=1.
这里最后一个等式成立, 是因为我们假设兴趣和 xi 的位置无关, ei 仅和它的位置有关, 直观上来说还是容易理解的.
-
我们自然是希望能够直接优化一个理想的目标:
Rrel(f)=EP(ri=1,u,xi)L(f(u,xi),ri),
但是, 我们往往只能优化
EP(ci=1,u,xi)L(f(u,xi),ci),
既然 ri 通常是难以直接观测和度量的.
-
幸而, 在 ci={0,1} 这种二元的情况, 我们可以通过如下方式得到一个无偏估计:
Runbiased(f)=EP(ci=1,ui,xi,i)[L(f(u,xi),ci)P(ei=1|i)]=EP(ci=1,ui,xi,i)/P(ei=1|i)[L(f(u,xi)]=EP(ri=1,ui,xi)[L(f(u,xi)]=Rrel.
-
那么倘若 ci 是一个连续的变量呢 ? 怎么将上面的方法推广到连续标签问题呢 ?
连续的推广
-
假设 ci 是一个连续的 score, 越大表示越好的一个正反馈, 同样定义 ri.
-
但是这么定义, 直接套用模型 (1) 是不合适的, 作者奇妙地将它限定为一个 pairwise 地问题:
P(ci>cj|u,xi,xj,i,j)=P(ri>rj|u,xi,xj,i,j)P(ei=1|u,x,i)P(ej=1|u,x,j)=P(ri=1|u,xi,xj)P(ei=1|i)P(ej=1|j).
即考察用户喜欢 xi 胜过 xj 的概率.
-
理想中, 我们希望优化:
Rrel(f)=EP(ri>rj,u,xi,xj)[L(^yi,ri,^yj,rj)],
这里 ^y=f(u,x) 代表预测的 score.
-
相应地, 我们可以用如下方式估计:
Runbiased(f)=EP(ci>cj,ui,xi,xj,i,j)[L(^yi,ci,^yj,cj)θiθj]=EP(ci>cj,ui,xi,xj,i,j)/(θiθj)[L(^yi,ci,^yj,cj)]=EP(ri>rj,u,xi,xj)[L(^yi,ci,^yj,cj)]=Rrel.
注: 作者还讨论了 trust bias 的处理方法, 这里就不记录了.
代码
[official]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix