Recommender models

6 releases (3 breaking)

0.4.0 Jun 27, 2018
0.3.0 Jun 19, 2018
0.2.1 Jun 9, 2018
0.1.1 May 24, 2018

#34 in Machine learning

39 downloads per month

MIT license

1.5K SLoC

sbr badge badge Build Status

An implementation of sequence recommenders based on the wyrm autdifferentiaton library.


sbr implements efficient recommender algorithms which operate on sequences of items: given previous items a user has interacted with, the model will recommend the items the user is likely to interact with in the future.


You can fit a model on the Movielens 100K dataset in about 10 seconds:

let mut data = sbr::datasets::download_movielens_100k().unwrap();

let mut rng = rand::XorShiftRng::from_seed([42; 16]);

let (train, test) = sbr::data::user_based_split(&mut data, &mut rng, 0.2);
let train_mat = train.to_compressed();
let test_mat = test.to_compressed();

println!("Train: {}, test: {}", train.len(), test.len());

let mut model = sbr::models::lstm::Hyperparameters::new(data.num_items(), 32)

let start = Instant::now();
let loss =;
let elapsed = start.elapsed();
let train_mrr = sbr::evaluation::mrr_score(&model, &train_mat).unwrap();
let test_mrr = sbr::evaluation::mrr_score(&model, &test_mat).unwrap();

    "Train MRR {} at loss {} and test MRR {} (in {:?})",
    train_mrr, loss, test_mrr, elapsed

License: MIT


~357K SLoC