A Survey on Large Language Models for Recommendation

828 篇文章

已下架不支持订阅

本文探讨了大型语言模型(LLM)在推荐系统(RS)中的应用,通过自监督学习训练,利用LLM的文本表示能力和外部知识增强推荐质量。将LLM分为判别式和生成式两类,详细分析了各类方法、技术和性能,指出了挑战并提供未来研究方向。

本文是LLM系列的文章,针对《A Survey on Large Language Models for Recommendation》的翻译。

摘要

大型语言模型(LLM)作为自然语言处理(NLP)领域的强大工具,近年来在推荐系统(RS)领域受到了极大的关注。这些模型使用自监督学习在大量数据上进行训练,在学习通用表示方面取得了显著成功,并有可能通过一些有效的转移技术(如微调和提示调整)来增强推荐系统的各个方面。利用语言模型的力量来提高推荐质量的关键方面是利用它们对文本特征的高质量表示以及它们对外部知识的广泛覆盖来建立项目和用户之间的相关性。为了全面了解现有的基于LLM的推荐系统,本综述提出了一种分类法,将这些模型分为两个主要范式,分别是用于推荐的判别LLM(DLLM4Rec)和用于推荐的生成LLM(GLLM4Reg),后者首次被系统地分类。此外,我们系统地回顾和分析了每种范式中现有的基于LLM的推荐系统,深入了解了它们的方法、技术和性能。此外,我们还确定了关键挑战和一些有价值的发现,为研究人员和从业者提供了灵感。我们还创建了一个GitHub存储库,为LLM上的相关论文编制索引,以供推荐。

1 引言

2 建模范式和分类

3 判别式LLM用于推荐

4 生成式LLM用于推荐

5 发现

6 结论

在本文中,我们回顾了推荐系统的大型语言模型(LLM)的研究领域。我们将现有的工作分为判别模型和生成模型,然后用领域自适应的方式对它们进行了详细的说明。为了防止概念混淆,我们在基于LLM的推荐中提供了微调

### 社交推荐中图神经网络的应用综述 图神经网络(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() ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值