Crate sbr[−][src]
sbr-rs
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.
Example
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) .embedding_dim(32) .learning_rate(0.16) .l2_penalty(0.0004) .lstm_variant(sbr::models::lstm::LSTMVariant::Normal) .loss(sbr::models::lstm::Loss::WARP) .optimizer(sbr::models::lstm::Optimizer::Adagrad) .num_epochs(10) .rng(rng) .build(); let start = Instant::now(); let loss = model.fit(&train_mat).unwrap(); 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(); println!( "Train MRR {} at loss {} and test MRR {} (in {:?})", train_mrr, loss, test_mrr, elapsed );
Modules
data |
Funcionality for manipulating data. |
datasets |
Built-in datasets for easy testing and experimentation. |
evaluation |
Model containing evaluation functions. |
models |
Models module. |
Enums
PredictionError |
Prediction error types. |
Traits
OnlineRankingModel |
Trait describing models that can compute predictions given a user's sequences of past interactions. |
Type Definitions
ItemId |
Alias for item indices. |
Timestamp |
Alias for timestamps. |
UserId |
Alias for user indices. |