Counterfactual Explanations for Neural Recommenders
神经推荐的反事实解释
SIGIR (SIGIR ’21)
ABSTRACT
理解特定项目被推荐给用户的原因可以显著提高他们对系统的信任和满意度。虽然神经推荐近年来已经成为最先进的技术,但深度模型的复杂性仍然使为终端用户生成有形的解释成为一个具有挑战性的问题。现有方法通常基于各种特征的注意力分布,作为解释的适用性仍然存在问题,并且对于终端用户来说难以掌握。基于一小部分用户自身行为的反事实解释已被证明是可接受的有形问题解决方案。然而,目前对这种反事实的研究不能轻易应用于神经模型。本文提出ACCENT,第一个为神经推荐找到反事实解释的通用框架。它扩展了最近提出的用于识别 与推荐最相关的训练点(training points)的影响函数,从单个项目到一对项目,同时在迭代过程中推导出反事实集。用ACCENT为两种流行的神经网络模型——神经协同过滤(NCF)和关系协同过滤(RCF)——生成反事实解释,并在流0行的MovieLens 100K数据集的一个样本上证明了其可行性。
目录
1 介绍
**动机 .**推荐系统在当今的网络世界中无处不在,从电子商务到新闻再到社交媒体。人们普遍认为,对推荐内容的高质量解释[5,21,25]有助于提高用户满意度,同时对改进底层模型具有可操作性[2,9,19,22,33,34]。
解释神经推荐的典型方法面临某些问题:
(i)它们通常依赖注意力机制来发现重要的单词[26]、评论[4]或图像[6]中的区域,这仍然是有争议的[15,27];
(ii)使用用户和项目[1,29,31]之间的连接路径,这些路径可能不是真正可操作的,并有隐私问题;
(iii)它们使用可能并不总是可用的外部项目元数据,如评论[18,26,28]或图像[6,28]。
在这种情况下,可以合理地假设,为了对最终用户切实可见,这些解释应该与用户自己的活动有关,并且易于理解、可操作和简洁[3,10]。这为基于用户自己的行为提出反事实解释铺平了道路,作为解决有形问题的可行机制[8,16,20,23,24]。反事实的解释是用户自己的一组操作,当这些操作被删除时,会产生不同的推荐(在本文中称为替换项)。伴随着大量关于解释的工作,推荐模型本身也变得越来越复杂。近年来,神经推荐系统已经成为社区事实上的标准,因为它们能够学习几个因素之间复杂的非线性相互作用[13,30,32]。然而,同样的复杂性使我们无法使用适用于基于图的推荐算法(Prince算法[8])的相同方法生成反事实解释。
[8] Azin Ghazimatin, Oana Balalau, Rishiraj Saha Roy, and Gerhard Weikum. 2020.PRINCE: Provider-Side Interpretability with Counterfactual Explanations in Recommender Systems. In WSDM.
解决.为解决这一问题,本文提出ACCENT方法((Action-based Counterfactual Explanations for Neural Recommenders for Tangibility,基于行为的神经推荐反事实解释),将Prince的基本思想扩展到神经推荐。
然而,这需要解决两个基本挑战:
1、Prince依靠使用个性化的PageRank估计用户行为的贡献分数来推导反事实集,这并不适用于任意的神经系统推荐;
2、基于图的理论形式构成了Prince算法的核心,并确保了其优越性,但也不容易扩展到深度学习模型。
为了克服这些障碍,我们采用了最近提出的快速影响分析(Fast Influence Analysis ,FIA)[7]机制,该机制根据用户对神经推荐器预测的近似影响(approximate influence)对用户的行为进行分类。虽然这种影响分数是上述贡献分数的一个可行代理,但它们不能直接用于产生反事实集。
[7] Weiyu Cheng, Yanyan Shen, Linpeng Huang, and Yanmin Zhu. 2019. Incorporating Interpretability into Latent Factor Models via Fast Influence Analysis. In KDD.
ACCENT将影响力得分的使用从单个数据点扩展到对项目(pairs of items),这对项目是推荐项目及其替换。这是一个关键步骤,通过迭代地缩小原始推荐和来自原始top-𝑘推荐的候选替换项目之间的得分差距,从而能够产生反事实集。
图1展示了推荐的Accent典型反事实解释输出
The Godfather II: 如果用户没有看电影《Goodfellas》和《The Godfather》,她可能会被推荐Apt Pupil.
更正式地,给定一个用户𝑢,一个与𝑢交互(她自己的行动)的项目列表 i u i_u iu,和一个推荐𝑟𝑒𝑐,Accent找到一个反事实的解释 I u ∗ ⊆ i u I^∗_u \subseteq i_u Iu∗⊆iu,从训练集中移除它会导致不同的推荐 r e c ∗ rec^∗ rec∗。本文应用Accent来解释来自两个著名的神经推荐器的预测,神经协同过滤(NCF)[13]和关系协同过滤(RCF)[30],并在MovieLens 100K数据集的一个子集上验证它。所有代码和数据都可以在[链接](https://www.mpi-inf.mpg.de/ impact/ counterfactual-explained -for-recommenders)和[链接](https:// github.com/hieptk/accent)上找到。
2 方法
2.1 参数估算
在统计学的基础上,影响函数估计当一个数据点上增加少量权重𝜖时模型参数如何变化[11]。Koh和Liang[17]利用影响函数提出了一种估计从训练集中删除一个数据点(将其权重降为0)对模型参数的影响的方法。为了简单描述该方法,设
θ
^
\hat \theta
θ^为原始模型参数,即
θ
^
\hat \theta
θ^为经验风险最小化:
R
(
θ
)
=
1
n
∑
i
=
1
n
L
(
z
i
,
θ
)
R(\theta) = \frac 1n \sum_{i=1}^n L(z_i,\theta)
R(θ)=n1i=1∑nL(zi,θ)
其中𝑛为训练点数,
L
(
z
i
,
θ
)
L(z_i,\theta)
L(zi,θ)为使用参数𝜃时训练点数的损失
z
i
z_i
zi.将训练点𝑧上加权少量𝜖后,新的最优参数
(
θ
^
ϵ
,
z
)
(\hat \theta_\epsilon,z)
(θ^ϵ,z)近似如下:
θ
^
ϵ
,
z
=
a
r
g
m
i
n
θ
∈
Θ
{
R
(
θ
)
+
ϵ
L
(
z
,
θ
)
}
\hat \theta_{\epsilon,z} = arg\ min_{\theta \in \Theta}\{R(\theta) +\epsilon L(z,\theta)\}
θ^ϵ,z=arg minθ∈Θ{R(θ)+ϵL(z,θ)}
由[17]可知,上加权训练点𝑧小幅度𝜖的影响如下:
d
θ
^
ϵ
,
z
d
ϵ
∣
ϵ
=
0
=
−
H
θ
^
−
1
∇
L
(
z
,
θ
^
)
\frac {d\hat \theta _{\epsilon,z}}{d\epsilon}|_{\epsilon = 0} = -H_{\hat \theta}^{-1} \nabla L(z,\hat \theta)
dϵdθ^ϵ,z∣ϵ=0=−Hθ^−1∇L(z,θ^)
H θ ^ H_{\hat \theta} Hθ^为Hessian矩阵,公式为 H θ ^ = 1 n ∑ i = 1 n ∇ θ 2 L ( z i , θ ^ ) H_{\hat \theta} = \frac1n \sum_{i=1}^n \nabla_\theta^2 L(z_i,\hat \theta) Hθ^=n1∑i=1n∇θ2L(zi,θ^)
由于每个训练点的权重为
1
n
\frac 1n
n1,删除一个训练点𝑧相当于将其上加权
−
1
n
-\frac 1n
−n1。在删除𝑧后,我们可以通过设置
ϵ
=
−
1
n
\epsilon=−\frac1n
ϵ=−n1来估计新参数
θ
^
−
z
\hat\theta^{−z}
θ^−z
θ
^
−
z
−
θ
^
=
1
n
H
θ
^
−
1
∇
L
(
z
,
θ
^
)
\hat \theta ^{−z} -\hat \theta = \frac 1n H^{-1}_{\hat \theta} \nabla L(z,\hat \theta)
θ^−z−θ^=n1Hθ^−1∇L(z,θ^)
注意,由于神经模型不是凸的,我们通过在其对角线上添加一个小阻尼项𝜆来强制
H
θ
^
H_{\hat \theta}
Hθ^的可逆性。
将影响函数应用于神经模型时的一个挑战是参数集通常非常大。FIA[7]是一种降低推荐系统影响函数计算成本的技术,我们将其应用到我们的算法中。
2.2 计算分数差距score gaps的影响
使用FIA,当一个训练点(用户的一个动作
I
u
I_u
Iu)被删除时,我们可以估计新参数
θ
^
−
z
\hat \theta^{−z}
θ^−z。将
θ
^
−
z
\hat\theta^{−z}
θ^−z代入推荐模型,我们可以估计任何项目的新预测得分。我们表示用户𝑢在删除点𝑧之前和之后对项目𝑖的偏好得分分别为
y
^
u
,
i
\hat y_{u,i}
y^u,i和
y
^
u
,
i
−
z
\hat y_{u,i}^{-z}
y^u,i−z,𝑖。𝑧对
y
^
u
,
i
\hat y_{u,i}
y^u,i的影响定义为:
I
(
z
,
y
^
u
,
i
−
y
^
u
,
i
−
z
)
=
y
^
u
,
i
−
y
^
u
,
i
−
z
I(z,\hat y _{u,i}-\hat y _{u,i}^{-z}) = \hat y _{u,i}-\hat y _{u,i}^{-z}
I(z,y^u,i−y^u,i−z)=y^u,i−y^u,i−z
然后我们可以估计训练点𝑧对两个项目𝑖和𝑗之间得分差距的影响,如下所示:
I
(
z
,
y
^
u
,
i
−
y
^
u
,
j
)
=
(
y
^
u
,
i
−
y
^
u
,
j
)
−
(
y
^
u
,
i
−
z
−
y
^
u
,
j
−
z
)
=
(
y
^
u
,
i
−
y
^
u
,
i
)
−
(
y
^
u
,
j
−
z
−
y
^
u
,
j
−
z
)
=
I
(
z
,
y
^
u
,
i
)
−
I
(
z
,
y
^
u
,
j
)
I(z,\hat y _{u,i}-\hat y _{u,j}) = (\hat y _{u,i}-\hat y _{u,j})-(\hat y _{u,i}^{-z}-\hat y _{u,j}^{-z})\\ = (\hat y _{u,i}-\hat y _{u,i})-(\hat y _{u,j}^{-z}-\hat y _{u,j}^{-z})=I(z,\hat y _{u,i})-I(z,\hat y _{u,j})
I(z,y^u,i−y^u,j)=(y^u,i−y^u,j)−(y^u,i−z−y^u,j−z)=(y^u,i−y^u,i)−(y^u,j−z−y^u,j−z)=I(z,y^u,i)−I(z,y^u,j)
对于一个点集
Z
=
{
z
1
,
z
2
,
⋯
,
z
m
}
Z=\{z_1,z_2,\cdots,z_m\}
Z={z1,z2,⋯,zm},我们通过以下方式来近似计算删除该集合的影响:
I
(
Z
,
y
^
u
,
i
−
y
^
u
,
j
)
=
∑
k
=
1
m
I
(
z
k
,
y
^
u
,
i
−
y
^
u
,
j
)
I(Z,\hat y _{u,i}-\hat y _{u,j}) = \sum _{k=1}^m I(z_k,\hat y _{u,i}-\hat y _{u,j})
I(Z,y^u,i−y^u,j)=k=1∑mI(zk,y^u,i−y^u,j)
随着集合规模𝑍的增大,上述估计的准确性下降。然而,由于反事实集通常很小,因此这种近似仍然是有效的。
2.3 填充间隙
为了将推荐
r
e
c
rec
rec替换为
r
e
c
∗
rec^∗
rec∗,我们需要找到一个反事实的解释集
Z
⊆
I
u
Z \sube I_u
Z⊆Iu,其删除结果为:
y
^
u
,
r
e
c
−
Z
−
y
^
u
,
r
e
c
∗
−
Z
<
0
⇔
y
^
u
,
r
e
c
−
y
^
u
,
r
e
c
∗
−
y
^
u
,
r
e
c
−
Z
+
y
^
u
,
r
e
c
∗
−
Z
>
y
^
u
,
r
e
c
−
y
^
u
,
r
e
c
∗
⇔
∑
k
=
1
m
I
(
z
k
,
y
^
u
,
r
e
c
−
y
^
u
,
r
e
c
∗
)
>
y
^
u
,
r
e
c
−
y
^
u
,
r
e
c
∗
\hat y ^{-Z}_{u,rec} -\hat y ^{-Z}_{u,rec^*} <0\\ \Leftrightarrow \hat y _{u,rec} -\hat y_{u,rec^*} -\hat y ^{-Z}_{u,rec} +\hat y ^{-Z}_{u,rec^*}>\hat y_{u,rec} -\hat y_{u,rec^*}\\ \Leftrightarrow \sum_{k=1}^m I(z_k,\hat y _{u,rec}-\hat y_{u,rec^*})>\hat y _{u,rec}-\hat y_{u,rec^*}
y^u,rec−Z−y^u,rec∗−Z<0⇔y^u,rec−y^u,rec∗−y^u,rec−Z+y^u,rec∗−Z>y^u,rec−y^u,rec∗⇔k=1∑mI(zk,y^u,rec−y^u,rec∗)>y^u,rec−y^u,rec∗
因此,最佳的方式来取代
r
e
c
rec
rec与
r
e
c
∗
rec^∗
rec∗是在递减的顺序
I
(
z
k
,
y
^
u
,
r
e
c
−
y
^
u
,
r
e
c
∗
)
I(z_k,\hat y _{u,rec}-\hat y_{u,rec^*})
I(zk,y^u,rec−y^u,rec∗)为𝑍添加训练点
z
k
z_k
zk,直到满足(8)。为了找到最小的反事实解释
I
u
∗
I^∗_u
Iu∗,我们尝试从一组候选人
I
r
e
p
I_{rep}
Irep中的每个替换项目。原则上,
I
r
e
p
I_{rep}
Irep可以跨越完整的项目集𝐼,但一个实用的选择是原始集的top-𝑘推荐。好的模型通常使它们的top-n多样化,同时保留相关性,从这个石板中选择替代,以确保
r
e
c
∗
rec^∗
rec∗既不是微不足道地类似于
r
e
c
rec
rec,也不是与𝑢无关。最后,这个最小的行动集合
I
u
∗
I^∗_u
Iu∗返回到𝑢,作为对𝑟𝑒𝑐的具体解释。
Algorithm 1.包含Accent的精确表述。Accent的时间复杂度是
O
(
∣
I
r
e
p
∣
×
∣
I
u
∣
×
l
o
g
∣
I
u
∣
)
+
O
(
∣
I
r
e
p
∣
×
∣
I
u
∣
)
O(|I_{rep}|×|I_u|\times log|I_u|)+O(|I_{rep}|\times |I_u|)
O(∣Irep∣×∣Iu∣×log∣Iu∣)+O(∣Irep∣×∣Iu∣)调用FIA。由于Accent只需要访问梯度和Hessian矩阵,因此它适用于一大类神经推荐器。
3 实验设置
3.1 推荐模型
我们对NCF[(最早的神经推荐系统之一)和RCF(最近的选择)上运行ACCENT。NCF[13]由一个广义矩阵分解层(其中用户和物品嵌入按元素相乘)和一个多层感知器组成,该感知器将这些用户和物品嵌入作为输入。然后将这两部分结合起来预测最终的推荐得分。RCF使用辅助信息将物品之间的关系纳入到模型中。它计算目标感知嵌入,该嵌入使用两层注意力机制捕获有关用户、她的交互以及他们与目标项目(推荐候选)的关系的信息。用户和目标项目的推荐分数是从这些目标感知的嵌入中计算出来的。
3.2 数据集
我们使用流行的MovieLens 100K数据集[12],其中包含943名用户对1682部电影的100𝑘评分(1 - 5)。这种形式的输入可以直接输入到NCF。另一方面,为了符合RCF中的隐式反馈设置,我们将评分二值化,如果评分大于等于3,则为正类标签,否则为负类标签。我们删除了所有使用<10个正面评价或<10个负面评分,以便profiles足够大且平衡,以学习具有判别力的用户模型。这种剪枝在我们的数据集中产生了452个用户、1654部电影和61054次交互。对于RCF中的项-项关系,我们使用[30]提供的辅助数据,该数据包含4种关系类型和97209对关系。
3.3 基线
我们将Accent与四种基线算法进行了比较。其中两种算法基于RCF中的注意力权重,不适用于NCF;另外两种算法基于FIA评分,可用于两种推荐模型。
3.4 初始化
对于NCF上的FIA,我们使用[7]中的实现。我们使用的批量大小为1246,因为该实现要求该值是数据集大小(61054)的一个因子。所有其他超参数保持不变。对于RCF,我们将退出率设置为0,以最小化重新训练期间的随机性。我们用GELU[14]代替ReLU激活,以避免[17]不可微的问题。为了保证FIA的有效性,我们确保每个交互对应于一个训练点(即原始模型中的50个)。为此,我们将用户𝑢的每个喜欢的物品𝑖+与她不喜欢的物品𝑖−配对,并将三元组(𝑢,𝑖+,𝑖−)添加到训练集。特别地,对于每个𝑖+,我们选择一个与𝑖+共享最多关系的𝑖−。通过这种原则性的负采样,RCF模型仍然可以有效区分正项和负项,尽管每个正项只有一个负项。对于RCF上的FIA,我们向Hessian矩阵添加阻尼项𝜆= 0.01,并使用我们自己的实现。
4 结果和见解
4.1 评价方案
对于我们数据集中的452个用户,我们为他们的推荐𝑟𝑒𝑐找到了一个解释 I u ∗ I^∗_u Iu∗,以及从 U r e p U_{rep} Urep找到一个替代 r e c ∗ rec^∗ rec∗,其中 I r e p I_{rep} Irep是原始的top-𝑘(𝑘= 5,10,20)。然后,我们重新训练没有 I u ∗ I^∗_u Iu∗的模型,并验证 r e c ∗ rec^∗ rec∗是否取代rec。这对推荐模型(NCF和RCF)和每种解释算法(Accent、pure attention、attention、pure FIA和FIA,如适用)都是这样做的。accent和基线的实际替换百分比(CF百分比)和反事实集的平均大小(CF集大小)报告在表1中。理想情况下,一个算法应该具有较高的CF百分比和较小的CF集合大小。为了给ACCENT产生的解释一个定性的感觉,我们在表2中提供了一些轶事示例(基线具有更大的CF集)。为了比较两种方法之间的反事实效应(CF百分比),我们使用了配对二项数据的McNemar检验,因为每种解释要么实际上是反事实,要么不是(二元)。对于CF集大小,我们使用单边配对𝑡-test。所有检验的显著性水平设为0.05。
4.2 关键发现
**Accent is effective.**对于这两种模型,Accent在产生反事实解释方面产生了最好的总体结果。对于CF百分比超过注意力基线,以及CF集大小超过注意力和FIA方法,结果具有统计学意义
Attention is not explanation. 使用注意力的两种算法表现最差。它们的CF百分比比Accent至少低5%,它们的平均CF集大小比Accent大1.3到3.3倍。这表明,使用注意力在寻找简洁的反事实解释方面并没有真正的帮助。
**FIA is not enough.**直接使用FIA对交互进行排序的两种算法产生了非常大的解释。FIA的解释的平均大小是Accent的1.5到1.7倍(FIA最初提出的背景是NCF,纯FIA的解释大小约为NCF的两倍)。这就证明了𝑟𝑒𝑐对分数差距的影响比𝑟𝑒𝑐单独对分数的影响更重要。
**Considering the score gap is essential.**在扩展解释的同时,两种纯算法没有考虑𝑟𝑒𝑐和替换之间的得分差距,它们的表现比考虑这种差距缩小的更智能的版本更差。两者在CF百分比上的差异可能高达4%,CF集的差异可能高达2.6倍(纯粹的注意力,𝑘= 5)。
Influence estimation for sets is adequate. 我们对成套物品的FIA近似实际上非常接近真实影响。RCF, RMSE近似之间的影响和𝑘的真正影响是1.17 /不同的值,这是小的标准差相比真正的影响(≃3.7)。对于NCF,此RMSE为0.36,而真实影响的标准差为0.34,这意味着该模型的估计精度较低:这反过来导致了较低的CF百分比。
Explanations get smaller as 𝑘 **grows.**ACCENT的性能在不同𝑘(5,10,20)上是稳定的,变化小于1%。随着𝑘的增加,平均CF集大小略有减小,因为我们有更多的选项来替换𝑟𝑒𝑐。有趣的是,在Prince[8]中基于图的设置中也观察到了类似的效果。
4.3 分析
**Pairwise vis-à-vis one-versus-all.**在我们的主算法中,我们可以使用另一种不需要固定替换的方法,而不是每次固定一个替换项(成对)。特别是,在每个步骤中,我们可以减少𝑟𝑒𝑐和当时排名第二的项目之间的差距,让这个排名第二的项目在过程中自由变化(一对一)。通过实验,我们发现这种方法可以将RCF上的反事实口音百分比略微提高0.22%,但代价是更大的解释。
**Error analysis.**尽管FIA可以有效地估计影响力,但它仍然是一个近似值。特别是,它假设只有少数参数会受到删除数据点(对应的用户和项目嵌入)的影响。这种假设在实践中有时会导致错误。在NCF中,我们观察到估计的影响和实际分数下降之间存在很大的差异,尽管它们有很强的相关性(𝜌= 0.77)。这就解释了Accent在NCF中相对较低的CF百分比(当渡越57%时)。因此,当删除一个操作时,我们希望更新更多的参数:例如,在RCF中,我们还可以考虑关系类型和关系值嵌入。然而,这可能会大大增加计算成本。另一个误差来源是一组项目的影响有时被高估。当累积的影响不足以交换两个元素时,会导致重音符号过早停止。为了缓解这个问题,我们可以在口音停止后重新训练模型,以验证结果是否实际上是反事实的。如果没有,口音可以恢复并添加更多的动作。
5 结论
们还可以考虑关系类型和关系值嵌入。然而,这可能会大大增加计算成本。另一个误差来源是一组项目的影响有时被高估。当累积的影响不足以交换两个元素时,会导致重音符号过早停止。为了缓解这个问题,我们可以在口音停止后重新训练模型,以验证结果是否实际上是反事实的。如果没有,口音可以恢复并添加更多的动作。
5 结论
我们描述了Accent,一种为神经推荐器生成反事实解释的机制。Accent将Prince算法的思想扩展到神经网络的设置,同时使用和调整FIA对成对贡献分数的影响值,这是Prince的核心组成部分,但在深度模型中很难获得。我们证明了Accent相对于attention和FIA基线的有效性,基础推荐器是NCF或RCF,但它适用于更广泛的一类模型:唯一的要求是能够访问梯度和Hessian。