登录    注册      
    
  

News Message

2019 开源论文:基于图神经网络的协同过滤算法



2019 开源论文:基于图神经网络的协同过滤算法





论文:paperweekly.site/papers

源码:xiangwang1223/neural_graph_collaborative_filtering

引言

协同过滤作为一种经典的推荐算法在推荐领域有举足轻重的地位。协同过滤(collaborative filtering)的基本假设是相似的用户会对物品展现出相似的偏好。

总的来说,协同过滤模型主要包含两个关键部分:1)embedding,即如何将 user 和 item 转化为向量表示;2)interaction modeling,即如何基于 user 和 item 的表示来重建它们的历史交互。

传统协同过滤算法(如经典的矩阵分解和神经矩阵分解)本质还是给 user 和 item 初始化一个 embedding,然后利用交互信息来优化模型。它们并没有把交互信息编码进 embedding 中,所以这些 embedding 都是次优的。

直观地理解,如果能将 user-item 的交互信息编码进 embedding 中,将提升 embedding 的表示能力进而提升模型的预测能力。本文的主要创新点在于利用二部图神经网络将 User-Item 的历史交互信息编码进 Embedding 进而提升推荐效果。更重要的是,本文显式地考虑 User-Item 之间的高阶连接性来进一步提升 embedding 的表示能力。

图 1 展示了一个 user-item 的二部图及 [公式] 的高阶连接性。[公式]的高阶连接性表示[公式]通过长度大于 1 的路径连接到的节点。例如,[公式]通过长度 l=2 的路径连接到 [公式] 和 [公式] ,这代表[公式]的 2 阶连接性;[公式]通过长度 l=3 的路径连接到 [公式] ,这代表 [公式] 的 3 阶连接性。需要注意的是,虽然 [公式] 和 [公式] 都是[公式]的 3 阶邻居,但是[公式]可以通过更多的路径连接到[公式],所以[公式][公式]的相似度更高。

模型

模型主要分为 3 个部分:1)Embedding Layer:将 user 和 item 的 ID 映射为向量表示;2)Embedding Propagation Layers:将初始的 user 和 item 表示基于图神经网络来更新;3)Prediction:基于更新后的 user 和 item 表示来进行预测。模型架构图见 Figure 2。

Embedding Layer

这里对 User 和 Item 分别初始化相应的 Embedding Matrix,然后通过 User 或者 Item 的 ID 进行 Embedding Lookup 将它们映射到一个向量表示。

注意,这里初始化的 Embedding 可以认为是 0 阶表示,即:

Embedding Propagation Layers

受 GNN 的 message-passing 架构的启发,NGCF 针对 User-Item 二部交互图设计了 Embedding Propagation 来学习 User 和 Item 的表示。这里作者首先详细的描述了一阶传播,然后泛化到高阶传播。

一阶传播主要包含:消息构建和消息聚合。给定(u,i),从 i 传播到 u 的消息 [公式] 可以定义为:

其中,[公式]都是可学习的参数矩阵, [公式] 和 [公式] 分别代表 u 和 i 的度。这里 [公式] 可以理解为归一化系数。

基于上面构建的消息,下一步就是聚合消息来更新节点表示:

其中, [公式] 代表经过 1 次聚合之后的节点表示。因为单层的消息聚合只能聚合 1 阶邻居的信息,所以这里实际代表了 u 的一阶表示。需要注意的是,这里除了聚合邻居的信息,更重要的是考虑节点自身的信息 [公式]

高阶传播实际就是将上述的一阶传播堆叠多层。这样经过 l 次聚合,每个节点都会融合其 l 阶邻居的信息,也就得到了节点的 l 阶表示 [公式]

Figure 3 清晰地展示了如何在高阶传播中融合高阶邻居的信息。

上面的传播过程也可以写成矩阵的形式,这样在代码实现的时候可以高效的对节点 Embedding 进行更新。

其中, [公式] 是 l 阶的 user 和 item 的表示, [公式] 是 user-item 交互矩阵,D 是对角度矩阵。

Model Prediction

模型的预测非常简单,将 L 阶的节点表示分别拼接起来作为最终的节点表示,然后通过内积进行预测。

实际这里采用了类似 18 ICML Representation Learning on Graphs with Jumping Knowledge Networks 的做法来防止 GNN 中的过平滑问题。GNN 的过平滑问题是指,随着 GNN 层数增加,GNN 所学习的 Embedding 变得没有区分度。过平滑问题与本文要捕获的高阶连接性有一定的冲突,所以这里需要在克服过平滑问题。

最终的损失函数就是经典的 BPR 损失函数:

实验

本文在 Gowalla、Yelp2018 和 Amazon-Book 上进行了大量实验来回答以下 3 个问题:

  • 和 state-of-the-art 的方法相比,NGCF 的效果如何?
  • 模型对于超参数(如模型层数,dropout)的敏感性。
  • 高阶连接性对于模型的影响。

本文的 baseline 主要可以分为两大类:非图神经网络的推荐算法(如 MF 和 CMN)和基于图神经网络的推荐算法(PinSage 和 GC-MC)。实验效果如 Table 2 所示:

可以看出,本文所提出的 NGCF 优势很明显,尤其是在 recall 上的提升均超过 10%。同时,作者还对数据进行了稀疏化并进一步验证来说明 NGCF 来稀疏数据上的优势。

从 Figure 4 可以看出,NGCF 在数据稀疏度较高的时候有明显优势,随着稀疏度的下降,NGCF 的优势越来越小甚至被 baseline 超过了。

另外,作者验证了模型层数、卷积形式和 dropout 对 NGCF 的影响,具体见 Table 3、Table 4 和 Figure 5。

最后,作者研究了高阶连接性对 NGCF 的影响,如 Figure 6 所示。

注意这里 MF 可以看做是 NGCF-0。可以看出,随着阶数的增加,相同颜色的节点更好的聚集在一起。也就是说,高阶连接性确实有助于学习 User 和 Item 的 Embedding。

结论

本文提出了基于图神经网络的协同过滤算法 NGCF,它可以显式地将 User-Item 的高阶交互编码进 Embedding 中来提升 Embedding 的表示能力进而提升整个推荐效果。NGCF 的关键就在于 Embedding Propagation Layer 来学习 User 和 Item 的 Embedding,后面的预测部分只是简单的内积。可以说,NGCF 较好地解决了协同过滤算法的第一个核心问题。另外,本文的 Embedding Propagation 实际上没有考虑邻居的重要性,如果可以像 Graph Attention Network 在传播聚合过程中考虑邻居重要性的差异,NGCF 的效果应该可以进一步提升。

参考文献

[1] staff.ustc.edu.cn/~hexn

[2] github.com/xiangwang122


论文:paperweekly.site/papers

源码:xiangwang1223/neural_graph_collaborative_filtering

引言

协同过滤作为一种经典的推荐算法在推荐领域有举足轻重的地位。协同过滤(collaborative filtering)的基本假设是相似的用户会对物品展现出相似的偏好。

总的来说,协同过滤模型主要包含两个关键部分:1)embedding,即如何将 user 和 item 转化为向量表示;2)interaction modeling,即如何基于 user 和 item 的表示来重建它们的历史交互。

传统协同过滤算法(如经典的矩阵分解和神经矩阵分解)本质还是给 user 和 item 初始化一个 embedding,然后利用交互信息来优化模型。它们并没有把交互信息编码进 embedding 中,所以这些 embedding 都是次优的。

直观地理解,如果能将 user-item 的交互信息编码进 embedding 中,将提升 embedding 的表示能力进而提升模型的预测能力。本文的主要创新点在于利用二部图神经网络将 User-Item 的历史交互信息编码进 Embedding 进而提升推荐效果。更重要的是,本文显式地考虑 User-Item 之间的高阶连接性来进一步提升 embedding 的表示能力。

图 1 展示了一个 user-item 的二部图及 [公式] 的高阶连接性。[公式]的高阶连接性表示[公式]通过长度大于 1 的路径连接到的节点。例如,[公式]通过长度 l=2 的路径连接到 [公式] 和 [公式] ,这代表[公式]的 2 阶连接性;[公式]通过长度 l=3 的路径连接到 [公式] ,这代表 [公式] 的 3 阶连接性。需要注意的是,虽然 [公式] 和 [公式] 都是[公式]的 3 阶邻居,但是[公式]可以通过更多的路径连接到[公式],所以[公式][公式]的相似度更高。

模型

模型主要分为 3 个部分:1)Embedding Layer:将 user 和 item 的 ID 映射为向量表示;2)Embedding Propagation Layers:将初始的 user 和 item 表示基于图神经网络来更新;3)Prediction:基于更新后的 user 和 item 表示来进行预测。模型架构图见 Figure 2。

Embedding Layer

这里对 User 和 Item 分别初始化相应的 Embedding Matrix,然后通过 User 或者 Item 的 ID 进行 Embedding Lookup 将它们映射到一个向量表示。

注意,这里初始化的 Embedding 可以认为是 0 阶表示,即:

Embedding Propagation Layers

受 GNN 的 message-passing 架构的启发,NGCF 针对 User-Item 二部交互图设计了 Embedding Propagation 来学习 User 和 Item 的表示。这里作者首先详细的描述了一阶传播,然后泛化到高阶传播。

一阶传播主要包含:消息构建和消息聚合。给定(u,i),从 i 传播到 u 的消息 [公式] 可以定义为:

其中,[公式]都是可学习的参数矩阵, [公式] 和 [公式] 分别代表 u 和 i 的度。这里 [公式] 可以理解为归一化系数。

基于上面构建的消息,下一步就是聚合消息来更新节点表示:

其中, [公式] 代表经过 1 次聚合之后的节点表示。因为单层的消息聚合只能聚合 1 阶邻居的信息,所以这里实际代表了 u 的一阶表示。需要注意的是,这里除了聚合邻居的信息,更重要的是考虑节点自身的信息 [公式]

高阶传播实际就是将上述的一阶传播堆叠多层。这样经过 l 次聚合,每个节点都会融合其 l 阶邻居的信息,也就得到了节点的 l 阶表示 [公式]

Figure 3 清晰地展示了如何在高阶传播中融合高阶邻居的信息。

上面的传播过程也可以写成矩阵的形式,这样在代码实现的时候可以高效的对节点 Embedding 进行更新。

其中, [公式] 是 l 阶的 user 和 item 的表示, [公式] 是 user-item 交互矩阵,D 是对角度矩阵。

Model Prediction

模型的预测非常简单,将 L 阶的节点表示分别拼接起来作为最终的节点表示,然后通过内积进行预测。

实际这里采用了类似 18 ICML Representation Learning on Graphs with Jumping Knowledge Networks 的做法来防止 GNN 中的过平滑问题。GNN 的过平滑问题是指,随着 GNN 层数增加,GNN 所学习的 Embedding 变得没有区分度。过平滑问题与本文要捕获的高阶连接性有一定的冲突,所以这里需要在克服过平滑问题。

最终的损失函数就是经典的 BPR 损失函数:

实验

本文在 Gowalla、Yelp2018 和 Amazon-Book 上进行了大量实验来回答以下 3 个问题:

  • 和 state-of-the-art 的方法相比,NGCF 的效果如何?
  • 模型对于超参数(如模型层数,dropout)的敏感性。
  • 高阶连接性对于模型的影响。

本文的 baseline 主要可以分为两大类:非图神经网络的推荐算法(如 MF 和 CMN)和基于图神经网络的推荐算法(PinSage 和 GC-MC)。实验效果如 Table 2 所示:

可以看出,本文所提出的 NGCF 优势很明显,尤其是在 recall 上的提升均超过 10%。同时,作者还对数据进行了稀疏化并进一步验证来说明 NGCF 来稀疏数据上的优势。

从 Figure 4 可以看出,NGCF 在数据稀疏度较高的时候有明显优势,随着稀疏度的下降,NGCF 的优势越来越小甚至被 baseline 超过了。

另外,作者验证了模型层数、卷积形式和 dropout 对 NGCF 的影响,具体见 Table 3、Table 4 和 Figure 5。

最后,作者研究了高阶连接性对 NGCF 的影响,如 Figure 6 所示。

注意这里 MF 可以看做是 NGCF-0。可以看出,随着阶数的增加,相同颜色的节点更好的聚集在一起。也就是说,高阶连接性确实有助于学习 User 和 Item 的 Embedding。

结论

本文提出了基于图神经网络的协同过滤算法 NGCF,它可以显式地将 User-Item 的高阶交互编码进 Embedding 中来提升 Embedding 的表示能力进而提升整个推荐效果。NGCF 的关键就在于 Embedding Propagation Layer 来学习 User 和 Item 的 Embedding,后面的预测部分只是简单的内积。可以说,NGCF 较好地解决了协同过滤算法的第一个核心问题。另外,本文的 Embedding Propagation 实际上没有考虑邻居的重要性,如果可以像 Graph Attention Network 在传播聚合过程中考虑邻居重要性的差异,NGCF 的效果应该可以进一步提升。

参考文献

[1] staff.ustc.edu.cn/~hexn

[2] github.com/xiangwang122




Share Http URL:  http://www.wittx.cn/get_news_message.do?new_id=498



请输入评论





























Best Last Month

石墨烯超导性

石墨烯超导性

Information industry

by wittx


2020/09/25金融行情

2020/09/25金融行情

Information industry

by wittx


小米大涨 9%!二季度业绩超预期

小米大涨 9%!二季度业绩超预期

Information industry

by wittx


Soft Actor-CriticDeep Reinforcement Learning for Robotics

Soft Actor-CriticDeep Reinforcement Learning for Robotics

Computer software and hardware

by wittx


AD模数转换

AD模数转换

Information industry

by wittx


Mathematical Methods of Classical Mechanics

Mathematical Methods of Classical Mechanics

Information industry

by wittx


ChatGPT API 文档

ChatGPT API 文档

Information industry

by wittx


Thermoelectric conversion

Thermoelectric conversion

Information industry

by wittx


顺丰计划在港二次上市,或募资 50 亿美元



SDG,ADAM,LookAhead,Lion机器学习优化器

SDG,ADAM,LookAhead,Lion机器学习优化器

Information industry

by wittx