Paper Notes: Graph Neural Networks for Social Recommendation

提出GraphRec,一种结合社交图和用户-物品图的图神经网络,解决社交推荐系统的三大挑战:融合不同图、同时捕捉互动与意见、区分社会关系强度。通过用户建模、物品建模和评分预测组件,有效提升推荐精度。
部署运行你感兴趣的模型镜像
Graph Neural Networks for Social Recommendation
  • LINK: https://arxiv.org/abs/1902.07243

  • CLASSIFICATION: RECOMMENDER-SYSTEM, HETEROGENEOUS NETWORK, GCN

  • YEAR: Submitted on 19 Feb 2019 (v1), last revised 23 Nov 2019 (this version, v2)

  • FROM: WWW 2019

  • WHAT PROBLEM TO SOLVE: Building social recommender systems based on GNNs faces challenges. The first challenge is how to inherently combine the social graph and the user-item graph. Moreover, the user-item graph not only contains interactions between users and items but also includes users’ opinions on items. The second challenge is how to capture interactions and opinions between users and items jointly. The third challenge is how to distinguish social relations with heterogeneous strengths.

  • SOLUTION:

    Specially, we propose a novel graph neural network GraphRec for social recommendations, which can address three aforementioned challenges simultaneously. Our major contributions are summarized as follows:

    • We propose a novel graph neural network GraphRec, which can model graph data in social recommendations coherently;
    • We provide a principled approach to jointly capture interactions and opinions in the user-item graph;
    • We introduce a method to consider heterogeneous strengths of social relations mathematically; and
    • We demonstrate the effectiveness of the proposed framework on various real-world datasets.
  • CORE POINT:

    • The Proposed Framework

      image.png

      The model consists of three components: user modeling, item modeling, and rating prediction.

      • User Modeling

        The first component is user modeling, which is to learn latent factors of users. As data in social recommender systems includes two different graphs, i.e., a social graph and a user-item graph, we are provided with a great opportunity to learn user representations from different perspectives. Two aggregations are introduced to respectively process these two different graphs.

        • Item Aggregation

          To understand users via interactions between users and items in the user-item graph (or item-space).

          The purpose of item aggregation is to learn item-space user latent factor h i I h^I_i hiI by considering items a user u i u_i ui has interacted with and users’ opinions on these items. To mathematically represent this aggregation, we use the following function as:

          image.png

          The MLP takes the concatenation of item embedding q a q_a qa and its opinion embedding e r e_r er as input. The output of MLP is the opinion-aware representation of the interaction between u i u_i ui and v a v_a va, x i a x_{ia} xia, as follows:

          image.png

          To alleviate the limitation of mean-based aggregator, inspired by attention mechanisms, an intuitive solution is to tweak α i α_i αi to be aware of the target user u i u_i ui, i.e., assigning an individualized weight for each ( v a v_a va, u i u_i ui) pair,

          image.png

          Formally, the attention network is defined as,

          image.png

          The final attention weights are obtained by normalizing the above attentive scores using Softmax function.

          image.png
        • Social Aggregation

          The relationship between users in the social graph, which can help model users from the social perspective (or social-space). The learning of social-space user latent factors should consider heterogeneous strengths of social relations. Therefore, we introduce an attention mechanism to select social friends that are representative to characterize users social information and then aggregate their information.

          The social-space user latent factor of u i u_i ui, h i S h^S_i hiS, is to aggregate the item-space user latent factors of users in u i u_i ui’s neighbors N ( i ) N(i) N(i), as the follows:

          image.png

          We perform an attention mechanism with a two-layer neural network to extract these users that are important to influence u i u_i ui, and model their tie strengths, by relating social attention β i o β_{io} βio with h o I h^I_o hoI and the target user embedding p i p_i pi, as below.

          image.png
        • Learning User Latent Factor

          It is intuitive to obtain user latent factors by combining information from both item space and social space.

          We propose to combine these two latent factors to the final user latent factor via a standard MLP where the item-space user latent factor hI iand the social-space user latent factor hS iare concatenated before feeding into MLP. Formally, the user latent factor hiis defined as,

          image.png
      • Item Modeling

        The second component is item modeling, which is to learn latent factors of items. In order to consider both interactions and opinions in the user-item graph, we introduce user aggregation, which is to aggregate users’ opinions in item modeling.

        • User Aggregation

          Same as Item Aggregation

          image.png image.png image.png
      • Rating Prediction

        The third component is to learn model parameters via prediction by integrating user and item modeling components.

        With the latent factors of users and items (i.e., h i h_i hi and z j z_j zj ), we can first concatenate them 􏰀[ h i h_i hi z j z_j zj] 􏰁 and then feed it into MLP for rating prediction as:

        image.png
    • Objective Function

      image.png
    • Experiment

      • Datasets

        image.png
      • Performance Comparison of Recommender Systems

        image.png

      • Model Analysis

        • Effect of Social Network and User Opinions
        • Effect of Attention Mechanisms
        • Effect of Embedding Size

        image.png

  • EXISTING PROBLEMS: 1. Currently we only incorporate the social graph into recommendation, while many real-world industries are associated rich other side information on users as well as items. 2. Now we consider both rating and social information static. However, rating and social information are naturally dynamic.

  • IMPROVEMENT IDEAS: 1. Users and items are associated with rich attributes. Therefore, exploring graph neural networks for recommendation with attributes would be an interesting future direction. 2. Consider building dynamic graph neural networks for social recommendations with dynamic.

您可能感兴趣的与本文相关的镜像

Linly-Talker

Linly-Talker

AI应用

Linly-Talker是一款创新的数字人对话系统,它融合了最新的人工智能技术,包括大型语言模型(LLM)、自动语音识别(ASR)、文本到语音转换(TTS)和语音克隆技术

### 社交推荐中图神经网络的应用综述 图神经网络Graph Neural Networks, GNNs)在社交推荐系统中的应用已经成为研究的热点,其主要优势在于能够有效地建模用户-物品交互以及用户之间的社交关系。社交推荐系统的目标是通过结合用户的社交网络信息和行为数据,提供更精准的推荐结果。GNNs通过图结构建模,能够捕捉复杂的高阶关系,从而显著提升推荐系统的性能。 在社交推荐中,GNNs通常用于构建用户-物品交互图和用户社交关系图。这种图结构可以进一步扩展到多跳邻域,从而捕捉更广泛的上下文信息。例如,用户之间的社交关系可以通过图卷积网络(Graph Convolutional Networks, GCNs)进行建模,而用户-物品交互则可以通过图注意力网络(Graph Attention Networks, GATs)来增强推荐的个性化能力[^3]。 此外,GNNs还可以与自监督学习相结合,以解决推荐系统中的冷启动和数据稀疏问题。这种方法通过生成伪标签或利用对比学习来增强模型的泛化能力。例如,通过自监督学习,模型可以利用用户的历史行为数据生成潜在的特征表示,从而提升推荐的准确性[^4]。 在评估方面,社交推荐系统的研究通常关注多目标优化,包括推荐的准确性、多样性和公平性。这些目标不仅需要模型设计上的创新,还需要在数据集和评估指标上进行改进。例如,某些研究提出了新的基准数据集,以更好地反映真实世界的社交推荐场景[^1]。 最后,社交推荐系统的研究还面临一些挑战,例如模型的可解释性、隐私保护以及大规模图数据的高效处理。未来的研究方向可能包括更高效的图神经网络架构、跨域推荐的融合方法以及基于图的强化学习策略[^2]。 ### 代码示例 以下是一个简单的图神经网络模型在社交推荐中的实现示例,使用PyTorch Geometric: ```python import torch import torch.nn.functional as F from torch_geometric.nn import GCNConv class SocialRecommendationGNN(torch.nn.Module): def __init__(self, num_features, hidden_dim, num_classes): super(SocialRecommendationGNN, self).__init__() self.conv1 = GCNConv(num_features, hidden_dim) self.conv2 = GCNConv(hidden_dim, num_classes) def forward(self, data): x, edge_index = data.x, data.edge_index x = self.conv1(x, edge_index) x = F.relu(x) x = self.conv2(x, edge_index) return F.log_softmax(x, dim=1) # 假设数据已经加载为PyTorch Geometric的Data对象 # model = SocialRecommendationGNN(num_features=64, hidden_dim=128, num_classes=10) # optimizer = torch.optim.Adam(model.parameters(), lr=0.01) # for epoch in range(100): # model.train() # optimizer.zero_grad() # out = model(data) # loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask]) # loss.backward() # optimizer.step() ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值