现已可在Movielens-1M、KuaiRand_Pure、Zhihu1M数据集上运行。 步骤如下:
如果下载到实验室服务器,不要下载在/home/你自己/目录下,这个目录不适合存放大文件,放不下项目数据。
请用df -h查看磁盘空间,每个服务器都挂载了额外硬盘,一般在/data/你自己/, 如果/data/下没有“你自己”目录,请联系管理员创造一个。
此时,在服务器上的/data/你自己/下,下载本库,并进入本库的根目录中
git clone https://github.com/chongminggao/CRL.git
cd CRL以下代码请逐行运行:
wget https://nas.chongminggao.top:4430/datasets/CRL/environments.zip --no-check-certificate
unzip environments.zip
rm environments.zip首先创造一个conda环境,并激活
conda create -n CRL python=3.11然后安装相应的库(已经用清华源对pip进行加速)
conda activate CRL
sh install.sh # 清华源加速python run_CRL.py --env ml-1m # run ML-1M dataset (default)
python run_CRL.py --env Zhihu-1M # run Zhihu-1M dataset
python run_CRL.py --env KuaiRand-Pure # run KuaiRand-Pure dataset
python run_SL_main.py --epoch 10 --device 1 --model_name esmm --env ml-1m --augment_rate 10 # 待尝试 &
python run_SL_main.py --epoch 10 --device 2 --model_name esmm --env Zhihu-1M --augment_rate 10 # 还没调试 &
python run_SL_main.py --epoch 10 --device 3 --model_name esmm --env KuaiRand-Pure --augment_rate 10 # 还没调试 &
python run_DT4Rec.py --env ml-1m
python run_DT4Rec.py --env Zhihu-1M
python run_DT4Rec.py --env KuaiRand-Pure
说明: 首次运行时,会计算并存储一些文件,比如调用DeepCTR的库填补出所有一个groundtruth矩阵,即所有用户对所有商品的评分。这个过程稍慢一些。之后运行就会变快。
我写的比较结构化,借鉴了DeepCTR库中的feature_column的设计,以及tianshou库中的buffer设计。都已经自我包含了(不需要额外下载其他库),需要先读懂整个逻辑。 评估与训练是交替进行的。
- 快速在MovieLens调出性能。
- 将该逻辑实现在公开数据集ZhihuRec以及KuaiRand-Pure数据集上。逻辑均与MovieLens处理一致。
- 现在KuaiRand-1K数据进行了简单的分析,但KuaiRand-1K数据集实在太大了,id太多跑不动,放弃。不用管1K的数据。需要单独下载KuaiRand-Pure数据集重新处理。
- 实现对比算法。
需要快速整理related work, 整理出适合作为对比算法的methods,到网上找寻相关代码。related work包括的方向:
-
序列推荐算法,比如SASRec,GRU4REC,参照杨正一、辛鑫论文里的实验对比算法。
-
multi-objective推荐算法,包括:
- 一定要引用以及读的近期综述,从这些综述中找到一些常见的且方便实现的方法实现。
- 传统在输出head端进行加权的,或者multi intent或者multi objective,看这篇论文的2.3~2.4节:Intent-aware Ranking Ensemble for Personalized Recommendation
- 偏策略学习(强化学习)的包括:
- 刘子儒WWW24投稿的Multi-task Sequential Recommendation with Decision Transformer
- 刘子儒的Multi-Task Recommendations with Reinforcement Learning
- 以及蔡庆芃的:Two-Stage Constrained Actor-Critic for Short Video
- Prompting Decision Transformer for Few-Shot Policy Generalization
-
可控的算法,包括传统帕累托优化的一些方法,这些方法没有强调强化学习,例如:
- Personalized Approximate Pareto-Efficient Recommendation
- Multi-Task Learning as Multi-Objective Optimization
- A Pareto-Eficient Algorithm for Multiple Objective Optimization in E-Commerce Recommendation
- Pareto Self-Supervised Training for Few-Shot Learning
- 关键:Controllable Multi-Objective Re-ranking with Policy Hypernetworks
-
已有策略算法