Session-based recommendations with recurrent neural networks(阅读理解)

本文介绍了一种使用RNN进行Session-Based推荐的方法,该方法首次将序列问题引入推荐系统,有效地捕捉了用户行为的时间特性。相较于传统推荐算法,这种方法能够更好地建模用户的连续偏好信息,克服了马尔科夫决策过程中的维度爆炸问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本文是最大贡献在于第一次将RNN使用到Session-based Recommendation中

作者将用户的行为作为看做是序列问题,有效的将时间信息添加到网络中,在传统的两类推荐方法中——基于内容的推荐算法和协同过滤推荐算法(model-based、memory-based)在刻画序列数据中存在缺陷:每个item相互独立,不能建模item的连续偏好信息,缺失了整个序列的休息。

而本文的方法恰好运用到真个序列的信息,不仅关注最近几次的用户行为,并全面考虑到前面信息对后面信息的影响。同时随着状态的跳转,基于RNN的序列建模克服了马尔科夫决策过程中维度爆炸的问题,总体上来看这是一个属于Seq2Seq的预测问题


模型流程:

输入:

点击序列x=[x1, x2, x3, ... , xr, ... xn],通过one-hot编码,使用embedding将序列转换成向量格式(这也是RNN中常见的输入形式)

输出:

每一个item 被点击的预测概率


训练策略:

作者为提高训练的效率,提出了两种加速策略

1 Training strategy:

首先,我们为session创建一个顺序,接着,我们使用第一个session的第一个item作为输入,(期望的输出结果是第二个item),输入的第二批数据是第二个item。如果任何一个session结束了,则下一个可用的session填充在那个位置上。我们假设每一个session都是独立的,所以当发生切换的时候我们将重置合适的hidden state

这篇文章传达的思路就是很简单但是有效,为后面相关的研究开辟了新道路,起到了很好的引导作用。

2 Sample on the output

因为item的维度非常高,item的数量将会计算量,所以训练的方式的每次选择当前的正样本,然后随机抽取负样本。即选取了同一个mini-batch 中其他sequence下一个点击的item作为负样本,用这些正负样本来训练整个神经网络。

### Graph Neural Networks in Social Recommendation Graph Neural Networks (GNNs) 的英文翻译为 **Graph Neural Networks**,而其在社交推荐中的应用可以描述为 **Application of Graph Neural Networks in Social Recommendations** 或者更具体的表述如 **Social Recommendation using Graph Neural Networks**。 #### 背景介绍 社交推荐系统利用用户之间的社会关系以及物品间的关联信息来提升推荐质量。由于图神经网络能够有效处理复杂的图结构数据并从中学习高阶特征[^1],因此 GNN 已成为该领域的重要工具之一。具体来说,在社交推荐场景下,用户的交互行为和社会联系可以通过图的形式建模,其中节点代表用户或项目,边则表示两者间的关系或互动强度[^3]。 #### 应用方式 一种典型的应用方法是构建包含用户-项目二分图的社会感知推荐框架,并在此基础上引入基于消息传递机制的消息传播算法以捕捉隐含模式[^4]。此外,考虑到实际应用场景中可能存在动态变化的情况(比如新增好友或者兴趣转移),部分研究还探索了如何结合时间维度的信息来进行更加精准的预测[^5]。 以下是实现这一过程的一个简单伪代码示例: ```python import torch from torch_geometric.nn import GCNConv class SocialRecommendationModel(torch.nn.Module): def __init__(self, num_user_features, num_item_features, hidden_channels): super(SocialRecommendationModel, self).__init__() self.conv1 = GCNConv(num_user_features + num_item_features, hidden_channels) self.conv2 = GCNConv(hidden_channels, 1) def forward(self, data): x, edge_index = data.x, data.edge_index x = self.conv1(x, edge_index) x = torch.relu(x) x = self.conv2(x, edge_index) return torch.sigmoid(x).squeeze() ``` 此段代码定义了一个基础版本的用于社交推荐任务的两层图卷积网络模型(GCN),它接收融合后的用户和项目的特征作为输入,并最终输出每一对可能存在的链接概率值。 #### 总结 综上所述,借助于强大的表达能力和灵活性,图神经网络正在推动着社交推荐技术向着更高水平迈进。未来随着理论和技术的发展,相信会有更多创新性的解决方案被提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值