Unbiased Sequential Recommendation with Latent Confounders
摘要
Wang等人首次提出了除偏序列推荐模型,该模型使用潜在结果框架来重新制定顺序推荐任务,使得模型可以更好地理解数据偏差机制,通过用逆倾向得分(inverse propensity score,IPS)重新加权训练实例来修正该框架。并且对IPS估计采用裁剪策略,以减少学习目标的方差,增强了模型的鲁棒性。
1 简介
最近序列推荐由于其更贴合实际的设置获得了逐渐增加的吸引力以及更好的推荐效果。通过对用户连续动作之间的关系进行建模,使得序列推荐优于传统的推荐。FPMC[22]模型基于用户最新的行为估计当下的用户偏好。GRU4Rec[16]模型将循环神经网络引入,来建模更加综合的历史信息。NARM[17]使用注意力机制来区分不同用户行为的重要性。这些模型持有的主要假设是,训练数据可以很好地表示用户的序列偏好。然而,该假设在实际中是存疑的。因为观察的数据可能会由于原先的推荐系统而产生偏差(例如“曝光偏差”)或者用户的内在趋势(即“选择偏差”)。正如图一展示的,根据交互历史,可以推测用户喜欢运动品牌(例如“耐克”和“阿迪达斯”),并且最近对红色衣服产生兴趣。作为结果,红色的阿迪达斯T恤在数据集中作为下一个项目被观察到。基本上,对一个项目的观察是由底层的用户序列偏好以及项目推荐概率联合决定的。
在上面的例子中,红色的耐克上衣(C)或者红色的阿迪达斯衣服(B)都是合理的下一个项目;它们之间的联系以及历史行为可以揭示重要的用户序列偏好。然而,这些项目并没有被推荐给用户,并且因此基本没有机会被观察到。这个例子表示,观察到的项目联系对于揭示真实的用户序列偏好是不准确的。如果模型直接在观测到的数据上进行训练,得到的结果可能会与真实的用户偏好之间存在偏差。
为了更加鲁棒的、公平的以及无偏的优化,近些年有很多研究尝试将因果推理融入到传统的机器学习算法中。基本上来说,这些模型通过假设不同的数据产生的因果图来设计创新的学习目标。本文中,作者延续相同的创意来将序列推荐和因果推理结合,以移除上述提到的数据偏差问题。对于这种融合,面临以下两个方面的挑战:首先,已有的除偏推荐模型假设的因果图常如图一(b)所示,反馈被用户以及目标项目是否被选择这两方面影响,并且用户同时影响项目选择和反馈。这样的形式中,不同的项目被假设是相互独立的。然而,在序列推荐中,捕获项目联系是改进推荐效果的基本理念。项目联系应该在因果图中被高亮(见图一(c))。根据作者已知,目前从因果推理的角度对序列推荐的直观理解还很有限。
此外,影响用户反馈和项目选择的因子会很复杂。可能会有很多未观察到的隐混杂(例如“促销活动”),可能影响最终的推荐效果。如何动态地从序列推荐的上下文中推理出它们,以及由此构建更加信息化的因果图,目前尚不清晰。
为了解决这些挑战,作者首次使用潜在结果框架(potential outcome framework, POF)来形式化序列推荐任务,POF框架是一个高效的因果推理工具。之后,作者构建了一个比较贴近序列推荐的因果图,图中的当前项目不仅仅是被用户影响,同时也被历史项目影响。基于构建的因果图,作者提出了一个理想化的无偏学习目标,并且将其拓展成一个基于逆倾向得分(inverse propensity score, IPS)的实验上可实现的目标。因为IPS方法可能常常导致高的方差,作者使用了剪枝策略来稳定训练过程。他们从理论上分析了剪枝策略对权衡学习目标的无偏性和方差的有效性。为了对未观察的混杂因子的影响进行建模,作者使用了一个神经网络来首先推理出它们,然后将将它们结合进优化的过程中。为了实现上述的想法,作者设计了一个三通道的门循环神经元来无缝结合项目联系建模的过程、IPS估计以及隐混杂因子推理。本文的主要贡献如下:
(1)提出了使用矫正数据偏差的潜在结果框架来解决序列推荐任务,这也是在推荐领域首次实现的方法。
(2)设计了三通道GRU模型来同时捕获项目联系、模型隐混杂因子以及估计IPS。
(3)分别从期望和方差的角度,理论分析了对目标函数的设计。
(4)基于合成的以及真实世界的数据集构建了大量的实验,验证提出的方法。
2 准备工作
2.1 问题定义
假设我们有用户集合 U \mathcal{U} U以及项目集合 V \mathcal{V} V。用户和项目之间的交互被收集为一个集合 S = { [ u i , ( v i 1 , b i 1 ) , ( v i 2 , b i 2 ) , ⋯ , ( v i l i , b i l i ) ] } i = 1 N \mathcal{S}=\{[u_i,(v_i^1,b_i^1),(v_i^2,b_i^2),\cdots, (v_i^{l_i}, b_i^{l_i})]\}_{i=1}^N S={[ui,(vi1,bi1),(vi2,bi2),⋯,(vili,bili)]}i=1N,这里的每个元素都是按时间顺序排列的交互会话, u i ∈ U u_i\in \mathcal{U} ui∈U是一个用户, v i t ∈ V ( t ∈ { 1 , 2 , ⋯ , l i } ) v_i^t\in\mathcal{V}(t\in \{1,2,\cdots, l_i\}) vit∈V(t∈{1,2,⋯,li})是一个项目, b i t ∈ { 0 , 1 } b_i^t\in\{0,1\} bit∈{0,1}是观察的 u i u_i ui对 v i t v_i^t vit的反馈, l i l_i li是交互的项目数量。通常,序列推荐模型都是基于二元交叉熵损失来进行优化。如下面的公式:
这里的 H u i t − 1 H_{u_i}^{t-1} Huit−1是 [ u i , ( v i 1 , b i 1 ) , ( v i 2 , b i 2 ) , ⋯ , ( v i t − 1 , b i t − 1 ) ] [u_i,(v_i^1,b_i^1),(v_i^2,b_i^2),\cdots, (v_i^{t-1}, b_i^{t-1})] [ui,(vi1,bi1),(vi2,bi2),⋯,(vit−1,bit−1)]的缩写。事实上,这个一个很广泛使用的目标函数。 b i t b_i^t bit指的是 v i t v_i^t vit和 H u i t − 1 H_{u_i}^{t-1} Huit−1之间积极或者消极的联系。设置 b i t b_i^t bit,有多种选择。例如,可以将 b i t = 1 b_i^t=1 bit=1视为在推荐项目上的点击,将 b i t b_i^t bit设置为0,表示该项目被曝光但是没有被点击,或者该项目是随机地从未交互的产品中抽样出的。或者, b i t = 0 b_i^t=0 bit=0以及 b i t = 1 b_i^t=1 bit=1表示低或高的用户项目评分。 f θ ( ⋅ ) f_{\theta}(\cdot) fθ(⋅)旨在通过对 v i t v_i^t vit和 H u i t − 1 H_{u_i}^{t-1} Huit−1之间的关系强制施加归纳偏置来拟合观测数据。在基于马尔可夫方法中, H u i t − 1 H_{u_i}^{t-1} Huit−1对于 v i t v_i^t vit的影响主要依赖于最新的项目。在基于会话的方法中,用户信息不可得。很多其他的基于序列的模型中,反馈 b i t b_i^t bit在 H u i t − 1 H_{u_i}^{t-1} Huit−1中被忽略。
2.2 潜在结果框架
POF是在实验和观测设置下一个学习因果关系的有效工具。POF中有三个关键概念[38]:unit单元是基础的研究目标,可以是一个病人或者一个用户。Treatment,处理,是在单元unit上施加的动作,potential outcome潜在结果,在单元上施加处理后的结果,表示为 Y ( V ) Y(V) Y(V)。一般情况下,同时影响处理和潜在结果的因子被叫做confounders混杂因子。
单元、处理以及潜在结果之间的关系被总结在图二(a)中,这里的潜在结果被单元以及处理联合决定,单元是处理以及潜在结果的共同原因。事实上,现存的除偏推荐模型可以很好地通过因果图进行解释,用户同时影响项目和反馈,并且反馈又由用户和项目决定。理想的目标函数是剪掉从用户到项目的边,将项目一致地曝光给用户。因为潜在结果框架并不是本文的核心,所以可以阅读[38]来获得更多细节。
3 无偏序列推荐
本节,作者将介绍本文的观点细节。首先,作者使用潜在结果框架将序列推荐任务形式化,之后设计了一个基于IPS的损失函数,以无偏的方式来捕获项目联系。为了对未观测混杂因子进行建模,作者使用了参数化模型来推断它们。最后,作者实现了一个三通道的GRU模型来联合估计用户序列化偏好,预测IPS以及推断隐混杂因子。
3.1 POF下的序列推荐
通常情况下,序列化推荐构建的因果图如图二(b)所示。与传统的一般推荐系统中的因果图相比(见图二(a)),这里有很多处理-潜在结果对,沿着时间维度展开。正式地讲,作者使用了 u , v t u, v^t u,vt和 y t ( v t ) y^t(v^t) yt(vt)来分别表示用户、项目和用户反馈。在每一步 t t t,项目 v t v^t vt不仅仅是被用户 u u u影响,同时也被之前的项目 v 1 , v 2 , ⋯ , v t − 1 v^1,v^2,\cdots, v^{t-1} v1,v2,⋯,vt−1以及用户反馈 y 1 ( v 1 ) , y 2 ( v 2 ) , ⋯ , y t − 1 ( v t − 1 ) y^1(v^1),y^2(v^2),\cdots,y^{t-1}(v^{t-1}) y1(v1),y2(v2),⋯,yt−1(vt−1)影响。对于曝光偏差来说,这种设计是合理的,因为真实世界的推荐系统常常是个性化的而且对历史信息敏感。对于项目是由于用户内在偏好选择的情况(选择偏差),合理性存在于用户之前的交互项目可能影响子序列项目这一直觉中。上述的公式化可以很好地描述不同设置下序列推荐的本质。基于该因果图,作者首先推导出一个无偏的序列推荐学习目标,然后对未观测的混杂因子进行建模。
3.2 无偏学习目标函数
曝光偏差或者选择偏差的原因是在于用户不能接触到所有项目。在序列推荐任务中,理想的学习目标是评估 V \mathcal{V} V中每个项目与每一步的历史信息之间的联系,即:
这里的 l i l_i li是序列长度, δ \delta δ是损失函数。与之前的除偏推荐模型不同,这里预测的反馈期望 E [ y i t ( v ) ∣ H u i t − 1 ] \mathbb{E}[y_i^t(v)|H_{u_i}^{t-1}] E[yit(v)∣Huit−1]是在历史信息的条件下来捕获项目联系的。
有了目标函数(2)之后,模型可以进行全面的训练,没有任何偏差,它需要获取 H u i t − 1 H_{u_i}^{t-1} Huit−1和所有的 V \mathcal{V} V中的项目之间的真实联系。然而在实际上,用户的反馈仅仅在一小部分 V \mathcal{V} V上进行了收集,这使得目标函数(2)无法计算。为了在一个有效的方式下学习一个无偏模型,作者设计了如下的目标函数:
这里,基于图二(b)中的因果图,一个项目的曝光偏差或者选择偏差与之前的项目和反馈有关,因此曝光或者选择概率 p ( v i t ∣ H u i t − 1 ) p(v_i^t|H_{u_i}^{t-1}) p(vit∣Huit−1)是以历史信息为条件。通常, 1 p ( v i t ∣ H u i t − 1 ) \frac{1}{p(v_i^t|H_{u_i}^{t-1})} p(vit∣Huit−1)1被叫做逆倾向因子(IPS)。局部损失 δ ′ s \delta's δ′s是沿着用户和时间维度进行累计的。该目标函数全部基于观测数据,在实际中是可解的。为了无偏性,作者提出了以下理论:
理论1
目标函数(3)是一个对理想的学习目标函数(2)的无偏估计器,即 E [ L ^ 1 ] = L ∗ \mathbb{E}[\hat{L}_1]=L^* E[L^1]=L∗。
附录中,作者给出了证明过程。
减少
L
^
1
\hat{L}_1
L^1的方差
以前的工作已经证明了基于倾向的方法常常会产生较高的方差问题[24,25]。为了消除这个问题,作者使用了剪枝策略来降低
L
^
1
\hat{L}_1
L^1的方差,推导出以下的目标函数:
这里的 M M M是超参,控制着剪枝程度。为了展示减少方差的效果,作者又提出了:
理论2
L ^ 1 , L ^ 2 \hat{L}_1,\hat{L}_2 L^1,L^2的方差以及其之间的差别为:
这里的 δ i t \delta_{it} δit表示 δ ( b t , E [ y i t ( v i t ) ∣ H u i t − 1 ] ) \delta(b^t,\mathbb{E}[y_i^t(v_i^t)|H_{u_i}^{t-1}]) δ(bt,E[yit(vit)∣Huit−1])
理论2的证明在附录中。目标函数 L ^ 2 \hat{L}_2 L^2的方差比 L ^ 1 \hat{L}_1 L^1的方差低,所以新的目标函数存在偏差。
理论3
L ^ 2 \hat{L}_2 L^2和 L ∗ L^* L∗的比较如下:
这里的
δ
i
t
\delta_{it}
δit表示
δ
(
b
t
,
E
[
y
i
t
(
v
i
t
)
∣
H
u
i
t
−
1
]
)
\delta(b^t,\mathbb{E}[y_i^t(v_i^t)|H_{u_i}^{t-1}])
δ(bt,E[yit(vit)∣Huit−1]),
1
(
⋅
)
1(\cdot)
1(⋅)是指示函数。
证明过程见附录。
对于理论2和理论3,可以看到剪枝策略可以有效地提供了目标函数对于偏差和方差的权衡。如果将M设置的足够小, L ^ 2 \hat{L}_2 L^2就会退化成 L ^ 1 \hat{L}_1 L^1。同时, L ^ 2 \hat{L}_2 L^2的期望跟 L ∗ L^* L∗也会相等,但是方差变大,使得在有限的样本容量下很容易偏离理想的目标。如果将M设置得过大,方差减小,但是偏差增大。通过剪枝策略,适当地调节M,模型可以更好地适应不同的应用。
3.3 隐混杂建模
在实际的推荐系统中,存在着很多未观测到的因素同时影响用户反馈和项目曝光(或者选择)概率,例如促销活动或者用户情绪。从用户模型的角度,忽略这些未观测因素可能导致不全面的用户画像以及有限的最终推荐效果。从潜在结果框架的角度来看,未观测的混杂因素可能会使得忽略性假设无效[38],也就是说 v t ⊥̸ y t ( v t ) ∣ H u i t − 1 v^t\not\perp y^t(v^t)|H_{u_i}^{t-1} vt⊥yt(vt)∣Huit−1,因为从 v t v^t vt到 y t ( v t ) y^t(v^t) yt(vt)之间存在未阻塞的路径(见图二(c)),这使得 E [ y i t ( v i t ) ∣ H u i t − 1 ] \mathbb{E}[y_i^t(v_i^t)|H_{u_i}^{t-1}] E[yit(vit)∣Huit−1]无法识别。在以前的工作中[2,32],这样的隐混杂因素可以从观测变量中推理处理。在序列化推荐中,因混杂因子应该基于历史信息动态地调整。作者提出,隐混杂因子应该被总结为一个表示向量 z i t z_i^t zit,然后每一步 t t t,通过历史信息 H u i t − 1 H_{u_i}^{t-1} Huit−1推导出该向量,也就是 z i t = g ( H u i t − 1 ) z_i^t=g(H_{u_i}^{t-1}) zit=g(Huit−1),这里的 g g g是一个门循环单元。
根据图二(c)中的因果图,学习目标函数被改进为:
其IPS剪枝的版本为:
在这些目标函数中,潜在输出结果是通过将隐混杂因子 z i t z_i^t zit考虑在内来进行预测。因为隐混杂因子 z i t z_i^t zit影响着对 v i t v_i^t vit的曝光(或者选择)。作者同时也将该混杂向量表示与倾向得分结合,即 p ( v i t ∣ H u i t − 1 , z i t ) p(v_i^t|H_{u_i}^{t-1},z_i^t) p(vit∣Huit−1,zit)。
以上的内容,作者使用潜在结果框架形式化了序列推荐任务,使得我们可以理解数据偏差机制以及通过逆倾向得分去修正它。此外,潜在结果框架也允许我们感知存在于推荐系统中,由复杂的用户个性造成的隐混杂因子。通过对隐混杂因子建模,模型可以更加鲁棒并且在捕获项目联系时更加高效。
3.4 模型精确化
作者提出一个三通道门控循环单元架构来进行无偏序列推荐。如图二(d)所示,在本模型中有三个GRUs。
第一个GRU是负责对隐混杂因子建模。从直觉上讲,隐混杂因子在不同的历史上下文中应该是个性化而且是动态的。因此,作者使用了GRU的隐藏状态,该状态循环总结历史信息,来表示隐混杂因子,如下:
z i t = GRU L ( u i , v i t − 1 , b i t − 1 , z i t − 1 ) (11) z_i^t = \text{GRU}_L(u_i, v_i^{t-1},b_i^{t-1},z_i^{t-1})\tag{11} zit=GRUL(ui,vit−1,bit−1,zit−1)(11)
这里的 u i , v i t − 1 u_i,v_i^{t-1} ui,vit−1以及 b i t − 1 b_i^{t-1} bit−1分别是在 t − 1 t-1 t−1步时的用户ID、项目ID和用户反馈。 L L L标志着隐混杂因子建模任务。作者使用GRU来简写下述在门卷积单元中的计算规则:
这里的 e v i t − 1 e_{v_i^{t-1}} evit−1和 m b i t − 1 m_{b_i^{t-1}} mbit−1分别是项目 v i t − 1 v_i^{t-1} vit−1以及反馈 b i t − 1 b_i^{t-1} bit−1的嵌入。 s i t − 1 s_i^{t-1} sit−1是更新门, r i t − 1 r_i^{t-1} rit−1是重置门,每个都是通过对输入的拼接施加sigmoid函数 σ ( ⋅ ) \sigma(\cdot) σ(⋅)来获得的。 z ^ i t \hat{z}_i^t z^it是循环记忆内容, z i t z_i^t zit是输出的隐混杂表示。 ⨀ \bigodot ⨀是element-wise乘积, [ ⋅ , ⋅ ] [\cdot,\cdot] [⋅,⋅]是拼接操作。 Tanh ( ⋅ ) \text{Tanh}(\cdot) Tanh(⋅)是双曲线切线激活函数, W s , W r , W h W_s,W_r,W_h Ws,Wr,Wh是需要习得的参数。
第二个GRU是被用户序列偏好建模使用,称作 GRU U \text{GRU}_U GRUU。每一步的输入不仅仅包括用户、项目以及用户反馈,还包括从 GRU L \text{GRU}_L GRUL中获得的隐混杂因子 z i t z_i^t zit。每一步的隐藏状态被循环地计算:
这里的精确度计算规则与等式(12)-(15)类似,但是每一步的输入是 e v i t − 2 + m b i t − 1 + z i t e_{v_i^{t-2}}+m_{b_i^{t-1}}+z_i^t evit−2+mbit−1+zit。为了优化 L ^ 1 , L ^ 2 , L ^ 3 \hat{L}_1,\hat{L}_2,\hat{L}_3 L^1,L^2,L^3以及 L ^ 4 \hat{L}_4 L^4,作者通过参数化模型预测了期望输出 E [ y i t ( v i t ) ∣ H u i t − 1 , z i t ] \mathbb{E}[y_i^t(v_i^t)|H_{u_i}^{t-1},z_i^t] E[yit(vit)∣Huit−1,zit]:
最后,使用二元交叉熵来进行模型优化:
在 L ^ 1 , L ^ 2 \hat{L}_1,\hat{L}_2 L^1,L^2中, z i t z_i^t zit是被忽略的。
第三个GRU是用来做IPS估计的,被称为 GRU I \text{GRU}_I GRUI。循环操作和 p ( v i t ∣ H u i t − 1 , z i t ) p(v_i^t|H_{u_i}^{t-1},z_i^t) p(vit∣Huit−1,zit)表示为:
GRU I \text{GRU}_I GRUI的计算规则与等式(16)类似。 E E E是项目嵌入矩阵, W W W是将 s i t s_i^t sit和 E E E投影成 ∣ V ∣ \vert \mathcal{V}\vert ∣V∣维向量的参数矩阵。 [ ⋅ ] i [\cdot]_i [⋅]i选择向量的第i个元素。 z i t z_i^t zit是从 GRU L \text{GRU}_L GRUL得出的, L ^ 1 , L ^ 2 \hat{L}_1,\hat{L}_2 L^1,L^2中该向量是被忽略的。仍然使用交叉熵来进行模型优化。但是 GRU I \text{GRU}_I GRUI旨在预测一个项目是否被曝光或者被选择,因此预测目标是项目 v i t v_i^t vit,而不是用户反馈 b i t b_i^t bit。
完整的学习过程被总结在算法一种。开始,模型参数被随机初始化。然后,对于
L
^
1
\hat{L}_1
L^1和
L
^
2
\hat{L}_2
L^2,作者通过固定
GRU
I
\text{GRU}_I
GRUI独立地预训练
L
I
P
S
L_{IPS}
LIPS,学习模型参数。对于
L
^
3
\hat{L}_3
L^3和
L
^
4
\hat{L}_4
L^4,交替优化它们和
L
I
P
S
L_{IPS}
LIPS,考虑到它们和
GRU
L
\text{GRU}_L
GRUL共享相同的参数。当训练
L
^
3
\hat{L}_3
L^3或者
L
^
4
\hat{L}_4
L^4的时候,IPS是被预计算过的,通过IPS的梯度经过了裁剪。
4 实验
作者设计实验来解释模型的有效性,集中于回答以下的研究问题:
问题1:模型是否获得了比目前最先进的模型更好的表现?
问题2:剪枝策略和隐混杂因子建模策略的效果如何?
问题3:剪枝阈值如何影响最终的推荐效果?
问题4:在不同的存偏测试集下,模型的表现如何?
问题5:不同的IPS估计方法的影响如何?
4.1 实验开始
数据集
实验基于合成数据集和真实世界数据集。遵循去偏推荐领域的常见做法[2],[24]来构建合成数据集。以非参数的方式循环模拟用户的序列行为。作者首先初始化一个项目序列 { v 1 , v 2 , ⋯ , v T } \{v^1,v^2,\cdots, v^T\} {v1,v2,⋯,vT},假设 s u , t s_{u,t} su,t是项目 v t v^t vt在步骤 t t t被曝光给用户 u u u的概率,那么我们有 s u , t = σ ( γ o t − 1 ∑ j = 1 t − 1 α u , j ⋅ s u , j + η t ) s_{u,t}=\sigma (\frac{\gamma_o}{t-1}\sum\limits_{j=1}^{t-1}\alpha_{u,j}\cdot s_{u,j} + \eta_t) su,t=σ(t−1γoj=1∑t−1αu,j⋅su,j+ηt),这里的 α u , j ∼ N ( 1 − ( j / t ) , ( 1 / t ) 2 ) \alpha_{u,j}\sim \mathcal{N}(1-(j/t),(1/t)^2) αu,j∼N(1−(j/t),(1/t)2)定义为之前的交互对当下行为的影响。 η t ∼ N ( 0 , 0.0 1 2 ) \eta_t\sim \mathcal{N}(0,0.01^2) ηt∼N(0,0.012)是噪声参数。 γ o \gamma_o γo是权重参数。对于第一步, v 1 v^1 v1是根据正态分布进行曝光。相同地,作者定义 r u , t r_{u,t} ru,t为用户对当下的项目 i t i_t it做出正反馈的概率。之后又有 r u , t = σ ( γ y t − 1 ∑ j = 1 t − 1 β u , j ⋅ ζ u , i + ϵ t + β u , t ⋅ s u , t ) r_{u,t}=\sigma(\frac{\gamma_y}{t-1}\sum\limits_{j=1}^{t-1}\beta_{u,j}\cdot \zeta_{u,i}+\epsilon_t + \beta_{u,t}\cdot s_{u,t}) ru,t=σ(t−1γyj=1∑t−1βu,j⋅ζu,i+ϵt+βu,t⋅su,t),这里的 ζ u , j = ω r u , j + ( 1 − ω ) s u , j \zeta_{u,j}=\omega r_{u,j}+(1-\omega)s_{u,j} ζu,j=ωru,j+(1−ω)su,j。 o m e g a omega omega是结合用户以及项目信息的参数。 β u , j \beta_{u,j} βu,j和 ϵ t \epsilon_t ϵt是根据和 α u , j \alpha_{u,j} αu,j以及 ζ t \zeta_t ζt相同的分布产生的。 γ y \gamma_y γy是权重参数。
对于 { v 1 , v 2 , ⋯ , v T } \{v^1,v^2,\cdots,v^T\} {v1,v2,⋯,vT}中的每个项目,作者分别从 Ber ( s u , t ) \text{Ber}(s_{u,t}) Ber(su,t)以及 Ber ( r u , t ) \text{Ber}(r_{u,t}) Ber(ru,t)中采样了曝光指标 o u , t o^{u,t} ou,t以及用户的底层偏好 y u , t y^{u,t} yu,t,这里的 Ber ( ⋅ ) \text{Ber}(\cdot) Ber(⋅)代表伯努利分布。如果 o u , t = 0 o^{u,t}=0 ou,t=0,那么 i t i_t it就会被从序列中移除。如果 o u , t = 1 o^{u,t}=1 ou,t=1,保留 i t i_t it,并且观测的用户反馈为 b u , t = y u , t b^{u,t}=y^{u,t} bu,t=yu,t。通过重复采样操作,可以模拟用户的序列行为,并且获得合成数据集。为了综合地衡量模型,作者模拟了四种不同的数据集。前两个数据集包含1000个用户和1000个项目,这里的 γ 0 \gamma_0 γ0分别被设置为-100和-40, γ y \gamma_y γy被固定为1。另外两个数据集,设计了3000个用户以及3000个项目,将 γ o \gamma_o γo分别设为-500和-200, γ y \gamma_y γy设置为1。将这些数据集表示为 S i m ( 1000 − A ) , S i m ( 1000 − B ) , S i m ( 3000 − A ) Sim(1000-A),Sim(1000-B),Sim(3000-A) Sim(1000−A),Sim(1000−B),Sim(3000−A)以及 S i m ( 3000 − B ) Sim(3000-B) Sim(3000−B)。对于真实世界的实验,作者选择了以下的数据集:MovieLens 1M是一个包含用户对不同电影偏好的数据集。Mind是微软发布的新闻数据集。 W e c h a t Wechat Wechat是企业数据集,包含用户对不同视频的偏好。Amazon是一个电商数据集,作者集中于音乐和视频领域。 B a n d i t Bandit Bandit是最近发布的无偏推荐数据集,提供了模型评估的统一测试集合。对于每个数据集,作者根据时间顺序将每个用户的交互项目组织成序列。之后,对于MovieLens 1M以及Amazon,将大于3的评分视为正反馈,其余视为负反馈。对于其他数据集,将推荐了但是没有被点击的项目视为负反馈,其他视为正反馈。
对数据集的统计总结为表一。可以看到,数据集可以覆盖不同的应用领域,数据的稀疏性差别很大,可以很公平地衡量不同的模型,并且解释算法的泛化性。
基线
BPR[21]是很有名的建模用户隐反馈的推荐算法。
ConvNCF[15]是基于卷积神经网络的神经推荐模型。
NPE[19]是基于个性化嵌入的序列推荐模型。
FPMC[22]是基于马尔可夫链的序列推荐模型。
STAMP[18]是同时建模用户长、短期偏好的序列推荐模型。
NARM[17]是一个著名的基于注意力机制的序列推荐模型。
UIR[24]是基于IPS的无偏推荐模型。
ATR[23]也是无偏推荐模型,该模型的作者提出了一个新的tri-training三级训练框架来进行数据除偏。实验中,作者将其模型表示为USR,即无偏的序列推荐模型(unbiased sequential recommender)。在包括STAMP、NARM以及BERT4Rec的序列模型,作者也输入了用户反馈来进行公平的比较。 In specific, we project each type of feedback into an embedding, and add it with the item embedding at each step, which is similar to our model.
实现细节
除偏推荐模型需要在无偏测试集上进行验证[24]。对于Bandit,直接使用原始数据提供的统一数据来进行评估。其他的数据集,使用50%的用户交互来进行模型训练。为了模拟无偏数据集,作者承接了之前的工作[23],基于逆项目频率来从剩下的50%的交互中进行重采样。假设项目
i
i
i在数据中出现
s
i
s_i
si次,则根据与
max
j
∈
V
s
j
s
i
\frac{\max_{j\in \mathcal{V}}s_j}{s_i}
simaxj∈Vsj成比例的概率进行采样。重采样结束后,20%的数据用来做验证集,剩余的用作测试集。对于评估,作者承接了[23]和[24]的工作,首先计算所有项目的排序分数,然后前五个项目被用来与测试集获得积极项目进行比较。常用的评价度量有F1和NDCG。
对于超参数,作者通过grid search来决定。用户/项目的嵌入维度在{32, 64, 128, 512} 之间搜索。学习率在{ 1 0 − 1 , 1 0 − 2 , 1 0 − 3 , 1 0 − 4 10^{-1},10^{-2},10^{-3},10^{-4} 10−1,10−2,10−3,10−4}之间搜索。batch的大小在{64,128,256,512,1024,2048}之间调整,剪枝参数M从0.01到0.1,步长为0.01。