Graph Neural Networks for Social Recommendation浅读分析
Graph Neural Networks for Social Recommendation浅读分析
Graph Neural Networks for Social Recommendation浅读分析
- 摘要
- 引言
- 提出的框架
- 符号表
- 定义和符号解释
- 算法总览
- 1.User Modeling
- 1.1 Item Aggregation
- 1.1.1 x i a \mathbf{x}_{ia} xia的计算
摘要
近年来,可以自然地集成节点信息和拓扑结构的图形神经网络(GNN)在学习图形数据方面具有强大的功能。由于社交推荐系统中的数据可以表示为用户-用户社交图和用户-项目图,因此GNN的这些优势为推进社交推荐提供了巨大潜力。学习用户和物品的潜在因素是关键。但是,基于GNN构建社会推荐系统面临挑战。例如,用户项图对交互及其关联的意见进行编码;社会关系具有不同的优势;用户涉及两个图(例如useruser社交图和user-item图)。为了同时解决上述三个挑战,本文提出了一种针对社会推荐的新颖的图神经网络框架(GraphRec)。特别是,我们提供了一种原则性的方法来联合捕获用户项目图中的交互和观点,并提出了GraphRec框架,该框架连贯地对两个图和异构强度进行建模。在两个真实世界的数据集上进行的大量实验证明了所提出框架GraphRec的有效性。
引言
近年来图神经网络(GNNs)的发展形势大好,GNN的主要思想是如何使用神经网络迭代地聚合来自局部图邻域的特征信息。 同时,节点信息可以在变换和聚合之后通过图传播。因此,GNN自然地集成了节点信息以及拓扑结构,并已被证明在表示学习中功能强大[5,7,15]。 另一方面,社交推荐中的数据可以表示为具有两个图形的图形数据。 如图1所示,这两个图包括表示用户之间关系的社交图和表示用户与项目之间交互的用户项图。 用户同时参与两个图,可以桥接它们。 此外,社交推荐的自然方法是将社交网络信息纳入用户和项目潜在因素学习中[37]。 学习项目和用户的表示形式是构建社交推荐系统的关键。 因此,鉴于它们的优势,GNN为推进社会推荐提供了前所未有的机会。
要将GNNs应用在推荐系统上,首先需要解决三个问题:
- 如何结合两种图的信息,即user-user图和user-item图。
- 如何同时获取到user之间以及item之间的互动(interactions)和意见(opinions)。
- 如何用不同的连接强度区分社会关系。
论文总结其优点为以下四个:
- 提出了一种新颖的图神经网络GraphRec,可以对社交推荐中的图形数据进行连贯建模。
- 提供了一种原则性的方法来共同捕获用户项目图中的互动和观点。
- 介绍一种在数学上考虑社会关系异质性的方法。
- 在各种现实数据集上证明了所提出框架的有效性
提出的框架
符号表
定义和符号解释
用 U = { u 1 , u 2 , . . . , u n } U=\{u_1,u_2,...,u_n\} U={u1,u2,...,un}表示用户(users)集合, V = { v 1 , v 2 , . . . , v m } V=\{v_1, v_2,...,v_m\} V={v1,v2,...,vm}表示物品(items)集合,其中 n n n表示user数量, m m m表示item、数量。再用 R ∈ R n × m R\in \mathbb{R}^{n\times m} R∈Rn×m表示user-item rating矩阵,即用户-物品评分表,也叫user-item图,其中第 i i i行 j j j列的元素 r i j r_{ij} rij表示用户 u i u_i ui对物品 v j v_j vj的评分。如果用户 u i u_i ui没有对物品 v j v_j vj评分,则 r i j r_{ij} rij赋值为0。其中不为0的 r i j r_{ij} rij可以被看作用户 u i u_i ui对物品 v j v_j vj的意见(opinion)。
用 O = { ( u i , v j ) ∣ r i j ≠ 0 } \mathcal{O}=\{(u_i,v_j)|r_{ij}\neq0\} O={(ui,vj)∣rij=0}表示已知评分的集合, T = { ( u i , v j ) ∣ r i j = 0 } \mathcal{T}=\{(u_i,v_j)|r_{ij}=0\} T={(ui,vj)∣rij=0}表示未知的评分集合。
N ( i ) N(i) N(i)为用户 u i u_i ui直连的用户集合, C ( i ) C(i) C(i)为用户 u i u_i ui直连的物品集合, B ( j ) B(j) B(j)为物品 v j v_j vj直连的用户集合。
用 T ∈ R n × n T\in \mathbb{R}^{n\times n} T∈Rn×n表示用户之间的社会关系图,其中1表示有关系,0表示无关。
已知用户-物品图 R R R和用户关系图 T T T,就能预测 R R R中的缺失值。
用user embedding 向量为 p i ∈ R d \mathbf{p}_i\in \mathbb{R}^d pi∈Rd,item embedding 为 q j ∈ R d \mathbf{q}_j\in \mathbb{R}^d qj∈Rd,其中 d d d表示embedding向量的长度。
算法总览
下图为整个算法的整体框架
本论文提出的模型包括三部分:user modeling,item modeling和rating prediction。
- user modeling旨在从用户关系图和用户物品关系图学习到用户的隐含特征。
- item modeling旨在从物品关系图学习到物品的隐含特征。为了在用户项目图中同时考虑交互和观点,我们引入了用户聚合,即在item modeling中聚合用户的观点。
- 第三部分是通过集成user modeling和item modeling,通过预测来学习模型参数。
1.User Modeling
user modeling 旨在习得用户的隐含特征,用 h i ∈ R d h_i\in \mathbb{R}^d hi∈Rd表示用户 u i u_i ui的隐含特征向量。为了达成这个目标,论文用了两种聚合方式来从两个图中学习特征。
- Item Aggregation:从user-item图中获得 h i I ∈ R d h^I_i\in \mathbb{R}^d hiI∈Rd
- Social Aggregation:从user关系图中获得 h i S ∈ R d h^S_i\in \mathbb{R}^d hiS∈Rd
- 将以上两个向量结合起来获得 h i h_i hi
1.1 Item Aggregation
这个部分只使用user-item图来获取item空间中的用户隐含信息 h i I h^I_i hiI,以下公式展现计算的过程:
h i I = σ ( W ⋅ A g g r e i t e m s ( { x i a , ∀ a ∈ C ( i ) } ) + b ) h^I_i=\sigma(\mathbf{W} \cdot Aggre_{items}(\{\mathbf{x}_{ia},\forall a\in C(i) \}) + b) hiI=σ(W⋅Aggreitems({xia,∀a∈C(i)})+b)
其中 C ( i ) C(i) C(i)是和用户 u i u_i ui有关系的item集合,即在user-item图中 u i u_i ui的邻居。 x i a \mathbf{x}_{ia} xia是 u i u_i ui和item v a v_a va之间的关系表示向量, A g g r e i t e m s Aggre_{items} Aggreitems表示聚合函数, σ \sigma σ表示非线性激活函数, W , b \mathbf{W},b W,b表示网络的权重。
1.1.1 x i a \mathbf{x}_{ia} xia的计算
用户的意见可以用向量 r r r来表示。对于不同的意见 r r r,论文将其embed 为向量 e r \mathbf{e}_r er,举例来说,在5星评价的情况下,对于每一个 r ∈ { 1 , 2 , 3 , 4 , 5 } r\in \{1, 2, 3, 4, 5\} r∈{1,2,3,4,5},都获得一个稠密的embedding vector e r \mathbf{e}_r er。
对于用户 u i u_i ui对物品 v a v_a va的意见(打分) r r r,论文将 x i a \mathbf{x}_{ia} xia定义为item embedding q a \mathbf{q}_a qa和opinion embedding e r \mathbf{e}_r er的结合,以上两个embedding都由多层感知机(MLP)得到。
以上结合方式用 g v g_v gv表示,MLP输入 q a \mathbf{q}_a qa和 e r \mathbf{e}_r er的结合,并且输出 u i u_i ui和 v a v_a va之间关系的向量表示 x i a \mathbf{x}_{ia} xia:
x i a = g v ( [ q a ⊕ e r ] ) \mathbf{x}_{ia}=g_v([\mathbf{q}_a \oplus \mathbf{e}_r]) xia=gv([qa⊕er])
对于 A g g r e i t e m s Aggre_{items} Aggreitems函数,论文使用了平均的方法。公式如下:
h i I = σ ( W { ∑ a ∈ C ( i ) α i x i a } + b ) \mathbf{h}^I_i=\sigma(\mathbf{W}\{\sum_{a\in C(i)}\alpha_i\mathbf{x}_{ia}\}+b) hiI=σ(W{a∈C(i)∑αixia}+b)
其中 α i = 1 ∣ C ( i ) ∣ \alpha_i=\frac{1}{|C(i)|} αi=∣C(i)∣1。
- matlab多元回归分析怎么计算,matlab在多元线性回归分析中的相关计算
- appJSON[tabBar][borderStyle] 字段需为 black 或 white console.error @ VM1402:1 (anonymous) @ VM1415:2
- 什么是annotations
- AndroidWidget——GridView 学习笔记
- LruCache源码浅析
- 回溯法(算法分析与设计)
- [SOA介绍]什么是SOA
- mmap如何使用?
- Specification 参数的用法
- Android 6.0 Marshmallow介绍
- Ext 4 概述(一)
- TCP Socket与TCP 连接
- 四川省13家企业荣获第十三届创新中国企业家论坛“创新型企业”奖
- pgpool读写分离,配置设置及调研
- 损失函数——均方误差(Mean Squared Error,MSE)
- R语言把DataFrame的一行变成向量
- socat 虚拟串口在 linux OS中如何实现?