【论文阅读】GNN在推荐系统中的应用

【论文阅读】GNN在推荐系统中的应用

参考Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions

1、本文结构

  • 推荐系统可分成4类:阶段,场景,目标和应用
  • 图神经网络可分成2类:谱模型和空间模型
  • 讨论GNN应用在推荐系统中的动机,主要包括高阶连接,结构化数据,增强监督信号
  • 分析了关于图的构造,嵌入传播,嵌入聚合,模型优化和计算效率的挑战

2、推荐系统的目的,发展和基于GNN模型的挑战

推荐系统的目的是为用户定制个性化的信息,改善用户体验,提高企业利润
关于推荐系统的发展,大致可以分成3个阶段:浅层模型,神经模型和基于GNN的模型

  • 最早出现的推荐模型是协同过滤(CF),基于模型的CF方法有矩阵分解和因子分解机,但是这些方法在复杂用户
    行为或者数据输入中效果并不好
  • 因此基于神经网络的模型,比如神经协同过滤模型通过MLP扩展了MF的点积操作,相似的,深度因子分解机(DeepFM)
    在FM的基础上加上MLP。但是这些方法还是有问题,因为它在关于预测和训练图表中,忽视观察数据中的高阶的结构信息
  • 最近GNN的发展给上面提到的推荐系统存在的问题带来了解决思路。GNN通过迭代进行嵌入传播和邻居节点嵌入聚合的方式,每个节点能够获得高阶的邻居节点的信息,而不是像传统方法中的一阶邻居节点信息。

但是基于GNN的推荐系统仍然具有很多挑战:

  • 1)推荐系统数据的输入需要格外注意,才能很好地构造出图
  • 2)对于特定的任务,GNN需要自适应地设计组件,包括如何的传播和聚合。毕竟现有的工作提供很多解决思路,这些解决思路有好有坏
  • 3)对于GNN模型的优化问题,包括优化目标,损失函数和数据采样等,需要和任务要求保持一致
  • 4)因为推荐系统计算开销往往比较大,主要是GNN的嵌入传播算子造成的。

本文着重介绍如何通过图神经网络改进推荐系统,以及如何去解决相应挑战的。

3、推荐系统相应背景(可以从哪些角度来认识推荐系统)

推荐系统主要可以从4个方面来认识:阶段,场景,目标和应用。

  • 在工业应用场景中,推荐系统主要分成3个阶段:匹配,排序,重排序,这样形成了一个标准的流水线,每个阶段在数据输入,输出和模型设计上有不同的特点。
  • 在特定的推荐场景上,比如社交网络在最近20年来引起了广泛关注。
  • 推荐系统有不同的目标,之前推荐的准确度是推荐系统最重要的性能指标,而在最近的推荐系统中,商品推荐的多样性可以避免用户陷入无聊的体验,保护用户的隐私免收攻击,保证系统公平地对待所有的用户,成为了新的推荐目标。
  • 在应用上,GNN模型被广泛应用在电子商务推荐,兴趣点推荐,新闻推荐,电影推荐,音乐推荐等。

1)阶段

在item池中,通常有上百万个items,所有的items对于推荐系统都是可用的,因此推荐系统需要支持多状态的结构,在items pool中可以逐阶段地过滤商品。

  • 匹配(召回):第一阶段是在item pool池中产生上百个候选商品,由于考虑到线上服务的响应时间,复杂的算法(比如DNN)并不适用。
    在这个阶段,核心任务是高效召回相关items,获取粗粒度的用户兴趣,模型要求高准确。值得注意点是,在现实中常常需要考虑到多重匹配问题,这时就会利用多个模型:
    比如相关嵌入召回,地理位置召回,热点召回和社交召回等。
  • 排序待多源的候选items召回之后,需要先merge成一个list,并且通过单一评分模型对所有候选items进行评分,然后根据得分,通过排序模型抽取前top个商品。
    该阶段可以使用复杂的算法,比如可以通过用户偏好和商品属性来获得丰富特征,自注意力机制也可以使用。该阶段的目的是通过设计合适的模型来捕获复杂的交互特征。
  • 重排:虽然排序阶段可以获得最优相关性的items,但是却没有满足其他重要的需求,比如商品的freshness,多样性和公平性等。

在这里插入图片描述

2)场景

  • 社交推荐:随着不同用户间的交互,个人行为受个人和社会因素的影响。用户趋向于与自己行为相似的人建立社交关系。以商务为例子,来自普通家庭的用户可能有相同的商品偏好,因此社会关系常集成在推荐系统中来提高推荐性能。(fig3)

在这里插入图片描述

  • 序列推荐:在推荐系统中,用户会产生大量的行为交互行为,这些交互行为(比如浏览了哪些商品)包含时间戳,而序列推荐方法通过从这些行为序列中提取信息,对用户的下一个行为进行预测。
    常见的方法是将每个用户的行为作为一个样本,使用协同过滤方法训练模型(fig4)。对于序列推荐存在的挑战,无法设计一个模型来对短时,长时和兴趣动态变化的用户进行行为预测

在这里插入图片描述

  • 会话推荐(SBR):对于一些小的零售商和移动流媒体(tiktok),由于存储资源有限(冷启动),不太可能也没有必要去追踪每个用户在长时间内的行为,换句话说,这些长时交互信息在这些应用中没用。
    因此,传统的推荐方法(CF)在该场景下表现差。基于会话推荐的目的是通过给定的匿名行为会话数据,来预测下一个商品(fig5)。SBR不同于序列推荐,对于同一个用户的子会话数据在SBR中是独立处理的,
    user的session数据仅包含SBR中的某些特征(换句话说,user session数据不够用),所以需要使用匿名用户的session。

    在这里插入图片描述

  • 捆绑推荐:捆绑推荐是商场中商品促销的常用手段。在线平台也有很多使用这种策略,比如卖计算机设备的Amazon,买家具的IKEA(fig6)

    在这里插入图片描述

  • 跨域推荐(CDR):随着越来越多的用户在多个域间进行多模态信息的交互(理解1:taobao,xianyu,理解2:Fig7,卖衣服,卖水果,卖零食),CDR成为了一种降低冷启动和数据稀疏问题的有效手段,CDR可以划分成两类:单目标的CDR,多目标的CDR,STCDR强调从源域到目标域单向迁移信息,而DTCDR强调两个域相互交互信息。

在这里插入图片描述

  • 多行为推荐:当用户点击一个视频时,往往会在下面评论或者收藏。在电子商务中,用户往往有点击,加入购物车,分享,收藏和购买等行为。虽然推荐系统的目标是尽可能多地推荐相关商品给用户,促成用户交易,然而购买行为相对于其他行为是稀疏的。假设有K种不同行为 { y 1 , y 2 , . . . , y K } \{y_1,y_2,...,y_K\} { y1,y2,...,yK}多行为推荐的目的是提高某种目标行为 y t y_t yt的预测准确度(Fig8)。

    在这里插入图片描述

3)目标

推荐系统最重要的目标是保证准确度,但还包括多样性,可解释性和公平性

  • 多样性:多样性主要包括两类,用户个人级别的多样性系统级别的多样性。用户个人级别的多样性反映对多少主题的推荐,以及如何平衡这些主题中items的分布,以便用户去探索整个系统。主题依赖于推荐任务,
    比如,在电子商务中,主题表示不同的商品类别,在英语推荐中,主题是不同的音乐题材;

    较低系统级别的多样性推荐常常是推荐热门的items给所有的用户,而忽略长尾items的推荐
    高级别的系统多样性常常称为长尾推荐,Fig9 矩阵图反映了两类多样性的不同(只是简单举个栗子)

    在这里插入图片描述

  • 可解释性:可解释性推荐系统的关注点不仅在于生成准确度推荐结果,而且还要对特定用户生成的推荐给予可说服性的解释
    提高推荐系统的可解释性可以增强用户的感知透明(用户感知不到的),可说服性,方便开发者去调试和优化系统。

  • 公平性:根据利益承担者,推荐系统的公平性可以划分为两类:用户公平性,即保证对于特定的用户或者群体没有算法偏差;items公平性,即不同的items都有公平曝光的机会。
    研究者们采用两种方法来提高用户公平性,一个是在训练阶段直接去除掉有偏差的推荐结果,另一个是在后处理阶段对items进行评分,来降低非公平性

4)应用

  • 对于电子商务(商品)推荐,其商业价值受到广泛关注,因此,对于多类型行为的处理,比如添加到购物车和购买行为,直接和平台的利润挂钩,因此有些工作提出同时优化点击率和转换率
    在电子商务中,商品包含丰富信息,比如价值,种类等,可以构建出异构图。相关的数据集有Amazon,Tmall
  • 兴趣点推荐主要与两个因素有关:空间因素和时间因素,空间因素即图中兴趣点的属性信息,比如地理位置,但是用户在不同位置的访问并不像浏览/购买商品那么频繁(说白了,位置不容易变);
    而时间因素作为一个重要的因素,用户的访问/签到行为可以形成一个序列,这可以促成对下一个兴趣点或者连续兴趣点的推荐。相关数据集包括Yelp,Gowalla
  • 新闻推荐系统不同于其他推荐系统,它需要对新闻文本进行合理的建模,因此,NLP算法和推荐模型会结合使用,用来提取更好的新闻特征。由于用户总是喜新厌旧(新闻),因此在排序时需要过滤掉旧的候选新闻
    相关数据集包括:MIND
  • 电影推荐系统是最早出现的推荐系统之一(Netfix电影推荐比赛),电影推荐系统主要是预测用户对电影的评分(1~5),现在常采用二分评分(0,1)

4、图神经网络(从数据,模型和优化的角度来认识GNN)

​ GNN的兴起主要是继承了CNN和图表示学习(GRL)两者的优势,出现了GCN这个网络架构。CNN在有规则的欧几里得数据中(比如图片和文本)可以高效提取局部特征,但是对于非欧几里得空间的数据(比如图),CNN需要将其泛化到特定的,比如计算对象大小不定的场景。在图表示学习中,它目的是对图的节点,边和子图信息生成低维的特征,用来表示图的复杂连接结构。比如DeepWalk通过随机游走生成路径,接着通过SkipGram学习到节点表征。

​ 相比于CNN和GRL,GNNs可以提取到图的结构化信息,并且学习到高维表征

1)图的构建(图分类)

图可以分成3类:同构图,异构图,超图

  • 同构图是指每条边只关联两个节点,而且只有一种节点类型一种边的类型
  • 异构图是指每条边只关联两个节点,而且节点类型或者边的类型可以有多种
  • 超图是指每条边可以关联多个节点

关系型数据通常用图表表示,但随着非结构化数据的出现(比如图片和文本),它们不显式地包含图结构,因此有必要手动定义节点和边来构造图。比如对于文本,我们可以将单词定义为节点,将IF-IDF(词频-逆文档频率)定义为边

知识图谱是一个异构图,用来表示命名实体。总而言之,构造图的必要性不单单体现在现有的图数据上,还体现在对于非结构数据节点和边的抽象

2)网络设计 (图卷积)

通常,GNN模型可以划分成谱模型和空域模型

  • 谱模型把图中每个节点看做是一个信号(时域, 空域),(经过傅里叶变换之后)在频域上用图卷积的方式进行处理。图中的信号首先用傅里叶变换将时域信号转换到频域信号x,接着进行filter (g是一种信号,起到filter,卷积的作用),最后再将频域信号逆变换到空域上,如下公式(卷积定理,参考https://blog.csdn.net/weixin_43686451/article/details/110038783)。

在这里插入图片描述

  • 空域模型直接在图结构上进行卷积操作,即通过带权边 * 邻居节点特征的消息聚合方式来提取局部特征

​ 尽管这两种模型应用在不同的场景,但是它们在迭代搜集邻居节点信息的原则上是相同的,目的都是去捕获图中节点和边的高阶联系,这里的信息即为embedding(可以是低维向量)。GNN中最主要的算子是利用图结构进行embedding传播,包括聚合邻居节点的embeddings(fusion操作)以及目标节点的embedding,并通过多个图卷积层来实现graph embeddings的更新。

谱域和空域上的图卷积模型实例

  • GCN是GNN中典型的谱模型,结合图卷积和神经网络来实现图任务的半监督分类,在细节上,GCN通过一阶卷积来进行滤波,公式如下。

    在这里插入图片描述

    GCN中的邻接矩阵A是自旋的,当点i与点j有边连接或者 i = j i=j i=j,则 A i j = 1 A_{ij} = 1 Aij=1,否则 A i j = 0 A_{ij} = 0 Aij=0因此通常情况下,GCN对权重W进行学习时,是不用修改图卷积输入层中节点间的连接信息的(邻接矩阵不变),但是有些时候,如果在损失函数上增加A的l1-norm的正则化项,在计算损失反向传播进行权重更新时,A是可以动态调整的(参考论文Linking Attention-Based Multiscale CNN With Dynamical GCN for Driving Fatigue Detection)。

  • GraphSAGE是GNN中的空域模型,全称为Graph SAmple and aggreGatE,通过采样目标节点的邻居节点(多层采样),聚合它们的embeddings,并与target embedding合并进行target embedding的更新其中Aggregate操作主要有MEAN,LSTM等

    在这里插入图片描述

  • GAT是空域上的GNN模型,它解决了之前空域模型诸如在特定图结构中学习到的表征泛化能力较差,或者在计算逆矩阵时需复杂开销的问题。GAT使用注意力机制(不同节点间边的连接权重 α i j \alpha_{ij} αij不同)来聚合不同邻居节点的feature embedding,其中节点i到节点j的权重可以用全连接层和softmax来计算,见如下公式。

    在这里插入图片描述

  • HetGNN:HetGNN是空域GNN在异构图上的应用,HetGNN首先将邻居节点按节点类型划分成多个子集,每个aggregator聚合每种类型的邻居节点,结合LSTM或者MEAN算子得到局部信息。最后不同类型的邻居信息通过注意力机制进行aggregate

以上GNN模型的不同点总结参考Fig11

在这里插入图片描述

为了捕获图的高阶结构信息,卷积和embedding propagation需要执行L次,当 L < = 4 L<=4 L<=4时GNNs会遇到over-smoothing的问题,即当propagation层逐渐加深,embeddings以小的幅度进行更新。

3)优化器(pair & point-wise)

Note:了解推荐系统中的正负样本 - 对于items正样本,表示多个user与这个items有关联,即关于边的正样本

​ 关于图的主要任务(分类,回归)可以分为3个级别:节点,边和子图。对于不同的任务,可以选择不同类型的映射函数(MLP,点积)以及损失函数(pair-wise和point-wise)。对于pair-wise loss,目的是增大正负样本的分类间隔,常见的是BPR损失(如下式所示),其中p,n表示(边的)正负样本 σ \sigma σ为sigmoid。对于point-wise loss,常见的是MSE,CrossEntropy损失。

在这里插入图片描述

​ 对于链接预测,需要通过计算likelihood来定义节点i,j之间是否存在边的连接,主要通过每层的propagation,来计算节点embeddings的相似度,如下式子所示。

在这里插入图片描述

​ 其中 f ( . ) f(.) f(.)是相似度计算函数, ( i , j ) (i,j) (i,j)表示观测的正样本,表示i, j间有边的连接 ( i , k ) (i,k) (i,k)表示随机选择的负样本,即i,k没有边的连接。在推荐系统中,表示user i与item j有交互,但与item k无交互。BPR loss具体如下式所示。

在这里插入图片描述

​ 对于节点分类,node embedding会变换到概率分布上( p i = f ( h i l ) p_i = f({h_i^l}) pi=f(hil),C维的vector,C维类别数),交叉熵损失函数如下式所示。

在这里插入图片描述

​ 总之,基于GNN模型的优化即是对之前GNNs学习到的表征(X)作为输入进行学习,将图的结构(边,节点类型)作为标签,通过定义损失函数进行训练。

5、为什么推荐系统需要引入GNNs(从传统推荐算法的不足来认识GNN)

在最近几年的发展,推荐系统方法从传统的因子分解发展到了深度神经网络,基于GNN的推荐系统在多个方面取得不错的进展:不同推荐阶段,场景,目标和应用。它的成功主要体现在如下3个方面:结构化数据,高阶连接提取,监督信号

1)结构化数据(多表)

数据一般会采集成多张表的形式,比如用户-item交互表(评价,点击和购买),用户信息表(年龄,性别和收入),item属性表(品牌,种类,价格)。传统的推荐系统不能同时处理多张表的数据,而GNN模型可以用统一的方法来处理这些表数据,并且能学习到users,items和其他特征的高质量的embeddings。

2)高阶连接(multi-hop)

推荐系统的准确度依赖于对用户和items的相似度计算,这些similarity会映射到学习到的embedding空间。如果这些items与其他users间有交互,则这些users和当前使用这些item的user有相似偏好,即协同过滤。对于传统的协同过滤方法,仅考虑到用户和items之间的交互记录信息,这些信息属于一阶连接信息。而GNN能够有效捕获高阶的连接信息,使得基于GNN的协同过滤方法可以自然地用图中的多跳邻居节点来表示

3)监督信号(sparse数据)

监督信号通常是在数据采集中的稀疏数据,然而GNN模型可以将监督信号的处理问题上升到半监督信号处理问题。比如带目标标签的购买行为相较于其他无标签的行为(搜索,添加到购物车)来说是相当稀疏的。传统的推荐系统仅对目标行为(监督信号)进行学习,模型性能不好,而GNN模型可以结合多种非目标行为,对图中半监督信号(目标行为带标签,其他行为不带标签)进行编码

6、GNNs在推荐系统中面临的挑战

GNNs在推荐系统中面临的挑战主要包括:

  • 如何为指定任务合理构建图?
  • 如何设计关于信息传播和信息聚合的机制
  • 如何优化模型
  • 如何保证模型训练和推理的有效性(计算开销)

1)图的构建(节点 & 边设计时面临的挑战)

​ 在使用GNN的第一步是要构建图,这里分成两层:将输入数据构造成图结构的形式;在图中将推荐目标作为任务,重新进行图的构建
​ 假设将标准的协同过滤作为任务,则输入数据是用户-items的交互数据,输出数据是对用户-item交互行为缺失的预测。因此,将users,items作为节点构造二分图,而两者的交互信息作为edges,CF任务是关于图的连接预测任务。

  • 节点:关于GNN中节点的定义会决定GNN模型的尺度,而且edge embeddings要么考虑如何设计,要么通过node embeddings计算得到。

    在节点上存在两个挑战:

    • 一是是否将节点区分成不同类型,比如在协同过滤任务中,用户节点和item节点可以建模成相同节点,也可以建模成不同类型节点
    • 另一个挑战是如何处理连续型的数据,比如像item prices等数字类型的特征。要想让图学习到这些特征,一种可能的方法是将这些特征离散化成多个组别(这样才能embedding成多维的向量),这样才能表示成图中的节点
  • :边的定义也会影响图在propagation和aggregation的质量。在一些任务中,推荐系统的输入数据可以看作是一种关系型数据(user-item交互,user-user社交关系),但是在一些复杂任务中,其他任务比如捆绑推荐不同的items间的捆绑消费可以表示为边

    关于边的设计需要考虑到图的密度

    • 太稠密的图意味着节点度数很高,这会导致在进行embedding propagation时需要考虑到大量的邻居节点,使得embedding propagation学习到的表征并不具有可区分性,是无效的。为了解决图中边的稠密问题,可以考虑对图进行采样,过滤和剪枝

    • 太稀疏的图在进行embedding propagation时也会存在问题,因为在propagation过程中仅有小部分nodes进行参与

2)网络的设计(aggregation函数 & propagation设计)

GNNs和传统的图表示学习方法不同之处在于propagation层。对于propagation,如何选择图中的路径对于推荐系统中高阶相似度的建模很关键。而且propagation可以带参数(分配权重),比如为不同节点分配不同权重,比如在user-item交互图中,在propagate item embeddings给用户节点时,不同权重表示user在和items交互时不同items的重要程度
​ 在propagation时,对于聚合函数有多种选择,比如mean pooling,LSTM,max,min等。对于不同数据集或者不同的推荐任务,需要根据实际情况选择聚合方式,其中mean pooling可以提高GNN在计算某个节点时的效率,特别是对于度数高的节点。而且propagation/aggregation层能够帮助你获取更高-hops的邻居节点。

3)模型优化(loss & sample & multiTask存在的挑战)

  • 损失函数:常见的有point-wise的logloss损失,和pair-wise的BPR loss损失
  • 采样:采样策略取决于图的结构,比如在社交推荐中,在图中通过random walk可以生成正的items样本(比如很多friends访问了该items
  • 基于GNN的推荐系统可能包含多个任务,比如对不同类型的边进行链接预测,如何去平衡每个任务,并整体提高推荐的性能也存在挑战。

4)计算效率问题

​ 相比于非GNN的推荐系统的方法,比如NCF和FM(因子分解机),GNN计算开销很大,特别是对于谱域上的GNN模型(含复杂的矩阵运算)。因此对于空域GNN,比如PinSage可以更方便的应用在大尺度的工业应用中。通过邻居节点采样和图结构的剪枝,在保证计算效率的同时允许推荐性能的下降。

7、现有方法

1)在不同推荐阶段的GNNs

推荐阶段反映了真实世界下推荐系统的整体流程:候选集匹配,根据用户偏好进行评分,根据其他规则(不单单acc)进行重评分

在这里插入图片描述

a)GNN的matching阶段
  • 由于对于items的候选集选择需要很高的计算复杂度,因此该阶段中效率是最关键的问题。matching阶段的GNN基于粗粒度的用户偏好,仅将user-item的交互数据为输入进行建模,不引入额外的特征,比如用户年龄,item价格,在应用上的浏览时间等
    该阶段的模型可以看作是embedding matching,需要在user-item二分图中设计特定的GNN。-

    • Berg(2018)提出了通过summing聚合不同邻居节点的信息,并对不同关联的边(user-item的频率)采用权值共享。Wang提出了基于空间GNN的推荐模型,相比于传统的CF方法,比如MF(矩阵分解),NCF(神经协同过滤)有更好的性能
    • Sun认为简单的聚合机制,比如sum,mean,max不能对邻居节点的关联信息进行建模,因此提出了邻居节点注意力交互的卷积算子来解决这个问题(文中还提出了其他模型,参考Table5)

    在这里插入图片描述

  • 这些GNN模型能够从users和items中捕获高阶相似信息,具有相似交互行为的用户之间有相似的用户偏好,这些语义信息在GNN中会经过多次的信息传播。而且GNN模型可以高效地应用在真实场景下的推荐系统中,在大的item-item的图中,结合随机游走和GraphSAGE进行embedding的学习**(PinSAGE)**。
    Q:二分图匹配不是user-item 1对1吗?可以找LightGCN(user-item)的论文看看,在matching阶段各节点究竟是如何传播的?是同构图?

b)ranking阶段的GNN
  • 在一个小的候选items集中,需要利用更多的特征来提高模型的acc,对items进行ranking(评分)。现有的ranking模型通常将稀疏的特征转换成one-hot编码的形式,然后将其变换到dense的embedding vectors上,这些feature embeddings直接堆叠后并喂给DNN等模型(非图结构)进行ranking评分估计。

  • GNN在ranking上主要面临的挑战是怎样设计一个合适的结构来捕获特征之间的交互信息。基于GNN的ranking模型通常包括两个组件:encoder和predictor,用来处理不同方向上的特征交互。
    encoder(这里是GNN)可以设计特定的图结构来捕获想要的特征之间的交互,predictor通过整合GNN encoder中学习到feature embeddings对ranking score进行估计

    • Li通过对所有输入特征构建权值全连接的图,提出了Fi-GNN模型,Fi-GNN模型的encoder包括GAT,GRU,而predictor是attention网络。
    • Zheng考虑到item price价格在ranking上的影响,提出了用户价格注意偏好模型(PUP),encoder通过预训练的异构图来初始化GCN,目的是捕获price awareness,而predictor是一个两分支的因子分解机(FM)。
    • SHCF和GCM模型使用额外的节点和边的属性来分别表示item的属性和上下文信息,分别使用点积和FM作为predictors(文中还提出了其他模型,参考Table6)

    在这里插入图片描述

c)re-ranking阶段的GNN

该阶段需要使用预定义的规则对top items进行re-ranked(重新评分),其中re-ranking阶段需要考虑有两个关键因素:一是不同的items之间会相互影响,即两者间存在某种关系,比如这两个商品可以相互替代或互为补充。二是不同用户有不同的偏好,需要考虑个性化的re-ranked。GNN同时统一地给item间的关系和用户的偏好进行编码。
Liu提出的IRGPR模型在进行个性化re-rank时是基于GNN的,他们提出使用异构图去融合两种信息源,一种是用item关系图去捕获多个item关系,二是用user-item评分图来包含初始的ranking得分,然后通过全局的item关系传播和个性化(user意图)信息传播,最后通过前馈神经网络对items进行re-ranked。

2)在不同推荐场景下的GNN

a)社交推荐中的GNN

社交网络中包含每个用户的社交联系,社交推荐的目的是利用社交网络中每个用户的局部邻居节点的偏好来提高该用户的建模。从GNN的表示学习的角度出发,在社交推荐中需要考虑两个关键问题:如何去捕获社交因素;如何结合朋友间的社会因素和用户的偏好(用户的交互行为信息等)

  • 图的构建:在社交推荐系统中,用户最终的行为取决于社交朋友以及他的偏好的共同的影响。主要挑战是如何去构建社交网络(图)去捕获来自朋友间的社会影响。实际上,某些用户的行为不单单受其朋友的影响,还受其朋友的朋友的影响(高阶邻居节点)

    • 为了捕获这些高阶社交关系,图的构建可以划分成两个方向:stacked graphs和超图。普通的基于图的方法通过堆叠到多层的GNN layers中去捕获高阶信息,但是会存在over-smoothing问题;基于超图的方法,比如MHCN,提出了用hyperedge连接超过2个节点来对高阶关系进行建模。
    • 为了提高推荐系统的性能,RecoGCN在图的构建上,通过将users,items,selling agents放在异构图上去捕获社交电子商务中复杂的联系。模型发展过程见Fig12,细节概括见Table7

    在这里插入图片描述

在这里插入图片描述

  • 信息传播:社交推荐中,图信息的传播主要有两种机制:平均池化(GCN)和注意力机制(GAT)

    • GCN平等对待每个朋友对user的社交影响,RecoGCN在基于GCN信息传播基础上使用meta-path去同时捕获社交影响和用户偏好
    • DiffNet++假设图中不同邻居节点的社交影响不同,通过为不同的朋友设置不同的权重,来表示该user的不同朋友的社交影响。

在社交推荐中,用户的表示学习可以通过两个角度进行学习:社交影响(user-user)和user的交互(user-item),一般可以采用如下两种策略:

社交图(网络)和user-item二分图中分别学习用户的表示;将社交图(网络)和user-item二分图整合成统一的图,进行用户表示的联合学习

  • 对于第一种策略:DiffNet,GraphRec 和 MHCN分别学习两种图关于user的表示之后,通过sum池化,堆叠,MLP,注意力机制来整合这些user表示。
  • 对于第二种策略:通过GAT机制,将user-item子图和社交网络子图中的信息聚合在一起,然后通过每层种的多级注意力网络来整合这些user表示

猜你喜欢

转载自blog.csdn.net/qq_33934427/article/details/130920279