Clicks can be Cheating: Counterfactual Recommendation for Mitigating Clickbait Issue
https://dl.acm.org/doi/pdf/10.1145/3404835.3462962
本文将用到以下相关知识:
反事实推断
TE、NDE、TIE
背景
在生活中,无论我们用什么软件(购物、资讯等),都会遇到这样的情况:看到的封面和标题跟点进去的内容不匹配,即标题党。而这些欺骗性的信息会使用户体检变差,而因为用户之前由于标题点击了item,会使得模型在学习,推荐的时候也会推荐这类item,这就造成了恶心循环。
本文主要通过构建因果图来缓解标题党这类不良item对用户体验造成的损害,主要贡献如下:
- 强调通过仅使用点击数据来缓解**点击诱饵(标题党)**问题的重要性,并利用新的因果图来制定推荐流程
- 在推荐中引入反事实推理来缓解点击诱饵问题,并提出了一个反事实推荐框架,该框架可应用于任何以项目特征为输入的推荐模型(易集成)
方法
本文所用理论与MACR框架中所用理论一样,都是采用反事实推断,并且涉及TE,NDE,TIE等相关知识,这里不再赘述,不熟悉的小伙伴可到MACR中阅读。不过MACR是用于纠正流行性偏差的,本文方法是针对“标题党”的,并且构建过程也存在一些区别,下面我们详细展开。
因果图
原始的因果图如图a所示,我们在做推荐的时候,仅考虑单纯融合曝光特征(exposure feature)和内容特征(content feature),将融合后的特征和用户特征结合用于预测推荐分数。而上述过程忽略了用户看到标题、封面等信息时对点击的直接影响,因此作者构建了新的因果图(图b)。
通过反事实推断,我们可以得到图c,d
T
E
=
Y
u
,
i
,
e
−
Y
u
,
i
∗
,
e
∗
TE=Y_{u,i,e}-Y_{u,i^*,e^*}
TE=Yu,i,e−Yu,i∗,e∗
N
D
E
=
Y
u
,
i
∗
,
e
−
Y
u
,
i
∗
,
e
∗
NDE=Y_{u,i^*,e}-Y_{u,i^*,e^*}
NDE=Yu,i∗,e−Yu,i∗,e∗
T
I
E
=
T
E
−
N
D
E
=
Y
u
,
i
,
e
−
Y
u
,
i
∗
,
e
TIE=TE-NDE=Y_{u,i,e}-Y_{u,i^*,e}
TIE=TE−NDE=Yu,i,e−Yu,i∗,e
i
∗
=
f
I
(
e
∗
,
t
∗
)
i^*=f_I(e*,t*)
i∗=fI(e∗,t∗),fi为特征融合函数
框架设计
评分函数
Y
=
f
Y
(
⋅
)
Y=f_Y(·)
Y=fY(⋅)的设计
为了方便使用,以及减少对现有模型的修改,做到易集成性,作者并没有直接将u,i,e作为输入,而是late-fusion的方式:
f
Y
(
u
,
i
,
e
)
=
f
(
Y
u
,
i
,
Y
u
,
e
)
f_Y(u,i,e)=f(Y_{u,i},Y_{u,e})
fY(u,i,e)=f(Yu,i,Yu,e),而其中的
Y
u
,
i
,
Y
u
,
e
Y_{u,i},Y_{u,e}
Yu,i,Yu,e可以由现有的模型得到,
f
(
)
f()
f()是一种融合策略,采用MUL的方式:
f
(
Y
u
,
i
,
Y
u
,
e
)
=
Y
u
,
i
∗
σ
(
Y
u
,
e
)
f(Y_{u,i},Y_{u,e})=Y_{u,i}*\sigma(Y_{u,e})
f(Yu,i,Yu,e)=Yu,i∗σ(Yu,e)
训练过程
训练采用多任务的方式训练,损失函数如下:
∑
(
u
,
i
,
Y
u
,
i
‾
)
∈
D
~
l
(
Y
u
,
i
,
e
,
Y
u
,
i
‾
)
+
α
l
(
Y
u
,
e
,
Y
u
,
i
‾
)
\sum_{(u,i,\overline{Y_{u,i}})\in\tilde{D}}{l(Y_{u,i,e},\overline{Y_{u,i}})+\alpha l(Y_{u,e},\overline{Y_{u,i}})}
(u,i,Yu,i)∈D~∑l(Yu,i,e,Yu,i)+αl(Yu,e,Yu,i)
Y
u
,
i
‾
\overline{Y_{u,i}}
Yu,i为标签,u,i为特征,a为超参数。由TIE可知,我们需要得到
Y
u
,
i
,
e
,
Y
u
,
i
∗
,
e
Y_{u,i,e},Y_{u,i^*,e}
Yu,i,e,Yu,i∗,e,而在实际训练过程总参考值
i
∗
i^*
i∗表示不将i作为特征输入,因此可以用
Y
u
,
e
Y_{u,e}
Yu,e来表示
Y
u
,
i
∗
,
e
Y_{u,i^*,e}
Yu,i∗,e
推理阶段
推理阶段分别得到
Y
u
,
i
,
e
,
Y
u
,
i
∗
,
e
Y_{u,i,e},Y_{u,i^*,e}
Yu,i,e,Yu,i∗,e然后计算TIE。
Y
C
R
=
T
I
E
=
Y
u
,
i
,
e
−
Y
u
,
i
∗
,
e
=
f
(
Y
u
,
i
,
Y
u
,
e
)
−
f
(
c
u
,
Y
u
,
e
)
=
Y
u
,
i
,
e
−
c
u
∗
σ
(
Y
u
,
e
)
Y_{CR}=TIE=Y_{u,i,e}-Y_{u,i^*,e}=\\f(Y_{u,i},Y_{u,e})-f(c_u,Y_{u,e})=Y_{u,i,e}-c_u*\sigma (Y_{u,e})
YCR=TIE=Yu,i,e−Yu,i∗,e=f(Yu,i,Yu,e)−f(cu,Yu,e)=Yu,i,e−cu∗σ(Yu,e)
c
u
=
E
(
Y
u
,
I
)
=
1
∣
I
∣
∑
i
∈
I
Y
u
,
i
c_u=E(Y_{u,I})=\frac{1}{|I|}\sum_{i\in I}{Y_{u,i}}
cu=E(Yu,I)=∣I∣1i∈I∑Yu,i
因为在训练的时候没有将
i
∗
i^*
i∗作为输入来训练得到
Y
u
,
i
∗
,
e
Y_{u,i^*,e}
Yu,i∗,e,而是直接用了
Y
u
,
e
Y_{u,e}
Yu,e。在预测推理过程中,用均值来替代当前(u,i)对应的预测值。
更多内容可以关注“秋枫学习笔记”,感谢大家的支持
![](https://i-blog.csdnimg.cn/blog_migrate/7208b96e2b3fb869538ef47feb7f7faa.png)