SGCF:Simplifying Graph-based Collaborative Filtering for Recommendation

一、前言

1、摘要

传统模型在使用大型图上的非线性激活进行训练时面临困难。此外,由于图卷积运算的过度平滑效应,大多数基于GCN的模型无法对深层进行建模。

在本文中,从两个方面改进了基于GCN的CF模型。

首先,去除非线性以提高推荐性能,这与简单图卷积网络中的理论一致。

其次,我们通过计算压缩图上的网络嵌入来获得图中每个节点的嵌入初始化,这缓解了稀疏交互数据的图卷积聚合操作中的过平滑问题。

 图1:标准GCN(左)和SGCF(右)的说明。标准GCN需要反复执行N层消息传递,以获得用于大规模图结构训练的最终嵌入. 同时,SGCF只有一层具有压缩图并消除了自连接、特征转换和非线性激活等其他操作,大大提高了训练效率,有助于实际部署。

2、介绍及相关工作

现有的基于GCN的CF模型比以往任何时候都更加复杂,旨在捕捉更高阶的协作信号。这种复杂的模型很难用大型图进行训练,并带来了效率和可扩展性的挑战,

LightGCN和SGC所做的简化并没有多大帮助。到目前为止,如何提高GCN模型的效率,同时保持其推荐的有效性仍然是一个悬而未决的问题。

以下贡献:

通过反复消除GCN层之间的非线性并将所得函数压缩为单个线性变换,从经验上降低了GCN的过度复杂性。

提出了SGCF,它在很大程度上简化了模型设计,只在GCN中包括最重要的组件,以获得更有效的建议。提供了一种有效的划分技术来减少输入图结构的规模,以避免无限层的显式消息传递,从而实现高效的推荐。

PS:核心点就是提出了一种图划分的技术,划分之后效果好了一些,主要是速度更快了

图划分技术:

网络嵌入初始化的一种简单方法是随机的,它为图中每个节点的初始嵌入分配R中的随机数。然而,这种方法忽略了输入图的结构,使其不适合网络嵌入。

受图分区基算法的启发,旨在使用G的分区来描述输入图G=<V,E>的草图,然后将其处理为V中每个节点的初始嵌入。G的分区P将V划分为k个不相交的子集,表示为P=V1,V2。Vk,其中k是用户定义的数字。给定一个节点v∈v,设v′∈P是v所在的分区,用P(v)=v′表示。称同一分区中的邻居是内部节点,而其他邻居是外部节点。

此外,节点v∈v是G的边界节点,如果v至少有一个邻居n∈n(v),其分区与v的分区不同,即p(v)≠p(n)。设Vb是G的边界节点集。关于P的边界子图Gb是在Vb上构造的G的诱导子图。

二、SGCF模型

 图2:我们的模式的总体架构。图过程说明了嵌入具有不同跳的传播的过程。分区算法在具有不同跳数的多k (左下)。在每次迭代中,每个节点的嵌入k-层计算框架。最终的压缩图输入到我们的简化GCF模型中

在这一部分中,提出了具有图分割技术的简单图卷积协作滤波,这是一种用于推荐的基于GCN的通用CF模型。

SGCF的总体架构如图2所示。SGCF提出了当前基于GCN的模型,该模型具有两个特征:

(a)在特征传播步骤的每一层,使用简化的线性嵌入传播,而没有任何非线性激活和线性变换;

(b) 为了加速网络嵌入,提高算法的有效性和效率,提出了一种图大小调整技术,

将图递归地划分为几个小尺寸的子图,以捕获节点的内部和外部结构信息,然后在压缩图中计算具有低阶传播过程的网络嵌入。

1、压缩图模型

计算得分仍是内积

重头戏:

每个节点eu或ei具有多个邻居跳(k>=2)。然而,层数 从0增加到k,更深层的节点嵌入往往被过度平滑,它们更相似,具有更少的区别信息。为了缓解这个问题,利用图划分技术来减少输入网络的规模,并构造压缩图。

PS:论文说的很多,总结下来说就是,通过划分子图减少过渡平滑造成的影响

构造压缩图G_{c}=\left ( V_{c} ,\varepsilon _{c} \right ), 我们首先得到G的分区P,表示为P={V1,V2,…Vk } 其中k是用户定义的数字。图分区的目标是\left ( k,\sigma \right )-平衡,其中0< \sigma< 1,并且它满足约束:

 并且将边缘切割的尺寸最小化为:

\left ( k,\sigma \right )平衡图划分是一个NP难问题。为了解决这个问题,受到了用于图分区的GPA算法引导,该算法已在实践中采用,并会降低运行时间的复杂性

 在P上,通过为每个子图V′∈P创建一个凝聚节点va,并用权重为w(va,ua)的凝聚边(va,ua)连接两个凝聚节点va和ua,来构造G的凝聚图Gc。那么,Gc中的压缩节点的数量是k,即G的分区的数量。此外,Gc的压缩边的数量受边切割的大小的限制。

剩下的一个关键问题是如何决定k。一方面,如果k很小,那么一个浓缩节点将与输入图G中的许多节点相关。因此,从相应的抽象节点继承的每个节点在G中的初始嵌入将失去有效性。另一方面,如果k很大,那么压缩图Gc也会很大。因此,计算Gc上的网络嵌入将非常昂贵,这增加了初始化阶段的总体成本。为了达到良好的平衡,我们设置k=\left \lceil \sqrt{\left | V \right |} \right \rceil是一个足够大的数字,但比|V|小得多,在实践中效果很好。

此外,为了计算Gc的压缩图嵌入,一种天真的方法是让每个节点v的初始嵌入等于对应的压缩节点c(v)的嵌入。

然而,这种方法会遇到与同一浓缩节点相关的节点具有相同的初始嵌入的问题,从而使这种方法无效。

为了解决这个问题,使用了一种迭代方法,其中每个节点基于其邻居的嵌入来更新其自己的嵌入,直到达到收敛。这具体意味着在每次迭代中,

每个节点v∈v首先聚合v的邻居的嵌入,这得到平均嵌入eave(v)。然后,将v的嵌入更新为eavg和它自己的嵌入eiv的聚合jiu

PS:其实还是;老操作,聚聚邻居信息,和自己的信息结合一起。生成新的嵌入,(他是讲的很多,感觉没怎么变)

他们认为:不是直接利用原始用户项二分网络,而是使用压缩图进行偏好学习,浓缩图学习可以帮助缓解更深层次的过度平滑效应。

PS:一个整图,拆成小图,避免了过渡平滑,它的归纳感觉牵强,模仿IMP-GCN模型的分子图思想?

子图划分不是很清晰,等待公布代码吧,结合代码或许更清晰点

论文链接:http:// https://doi.org/10.1145/3539597.3570451

代码链接:https://github.com/heli510/SGCF  (里面没代码,23.03.22)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值