KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020

KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
论文链接:https://arxiv.org/pdf/2003.05753.pdf
代码链接:https://github.com/xiangwang1223/kgpolicy

摘要

合理的处理缺失数据在推荐系统中是的一个根本挑战。 目前的大多数工作都是从未观察到的数据中进行负采样,以提供带有负信号的推荐模型训练 。 然而,现有的负采样策略,无论是静态的还是自适应的,都不足以产生高质量的负样本-这既有助于模型训练,也有助于反映用户真实的需求。

在这项工作中,我们假设项目知识图(KG),它提供了项目和KG实体之间的丰富关系,可以用来推断有价值的负样本。

本文开发了一种新的负采样模型-知识图策略网络(KGPolicy),它作为一种强化学习智能体来探索高质量的负样本。 具体来说,通过进行我们设计的探索操作,它从用户项目正项交互中导航,自适应地接收知识感知的负信号,并最终产生一个负项目训练推荐系统。 我们在装有KGPolicy的矩阵分解模型上进行了测试。

1、引言

推荐系统已广泛应用于实际应用中,以提高用户满意度和参与度。 从历史用户-项目交互中训练推荐模型,正例和负例的用户反馈,被要求以确保模型生成合理的个性化排序[13,23,33]。 然而,大多数互动都是以隐反馈的形式进行的,例如点击和购买,这只提供信号的正反馈。 这就给推荐模型学习带来了根本的挑战—如何从仅有正例数据中提取负例数据-这也被称为一类问题。

由于负面信号潜伏在未观察到的数据中,一个普遍的解决方案是执行负采样,这比将所有未观察到的相互作用视为负例更有效。 现有的负采样策略可分为三种类型:静态采样器、自适应采样器和具有额外行为的增强采样器。然而,每种方法都有一些固有的局限性。

鉴于负采样的基本作用和现有方法的局限性,我们在本工作中将重点放在负采样上,旨在通过引入其他类型的数据来提高其质量。高质量的负采样应该满足两个要求:1)信息性,这意味着目前的模型对它们的评分相对较高,因此将它们更新为负例将会我显著地改变模型参数,2)事实,这意味着它们是真正的负例,即用户以前知道它们(通过系统或其他方式暴露),但没有选择它们。由于自适应采样器可以实现对信息的要求,关键的挑战在于从缺失的数据中发现真实的负例,这些数据本质上缺乏真实性。

在这项工作中,我们假设知识图(KG),它引入了项目和现实世界实体之间的额外关系(来自项目属性或外部知识),可以从未观察到的数据中推断真实的负例。虽然将KG纳入推荐中最近得到了广泛的研究,但这些研究只利用KG建立预测模型,以前的工作没有使用它来增强负采样器。

为此,我们提出了一种新的负采样模型KGPolicy(简称知识图策略网络),该模型采用强化学习(RL)代理来探索KG以发现高质量的负采样。核心是设计的探索操作,它从用户项正例探索,选择两个顺序邻居(例如,一个KG实体和一个项目)访问。 这样的两跳路径可以捕捉到知识感知负例。为了实现这一目标,我们设计了一个邻居注意力模块,该模块指定了以正例用户项对为条件的一跳和两跳邻居的不同重要性,以便自适应地捕获对KG实体的偏好,并产生潜在的项目。 通过递归地进行这种探索,KGPolicy学会为目标正例交互选择潜在的负例。 此外,路径历史作为支持证据,揭示了为什 所选项目被视为负实例。为了证明我们的方法,我们使用了一个简单的线性模型,矩阵分解(MF),作为推荐者,使用KGPolicy训练该模型。

总之,这项工作作出了以下主要贡献:
1) 据我们所知,我们是第一个将知识图纳入负抽样的,目的是选择高质量的负例与正例用户项交互配对。
2) 我们开发了一种用于负采样的强化学习KGPolicy,它有效地学习了用多跳探索路径得到高质量的负例。
3) 我们对三个基准数据集进行了广泛的实验,证明了KGPolicy在抽样有效性和知识条目使用方面的优势。

2、任务描述

我们首先呈现交互数据和知识图谱,制定我们的任务,并强调多跳路径中的负例。

Interaction DataO+={(ui)uUiI}\mathcal{O}^+=\{(u,i)|u∈\mathcal{U},i\in\mathcal{I}\}是隐式反馈,其中每个(ui)(u,i)对表示用户uu和正项ii之间的历史交互,U\mathcal{U}I\mathcal{I}分别表示用户和项目的集合。

Knowledge Graph 在最近的研究工作启发下,我们以知识图谱(KG)的形式组织项目属性或外部知识以及交互数据。 正如先前的工作所显示的,用户项交互数据中的项目可以与KG中的相应实体对齐。

Task Description 建立了用户行为和项目知识,旨在利用这些丰富的信息来指导采样器的学习。 我们的目标是知识感知的负采样,如下:jfS(u,i,G)j\sim f_S(u,i,\mathcal{G})

fS()f_S(\cdot) 是用ΘSΘ_S参数化的采样器。 它产生对未观察项目的经验分布,以产生知识感知的负采样项目jj。 此外,正例ii的排他性KG实体{p(ip)G(jp)G}\{p|(i,p)∈\mathcal{G},(j,p)\notin\mathcal{G}\}有助于解释为什么目标用户uu对负例jj不那么感兴趣。 例如, {p2}\{p_2\}可能是用户u1u_1行为在项目i1i_1i4i_4之间差异的原因。
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020

Negative Signals in Multi-hop Paths 为此,我们旨在探索KG的结构信息,特别是节点之间的高阶连通性,以发现合适的负例。 对于正例(ui)(u,i)交互,我们可以遍历根节点ii的路径,终止于未观察到的项jj,并将多跳连接视为iijj之间的关系。 然而,很明显,不同的路径在发现负例的过程中有不同的置信度,并不是所有的路径都有助于提取负例信号。iejwitheEi\to e'\to j\quad\text{with}\quad e'\in\mathcal{E}

1)informative 由于两个Items iijj共享相同的KG实体ee',它们可能具有相似的表示,它们的成对比较可能在推荐参数上提供较大的梯度。
2)reflective of user real tastes 因为如果ee'uu感兴趣的一个重要因素,jj可能已经通过其他方式(例如搜索、营销或广告系统)暴露于uu。 然而,uu选择了ii而不是jj,这表明uu可能真的不那么对jj感兴趣。 因此,(uj)(u,j)被认为是一个更好的负例用于训练推荐模型。 此外,如果jj是以较低的置信度为负例估计的,我们可以通过扩展来继续探索这样的原子路径。 例如,从iejeji→e→j'→e'→j中可以发现jj'项,并且具有较高的负置信度。

3、KGPolicy模型

如下图所示,该框架由一个推荐器和一个采样器组成。 然后,详细阐述了采样器KGPolicy,其目标是学习探索到KG上的负例。进行探索的操作分为三个步骤。

1) 图形学习模块,它预先准备节点的高质量表示。
2) 邻居注意力机制模块 它利用两个注意模型进行路径查找,并确定下一个访问哪个合适的节点。
3)neighbor pruning module 这减少了搜索空间,以解决上述模块中的计算过载。 反复进行这样的探索,KGPolicy最终能够产生一个潜在的负例项目来配对正例目标。

最后,KGPolicy和推荐被共同训练以提供推荐。
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020

3.1、Recommender

为了证明我们的知识感知采样器的有效性,我们使用了一个线性和简单的模型,矩阵分解(MF),作为推荐模型。 更具体地说,MF将用户和项目的ID信息参数化为嵌入,并使用用户和项目嵌入的内积作为预测函数来估计用户uu选择项目ii的可能性。y^ui=fR(u,i)=ruri\hat{y}_{ui}=f_R(u,i)=\textbf{r}_u^{\top}\textbf{r}_i其中,y^ui\hat{y}_{ui}(u,i)(u,i)相互作用的预测分数。将fR()f_R(\cdot)抽象为具有推荐参数ΘR\Theta_R的交互函数;ruRd\textbf{r}_u\in R^driRd\textbf{r}_i\in R^d分别是用户uu和项目ii的ID嵌入表示,dd是嵌入维度。

我们使用成对的BPR损失作为目标函数来优化和学习ΘRΘ_R的参数。minΘR(u,i)O+EjfS(u,i,G)lnσ(fR(u,i)fR(u,j))\text{min}_{\Theta_R}\sum_{(u,i)\in \mathcal{O}^+}\mathbb{E}_{j\sim f_S(u,i,\mathcal{G})}-\text{ln} \sigma(f_R(u,i)-f_R(u,j))Δu,i,j=1σ(fR(u,i)fR(u,j))\Delta_{u,i,j}=1-\sigma(f_R(u,i)-f_R(u,j))负样本的信息性可以测量为梯度大小。 这反映了成对偏好(uij)(u,i,j)对改善ΘRΘ_R的贡献。因此, 低质量的负例,被分配到比ii更小的分数,使梯度幅度接近0,因此对优化贡献很小。 所以,和正例相比,一个信息丰富的负面信息有望接近正例的预测分数。

3.2、Knowledge-aware Sampler

我们以KG作为取样器的环境。 这使我们能够利用项目和KG实体之间的丰富关系,特别是高阶连通性,以探索更合适的负例。 基本思想是,以目标用户为条件,从正例的项目开始,学会在KG结构上探索,然后沿着探索的路径产生可能的负例。 在大规模的KGs中,无法列举所有未观察到的项目的可能路径,因为它需要劳动密集型的特征工程,存储这些路径需要大量的内存,消耗大量时间。 因此,我们设计了一种智能采样器作为强化学习(RL),对KG进行自动探索。

Sampling as Reinforcement Learning

我们将采样作为马尔可夫决策过程(MDP)M={SAPR}M=\{S,A,P,R\}, 其中A={a}A=\{a\}是从探索路径操作导出的一组动作(action),S={s}S=\{s\}是探索过程中抽象路径的一组状态(state),PP是状态转移概率矩阵,RR是奖励作用(reward)。 我们介绍了RL的KG环境(相当于environment)的关键要素如下:

Exploration Operation 为了获得知识图谱中的原子路径。 我们定义了一种新的探索操作,包括两个连续的边。比如说:在步骤tt处,at=(etetet+1)a_t=(e_t\to e'_t\to e_{t+1})表示从项目ete_t出发到et+1e_{t+1}的两跳路径,其中(et,et),(et,et+1)G(e_t,e'_t),(e'_t,e_{t+1})\in\mathcal{G}et,et+1Ie_t,e_{t+1}\in\mathcal{I}通过内部节点ete'_t连接。这种操作认为KG中的实体ete'_t暴露于目标用户uu的置信度,而项目et+1e_{t+1}的置信度为负值。随着探索操作的推进,采样器fS()f_S(\cdot)生成一个2T2T跳的路径(a1,,aT)(a_1,\cdots,a_T),依次产生TT个项目作为policy。π=(e1,e2,,eT)\pi=(e_1,e_2,\cdots,e_T)其中正例项目iia0a_0中的第一个节点;ete_ttt步骤后的最后一个项目节点。在最后一步TT上,以eTe_T作为最终的负例来优化推荐器。改变探索操作的数量TT允许我们灵活调整搜索空间,以保证负例的多样性。我们默认将TT设置为2,并评估TT的影响。

State 在步骤tt中,以目标用户uu为条件的状态sts_t被定义为二元组(u,et)(u,e_t),其中ete_t是采样器当前访问的节点。因此,我们可以将步骤tt之前的探索过程形式化为{s0,a1,s1,,at,st}\{s_0,a_1,s_1,\cdots,a_t,s_t\},其中初始状态s0s_0{u,i}\{u,i\}

Action 状态sts_t的action空间AtA_t由从节点ete_t开始的所有可能的探索操作路径组成,不包括历史轨迹。在探索的过程中,随着路径的变化其对应的邻居节点是不同的,action空间是动态的。

State Transition Dynamics 给定在state sts_t处的探索操作ata_t,向下一个st+1s_{t+1}状态的转换被定义为:P(st+1=(u,et+1)st=(u,et),at=(etetet+1))=1\mathbb{P}\left(s_{t+1}=(u,e_{t+1})|s_t=(u,e_t),a_t=(e_t\to e'_t\to e_{t+1})\right)=1

Reward 奖励RetR_{e_t}衡量推荐项目ete_t的质量。w.r.t步骤tt处的成对偏好(u,i,j)(u,i,j)。然而,没有负信号的基本真理来确认uu是否真的对ete_t缺少兴趣,我们依靠推荐模型的反馈来定义soft reward function。在这里我们考虑两个因素:

  1. Prediction Reward:负例ete_t的预测是对抗性采样方法中的typical reward,证明了ete_tuu之间的匹配分数。从推荐的角度鼓励采样器产生具有更高预测分数的项目。从信息性的角度来看,一个分数接近正例的项目能够提供更大的梯度幅度。
  2. Similarity Reward:直观地说,如果负例ete_t相似于正例,则ete_t更有可能作为用户的负例。强制推荐采样这样的ete_t给用户uu,前提是用户uu之前对该ete_t不感兴趣。

考虑到这两个因素,我们设计了一个奖励函数:R(et)=fR(u,et)+gR(i,et)\mathcal{R}(e_t)=f_R(u,e_t)+g_R(i,e_t)其中,fR(u,rt)=ruretf_R(u,r_t)=\textbf{r}_u^{\top}\textbf{r}_{e_t}gR(i,et)=riretg_R(i,e_t)=\textbf{r}_i^{\top}\textbf{r}_{e_t}分别表示预测和相似性奖励;ru\textbf{r}_uri\textbf{r}_iret\textbf{r}_{e_t}分别是uuiiete_t的推荐ID嵌入。为这两个奖励成分设定了同等的重要性,使得它们的线性组合由超参数来控制。

Objective Function 为了学习一个随机策略ππ来优化采样器参数ΘSΘ_S,我们最大化了预期的累积折扣奖励如下:maxΘS(u,i)O+Eπ[t=1Tλt1R(et)]\text{max}_{\Theta_S}\sum_{(u,i)\in\mathcal{O}^+}\mathbb{E}_{\pi}\left[\sum_{t=1}^T\lambda^{t-1}\mathcal{R}(e_t)\right]

3.3、Knowledge Graph Policy Network

我们引入一个网络来生成策略ππ,以及对每一项行动(action)的置信度。 首先,我们描述了一个图形学习模块,它为每个节点生成向量表示,然后在表示上构建一个邻居注意模块,以选择一个合适的邻居作探索访问,它与邻居剪枝模块耦合,以减少探索空间。

3.3.1、Graph Learning Module

在最近的图神经网络(GNNs)的启发下,我们使用G上的图GraphSage和用户项二部图O,目的是嵌入用户、项目和KG实体的向量表示。

eg. 在第ll个图卷积层中,以节点ee为起始节点接收从其邻居传播的信息以更新其向量表示形式,如:he(l)=ρ(W(l)(he(l1)hNe(l1)))h_e^{(l)}=\rho\left(W^{(l)}\left(h_e^{(l-1)}||h_{\mathcal{N}_e}^{(l-1)}\right)\right)其中he(l)Rdlh_e^{(l)}\in R^{d_l}是嵌入传播ll步后的表示,dld_l表示嵌入大小,W(l)Rdl×2dl1W^{(l)}\in R^{d_l\times 2d_{l-1}}是提取有用信息的权重矩阵;||是连接操作,ρ\rho是一个非线性**函数集,这里使用LeakyReLU;he(0)h_e^{(0)}表示ID嵌入,而hNe(l1)h_{\mathcal{N}_e}^{(l-1)}是从ee的邻居传播的信息。如:hNe(l1)=eNe1NeNehe(l1)h_{\mathcal{N}_e}^{(l-1)}=\sum_{e'\in\mathcal{N}_e}\frac{1}{\sqrt{|\mathcal{N}_e||\mathcal{N}_{e'}|}}h_{e'}^{(l-1)}其中Ne={e(e,e)G(e,e)O+}\mathcal{N}_e=\{e'|(e,e')\in\mathcal{G}\text{或}(e,e')\in\mathcal{O}^+\}是与ee连接的节点集。在叠加这样的LL层后,我们得到了he=he(l)h_e=h_e^{(l)}的每个节点的最终表示。对比初始的ID嵌入,GNN模型将图结构注入到表示学习中,以便于促进进一步的探索。

3.3.2、Neighbor Attention Module

在state st=(u,et)s_t=(u,e_t),已经为节点ete_t及其邻居Net\mathcal{N}_{e_t}建立了表示,我们需要有效地搜索相关的action以获取潜在的项目。

eg.我们分解一个路径探索操作at=(etetet+1)a_t=(e_t\to e'_t\to e_{t+1})分为两个步骤:
1)从ete_t中选择一个传出边到内部节点ete'_t,即(et,et)(e_t,e'_t)
2)通过前面的历史步骤确定第三个节点et+1e_{t+1}。这一过程被描述如下:P(atst)=P((et,et)st)P((et,et+1st,(et,et))\mathbb{P}(a_t|s_t)=\mathbb{P}((e_t,e'_t)|s_t)\cdot\mathbb{P}((e'_t,e_{t+1}|s_t,(e_t,e'_t))其中P(atst)\mathbb{P}(a_t|s_t)表示置信度或et+1e_{t+1}为负例的概率;P(et,et)\mathbb{P}(e_t,e'_t)P(et,et+1)\mathbb{P}(e'_t,e_{t+1})分别对每个探索步骤的置信度进行了建模。在这里,我们实现这两个探索步骤,通过两个注意力模型:

Attentive KG Neighbors
对于当前项目节点ete_t,我们需要估计其相关的KG实体Net\mathcal{N}_{e_t}暴露于用户的可能性。直观地说,用户对各种KG实体的关注是不同的。例如,在电影中,用户可能比Writer实体更关心导演实体。这表明具有相同导演实体的其他电影更有可能暴露给用户。进一步来说,对于不同的电影,他的兴趣点可能会改变,而且是动态的。例如,一个用户看了两部电影,因为他分别是被导演和明星实体所吸引。这里,我们设计一个注意力模型,自适应地指定对当前状态敏感的邻居的重要性。

对于从ete_t到邻居etNete'_t\in\mathcal{N}_{e_t}的每个传出边,我们生成其向量表示为hetheth_{e_t}\odot h_{e'_t},用户表示huh_u,以将其重要性表示为如下公式:p(et,et)=huρ(hethet)p(e_t,e'_t)=h_u^{\top}\rho(h_{e_t}\odot h_{e'_t})因为注意力评分取决于用户空间中uu和实体空间ete_t之间的距离,为了避免有的距离太大而引起的权重干扰,所以要进行归一化处理。公式如下:P((et,et)st)=exp(p(et,et))etNetexp(p(et,et))\mathbb{P}((e_t,e'_t)|s_t)=\frac{exp(p(e_t,e'_t))}{\sum_{e''_t\in\mathcal{N}_{e_t}}exp(p(e_t,e''_t))}

Attention Item Neighbors
p(et,et+1)=huρ(hethet+1)p(e'_t,e_{t+1})=h_u^{\top}\rho(h_{e'_t}\odot h_{e_{t+1}})P((et,et+1)st,(et,et))=exp(p(et,et+1))et+1Netexp(p(et,et+1))\mathbb{P}((e'_t,e_{t+1})|s_t,(e_t,e'_t))=\frac{exp(p(e'_t,e_{t+1}))}{\sum_{e''_{t+1}\in\mathcal{N}_{e'_t}}exp(p(e'_t,e''_{t+1}))}因此,我们可以生成一个策略ππ的每个探索操作的负例概率。

3.3.3、Neighbor Pruning Module

虽然这种对KG的探索将搜索空间从整个项目集缩小到了正例项目的多跳邻居,但一些节点的邻居规模(例如,流行项目或通用KGconc) 类似于戏剧的体裁)很容易达到数千甚至更大。 进一步阻碍了探索性能。 因此,我们从DNS中得到了启示,并提出了一种能够有效地保持有前途的邻居的剪枝策略。

对于每一个训练过程,我们首先构建一个邻居集合的子集N^eNe\hat{\mathcal{N}}_e\subset\mathcal{N}_e,子集的元素是从Ne\mathcal{N}_e中随机选择的,子集中元素的个数为n1n_1,然后为了保证采样的多样性,再设计一个评分函数g(u,e)=heheg(u,e')=h_e^{\top}h_{e'}N^e\hat{\mathcal{N}}_e中再选择得分最高的n2n_2个实体作为最终的邻居集合N~e\tilde{\mathcal{N}}_e

3.4、模型优化

推荐器Recommender的参数为ΘR={ru,uU,ri,iI}\Theta_R=\{\textbf{r}_u,\forall u\in\mathcal{U},\textbf{r}_i,\forall i\in\mathcal{I}\},采样器Sampler的参数为ΘS={he(0),eE,W(l),l{1,,L}}\Theta_S=\{\textbf{h}_e^{(0)},\forall e\in\mathcal{E},\textbf{W}^{(l)},\forall l\in\{1,\cdots,L\}\}

推荐器Recommender参数优化 固定ΘS\Theta_S,对每一个正例,采样一个负例j=eTj=e_T,输入到推荐器Recommender中,使用随机梯度下降SGD来优化ΘR\Theta_R

采样器Sampler参数优化 固定ΘR\Theta_R,使用以下公式更新ΘS\Theta_SΘSLS=ΘS(u,i)O+Eπ[t=1Tλt1R(et)](u,i)O+1Tt=1T[γt1R(et)ΘSlogP(atst)]\nabla_{\Theta_S}\mathcal{L}_S=\nabla_{\Theta_S}\sum_{(u,i)\in\mathcal{O}^+}\mathbb{E}_{\pi}\left[\sum_{t=1}^T\lambda^{t-1}\mathcal{R}(e_t)\right]\\\simeq\sum_{(u,i)\in\mathcal{O}^+}\frac{1}{T}\sum_{t=1}^T\left[\gamma^{t-1}R(e_t)\nabla_{\Theta_S}\log\mathbb{P}(a_t|s_t)\right]

4、实验

实验中用到的数据集信息如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
参与对比的几种采样方法为:RNS、PNS、DNS、IRGAN、AdvIR、NMRN和RWS。
参与对比的几种基于知识图谱的推荐模型为:NFM、CKE、RippleNet和KGAT。
不同的采样方法效果对比如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020

不同推荐模型的效果对比如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
探索操作的个数效果对比如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
奖励函数的影响对比如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
平均梯度随训练迭代次数的变化趋势如下:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020
case study:
KGPolicy:用于推荐的负采样模型(知识图谱策略网络)WWW 2020

5、展望

  1. 加入更多的辅助信息,例如用户的社交网络和上下文信息,来更好地挖掘用户反馈的负样本采样。
  2. 探索可解释性的负样本采样策略。