1.摘要:
(1)GCN缺点:GCN最初是为图分类任务而设计的,并配备了许多神经网络操作。通过实证发现,两种最常见的设计-特征转换和非线性激活-对协同过滤的性能贡献很小。并且,在模型中包含他们会增加训练的难度,降低了推荐的效果。
(2)GCN改进:简化GCN的设计,使其更简洁,更适合推荐系统。它只包含GCN中最重要的组件——邻域聚集,用于协同过滤。LightGCN通过在用户-项目交互图上线性传播用户和项目嵌入来学习用户和项目嵌入,并使用在所有层学习的嵌入的加权和作为最终嵌入。
2.lightGCN贡献:
(1)在GCN中,特征变换和非线性激活这两种常见的设计对协同过滤的有效性并没有积极的影响。
(2)lightGCN只包含了GCN推荐模型中最基本的组件,从而在很大程度上简化了模型设计。
(3)根据同样的设置对LightGCN和NGCF进行了实证比较,并展示了显著的改进。
3.NGCF概述:
在初始步骤中,每个用户和项目都与ID嵌入相关联。设e(0)u表示用户u的ID嵌入,e(0)i表示项i的ID嵌入,然后NGCF利用user item交互图传播嵌入,如下所示:
这里euk,eik分别表示在 k 层传播后用户 u 和项目 i 的嵌入,
σ 是非线性激活函数
Nu表示用户u交互过的所用项目集
Ni表示项目i交互过的所有用户集
w1和w2是可训练的权重矩阵,用于在每一层中执行特征变换。
通过传播L层,NGCF获得L+1嵌入来描述用户(e(0)u,e(1)u,…,e(L)u)和项(e(0)i,e(1)i,…,e(L)i)。然后将这些L+1嵌入连接起来,得到最终的用户嵌入和项目嵌入,使用内积生成预测得分。
4.探索NGCF
对NGCF进行消融研究,探索非线性激活和特征变换的影响
由于GCN的核心是通过传播来细化嵌入
从相同嵌入尺寸下的嵌入质量入手,改变了从拼接中获得最终嵌入的方式
保持所有的超参数(如学习率、正则化系数、dropout率等)与NGCF的最优设置相同,使用NGCF作者发布的代码,在相同的数据分割和评估上运行实验,以使比较尽可能公平。
可以看出,去掉特征变换(NGCF-f)对所有三个数据集进行了一致的改进。相比之下,去除非线性激活对准确度的影响并不大。但是,如果我们在去除特征变换的基础上去除非线性激活(即,NGCF-fn),性能有明显提高。从这些观察中,我们得出结论:
(1)添加特征变换会对其产生负面影响NGCF,因为在NGCF和NGCF-n两种模型中都将其去除,可以显著提高性能;
(2)加入非线性激活对包含特征变换的影响较小,但禁用特征变换的影响较大。
(3)从整体上看,特征变换和非线性激活对NGCF的影响是相当负面的,因为NGCF-fn同时去除特征变换和非线性激活后,有了很大的改进(召回率相对提高9.57%)。
为理解NGCF在这两种操作下为什么会恶化,我们在图中绘制了训练损失和测试recall的模型状态曲线。
可以看出,NGCF-fn在整个训练过程中比NGCF、NGCF-f、NGCF-n的训练损失要小得多。结合测试recall曲线,我们发现这种较低的训练损失成功地转化为更好的推荐准确度。NGCF和NGCF-f的比较也有类似的趋势,只是改进幅度较小。
得出结论,NGCF的恶化是由于训练困难,而不是过度拟合。
总之:
NGCF主要遵循标准GCN,包括使用非线性激活函数和特征变换矩阵w1和W2。认为这两种操作对于协同过滤并没有那么有用。在协同过滤中,用户项交互图的每个节点只有一个ID作为输入,没有具体的语义。在这种情况下,执行多个非线性转换不会有助于学习更好的特性;更糟糕的是,它可能会增加良好训练的困难。
5.lightGCN
先展示设计的LightGCN模型
模型思路:
(1)先将用户和项目节点的领域聚合
(2)使用三层卷积层分别生成每层的嵌入
(3)将节点的原始输入与生成每层新的嵌入做一个加权和
(4)将用户和项目最终的生成节点表示做内积生成预测的分数
LightGCN模型架构的说明。在LGC中,只对下一层进行规范化的邻域嵌入和,去除了自连接、特征变换、非线性激活等操作,极大地简化了gcn。在层组合中,我们对每个层的嵌入进行求和,以获得最终的表示
GCN的基本思想是通过在图上平滑特征来学习节点的表示[23,40]。为了实现这一点,它迭代执行图的卷积,即,将邻居的特征聚合为目标节点的新表示。这种邻居聚集可以抽象为:
AGG是一个聚合函数,是图数据卷积的核心-考虑第k层对目标节点及其邻居节点的表示。
LightGCN中,采用简单的加权和聚合器,放弃了特征变换和非线性激活的使用。LightGCN中的图卷积运算(也称为传播规则[39])定义为(轻量图卷积(LGC)):
在LGC中,我们只聚合已连接的邻居,而不集成目标节点本身(自连接)
Layer组合和模型预测:
(1)在LGCN中,唯一可训练的模型参数就是第0层的embedding:所有用户的e(0)uf和所有项的e(0)i。
(2)当第0层被给定后,通过轻量图卷积公式计算高层embedding。
(3)在k层LGC之后,我们进一步组合在每个层上获得的嵌入,以形成用户(项)的最终表示:
ɑk>0表示第k层的权重,可以作为一个超参数进行手动调整,也可以作为一个模型参数进行自动优化。在我们的实验中,我们发现将αk设置为1/(K+1)通常会产生良好的性能。
执行层组合以获得最终表示的原因有三个。
(1)随着层数的增加,嵌入部分会变得过于平滑。因此,仅仅使用最后一层是有问题的。
(2)不同层的嵌入捕获不同的语义。E、 例如,第一层对用户和具有交互的项实施平滑,第二层对具有交互项(用户)重叠的用户(项)实施平滑,更高层捕获更高阶的接近度[。因此,将它们结合起来将使表示更加全面。
(3)将不同层的嵌入与加权和结合起来,可以捕获具有自连接的图卷积的效果,这是GCNs中的一个重要技巧。
模型预测定义为用户和项目最终表示的内积:
矩阵形式:
M和N分别表示用户数和项目数,如果u与item i交互,则每个项目Rui为1,否则为0。
设第0层嵌入矩阵为E(0)∈R(M+N)×T,其中T为嵌入尺寸。然后我们可以得到LGC的矩阵等价形式为
其中,D是a(M+N)×(M+N)对角矩阵,其中每一项D表示邻接矩阵a(也称为度矩阵)的第i行向量中的非零项的数目。最后,我们得到用于模型预测的最终嵌入矩阵为:
6.模型分析
首先,我们讨论了与简化的GCN(SGCN)[40]的关联,这是一个最近的将自连接集成到图卷积的线性GCN模型;分析表明,LightGCN通过进行层组合,将自连接的效果包含进来,因此LightGCN不需要在邻接矩阵中添加自连接。然后,我们讨论了与神经预测的近似个性化传播(APPNP)[24]的关系,这是最近的GCN变种,受个性化PageRank[15]的启发解决了过平滑。分析表明,LightGCN和APPNP具有潜在的等价性,因此我们的LightGCN在远程传播方面具有可控制的过平滑。最后,我们分析了第二层的LGC,以展示它如何平滑用户与它的第二层邻居,从而对LightGCN的工作机制提供了更多的了解。
GCN用于节点分类时的不必要复杂性,并提出了SGCN,它通过消除非线性和将多个权重矩阵压缩为一个权重矩阵来简化GCN。SGCN中的图形卷积定义为:
上面的推导表明,在A中插入自连接并在其上传播嵌入,本质上等于在每个LGC层上传播的嵌入的加权和。
7.与APPNP的关系
在最近的一篇文章[24]中,作者将GCN与个性化的PageRank[15]联系起来,并由此提出了一种名为APPNP的GCN变体,它可以长期传播,而不会有过平滑的风险。受个性化PageRank中转移设计的启发,APPNP用初始特征(即,第0层嵌入)补充每个传播层,这样能平衡局部性保护的需要(即,保持接近于根节点,以减轻过平滑),并利用来自大型社区的信息。APPNP中的传播层定义为:
可以通过设置 α k调整公式(8)得到。因此,LightGCN可以完全恢复APPNP的预测嵌入。因此,LightGCN与APPNP在对抗过平滑方面具有相同的优势——通过设置正确的 α ,我们就可以在可控的过平滑下使用较大的 K 进行远距建模。
另一个小的区别是APPNP在邻接矩阵中加入了自连接。然而,正如我们之前所展示的,由于采用不同层的加权和,这是多余的。
8.二阶嵌入平滑
由于LightGCN的线性和简单性,我们可以更深入地了解它是如何平滑嵌入的。这里,我们分析一个两层的LightGCN来证明它的合理性。以用户端为例,直观地,第二层平滑了交互项目上有重叠的用户。更具体地说,我们有:
可以看出,如果另一个用户 v 与目标用户 u 有共同交互关系,则 v 对 u的平滑强度用系数表示(否则为0):
这个系数是可以解释的:二阶邻居 v对 u的影响如下:
(1)共交互项目数越多,影响越大;
(2)交互项目的受欢迎程度越低(即交互物品的受欢迎程度越低,更能体现用户个性化偏好)影响越大;
(3) v 的活跃度,活跃度越低,影响越大。
这种可解释性很好地满足了CF在度量用户相似性时的假设[2,37],并证明了LightGCN的合理性。由于LightGCN的对称公式,我们可以在项目端得到类似的分析。
9.训练过程:
LightGCN的可训练参数只是第0层的嵌入,即, Θ = { E ( 0 ) } 换句话说,模型的复杂性与标准矩阵分解(MF)相同。我们采用贝叶斯个性化排名(BPR)损失、这是一个成对的损失,鼓励预测一个观察到的项目要高于它的未观察到的项目:
其中 λ 控制L2正则化的权重。我们采用Adam优化器,并以mini-batch的方式使用它。我们知道还有其他一些先进的负采样策略,比如硬负抽样和对抗性抽样,它们可能会改善LightGCN培训。我们将这个扩展留在将来,因为它不是这个工作的重点。
值得注意的是,我们不引入在GCNs和NGCF中常用的dropout机制。原因是LightGCN中没有特征变换权重矩阵,因此在嵌入层上强制L2正则化就足以防止过拟合。这展示了LightGCN简单的优点——它比NGCF更容易训练和调优,NGCF还需要调优两个dropout比率(节点dropout和消息dropout),并将每个层的嵌入归一化到单位长度。
此外,学习层组合系数 :
,或者用一个注意力网络参数化在技术上是可行的,。然而,我们发现学习 α 训练数据不会获得改善。这可能是因为训练数据不包含足够的信号得到可以泛化到未知数据的好的 α。受文献在验证数据上学习超参数的启发,我们也尝试从验证数据中学习 α ,性能略有提高(不到1%)。我们将为不同的用户的 α最佳设置(例如,个性化不同的用户和项目)的探索作为未来的工作。
与NGCF比较
(1)和NGCF的性能比较
(2)和最先进方法的性能比较
(3)层组合的影响
(4)对称开方归一化的影响
(5)嵌入平滑分析
(6)超参数研究
补充知识:
1,特征转换:
特征转换就是对原始的特征变量进行转换处理,主要的原因是算法的需要,常做的特征转换有:
(1)标准化处理:把特征变量转换成均值为0,方差为1
(2)归一化处理:把特征变量转换为最小值为0,最大值为1
(3)正则化处理:将每个样本在所有变量上的值缩放到单位范数(即每个样本在所有变量上的值的范数为1)
(4)特征编码:例如常用的独热编码
2.消融分析:
误差分析尝试去解释算法当前的表现与完美表现的差别,而「消融分析」(Ablative analysis)尝试去解释一些基线表现(通常表现更差)与当前表现的差别。
通过消融分析了解究竟是哪些特征提升了算法性能。消融分析的方法是从最佳表现出发,逐步去除这些特征,观察算法的准确率变化
3.协同过滤简介:
它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐。
它的主要实现由:
●根据和你有共同喜好的人给你推荐
●根据你喜欢的物品给你推荐相似物品
●根据以上条件综合推荐
实现协同过滤算法,可以概括为几个关键步骤:
1:根据历史数据收集用户偏好
2:找到相似的用户(基于用户)或物品(基于物品)
1.参考:https://blog.csdn.net/u013602059/article/details/107792470
2.参考:https://blog.csdn.net/KeithVV/article/details/106523861
3.参考:LightGCN: Simplifying and Powering Graph Convolution
Network for Recommendation
4.参考:https://blog.csdn.net/qq_35358021/article/details/84140368
5.参考:https://blog.csdn.net/weixin_45884316/article/details/107895219
6.参考:https://www.cnblogs.com/1113127139aaa/p/9830449.html
7.参考:https://www.pianshen.com/article/53481415230/