Graph Neural Networks for Social Recommendation[WWW'19]

WWW19将GNN应用于社会化推荐的一篇论文

解决的问题

如何将GNN应用于社会化推荐任务上。

面临的挑战有三点:

  1. 在一个社会化推荐任务中,输入的数据包括社会关系图和用户-物品交互图,将两张图的信息都聚合才能得到用户更好的一个表示,而此前的GNN只是在同一张图上对邻域内的信息聚合。
  2. 在用户-物品交互图中,顶点与顶点之间的边也包含更多的信息,除了表示是否交互,还能表示用户对一个物品的偏好(喜爱还是厌恶),而此前的GNN只是将边用来表示是否交互。
  3. 社会关系图中用户之间的纽带有强有弱,显然地,一个用户更可能与强纽带的其它用户有类似的喜好。如果将所有纽带关系都看成一样,会有偏差。

做法及创新

创新:

  • 在不同图(user-user graph和user-item graph)上进行信息传递与聚合
  • 除了捕获user-item间的交互关系,还利用了user对item的评分
  • 用attention机制表示社交关系的重要性,用户纽带的强与弱
r0xT1A.png

整个GraphRec框架由三个部分组成,分别为user modeling、item modeling和rating prediction。其中user modeling用来学习用户的特征表示,学习的方式是两个聚合:item aggregation和social aggregation,类似地item modeling用来学习物品的特征表示,学习的方式是一个聚合:user aggregation。

User Modeling

item aggregation
rBuFzt.png

item aggregation的目的是通过用户交互过的物品以及对这些物品的倾向,来学习物品侧的用户特征表示,数学表示为:

$C(i)$就表示用户交互过的物品的一个集合。这里的$x_{ia}$是一个表示向量,它应该能够同时表示交互关系和用户倾向。论文中的做法是通过一个MLP来结合物品的embedding和倾向的embedding,两者分别用$q_a$和$e_r$表示。倾向的embedding可能很难理解,以五分制评分为例,倾向的embedding表示为$e_r\in \mathbb{R}^d$,其中$r\in \{1,2,3,4,5\}$。

定义好$x_{ia}$后,下一步就是如何选取聚合函数$Aggre$了。论文中使用的是attention机制,来源于GAT

这里的权重$\alpha_{ia}$考虑了$x_{ia}$和用户$u_i$的embedding $p_i$,使得权重能够与当前用户相关。

social aggregation
rBK7g1.png

social aggregation中,同样地使用了attention机制,通过attention机制来选取强纽带的其它用户(表现为聚合时权重更大)并聚合他们的信息,聚合的就是物品侧的用户特征表示。

这里跟item aggregation基本一模一样,就不多介绍了。

得到物品侧的用户特征表示$h_i^I$和社交侧的用户特征表示$h_i^S$后,用一个MLP将它们结合,得到用户最终的特征表示:

Item Modeling

user aggregation
rBYtjH.png

Item modeling与User modeling的做法基本一模一样…公式都是一一对应的:

Rating Prediction

最后来到评分预测部分,由上面两个部分我们得到了用户特征表示$h_i$与物品特征表示$z_j$,产生评分用的也是一个MLP:

数据集

Ciao、Epinions

在科技论文写作课上对这篇论文进行了分享,这里直接把讲稿和PPT放上来。

PPT

2EP9mj.png
2EPSXQ.png
2ECz6g.png
2EPP7n.png
2EPC0s.png
2EPkt0.png
2EPFkq.png
2EPVpT.png
2EPAhV.png
2EPZ1U.png
2EPecF.png
2EPmX4.png
2EPunJ.png
2EPKB9.png
2EPM7R.png
2EPlA1.png
2EP1tx.png
2EPG9K.png
2EP3h6.png
2EPJ1O.png
2EPtje.png
2EPYcD.png
2EPUnH.png
2EPaBd.png
2EPdHA.png
2EP0AI.png
2EPBNt.png
2EPD4P.png
2EPy38.png
2EPs9f.png
2EiqRf.png
2EiLz8.png
2EibJP.png
2EiHit.png

讲稿

老师和同学们大家好,今天我们要介绍的是WWW会议19年的一篇论文,基于图神经网络的社会推荐。WWW会议是数据挖掘领域的CCF-A类会议。本次介绍由四个部分组成,分别是背景介绍、论文细节、实验评估以及写作技巧。

首先是背景部分,进入信息时代,我们被越来越多的信息所淹没,表面上我们有了更多的选择,但反而不知道如何选择。而推荐系统就是能够有效缓解这种“信息超载”现象的一个很好的方法。它希望根据你的历史行为记录,来挖掘你的个人喜好,从而向你推荐可能喜欢的物品。它就像一位了解我们喜好的隐形的朋友,在我们浏览或购物时陪伴左右。实际上推荐系统已经和我们的生活息息相关:不管是QQ音乐的”为你推荐”、淘宝的”猜你喜欢”或者是亚马逊的”推荐购买”,都是为我们个性化推荐的内容。

因为用户和物品的交互记录很容易以图的形式进行表示,以电影评分为例,如果将用户和电影都看成图上的顶点,而评分记录看成对应顶点间的一条边,自然就形成了一张图。而图神经网络是针对图类型数据的一种神经网络架构,很自然地就想到用图神经网络来解决推荐系统的问题,这也是本文研究的动机。图神经网络根据”相邻的顶点具有相似性“这一假设,通过聚合邻域顶点的信息来将图中顶点映射为特征空间中的向量,使得结构上相似的顶点在特征空间中有相似的特征表示。给定一张由顶点和边组成的图作为输入,通常分为如下两个步骤:邻域聚合和状态更新。

而社会推荐任务的难点在于,首先,数据往往包含两种类型的图,分别是用户-物品交互记录以及用户间的社交关系,而传统的图神经网络都是在同一张图上进行信息的传递和聚合,如何才能利用社交关系图的信息来帮助推荐相关物品?其次,交互记录还包含了更丰富的信息,例如评分高表示喜爱,评分低表示厌恶,如何将这种偏好也体现在模型的构建中?最后,社交网络中不同的好友对我们的偏好影响程度是不同的,关系越好的朋友向我们推荐的物品我们越可能接受。论文的贡献就是解决了这几个问题。

论文的架构有两条主线,分别是用户侧和物品侧,得到各自的特征表示后,计算出用户对物品的预测评分。首先是用户侧,因为给定的数据中两张图都和用户有关,我们希望能将两部分的信息都利用起来。对于用户-物品交互图,用上面提到的图神经网络的邻域聚合步骤,用户的特征表示由它交互过的物品的特征表示进行聚合得到,同时还将评分的高低纳入考虑,以引入用户的偏好。这种聚合方式是通过物品来定义用户。论文在这里额外地考虑了一步,对用户交互过的物品,它们对用户偏好的贡献也是不同的,为了表示这种不同,论文使用了attention网络来为每个物品计算出一个权重系数,以自适应地聚合这些物品的信息。attention网络涉及的细节较多,因为时间关系不在这里详细介绍,只需要了解通过attention网络可以得到不同物品相对的重要性程度。

类似地,不同的好友给一个用户偏好带来的影响也是不同的,所以在社交网络图上聚合邻域好友的信息时,论文同样使用了attention网络来为每个好友计算出一个权重系数,以表示好友对用户的重要程度。到这里,我们就从物品和好友两个角度得到了用户的特征表示,将两部分结合起来就得到了用户的特征表示。

知道用户侧的做法之后再看物品侧的做法就容易理解多了,因为采用了类似的信息聚合过程。对于一个物品,我们可以得到与它交互过的所有用户,那么该物品的特征表示就由这些用户的特征表示进行聚合得到,不出意外地,这里同样使用了attention网络来表示各个用户的重要性来进行加权聚合。现在,我们得到了用户和物品的特征表示后,剩下最后一步就是预测用户对这个物品的评分,对应这个部分的输入输出。论文在这部分采取的架构是多层感知机,因为时间原因不在这里详细介绍,它可以通过用户和物品的特征向量来预测用户对物品的一个评分,评分高的物品我们就作为候选列表向用户推荐。到这里模型的细节就介绍完了,可以看到主要是两个模块的重复使用,邻域聚合和attention表示重要性。

实验部分,论文的优化目标是减少预测值与实际值之间的偏差,使用的两个推荐系统数据集描述如下,它们的共同点都是十分稀疏,评分数相对于用户数和物品数要少得多,这也符合现实中的情况,人们往往不愿意给出自己对于物品的意见。结果部分,选取的两个指标MAE和RMSE都是越小代表预测效果越好,论文提出的模型GraphRec在所有比较模型里取得了最好的性能,同样还做了参数实验,探究不同参数的取值对结果的影响。介绍完了论文的各个部分后,最后我们来分析一下这篇论文在写作上有什么值得我们借鉴的地方。

论文做的好的一个地方是图表部分,正如老师上课所说,不应该只用颜色来进行区分不同的结果,有些学者可能喜欢将论文打印成纸质版进行阅读,这时颜色传递的信息就会被丢失。这里论文除了颜色外,图表中还在不同的数据上使用了不同的底纹,这样当进行黑白打印时,仍然能通过底纹来获取颜色所传递的信息。同时,在正文里引用图表的时候,也会在随后通过文字对图标传达的信息进行说明,这样可以让读者即使不阅读图标也能明白图表的含义,而不是不给出任何信息只是单纯为了让读者去看图表。

然而,论文中也有我们认为的不足之处,碰巧也是图表部分。图表使用了不同的颜色却没有用图例来对每种颜色的含义进行说明,这让人感觉使用颜色仅仅是为了让论文更好看而已。与之相对比的是同年会议的另一篇论文,解决的也是社会推荐问题,其中的图表部分虽然涉及了更多的颜色,但有图例进行详细的说明。让读者能够清晰地明白每种颜色的含义。