一、协同过滤背景介绍
SIGIR'19的一篇论文
Neural Graph Collaborative Filtering(NGCF)介绍了用图神经网络(GNN)来增强协同过滤推荐系统的方法。今天我们来聊一聊下面几个话题:
-
什么是协同过滤?如何用协同过滤做推荐?
-
NGCF是如何构图的?NGCF在基础的GNN上有哪些改动?如何用NGCF做推荐?
二、NGCF 如何构图以及计算
NGCF 的整体网络架构
学到的embedding效果如何?
BPR Loss 原理介绍
三、社交化推荐(DiffNet)
因为数据稀疏性问题,社会推荐算法应运而生。社会推荐算法主要是通过对user-user 的关系进行分析,将关系比较亲近的user 之间的偏好关系进行传播,从而加强了推荐算法的性能并解决了数据稀疏性问题。社会推荐算法主要思想是用户和其粉丝之间存在着偏好的转移。一个用户user_a 关注着另一个用户user_b,那么b 对item 的偏好将传播到 a 上,并对 a 的偏好进行影响。
模型的整体结构
# 如图所示的用户free embedding
user_embedding = self.user_embedding.weight
final_item_embedding = self.item_embedding.weight
# embedding的fusion融合层
user_reduce_dim_vector_matrix = self.activation(self.user_fusion_layer(self.user_review_embedding.weight))
item_reduce_dim_vector_matrix = self.activation(self.item_fusion_layer(self.item_review_embedding.weight))
user_review_vector_matrix = self.convertDistribution(user_reduce_dim_vector_matrix)
item_review_vector_matrix = self.convertDistribution(item_reduce_dim_vector_matrix)
user_embedding = user_embedding + user_review_vector_matrix
final_item_embedding = final_item_embedding + item_review_vector_matrix
# 用户的历史行为,user-item的交互
user_embedding_from_consumed_items = self.bipartite_gcn_conv(x=(final_item_embedding, user_embedding), edge_index=self.edge_index.flip([0]), edge_weight=self.edge_weight, size=(self.n_items, self.n_users))
# 用于存储融合社交的embedding
embeddings_list = [user_embedding]
# 遍历N层,每层使用GCN对社交关系进行特征提取
for layer_idx in range(self.n_layers):
user_embedding = self.bipartite_gcn_conv((user_embedding, user_embedding), self.net_edge_index.flip([0]), self.net_edge_weight, size=(self.n_users, self.n_users))
embeddings_list.append(user_embedding)
# 将社交关系的提取的特征拼接起来,求和并且加上来自user-item交互提取的特征。
final_user_embedding = torch.stack(embeddings_list, dim=1)
final_user_embedding = torch.sum(final_user_embedding, dim=1) + user_embedding_from_consumed_items
![图神经网络系列二:NGCF & DiffNet]()
原文始发于微信公众号(风物长宜 AI):图神经网络系列二:NGCF & DiffNet
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论