Recommending What Video to Watch Next: A Multitask Ranking System
论文地址:https://daiwk.github.io/assets/youtube-multitask.pdf
bais logit相加
谷歌的这篇论文有个亮点就是消偏的处理,论文就是要解决2个问题:一是多目标建模,而是选择偏差消解。
位置偏差是非常常见的一种,不同位置上面的ctr差异很大
论文采用一个浅层网络塔来建模偏差,浅层网络的输入是位置特征及其他位置相关的(设备信息),输出的logit再叠加到用户主塔的logit上面,训练时指导模型学习偏差,相当于直接告诉模型这次点击/观看是发生在哪个位置,给模型输入先验信息。
最终的模型结构如下
学习到的偏差打印出来如下,靠前和靠后的位置偏差数值差异还是非常大的。
在线推断的时候,不需要输入位置特征给浅层塔,推断时也不知道位置信息。
这种消偏做法方式简单,可以快速在业务中进行尝试,还可以加入其他偏差信息。
PAL: A Position-bias Aware Learning Framework for CTR Prediction in Live Recommender Systems
华为有一篇论文也是用shallow-tower处理偏差,不过是相乘的形式
bais logit 相加
也是首先列出不同位置的ctr显著不同
提出的PAL是基于如下假设:用户点击一个item取决于两个因素,一个是用户看到item的概率,一个是用户看到item后点击这个item的概率。因此PAL将最终的ctr预估拆分为两个部分联合优化。
p
(
y
=
1
∣
x
,
p
o
s
)
=
p
(
s
e
e
n
∣
x
,
p
o
s
)
p
(
y
=
1
∣
x
,
p
o
s
,
s
e
e
n
)
p(y = 1|x, pos) = p(seen |x, pos)p(y = 1|x, pos, seen)
p(y=1∣x,pos)=p(seen∣x,pos)p(y=1∣x,pos,seen)
再假设:一、item被用户看到的概率仅和位置相关 二、item被点击的概率和曝光的位置相互独立。则上面式子可以简化如下:
p
(
y
=
1
∣
x
,
p
o
s
)
=
p
(
s
e
e
n
∣
p
o
s
)
p
(
y
=
1
∣
x
,
s
e
e
n
)
p(y = 1|x, pos) = p(seen |pos)p(y = 1|x, seen)
p(y=1∣x,pos)=p(seen∣pos)p(y=1∣x,seen)
结构如下,使用一个小塔单独建模偏差。ProbSeen这边小塔建模概率
p
(
s
e
e
n
∣
p
o
s
)
p(seen|pos)
p(seen∣pos),右边建模点击概率
p
(
y
=
1
∣
x
,
s
e
e
n
)
p(y = 1|x,seen)
p(y=1∣x,seen)
进行联合优化,loss构造如下
其中
θ
p
s
\theta_{ps}
θps和
θ
p
C
T
R
\theta_{pCTR}
θpCTR分别是偏差塔和主任务的参数
实验比较
比较的基线是将位置特征作为特征输入到模型中,这种方式在推断时无法拿到位置值会填一个默认值,模型的效果跟默认值的选择对模型效果有较大的影响,需要开在线AB实验或者挨个默认值离线评估去确定,比较费时费力;某个默认值在这个场景很好但是换个场景就不行了,这种方式不具有通用性。
根据不同的位置默认值采用3个base(BASE_p1、BASE_p5、BASE_p9),每个base跑了一周的线上实验,PAL相对base的提升结果如下
在不同的数据集离线评估
分析
预估的ranking和真实的ranking的距离
比较两个item list ranking的距离,top-L打分item列表降序排序,用户
u
u
u的第
i
i
i个item在模型
M
M
M的打分位置为
σ
M
,
u
(
i
)
\sigma_{M,u}(i)
σM,u(i),
ranking距离评估结果
item的多样性
多个用户之间的topL个item列表的多样性定义如下
其中
q
a
b
(
L
)
q_{ab}(L)
qab(L)表示用户a和用户b相同的item个数。比较结果如下,PAL在多样性上面也是显著提升。