Skip to content

Latest commit

 

History

History
147 lines (123 loc) · 7.73 KB

README_CN.md

File metadata and controls

147 lines (123 loc) · 7.73 KB

TiM4Rec: An Efficient Sequential Recommendation Model Based on Time-Aware Structured State Space Duality Model

PWC PWC PWC

Stars

由于实验室规定,文章未正式发表前不允许公布模型源代码,所以目前的资源库还不完整,不过您不用担心,文章正式发表后我们会立即补充完整的模型代码。 您也可以先使用我们发布的训练日志文件检查TiM4Rec模型的性能。😊

If you want to read the English version, please click README_Eng.md.

1. 概述

overview_of_tim4rec

TiM4Rec: An Efficient Sequential Recommendation Model Based on Time-Aware Structured State Space Duality Model
范昊,朱萌逸,胡彦蓉,冯海林,何志杰,刘洪久,刘清扬
Paper: https://arxiv.org/abs/2409.16182

我们提出了基于时间感知 SSD 的高效序列推荐模型TiM4Rec(Time-aware Mamba For Recommendation)。 我们在序列推荐领域对 Mamba 架构的时间感知增强方法进行了开创性的探索。 通过对 SSM 和 SSD 的深入分析,我们首次提出了适用于 SSD 架构的线性计算复杂度的时间感知增强方法。

接下来,我们将逐步引导您使用该资源库。 🤗

2. 准备工作

git clone https://github.com/AlwaysFHao/TiM4Rec.git
cd TiM4Rec/

2.1 环境要求

以下是运行本项目所需的主要环境依赖:

  • cuda 11.8
  • python 3.10.14
  • pytorch 2.3.0
  • recbole 1.2.0
  • mamba-ssm 2.2.2
  • casual-conv1d 1.2.2 (由于我们使用 "nn.Conv1d "实现了与 casual-conv1d 相对应的功能,因此该条为可选项)
  • psutil 6.1.0
  • numpy 1.26.4

如果您在安装 Mamba 时遇到困难,请参阅我们编写的安装教程: https://github.com/AlwaysFHao/Mamba-Install

您还可以在文件 environment.yaml 查看所需的环境细节。

2.2 数据集

我们的工作利用了以下三个数据集,其中包括由 RecBole 提供的 🎦 MovieLens-1M🛒 Amazon-Beauty, 以及由 SSD4Rec 作者提供的 📱 KuaiRand

您可以通过以下链接获得所有的数据集: Quark Drive (password: SVzs) / BaiDu Cloud Drive (password: 1296) / Google Drive

  • 🎦 MovieLens-1M: 该数据集包含从 MovieLens 平台收集的约 100 万条用户对电影的评分。
  • 🛒 Amazon-Beauty: 亚马逊平台上收集至 2014 年的美容类别商品的用户评论数据集。
  • 📱 KuaiRand: 该数据集取自 "快手 "APP的推荐日志,其中包括数百万次涉及随机显示物品的交互记录。

2.3 项目结构

在本节中,我们将介绍项目结构。您可以点击展开下面的目录来查看项目结构:

📁 TiM4Rec
  • 📁 assert | (存储readme相关的图片)
  • 📁 baseline | (存储论文中所对比的基线模型)
    • 📁 BERT4Rec
      • 📜 config.yaml
      • 🐍 run.py
    • 📁 ...
  • 📁 config | (存储TiM4Rec模型的配置文件)
    • 📜 config4beauty_64d.yaml
    • 📜 config4kuai_64d.yaml
    • 📜 config4movie_64d.yaml
    • 📜 config4movie_256d.yaml
  • 📁 dataset | (存储数据集文件)
    • 📁 amazon-beauty
      • 📖 amazon-beauty.inter
      • 📖 amazon-beauty.item
    • 📁 ...
  • 📁 log | (存储训练日志文件)
  • 📁 log_tensorboard | (存储tensorboard的训练日志文件)
  • 📁 saved | (存储模型权重保存文件)
  • 📜 environment.yaml
  • 🐍 run.py
  • 🐍 ssd.py
  • 🐍 test.py
  • 🐍 tim4rec.py

您可以从云盘中下载文件 Quark Drive (password: SVzs) / BaiDu Cloud Drive (password: 1296) / Google Drive,并将它们放到相应的文件夹中。

3. 运行

好了,恭喜你🎇, 你已经完成所有的准备工作👍,我们可以开始训练模型了!😄

本节将介绍模型的训练方法。

3.1 TiM4Rec

在准备好所有运行环境和必要文件(如数据集)后, 请按照以下格式修改 🐍 run.py 中的配置文件路径:

config = Config(model=TiM4Rec, config_file_list=['config/config4{dataset_name}_{dim}d.yaml'])

完成上述步骤之后,即可直接运行:

python run.py

如果要进行断点续训,则需要在相应配置文件的 checkpoint_path 配置项中添加模型权重路径。

checkpoint_path: saved/model_weight_name.pth

3.2 基线模型对比(可选)

您可以直接选择我们在 📁 baseline 中提供的模型文件进行对比, 这里我们用 SASRec模型进行举例。

cd ./baseline/SASRec
python run.py

3.3 模型训练

如果你想直接测试指定模型权重的性能,可以参考 3.1 章节, 修改 🐍 test.py 文件中的配置文件名, 在配置文件中添加项 checkpoint_path, 然后运行test文件:

python test.py

4. 致谢

我们的代码实现是基于 RecBolePytorch 框架, 并且参考 Mamba4RecMamba 的工作。 基线模型的实现参考了 TiSASRec.pytorchLRURec。 此外,我们在编写readme文档时还参考了 MISSRec 工作。

5. 引用

如果我们的工作对您有所启发或提供了参考,请考虑引用:

@article{fan2024tim4rec,
  title={TiM4Rec: An Efficient Sequential Recommendation Model Based on Time-Aware Structured State Space Duality Model},
  author={Fan, Hao and Zhu, Mengyi and Hu, Yanrong and Feng, Hailin and He, Zhijie and Liu, Hongjiu and Liu, Qingyang},
  journal={arXiv preprint arXiv:2409.16182},
  year={2024}
}