【论文笔记】Disentangled Graph Collaborative Filtering --- SIGIR2020

本文提出了一种新的模型DGCF用来理解用户的意图。把嵌入拆成K部分,每一部分分别表示用户的意图。同时使用了独立模型模块来保证每一部分都具有独立性,使得意图不会纠缠在一起。

 

摘要

从历史交互数据中学习用户、物品的表示是协同过滤中重要的一步。当前的嵌入方程利用用户-项目关系来丰富表示,从单个用户-项目实例演变为整体交互图。尽管如此,大多数的模型仍然使用统一的方式处理用户-物品之间的关系,忽略了不同用户意图对采购物品的影响,例如消磨时间、真正感兴趣、给家人买东西等。这种统一的方法对对用户进行建模容易导致次优表示(suboptimal representations),未能对不同的关系进行建模并在表示中分离用户意图。

在本文中,我们特别关注在用户意图的细粒度上的用户-物品关系。我们提出了一个新模型叫做DGCF(Disentangled Graph Collaborative Filtering),来分解表示。通过对每个用户项-物品交互的意图分布建模,我们迭代地完善了意图感知交互图和表示形式。同时,我们鼓励不同意图的独立性。这将导致分离的表示,有效的从每个意图中提取相关的信息。

1 介绍

推荐系统已经在现实生活被被广泛应用。推荐系统中,准确捕捉用户偏好的能力是核心。一个有效的解决方法--协同过滤,它聚焦于历史的用户-物品交互矩阵,假设有相似行为的用户会对物品也有相似的偏好。学习富含信息的表示对提升CF性能是十分重要的。CF的发展也从最早的只使用简单的ID到个人历史,再到现在的利用历史交互图。

尽管这些方法有效,我们认为先前的建模用户项关系的方式不足以发现分离的用户意图。主要原因是现有的嵌入方法不能区分在不同物品上用户的意图,把一个用户-物品交互当成一个独立的数据实例并统一把它们当作在交互图上的一条边来训练神经网络。这忽略了一个基本事实:一个用户有很多种可能来和一个物品有交互,不同的意图会驱使用户有不同的行为。如图所示,用户u看电影i_{1}只是消磨时间,而用户u看电影i_{2}主要是因为是因为她对电影i_{2}的导演感兴趣。所以,过去对用户-物品关系的建模是由限制的:1)不考虑实际的用户意图很容易导致次优表示 2)由于嘈杂行为(如随机点击)通常存在于用户的交互历史中,这会混淆用户的意图并使表示对噪声交互的鲁棒性降低 3)用户的意图会变得模糊和高度纠缠在表示中,从而导致解释性差。(意图不能明确的反映在表示中)

故我们致力于在更精细的用户意图级别建立模型表示。直观的说,有很多意图会影响用户的行为,例如消磨时间、兴趣、给家人买东西。我们需要学习每种用户行为的用户意图分布,总结每种意图的置信度是用户采用某项商品的原因。联合分析所有历史交互的这种分布,我们可以获得一组意图感知的交互图,这进一步提炼了用户意图的信号。但是,由于以下挑战,这并非易事:1)如何在表示中明确地呈现出与每个意图相关的信号还不清楚,而且还没有探索 2)意图之间的独立性影响着解缠的质量,这就需要一个定制的模型

在本文种,我们提出了一个新的模型,DGCF,以用户意图的粒度分解用户和项的表示。特别是,我们首先把每个用户、物品的表示分成块,把每块和一个潜在意图相连。然后使用图解缠模块配合邻居路由和嵌入传播机制。邻居路由利用节点-邻居亲和力来优化意图感知图,突出了用户与项目之间有影响力关系的重要性。然后,在此类图上嵌入传播会更新节点的意图感知嵌入。通过迭代这种分离操作,我们建立了一组意图感知图和分块表示。同时,一个独立建模模块用来鼓励不同的意图是相互独立的。具体而言,在意图感知表示中采用统计量度,距离相关性。在这步最后,我们获得了分离的表示和意向的解释图。

总之,我们做出了一下贡献:

1)我们强调不同的用户项关系在协同过滤中的重要性,并且这种关系的建模可以带来更好的表示和解释性

2)我们提出了一个新的DGCF模型,它在用户意图的更细粒度上考虑用户项关系,并生成分离的表示

3)我们在三个数据上进行了实验,证明了我们的模型对于推荐是十分有效的,潜在用户意图的解构与表征的可解释性。

2 相关工作

首先介绍了CF的表示学习,指出了现有工作和用户-物品关系的不足。之后,本文提出了一种CF分解图表示的任务公式。

2.1协同过滤学习

仅仅通过用户的过去数据发现用户对物品的偏好是协同过滤模型的核心。略。

2.1.1CF的学习范式

在用户-物品id之间存在语义障碍,这些表面特征之间没有重叠,妨碍交互建模。未来缩小这个障碍,许多研究用来是模型学习更加有信息的用户-物品表示。总节起来就是下图:

这里ui是用户-物品的id,e_{u}\in \mathbb{R}^{d}e_{i}\in \mathbb{R}^{d}分别是用户u和物品i的表示。通常使用下面的公式预测,它将预测任务作为同一潜在空间中用户u和物品i之间的相似性估计:

2.1.2CF的表示学习

有很多方法可以应用到CF的表示学习中,

从交互图的角度,我们可以重新审视用户-项目关系,比如用户和项目节点之间的连通性。

总之,用户项目关系可以明确表示为连通性:单个ID(即无连通性),个人历史记录(即一阶连通性),整体交互图(高阶连通性)。

2.1.3限制

尽管取得了成功,但是这些统一建模用户-物品关系不足以反映出用户的隐藏意图。这限制了CF表示的可解释性和理解性。具体来说,现有的嵌入表示方法都是使用黑盒神经网络应用在关系中(交互图),并且输出表示。不能区别用户购买物品的不同意图,只是假设用户行为背后有统一的动机。但是,这与现实是相违背的。

没有对用户意图进行建模,现有的工作难以提供可解释的嵌入表示、语义理解和什么信息被嵌入进了表示中。总的来说,每个交互(u,i)对于e_{u}的表示都是不可分辨的。结果导致每个行为背后的隐藏意图都被高度纠缠在了嵌入中,模糊意图和特定维度之间的映射。

在推荐中使用解缠表示是非常少见的,知道最近的MacridVAE,他把\beta -VAE应用在了交互数据中,并且实现了对用户的解缠表示。由于\beta -VAE的局限性,只是更具历史物品(用户的一阶邻居)被用在表示中,忽略了用户-物品关系的高阶连通性。

2.2任务制定

我们的任务有两个子任务:1)在用户意图的粒度级别上探索用户项关系 2)生成分离的CF表示

2.2.1开发用户-物品关系

我们的用户行为可以被多种意图驱动。以电影推荐为例,用户u用电影i_{1}打发时间,因此可能不太关心i_{1}的导演是否符合她的兴趣;然而ui_{2}是因为i_{2}的导演是u兴趣的一个重要因素。准确的说,不同的用户有不同的贡献行为。

为了对用户和项之间的这种细粒度关系进行建模,我们的目标是了解每个行为的用户意图上的分布A(u,i):

A_{k}(u,i)反映了为什么u采取i的第k个意图的概率;K是一个超参数用来控制用户隐藏意图的个数。共同检查与特定意图k相关的分数,我们可以得出意向图G_{k},被定为成G_{k}=\left \{ (u,i,A_{k}(u,i)) \right \},每个历史交互都被当作一条边分配给A_{k}(u,i)。之后,一个带权邻接矩阵A_{k}建立在G_{k}上。最后,我们得出了一系列的意向图G=\left \{ G_{1},...,G_{K} \right \}来分别表示用户物品之间的关系,而不是像之前的工作一样只使用一个。

2.2.2生成解纠缠表示

生成用户-物品的解缠表示,具体来说就是提取与个体意图相关的信息作为表示的独立部分。更具体的说,就是设计一个嵌入方程f(\cdot ),对于用户u生成一个分离的表示e_{u},它含有k个组成部分:

这里的e_{ku}表示用户u的第k个隐藏意图。为简单起见,我们把这些部分都做成相同的维度,所以e_{ku}\in \mathbb{R}^{\frac{d}{K}}。值得注意的是e_{ku}应该独立于e_{​{k}'u}如果{k}'\neq k,以此减少语义冗余并且鼓励对个人意图的信号进行最大限度的压缩。每块表示e_{ku}建立在意向图G_{k}中并综合相关的联系。类似地,类似的,我们同时可以生成e_{i}的表示。

3方法论

现在我们提出解缠图协同过滤,叫做DGCF,在图二中显示。它由两个关键部件组成,以实现分离 1)图解缠模块首先将嵌入的每个用户/项目切片成块,将每个块与意图耦合,然后将新的邻居路由机制引入图神经网络中,从而对交互图进行分解,细化意图感知表示。 2)独立性建模模块,利用距离相关性作为正则化器来鼓励意图的独立性。DGCF最终产生具有意图感知解释图的分离表示。

3.1图解缠模块

研究表明GNNs在图结构中使用嵌入传播机制可以从高阶邻居节点中提取有用的的信息,丰富节点的表示。更具体地说,一个节点从它的邻居那里收集信息并更新它的表示。明确的说,节点间的连接提供给数据流动一个明确的通路。我们发展了GNN模型,叫做图解缠(分离)层,它在嵌入传播中引入了一种新的邻居路由机制,来更新这些图的权重。这使我们能够区分每个用户项连接的不同重要性分数,以细化交互图,进而将信号传播到意图感知块。

3.1.1意向嵌入初始化

与主流的CF模型不同,我们将ID嵌入切分到K个块中,将每个块与一个潜在意图相关联。具体的说,用户的嵌入初始化为:

这里的u\in \mathbb{R}^{d}是一个ID嵌入来捕获用户u的固有特性;u_{k}\in \mathbb{R}^{\frac{d}{K}}是用户u的第k个意图的表示。类似地,i=(i_{1},i_{2},...,i_{K})表示物品i。我们分别采用随机初始化来初始化每个块表示,确保训练开始时的意图差异。

3.1.2意向图初始化

我们提到早期的工作不足以提取用户行为背后的意图,因为它们只有一个用户-物品交互图或者说同制评分图来展示用户和物品之间的关系。因此,我们为K个意图定义一组得分矩阵\left \{ S_{K}|\forall k\in \left \{ 1,\cdot \cdot \cdot ,K \right \} \right \}。关注于意向图矩阵S_{k},每一项S_{k}(u,i)表明用户u和物品i之间的交互。换个角度,对于每个交互,我们可以得到一组评分向量S(u,i)=((S_{1}(u,i),\cdot \cdot \cdot ,(S_{K}(u,i))\in \mathbb{R}^{K}K个隐藏意图中。我们最开始统一初始化为:

这假设在建模开始时意图的贡献是相等的。因此,这种评分矩阵可以看成是意向图的邻接矩阵。

3.1.3图解缠层

现在每个意图k都包含了一系列分离表示,\left \{ u_{k},i_{k}|u\in U,i\in I \right \}。在一个意向通道内,我们想要从用户-物品的高阶连通性中提取有效的信息,不仅仅只是id嵌入。为了实现此,我们提出了一种新的图解缠层,它配了邻居路由和嵌入传播机制,目标是区分每个用户-物品连接时传播信息的自适应作用。我们定义这种层为:

这里的e_{ku}^{(1)}是在意图k中从u的邻居中收集信息。N_{u}是用户u的一阶邻居。右上角的(1)表示一阶邻居。

迭代更新规则

在这之后,如图三所示,邻居路由机制被采用:首先,我们根据意向图使用嵌入传播机制更新意向嵌入;然后,反过来,我们利用更新的嵌入来细化图并输出意图上的分布。特别地,我们设置T个迭代来实现这种迭代更新。在每次迭代t中,S_{k}^{t}u_{k}^{t}分别记住邻接矩阵和嵌入的更新值,这里t\in \left \{ 1,2,...,T \right \}并且T是最后一次迭代。通过等式5和等式6初始化S_{k}^{0}=S_{k}u_{k}^{0}=u_{k}

交叉意图嵌入传播

在第t次迭代,对于目标交互(u,i),我们有评分向量,叫做\left \{ S_{K}|\forall k\in \left \{ 1,\cdot \cdot \cdot ,K \right \} \right \}。为了获得其在所有意图上的分布,我们然后通过softmax函数将这些系数归一化:

这能够说明哪些意图应引起更多注意,以解释每个用户的行为(u,i)。结果,我们可以对每个意图k获得归一化的邻接矩阵\tilde{S}_{k}^{t}。然后在每个图上使用嵌入传播机制,这些被用户意图k影响的信息就被编码进表示中了。更正式地说,加权和聚合器定义为:

在迭代t之后,这里的u_{k}^{t}u的展示表示来记住邻居们N_{u}=\left \{ i|(u,i)\in G \right \}发出的信号。i_{k}^{0}是历史物品i的输入表示;并且L_{k}^{t}(u,i)\tilde{S}_{k}^{t}的拉普拉斯矩阵,制定为:

这样的归一化可以处理变化的节点邻居数,从而使训练过程更加稳定。

值得注意的是,我们将初始的分块表示形式\left \{ i_{k}^{0} \right \}汇总为用户i提炼信息。这仅包含来自一阶连通性的信号,而排除了来自用户u本人和她的较高跃点邻居的信号。受到近期的SGC和LightGCN的启发,我们知道非线性变换对于CF任务来说是累赘并且它的黑匣子性质阻碍了分离过程,因此省略了转换,只使用ID嵌入。

意图感知图更新

我们基于用户(或项目)节点的邻居来迭代地调整边缘强度。使用公式9检查以用户节点u为根的子图结构,u_{k}^{t}可以看作是本地池N_{u}=\left \{ (u,i) \right \}中的质心,这包括了物品u过去的交互。直观地讲,由相同意图驱动的历史项往往具有相似的分块表示,这进一步鼓励了它们之间的关系更加牢固。我们因此迭代的更新{S}_{k}^{t}(u,i),更确切地说,调整质心u与相邻质心之间的强度:

这里考虑了u_{k}^{t}i_{k}^{0}之间的密切关系。并且tanh是一个非线性激活函数来增强模型的表达能力。

在T次迭代之后,我们最后获得了一个图分离层的输出,它包含分离表示e_{ku}^{(1)}=u_{k}^{T},同时还有意向图A_{k}^{(1)}=\tilde{A}_{k}^{T},\forall k\in \left \{ 1,\cdot \cdot \cdot ,K \right \}。当向前进行这种传播时,我们的模型会汇总与每个意图有关的信息并生成注意流,这可以看作是解开纠缠的解释。

 

笔者注:

简单来说,就是通过嵌入图更新嵌入,嵌入再更新图,循环往复。

3.1.4层结合

上面已经使用了一阶邻居,我们未来可以堆叠多层图分解层来从高阶邻居中获取影响信号。公式为:

这里的e_{ku}^{(l-1)}e_{ki}^{(l-1)}是用户u和物品i的表示,记录着从(l-1)阶邻居中聚集的信息。更多的是,每一个解纠缠表示都用它的解释图明确地表达了意图,权重邻接矩阵A_{k}^{(l)}。这样的解释图能够显示出什么信息构成了纠缠表示的合理证据。在L层之后,我们加和不同层的意向表示来当作最后一层。

做了这个之后,我们不仅解开了CF的表示,还有了表示中每一部分的解释。值得强调的是训练参数只有第0层的用户u和物品i的嵌入表示。

3.2独立模型模块

更具【25,29】的建议,动态路由机制鼓励以不同意图为条件的分块的表示形式彼此不同。动态路由实施的差异约束不足:因子感知表征之间可能存在冗余。

因此,我们引入了另一个模块,该模块可以聘用诸如互信息和距离相关性之类的统计量作为正则化器,目的是鼓励因子感知表示独立。我们这里应用距离相关性,把相互信息作为未来的工作。尤其使,距离相关性能描绘两个向量之间的不同,不论是非线性还是线性关系;只有这些向量是独立的时候它的系数才为0。我们指定为:

这里的E_{k}=[e_{u_{1}k},...,e_{u_{N}k},e_{i_{1}k},...,e_{u_{N}k}]\in \mathbb{R}^{(M+N)\times \frac{d}{K}}是用户N=\left | U \right |M=\left | I \right |的嵌入查询表,它建立在所有用户和物品的意向表示中,图中dCor(\cdot )是一个距离关系方程定义为:

这里的dCor(\cdot )代表着各个矩阵的距离斜方差,dVar(\cdot )代表着各个矩阵之间的距离方差。

3.3模型优化



3.4模型分析

4.实验

 

5.结论和未来工作

在本文中,我们在用户意图的粒度上展示了用户-项目关系,并在用户和项目的表示中解开了这些意图。我们提出了一个新的框架,DGCF,它利用图解缠结模块迭代地优化意图感知交互图和阶乘表示。之后我们使用独立建模模块鼓励这些块都是独立的。我们深入了解了DGCF对于推荐的有效性,用户意图的解缠,阶乘表示的可解释性。

学习分离的用户意图对开发多样的用户、物品关系是一个有效的解决方法,并且有利于帮助解释他们的表示。这项工作显示了对可解释推荐模型的初步尝试。

 

 

 

 

 

 

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值