CRSLab  by RUCAIBox

Open-source toolkit for conversational recommender systems (CRS)

Created 4 years ago
540 stars

Top 58.9% on SourcePulse

GitHubView on GitHub
Project Summary

CRSLab is an open-source Python toolkit for building Conversational Recommender Systems (CRS). It provides researchers and developers with a unified, extensible framework to experiment with and develop CRS models, offering comprehensive benchmarks, standardized evaluation protocols, and human-machine interaction interfaces.

How It Works

CRSLab unifies CRS development by abstracting tasks into three sub-tasks: recommendation (item suggestion), conversation (response generation), and policy (interaction strategy selection). It leverages PyTorch and supports various model architectures, including graph neural networks (e.g., R-GCN) and pre-trained models (e.g., BERT, GPT-2), enabling researchers to integrate and compare diverse approaches within a consistent structure.

Quick Start & Requirements

  • Install: pip install crslab or install from source.
  • Prerequisites: Python 3.7+, PyTorch 1.8+, CUDA 10.2+ (for GPU). PyTorch Geometric installation is also required.
  • Run: python run_crslab.py --config config/crs/kgsf/redial.yaml (CPU default, specify GPU with --gpu).
  • Docs: CRSLab Paper, Docs, 中文版

Highlighted Details

  • Integrates 18 benchmark models across CRS, Recommendation, Conversation, and Policy categories.
  • Supports 6 preprocessed datasets (e.g., ReDial, TG-ReDial) with associated Knowledge Graphs.
  • Implements standard evaluation metrics for recommendation (Hit, MRR, NDCG) and conversation (BLEU, PPL, Distinct).
  • Offers flexible human-machine interaction interfaces for qualitative analysis.

Maintenance & Community

  • Developed and maintained by the AI Box group at RUC.
  • Contributions are welcomed via issue tracker and pull requests.

Licensing & Compatibility

  • MIT License. Permissive for commercial use and integration into closed-source projects.

Limitations & Caveats

The provided performance benchmarks are preliminary and may not represent optimal model tuning. The library requires specific PyTorch and CUDA versions, potentially necessitating environment management.

Health Check
Last Commit

1 year ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
1 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.