NGCF与LightGCN学习笔记

补充知识点

  1. 协同过滤:
    1)简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息,回应不一定局限于特别感兴趣的,特别不感兴趣信息的纪录也相当重要。
    2)协同过滤分类:协同过滤又可分为评比(rating)或者群体过滤(social filtering)
    3)优点:协同过滤以其出色的速度和健壮性,在全球互联网领域炙手可热。

  2. 评价指标NDCG(归一化折损累计增益)

    https://zhuanlan.zhihu.com/p/448686098

  3. NGCF代码

    https://github.com/xiangwang1223/neural_graph_collaborative_filtering

  4. L1范数
    在这里插入图片描述

  5. L1范数正则化
    在这里插入图片描述

  6. leakyReLU激活函数
    NGCF与LightGCN学习笔记_第1张图片


文章目录

  • 补充知识点
  • 一.NGCF
    • 1.贡献
    • 2.算法框架
  • 二.LightGCN:简化和增强图卷积网络的推荐
    • 1.现有工作的缺点
    • 2.本文贡献
    • 3.对NGCF的一些发现
    • 4.框架


一.NGCF

1.贡献

协同过滤(collaborative filtering)的基本假设是相似的用户会对物品展现出相似的偏好,自从全面进入深度学习领域之后,一般主要是先在隐空间中学习关于user和item的embedding,然后重建两者的交互即interaction modeling,如MF做内积,NCF模拟高阶交互等。但是他们并没有把user和item的交互信息本身编码进 embedding 中,这就是NGCF想解决的点:显式建模User-Item 之间的高阶连接性来提升 embedding。

2.算法框架

  1. 用ID Embedding表示每一个user何每一个item。
  2. 目的是挖掘交互图的一些高阶的信息。用传播层来做这件事。如果是相求k+1层user的向量,则需要知道k层user的向量,具体做法如下(该算法就是Propogation layer):
    NGCF与LightGCN学习笔记_第2张图片
    LightGCN所进行的操作就是nonlinear activation function和feature transformation matrices去掉,则propogation layer就变成了下面这个形式:
    NGCF与LightGCN学习笔记_第3张图片
    对于传播层中的每一层,都可以获得一个新的embedding,再把这些嵌入都聚合(可以使用注意力机制,也可以直接认为每一层的贡献都是相同的),具体操作如下所示:
    NGCF与LightGCN学习笔记_第4张图片
    模型的最终预测值如下:
    NGCF与LightGCN学习笔记_第5张图片模型算法过程还有个矩阵表达。具体请见论文4-5页

二.LightGCN:简化和增强图卷积网络的推荐

LightGCN可以看作是NGCF的改进


1.现有工作的缺点

  1. 特征转换和非线性激活对于协同过滤的表现贡献很少,并且去掉它们后,模型效果反而提升。

2.本文贡献

  1. 本文作者的经验表明,GCN中两种常见的设计,即特征转换和非线性激活,对协同过滤的有效性没有积极影响。
  2. 我们提出了LightGCN模型,对于推荐任务,通过只包含GCN中必须的组成部分极大地简化了模型的设计。
  3. 我们通过相同的设置对LightGCN和NGCF进行了实证比较,并展示了实质性的改进。我们从技术和经验的角度对LightGCN的合理性进行了深入的分析。

3.对NGCF的一些发现

  1. 添加特征转换(feature transformation)模块对NGCF产生了负面影响,因为在NGCF和NGCF-n的两个模型中删除它可以显著提高性能。
  2. 在包含特征转换模块的情况下,添加非线性激活函数,对模型效率影响不大,但在禁用特征转换的情况下会造成负面的影响。
  3. 总的来说,特征转换和非线性激活对NGCF有相当大的负面影响,因为如果同时去掉它们,NGCF-fn比NGCF有很大的改进。(召回率相对提高9.57%)。

4.框架

NGCF与LightGCN学习笔记_第6张图片

GCN的基础想法是是通过对图的平滑特征来学习节点的表示[23, 40]。为了实现这一点,它迭代地执行图卷积,即把邻居的特征聚合起来作为目标节点的新表示。这样的邻居聚合可以被抽象为:
在这里插入图片描述
AGG是一个聚合函数—图卷积的核心—它考虑了第k层对目标结点的表示以及它的邻居的表示。很多工作都设置了AGG,例如GIN中的加权汇总器[42], GraphSAGE中的LSTM聚合器,BGNN中的双线互动聚合器[48]等。然而,大多数工作都是将特征转换或非线性激活与AGG功能联系起来。尽管它们在具有语义输入特征的节点或图分类任务中表现良好,但对于协同过滤来说,它们可能是个负担(见第2节中的初步结果)。

4.1轻量图卷积(LGC)。在LightGCN中,本文采用简单的加权和聚合器,放弃使用特征转换和非线性激活。LightGCN中的图卷积操作(又名传播规则[39])被定义为
NGCF与LightGCN学习笔记_第7张图片
对称归一化项1/(√(|N_i | ) √(|N_u | ))遵从标准GCN的设计,这可以避免嵌入的规模随着图卷积操作而增加;当然还有其他的替代方案,例如L_1范数,而根据经验,我们发现这种对称归一化有很好的性能。(可以参照4.4.2节中的实验结果)
值得注意的是,在LGC中只聚合链接的邻居,而不整合目标结点本身。这与大多数现有的图卷积操作不同[14,23,36,39,48],它们都典型地聚合扩展邻居,需要特别处理自我连接。
将在下一小节介绍的图层组合操作,本质上抓住了与自我连接相同的效果。因此,没有必要在此节介绍self-connections。

4.2图层组合和模型预测(Layer Combination and Model Prediction)。在lightGCN中,唯一可训练的模型参数是第0层的嵌入,即所有的用户嵌入e_u((0))和所有的项目嵌入e_i((0))。当它们被给定时,高层的嵌入可以通过公式中定义的LGC计算出来(3)。在K层LGC之后,我们进一步将每层获得的嵌入结合起来,形成一个用户(一个项目)的最终表示:
在这里插入图片描述
其中a_k>0表示第k层嵌入在构成最终嵌入中的重要性。它可以被视为超参进行手动调整。

你可能感兴趣的:(学习,机器学习,深度学习)