【序列推荐、图网络、Transformer】STAM:A Spatiotemporal Aggregation Method for Graph Neural Network-based

这篇博客介绍了STAM方法,一种针对图神经网络推荐系统的改进,它考虑了时间和空间序列信息,增强了对用户行为时间序列的建模。通过结合自注意力机制和位置编码,STAM能更准确地为用户生成个性化推荐,尤其在处理用户商品预览时序关系上。论文展示了STAM如何替换现有GNN方法,并通过实验验证了其在推荐效果上的优势。

#论文题目:STAM: A Spatiotemporal Aggregation Method for Graph Neural Network-based Recommendation(STAM: 基于时空聚合方法的图神经网络)
#论文地址:https://keg.cs.tsinghua.edu.cn/jietang/publications/WWW22-Yang%20et%20al.-STAM-GNN.pdf
#论文源码开源地址:https://github.com/zyang-16/STAM
#论文所属会议:WWW 2022
#论文所属单位:Alibaba

一、引言

基于GNN的推荐系统通常基于空间结构信息对近邻embedding进行聚合,从而忽略了时间序列信息的聚合,本文提出STAM方法根据时间和空间信息对近邻的一阶邻居节点embedding进行聚合,并且此方法可以和其他GNN方法结合,即只修改GNN方法中的聚合函数为STAM即可。

本文的创新点:

  1. 强调了时间序列信息在基于GNN的邻居聚集推荐算法中的重要意义,说明聚类方法考虑结构和时间序列是有意义的。
  2. 提出的STAM聚合方法可以很自然的替代现有的基于GNN方法进行推荐的算法中。

二、GNN方法导读

详情请见博客:《基于推荐的GNN方法导读》

但是GNN有一个局限性:
他只考虑了网络中的连边的关系,而没有考虑过网络连边的时序关系(即user先预览了什么商品,后预览了什么商品)
在这里插入图片描述

在时间序列预测领域,尤其是基于深度学习的方法中,Transformer、LSTM 和 CNN 的结合已经成为研究热点。TCLN 提出的融合架构通过引入多核卷积、自注意力机制和长短时记忆网络,显著提升了模型在多变量时间序列预测(MTSF)中的表现[^1]。以下是一些与 TCLN 类似的研究工作: ### 基于 Transformer 与 Conv-LSTM 的时间序列预测模型 #### 1. Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting Informer 是一种专为长序列时间序列预测设计的 Transformer 变体,它通过概率稀疏注意力机制和自注意力蒸馏策略来减少计算复杂度,并有效捕捉长期依赖关系。虽然 Informer 主要基于 Transformer 架构,但其思想可以与 LSTM 或 CNN 结合以增强时空建模能力[^2]。 #### 2. Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting Autoformer 引入了序列分解模块和自相关机制,用于识别时间序列中的周期性模式。该模型利用 Transformer 架构进行长期趋势建模,并结合自相关机制提取更细粒度的时间依赖结构。这种分解方法也可与 Conv-LSTM 融合以提升空间特征提取能力[^3]。 #### 3. Temporal Fusion Transformer (TFT) Temporal Fusion Transformer 是一个专门用于多变量时间序列预测的混合模型,它结合了 LSTM 和 Transformer 的优势。TFT 使用 LSTM 编码历史时间步的信息,并通过可解释的多头注意力机制进行跨时间步的交互建模。此外,TFT 还支持静态协变量输入,适用于工业和金融等复杂场景[^2]。 #### 4. DeepGLO: A Deep Learning Approach to Multivariate Time Series Forecasting DeepGLO 是一个基于矩阵分解和深度神经网络的多变量时间序列预测框架。该模型使用全局潜在因子表示整个时间序列的共性,并通过局部 LSTM 或 CNN 模型建模每个时间序列的独特性。这种方法可以与 Transformer 结合以进一步增强模型的时空建模能力[^3]。 #### 5. LSTNet: Deep Learning for Multivariate Time Series Forecasting LSTNet 是早期将 CNN、RNN 和跳跃连接结合用于多变量时间序列预测的工作。它使用卷积层提取短期模式,并通过 LSTM 捕捉长期依赖。最后通过跳跃连接将不同层次的特征组合起来。LSTNet 的结构启发了后续许多融合 CNN 与 RNN 的工作,包括 TCLN 中的多核卷积与 LSTM 和 Transformer 的结合[^1]。 #### 6. MTGNN: Multivariate Time Series Forecasting via Graph Neural Networks MTGNN 将多元时间序列建模为图结构,利用图神经网络(GNN)建模变量之间的空间依赖关系,并结合门控循环单元(GRU)建模时间动态变化。虽然主要基于 GNN,但其时间建模部分可以替换为 Transformer 或 Conv-LSTM 以提升模型性能。 --- ### 示例代码:构建一个简单的 Transformer + LSTM 时间序列预测模型 ```python import torch import torch.nn as nn class TransformerLSTMModel(nn.Module): def __init__(self, input_dim, hidden_dim, num_layers, output_dim, nhead=4): super(TransformerLSTMModel, self).__init__() self.embedding = nn.Linear(input_dim, hidden_dim) self.transformer_layer = nn.TransformerEncoderLayer(d_model=hidden_dim, nhead=nhead) self.transformer = nn.TransformerEncoder(self.transformer_layer, num_layers=2) self.lstm = nn.LSTM(hidden_dim, hidden_dim, num_layers=num_layers, batch_first=True) self.fc = nn.Linear(hidden_dim, output_dim) def forward(self, x): # x shape: (batch_size, seq_len, input_dim) x = self.embedding(x) # (batch_size, seq_len, hidden_dim) x = x.permute(1, 0, 2) # (seq_len, batch_size, hidden_dim) x = self.transformer(x) # (seq_len, batch_size, hidden_dim) x = x.permute(1, 0, 2) # (batch_size, seq_len, hidden_dim) lstm_out, _ = self.lstm(x) # (batch_size, seq_len, hidden_dim) out = self.fc(lstm_out[:, -1, :]) # (batch_size, output_dim) return out ``` ---
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值