Collaboration-Aware Graph Convolutional Network forRecommender Systems
背景/动机
图神经网络(Graph Neural Network,GNN)由于其隐式地捕捉协同效应的消息传递(message-passing),已成功地应用于推荐系统中。由于历史用户-物品交互可以自然地表示为二分图结构,用户/物品是节点,交互是边,并且鉴于GNN在学习节点嵌入表示方面取得了前所未有的成功,最近的研究已经开始利用GNN来学习推荐的用户/物品嵌入。
尽管如此,大多数现有的推荐系统中消息传递机制都是直接从GNN继承而来,而没有仔细考虑捕获的协同效应是否有利于用户偏好的预测,而这种模糊理解会存在学习到无用甚至错误的用户/物品表示的风险。在实际中,大部分用户交互行为都无法反映他们的实际购买行为,在这种情况下,遵循现有风格的GNN盲目传递消息可能会从这些不可靠的交互中捕获错误的协同信号,从而阻碍基于GNN的推荐系统的性能。
协同效应
设是用户-物品交互二部图,顶点集包含用户集合和物品集合。本工作只考虑隐式反馈,表示节点p和q之间存在边,网络拓扑抽象为邻接矩阵。
设表示节点p的l-跳邻居集合,而是邻居子图。表示节点p和q之间长度为l的最短路径集合,路径之一表示为。
LightGCN的信息传递过程被定义为:
其中是节点u的度(一阶邻居的个数),是节点u在第l层的嵌入表示。来自所有层的嵌入和原始嵌入通过平均池化构造最终的用户、物品嵌入表示:
在训练阶段,对于每个观察到的用户-物品交互对(u,i),LightGCN都随机抽样一个负样本物品,该物品用户之前从没有交互过,并形成三元组,用户分别和这两个物品通过内积计算排序分数,并通过成对化的BPR损失进行优化:
其中是sigmoid激活函数,上式忽略了L2正则化项,因为其对协同效应无关。
基于上述的LightGCN框架,作者提出了以下问题:
Q1:消息传递如何捕获协同效应并在计算用户的排序分数中发挥作用?
Q2:什么时候通过消息传递捕获的协同关系有助于用户对物品的排序计算?
问题1
当用户偏好的预测依赖于其他用户的偏好或物品的属性时,就会产生协同效应。在LightGCN的推理阶段,在L层的信息传播后,选用用户u和物品i的嵌入表示的内积来计算排名分数:
其中表示从j到u的长度为的所有路径的总权重,此外,而是在第层的权重,用于衡量传播嵌入的贡献。上式表明基于L层的LightGCN的信息传播捕获节点对(j,v)之间的协同关系(j和v分别是用户u和物品i在不同的l层的邻居节点),而协同强度受到一下因素影响:
(1)节点j和v之间的嵌入相似性;
(2)从j到u(从v到i)的长度从l到L的所有路径的权重;
(3)每层的权重。
问题2
尽管用户可以利用来自于其他用户/物品的协同信息,但无法保证这些协同关系都有益于偏好的预测。
如图1(a)-(b)所示,用户u的交互物品j1相比于物品j4具有更多的交互路径到u的邻居,因此更代表用户u的购买行为。
定义1:公共交互比率(common interacted ratio,CIR):对于用户u的任意物品,j关于u的公共交互比率CIR被定义为在中路径长度小于等于的所有邻居物品与j的平均交互比率:
其中表示节点k沿着从节点j到节点i的长度为2l的路径的1阶邻居。f是一个归一化函数,来区分在中不同路径的重要性,即值依赖于沿着路径的每个节点的邻居。则是长度为2l的路径的重要性。
如图1(c)所示,通过长度为2到的路径决定。接下来,作者根据CIR将边增量添加到最初的无边图中,并可视化性能变化,实证验证了利用具有较高CIR的邻居的协作的重要性。具体来说,考虑到两种设置中的性能变化,即再训练(retraining)和预训练(pretraining),这两种设置分别如图2和图3所示:
对于重新训练设置,首先删除训练集中所有观察到的边,以创建无边二分图,然后根据它们的CIR增量添加边,并重新训练用户/项目嵌入。显然,当添加更多边时,训练损失/性能会变得更低/更高,因为消息传递捕获了更多的协同效应。此外,由于具有较高CIR的边将具有更多连接的邻居连接到整个邻域,因此优化这些边的节点嵌入会拉近整个邻域的距离,从而导致邻域连接的训练损失较低,这导致图2(a)中的训练损失总体较低。在图2(b)中可以观察到,在相同的添加预算下,根据CIR进行添加比随机添加获得更高的性能。这是因为与整个邻域具有更高交互的邻居更有可能与待预测的邻居具有更高的交互。然后,对于每个用户,最大化其与具有较高CIR的训练邻居的嵌入相似性将间接地提高其与待预测邻居的相似性,从而降低群体风险和提高泛化/性能。
对于预训练设置,首先在原始二分图上对用户/项目嵌入进行预训练,然后在不同的边预算下将预训练的嵌入传播到新构建的二分图。这种设置更现实,因为在现实世界中,存在指数级别规模的交互,而存储空间有限,我们只能被迫保留部分交互和预先训练的用户/项目嵌入。
图3表明,在相同的添加预算下,根据CIR保持边比随机保持具有更高的性能,这进一步验证了CIR在量化边重要性方面的有效性。一个有趣的观察结果是,当添加的边的比例在0%-20%之间时,添加更多的边并不总是能带来性能增益,如图3(a)所示。我们假设有两个原因。从网络拓扑来看,只有当边超过一定水平时,网络才能形成一个巨大的组件,以便用户能够接收到足够的邻域信息。其次,从表示学习来看,当只添加一些边时,更多的节点在训练和推理之间会有不一致的邻域上下文。这种不一致的邻域上下文会影响性能,并且当添加更多的边时会得到缓解,如图3(a)所示。
通过设置f和,CIR可以通过现有多种图相似度度量策略进行表示:
Jaccard Similarity(JC)
JC衡量邻域集之间的相似性,即两个邻域的交集和并集之比:
通过设置和,有:
Salton Cosine Similarity (SC)
SC分数测量两个节点的邻域集之间的余弦相似性:
通过设置和,有:
Common Neighbors (CN)
CN分数测量两个节点的公共邻居的数量,并且经常用于测量两个结点之间的接近度:
通过设置和,有:
Leicht-Holme-Nerman (LHN)
LHN与SC非常相似。然而,它删除了分母中的平方根,并且对节点的程度更敏感:
通过设置和,有:
CAGCN
前一节展示了根据邻居的CIR传递消息对于提高用户排名至关重要。基于此,作者提出了 Collaboration-Aware Graph Convolution (CAGC)其基于所提供的协同的益处来传递节点消息。进一步,作者将所提出的CAGC封装在LightGCN中,并开发了两个基于CAGC的模型。
Collaboration-Aware Graph Convolution
CAGC的核心在于增强/削弱从CIR较高/较低的邻居传递给中心节点的消息。边权重通过下式进行计算:
其中是邻居节点j关于中心节点i的CIR值。注意的是是不对称的,而不是LightGCN中对称的图拉普拉斯矩阵。因此节点j关于i的邻域的交互级别可能与节点i关于j的邻域的交互级别不对等。通过下式融合进LightGCN:
其中是一个系数,用于控制流向节点i的信息总数并控制嵌入的量级。g是一个函数,用于结合LightGCN和通过CIR计算得到的边权重。g可以被简单地设置为两个嵌入的加权和,或是通过参数进行学习。
模型结构
遵循LightGCN的原则,即设计的图卷积应该是轻且易于训练的,除了消息传递组件之外,提出的基于CAGC的模型的所有其他组件都与LightGCN完全相同,包括平均池化和模型训练,这些已经在第2节中涵盖。基于CAGC的模型的体系结构如图4所示:
基于选择的g,具有两个模型变体。对于第一个变体CAGCN,在信息传递中,通过设定,仅根据CIR来计算边权重,并且设定以确保通过每个节点收到的消息的总边权重与LightGCN的一致:
而对于CAGCN*,g被设置为带权求和,而作为一个常量,以控制LightGCN与CAGC传递的信息的贡献的权衡:
如果使用jaccard相似度(jaccard similarity,JC)来计算,则模型称为CAGCN(*)-jc
时间复杂度
CAGCN和其他模型的时间复杂度对比如下表所示:
其中F是嵌入大小,L是传播层数,r是负样本抽样个数,K是二阶邻居的个数。
实验
为了验证CAGCN的有效性,作者在以下数据集上进行了实验:
主要对比实验的结果如下表所示:
模型训练方面的对比如下所示: