推薦システムの実行
パッケージのインストール
(recsys_full) offline$ pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu124
# ...(3分程度)...
(recsys_full) offline$
pip install ray
pip install pyarrow
pip install kmeans_pytorch
pip install recbole
(recsys_full) offline$ pip freeze
...(略)...
absl-py==2.5.0
attrs==26.1.0
click==8.5.0
colorama==0.4.4
colorlog==4.7.2
cuda-bindings==13.3.1
cuda-pathfinder==1.8.0
cuda-toolkit==13.0.3.0
filelock==3.32.4
fsspec==2026.7.0
grpcio==1.83.1
Jinja2==3.1.6
jsonschema==4.26.0
jsonschema-specifications==2025.9.1
kmeans-pytorch==0.3
Markdown==3.10.3
MarkupSafe==3.0.3
mpmath==1.3.0
msgpack==1.2.2
networkx==3.6.1
nvidia-cublas==13.1.1.3
nvidia-cuda-cupti==13.0.85
nvidia-cuda-nvrtc==13.0.88
nvidia-cuda-runtime==13.0.96
nvidia-cudnn-cu13==9.20.0.48
nvidia-cufft==12.0.0.61
nvidia-cufile==1.15.1.6
nvidia-curand==10.4.0.35
nvidia-cusolver==12.0.4.66
nvidia-cusparse==12.6.3.3
nvidia-cusparselt-cu13==0.8.1
nvidia-nccl-cu13==2.29.7
nvidia-nvjitlink==13.3.33
nvidia-nvshmem-cu13==3.4.5
nvidia-nvtx==13.0.85
plotly==7.0.0
protobuf==7.36.0
pyarrow==25.0.1
PyYAML==6.0.3
ray==2.58.0
recbole==1.2.0
referencing==0.37.0
rpds-py==2026.6.3
setuptools==84.0.0
sympy==1.14.0
tabulate==0.10.0
tensorboard==2.21.0
tensorboard-data-server==0.7.2
texttable==1.7.0
thop==0.1.1.post2209072238
torch==2.13.0
torchaudio==2.11.0
torchvision==0.28.0
triton==3.7.1
typing_extensions==4.16.0
Werkzeug==3.1.8
...(略)...
推薦処理プログラムの準備
- 下記ファイルをダウンロードし、
offline/src/ディレクトリに移動する。- recsyslab / recsys-full / src / offline / src /
recommenders/__init__.pyrecommenders/base_recommender.pyrecommenders/bpr_recommender.pyrecommenders/movie_similarity_recommender.pyrecommenders/pupularity_recommender.pyutils/__init__.pyutils/dataset.pyutils/recommend_result.pyconfig.yamloffline.iniupdate.py
- recsyslab / recsys-full / src / offline / src /
(recsys_full) offline$ tree src/
src/
├── config.yaml # <-
├── keygen.py
├── ml2rdb.py
├── offline.ini # <-
├── recommenders # <-
│ ├── __init__.py # <-
│ ├── base_recommender.py # <-
│ ├── bpr_recommender.py # <-
│ ├── movie_similarity_recommender.py # <-
│ └── popularity_recommender.py # <-
├── update.py # <-
├── user2encrypt.py
└── utils # <-
├── __init__.py # <-
├── dataset.py # <-
└── recommend_result.py # <-
3 directories, 14 files
推薦システムの実行
(recsys_full) offline$ python src/update.py --ini src/offline.ini
processing Dataset.to_rating_matrix: 100%|████████████████████████████████████████████████████████████████████████████████████████████████| 100836/100836 [00:20<00:00, 4972.83it/s]
...(略)...
processing Dataset.to_movies_movies_similarity_matrix: 100%|████████████████████████████████████████████████████████████████████████████████████| 9742/9742 [18:20<00:00, 8.86it/s]
processing PopularityRecommender.recommend: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████| 20/20 [00:00<00:00, 165.79it/s]
processing MovieSimilarityRecommender.recommend: 100%|████████████████████████████████████████████████████████████████████████████████████████| 9742/9742 [00:03<00:00, 2769.41it/s]
...(略)...
processing BPRRecommender.recommend: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████| 611/611 [00:02<00:00, 257.93it/s]
elapsed_time:1343.605[sec]
# ...(25分程度)...
結果の確認
(recsys_full) offline$ tree data/
data/
├── genres.csv
├── movies.csv
├── movies_genres.csv
├── ratings.csv
├── reclist_bpr.csv # <-
├── reclist_movie_similarity.csv # <-
├── reclist_popularity.csv # <-
├── tags.csv
└── users.csv
1 directory, 9 files
(recsys_full) offline$ tree local/
local/
├── keys
├── ml-latest-small
│ ├── README.txt
│ ├── links.csv
│ ├── movies.csv
│ ├── ratings.csv
│ └── tags.csv
├── ml-ls.inter # <-
├── ml-ls.item # <-
├── ml-ls.user # <-
├── ml-rdb
│ ├── genres.csv
│ ├── links.csv
│ ├── movies.csv
│ ├── movies_genres.csv
│ ├── ratings.csv
│ ├── tags.csv
│ └── users.csv
├── movies_movies_similarity_matrix.csv # <-
├── rating_matrix.csv # <-
└── users_.csv
3 directories, 19 files
(recsys_full) offline$
less data/reclist_popularity.csv
less data/reclist_movie_similarity.csv
less data/reclist_bpr.csv
参考
- 風間正弘,飯塚洸二郎,松村優也,『著推薦システム実践入門 ―仕事で使える導入ガイド』,オライリー・ジャパン,2022.
- 与謝秀作,『特集 3 最新レコメンドエンジン総実装 協調フィルタリングから深層学習まで』,WEB+DB PRESS Vol.129,pp.69-100,技術評論社,2022.
- [🐛BUG] Wrong number of users and items in datasets information · Issue #1516 · RUCAIBox/RecBole
- RecBole v1.2.0 — RecBole 1.2.0 documentation