专栏首页机器学习与推荐算法“推荐系统”加上“图神经网络”

“推荐系统”加上“图神经网络”

作者 | Plato

SIGIR'19的一篇论文Neural Graph Collaborative Filtering(NGCF)介绍了用图神经网络(GNN)来增强协同过滤推荐系统的方法。今天我们来聊一聊下面几个话题:

  • 什么是协同过滤?如何用协同过滤做推荐?
  • NGCF是如何构图的?NGCF在基础的GNN上有哪些改动?如何用NGCF做推荐?

协同过滤

协同过滤(CF)是一种常用的推荐系统做法。协同,指收集广大用户的口味;过滤,指过滤出『我』可能喜欢的物品。这个方法通过收集用户的兴趣和口味,给用户推荐口味相近的人喜欢的物品。

在构建推荐系统的过程中,我们收集了很多用户与物品的交互历史,比如豆瓣电影中用户对电影的打分;淘宝中用户对物品的浏览、购买等。这些交互历史能够表示成一个用户

、物品

的交互矩阵

协同过滤模型需要 1. 用向量表示用户的口味

、物品的特性

;2. 通过用户的口味、物品的特性去近似交互历史

;3. 给用户

推荐交互得分最高的物品

矩阵分解(MF)是一种基础的协同过滤模型。

MF视频[1]截图,有编辑

MF大致过程如下(另可参考视频[1]):

  1. 将用户看成矩阵

,物品看做矩阵

为embedding长度

  1. 使用矩阵的乘积

去近似交互矩阵

,使用梯度下降法最小化

,求解

MF的输入单一,不能使用用户与物品的特征作为输入;同时MF对稀疏的交互矩阵效果较差。NGCF作者认为使用GNN能同时解决这两个问题。

  1. GNN使用节点特征作为初始embedding,可以在这里加入用户特征、物品特征;
  2. GNN能够引入『高阶交互历史信息』。

例如『你浏览的这个电影,喜欢它的用户也喜欢以下电影』这种『用户-物品-用户-物品』三阶信息,就是一种『高阶交互历史信息』。这种信息在推荐系统中无疑是非常重要的。

那么作者在论文中如何将GNN加入协同过滤系统的呢?首先,要将历史交互构图;然后,在这个交互图上,使用GNN来嵌入『高阶交互历史信息』,获得节点(用户、物品)的embedding;最后,通过embedding来近似历史交互矩阵

。过程如下:

  1. 使用交互历史构图;
  2. 在图上,使用GNN学习embedding

  1. 和MF类似,使用矩阵的乘积

去近似交互矩阵

NGCF如何构图?

作者希望使用GNN对高阶交互历史进行建模,就首先要对交互历史进行构图。左图是由用户、物品的交互历史构成的二部图;右图是将左图围绕

展开,获得该点的『高阶历史信息』。

GNN如何获得节点embedding?

在GNN中,节点的embedding初始化成节点的特征,然后通过聚合邻居及自己上一层的

,获得新一层的

在NGCF中,第k-1层的节点信息是这样聚合到第k层的:

GNCF的整体网络架构

  • 将每个用户

所有layer的embedding连接起来作为用户最终embedding

  • 将每个物品

所有layer的embedding连接起来作为物品最终embedding

  • 将点积

作为最后的模型预测值

  • 使用了推荐系统常用的pairwise BPR loss,能对正样本和负样本加上不同的权重,使正样本能特别体现用户的口味,负样本能少量体现用户的口味

学到的embedding效果如何?

在用t-SNE降维后,下图是对NGCF与MF的embedding可视化。星星是一个用户,圆圈是一个物品。可以看到NGCF的clusters彼此之间更加分离,即同一个用户交互过的物品,它们的embeddings更加相似。

作者还在Gowalla、Yelp2018、Amazon-Book三个数据集上对比了推荐效果,NGCF均为state of the art。

其他:NGCF作者的论文[2]与实现[3]。

参考

  1. ^How does Netflix recommend movies? Matrix Factorization https://www.youtube.com/watch?v=ZspR5PZemcs
  2. ^https://arxiv.org/abs/1905.08108
  3. ^https://github.com/xiangwang1223/neural_graph_collaborative_filtering

本文分享自微信公众号 - 机器学习与推荐算法(ML_RSer),作者:Plato

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 学习二值编码只为高效的时尚套装推荐

    题目: Learning Binary Code for Personalized Fashion Recommendation

    张小磊
  • 论文笔记 : Dual Neural Personalized Ranking

    本文是自己在推荐系统研究中研读的论文翻译及解读,本篇笔记非标准译文,其中包含了笔者自己对问题的部分理解,仅供参考,欢迎学习交流。

    张小磊
  • SIGIR2020 | 基于GCN的鲁棒推荐系统研究

    近年来,推荐系统已成为所有电子商务平台中必不可少的组件。然而,推荐系统的评分数据通常来自开放平台,而开放平台可能会存在一群恶意用户故意插入虚假反馈,以使推荐系统...

    张小磊
  • 请关注个人数据如何被采集和使用。

    题图来源:spyfari | 斯派来app。 ---- 今天把《现实挖掘》Reality Mining,这本书读完了,有些感悟想分享下。 现在很多人都在使用mo...

    mixlab
  • 秘密推出国产阿尔法狗,腾讯AI 在下一盘大棋?

    3月3日晚间在野狐围棋平台上,一个新的“十段”高手诞生,就是这个ID名为“绝艺”的神秘棋手。所谓的“十段”,是根据野狐围棋平台内置系统评定的,乃是因为其一连战胜...

    机器人网
  • 采用共享内存或文件映射的方式保存用户数据

        举个例子,假如一个网站提供给用户8种特权服务,用户可以选择性的开通其中一个或多个,而用户一般的操作行为是查看自己的特权以及查看好友的特权。这类数据的特点...

    王亚昌
  • 【转】Mobx React  最佳实践

    在这一篇文章里,将展示一些使用了mobx的React的最佳实践方式,并按照一条一条的规则来展示。在你遇到问题的时候,可以依照着这些规则来解决。 这篇文章要求你对...

    Tiffany_c4df
  • 差分隐私技术

    2016年,差分隐私从研究论文一跃成为科技新闻头条,在WWDC主题演讲中,苹果工程副总裁Craig Federighi宣布苹果使用这一概念来保护iOS用户隐私。...

    Defu Li
  • 数据猿专访 | 比邻弘科联合创始人史建刚:数据造假忍无可忍,我们要像金庸一样创造一个“不妥协的世界”

    <数据猿导读> 近年来,移动互联网浪潮席卷着中国市场。而在这次革命浪潮中,众多资本涌入,造成移动流量推广行业迅猛发展的同时,也滋生了很多产业泡沫,其中最大的泡沫...

    数据猿
  • [PHP] PHP与Apache的模块配合说明

    一般来说,它可以mod_php5模块的形式集成, 此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求, 然后将处理后的结果...

    陶士涵

扫码关注云+社区

领取腾讯云代金券