├── .gitignore ├── README.html ├── README.md ├── algorithms ├── CSRM │ ├── __init__.py │ ├── csrm.py │ └── ome.py ├── IIRNN │ ├── ii_rnn.py │ └── utils_ii_rnn.py ├── NCFS │ ├── models │ │ ├── attentionlayer.py │ │ └── cross_sess_model.py │ └── ncfs.py ├── RepeatNet │ ├── __init__.py │ ├── att_rec.py │ ├── base │ │ ├── __init__.py │ │ ├── attention.py │ │ ├── corpus.py │ │ ├── decoder.py │ │ ├── encoder.py │ │ ├── function.py │ │ ├── n_step_gru.py │ │ ├── recsys.py │ │ ├── selective_gate.py │ │ └── utils.py │ ├── gru_rec.py │ ├── repeat_net.py │ ├── repeat_net_module.py │ ├── repeat_non_repeat_bar.py │ ├── test.py │ ├── tmp.py │ └── train.py ├── STAMP │ ├── __init__.py │ ├── basic_layer │ │ ├── FwNn3AttLayer.py │ │ ├── LinearLayer.py │ │ ├── LinearLayer_3dim.py │ │ ├── NN.py │ │ ├── NN_adam.py │ │ └── __init__.py │ ├── data_prepare │ │ ├── __init__.py │ │ ├── dataset_read.py │ │ ├── entity │ │ │ ├── __init__.py │ │ │ ├── sample.py │ │ │ └── samplepack.py │ │ └── load_dict.py │ ├── model │ │ ├── STAMP.py │ │ └── __init__.py │ └── util │ │ ├── AccCalculater.py │ │ ├── Activer.py │ │ ├── BatchData.py │ │ ├── Bitmap.py │ │ ├── Config.py │ │ ├── FileDumpLoad.py │ │ ├── Formater.py │ │ ├── Pooler.py │ │ ├── Printer.py │ │ ├── Randomer.py │ │ ├── SoftmaxMask.py │ │ ├── TensorGather.py │ │ ├── __init__.py │ │ └── batcher │ │ ├── __init__.py │ │ └── equal_len │ │ ├── __init__.py │ │ └── batcher_p.py ├── __init__.py ├── ae │ ├── __init__.py │ ├── ae.py │ └── helper │ │ ├── __init__.py │ │ ├── dae.py │ │ └── vae.py ├── apgnn │ ├── __init__.py │ ├── apgnn.py │ ├── model_last.py │ ├── record.py │ ├── train_last.py │ └── transformer.py ├── baselines │ ├── __init__.py │ ├── ar.py │ ├── backup │ │ └── usr_basic.py │ ├── bpr.py │ ├── markov.py │ ├── pop.py │ ├── random.py │ ├── rpop.py │ ├── spop.py │ ├── sr.py │ └── usr.py ├── ct │ ├── __init__.py │ ├── context_tree_BVMM.py │ └── ct.py ├── extensions │ └── reminder.py ├── filemodel │ ├── __init__.py │ ├── filemodel.py │ └── resultfile.py ├── gru4rec │ ├── __init__.py │ ├── gpu_ops.py │ ├── gru4rec.py │ └── ugru4rec.py ├── hgru4rec │ ├── __init__.py │ └── hgru4rec.py ├── hybrid │ ├── __init__.py │ ├── cascading.py │ ├── mixed.py │ ├── strategic.py │ ├── strategic_idf.py │ ├── strategic_seq.py │ └── weighted.py ├── knn │ ├── __init__.py │ ├── iknn.py │ ├── sknn.py │ ├── stan.py │ ├── ustan.py │ ├── uvsknn.py │ ├── uvstan.py │ ├── vsknn.py │ └── vstan.py ├── narm │ ├── __init__.py │ ├── narm.py │ └── unarm.py ├── nextitnet │ ├── .gitignore │ ├── __init__.py │ ├── data_loader_adapted.py │ ├── data_loader_recsys.py │ ├── generator_recsys.py │ ├── nextitnet.py │ ├── nextitrec.py │ └── ops.py ├── nsar │ ├── __init__.py │ ├── data_loader │ │ └── data_loader.py │ ├── models │ │ └── UserGru.py │ ├── nsar.py │ └── trainers │ │ └── UserGru_trainer.py ├── sbr_adapter │ ├── __init__.py │ ├── adapter.py │ ├── factorization │ │ ├── __init__.py │ │ ├── bprmf.py │ │ ├── fism.py │ │ ├── fossil.py │ │ ├── fpmc.py │ │ └── mf_base.py │ └── helpers │ │ ├── __init__.py │ │ └── evaluation.py ├── sgnn │ ├── __init__.py │ ├── gnn.py │ └── utils.py ├── shan │ ├── __init__.py │ └── shan.py └── smf │ ├── __init__.py │ └── smf.py ├── backup ├── algorithms │ ├── aware_backup │ │ ├── knn_aware │ │ │ ├── __init__.py │ │ │ ├── cknn.py │ │ │ ├── cknn.py.orig │ │ │ ├── eknn │ │ │ │ ├── __init__.py │ │ │ │ ├── iknn.py │ │ │ │ ├── iknn.py.orig │ │ │ │ ├── iknn2.py │ │ │ │ ├── iknn2.py.orig │ │ │ │ ├── sknn.py │ │ │ │ └── sknn.py.orig │ │ │ ├── iknn.py │ │ │ ├── scknn.py │ │ │ ├── scknn.py.orig │ │ │ ├── sfcknn.py │ │ │ ├── sfcknn.py.orig │ │ │ ├── svmknn.py │ │ │ ├── svmknn.py.orig │ │ │ ├── uvmknn.py │ │ │ ├── uvmknn.py.orig │ │ │ ├── vmknn.py │ │ │ └── vmknn.py.orig │ │ └── smf_aware │ │ │ ├── __init__.py │ │ │ ├── _test.py │ │ │ ├── _test.py.orig │ │ │ ├── imf.py │ │ │ ├── imf.py.orig │ │ │ ├── smf.py │ │ │ ├── smf11.py │ │ │ ├── smf11.py.orig │ │ │ ├── smf12.py │ │ │ ├── smf12.py.orig │ │ │ ├── smf13.py │ │ │ ├── smf13.py.orig │ │ │ ├── smf14.py │ │ │ ├── smf14.py.orig │ │ │ ├── smf15.py │ │ │ ├── smf15.py.orig │ │ │ ├── smf2.py │ │ │ ├── smf2.py.orig │ │ │ ├── smf20.py │ │ │ ├── smf20.py.orig │ │ │ ├── smf3.py │ │ │ ├── smf3.py.orig │ │ │ ├── smf4.py │ │ │ ├── smf4.py.orig │ │ │ ├── smf5.py │ │ │ ├── smf5.py.orig │ │ │ ├── smf6.py │ │ │ ├── smf6.py.orig │ │ │ ├── smf7.py │ │ │ ├── smf7.py.orig │ │ │ ├── smf8.py │ │ │ ├── smf8.py.orig │ │ │ ├── smf9.py │ │ │ ├── smf9.py.orig │ │ │ ├── ufsmf2.py │ │ │ ├── ufsmf2.py.orig │ │ │ ├── usmf.py │ │ │ ├── usmf.py.orig │ │ │ ├── usmf2.py │ │ │ ├── usmf2.py.orig │ │ │ ├── utsmf2.py │ │ │ └── utsmf2.py.orig │ └── backup_algorithms_extensions │ │ ├── hgru4rec_backup.py │ │ ├── knn │ │ ├── backup │ │ │ ├── ustan_backup.py │ │ │ ├── uvsknn_backup.py │ │ │ ├── uvsknn_clean_backup.py │ │ │ └── uvstan_backup.py │ │ ├── backup_improved │ │ │ ├── ustan_improved.py │ │ │ ├── uvsknn_improved.py │ │ │ └── uvstan_improved.py │ │ ├── basic_reminders │ │ │ ├── ustan.py │ │ │ ├── uvsknn.py │ │ │ └── uvstan.py │ │ └── check │ │ │ ├── uvsknn_check.py │ │ │ └── uvsknn_new.py │ │ ├── nextitnet_backup.py │ │ ├── reminders_basic │ │ ├── reminder_basic.py │ │ ├── reminder_check.py │ │ ├── reminder_improved_2.py │ │ └── reminder_new.py │ │ ├── shan │ │ ├── shan_2.py │ │ └── shan_check.py │ │ ├── ugru4rec_basic.py │ │ └── unarm_basic.py ├── conf │ ├── evaluation │ │ ├── evaluation_user_based_multiple.py │ │ ├── evaluation_user_based_next.py │ │ └── metrics │ │ │ └── saver_user_based_backup.py │ ├── example │ │ └── test_csrm.yml │ ├── preprocess │ │ └── session_aware │ │ │ ├── cosmetics_window_feb.yml │ │ │ ├── cosmetics_window_first_3.yml │ │ │ ├── cosmetics_window_last_2_months.yml │ │ │ └── cosmetics_window_last_3_months.yml │ └── save │ │ ├── lastfm │ │ └── session_aware │ │ │ └── window │ │ │ ├── exp │ │ │ ├── window_lastfm_gru4rec_R_basic.yml │ │ │ ├── window_lastfm_narm_R_basic.yml │ │ │ ├── window_lastfm_stan_R_basic.yml │ │ │ ├── window_lastfm_usr_basic.yml │ │ │ ├── window_lastfm_vsknn_EBR_basic.yml │ │ │ ├── window_lastfm_vsknn_R_basic.yml │ │ │ └── window_lastfm_vstan_R_basic.yml │ │ │ └── opt │ │ │ ├── window_lastfm_gru4rec_R_basic.yml │ │ │ ├── window_lastfm_narm_R_basic.yml │ │ │ ├── window_lastfm_sr_BR_basic.yml │ │ │ ├── window_lastfm_sr_R_basic.yml │ │ │ ├── window_lastfm_stan_R_basic.yml │ │ │ ├── window_lastfm_ustan_reminder_basic.yml │ │ │ ├── window_lastfm_uvsknn_reminder_basic.yml │ │ │ ├── window_lastfm_vsknn_EBR_basic.yml │ │ │ ├── window_lastfm_vsknn_R_basic.yml │ │ │ └── window_lastfm_vstan_R_basic.yml │ │ ├── retailrocket │ │ └── session_aware │ │ │ ├── scalability │ │ │ ├── all_in_one │ │ │ │ ├── window_retailrocket_baselines.yml │ │ │ │ ├── window_retailrocket_baselines_all.yml │ │ │ │ ├── window_retailrocket_session_aware.yml │ │ │ │ └── window_retailrocket_session_based.yml │ │ │ ├── window_retailrocket_hgru4rec.yml │ │ │ ├── window_retailrocket_iirnn.yml │ │ │ ├── window_retailrocket_ncsf.yml │ │ │ ├── window_retailrocket_nsar.yml │ │ │ └── window_retailrocket_shan.yml │ │ │ └── window │ │ │ ├── exp │ │ │ ├── window_retailrocket_gru4rec_R_basic.yml │ │ │ ├── window_retailrocket_narm_R_basic.yml │ │ │ ├── window_retailrocket_stan_R_basic.yml │ │ │ ├── window_retailrocket_usr_basic.yml │ │ │ ├── window_retailrocket_vsknn_EBR_basic.yml │ │ │ ├── window_retailrocket_vsknn_R_basic.yml │ │ │ └── window_retailrocket_vstan_R_basic.yml │ │ │ └── opt │ │ │ ├── window_retailrocket_gru4rec_R_basic.yml │ │ │ ├── window_retailrocket_narm_R_basic.yml │ │ │ ├── window_retailrocket_sr_BR.yml │ │ │ ├── window_retailrocket_sr_R.yml │ │ │ ├── window_retailrocket_stan_R_basic.yml │ │ │ ├── window_retailrocket_ustan_reminder_basic.yml │ │ │ ├── window_retailrocket_uvsknn_reminder_basic.yml │ │ │ ├── window_retailrocket_vsknn_EBR_basic.yml │ │ │ ├── window_retailrocket_vsknn_R_basic.yml │ │ │ └── window_retailrocket_vstan_R_basic.yml │ │ └── xing │ │ └── session_aware │ │ └── window │ │ ├── exp │ │ ├── window_xing_gru4rec_R_basic.yml │ │ ├── window_xing_narm_R_basic.yml │ │ ├── window_xing_stan_R_basic.yml │ │ ├── window_xing_usr_basic.yml │ │ ├── window_xing_vsknn_EBR_basic.yml │ │ ├── window_xing_vsknn_R_basic.yml │ │ └── window_xing_vstan_R_basic.yml │ │ └── opt │ │ ├── window_xing_gru4rec_R_basic.yml │ │ ├── window_xing_narm_R_basic.yml │ │ ├── window_xing_sr_BR_basic.yml │ │ ├── window_xing_sr_R_basic.yml │ │ ├── window_xing_stan_R_basic.yml │ │ ├── window_xing_ustan_reminder_basic.yml │ │ ├── window_xing_uvsknn_reminder_basic.yml │ │ ├── window_xing_vsknn_EBR_basic.yml │ │ ├── window_xing_vsknn_EBR_reminder.yml │ │ ├── window_xing_vsknn_R_basic.yml │ │ └── window_xing_vstan_R_basic.yml └── preprocessing │ ├── check_statistics │ └── cosmetics │ │ └── cosmetics_statistics_sliding_sampling_splitting.py │ └── session_aware │ └── preprocess_tmall.py ├── conf ├── example_all_models_exp.yml ├── example_all_neural.yml ├── example_bayopt.yml ├── example_hybrid_opt.yml ├── example_multiple.yml ├── example_next.yml ├── example_opt.yml ├── example_session_aware_exp.yml ├── example_session_aware_opt.yml ├── in │ └── test_csrm.yml ├── preprocess │ ├── retrain │ │ ├── diginetica.yml │ │ └── nowplaying.yml │ ├── session_aware │ │ ├── cosmetics_window.yml │ │ ├── for_debugging │ │ │ └── retailrocket_sample_test.yml │ │ ├── lastfm_window.yml │ │ ├── retailrocket_window.yml │ │ ├── single │ │ │ ├── diginetica.yml │ │ │ ├── lastfm.yml │ │ │ ├── retailrocket.yml │ │ │ └── xing.yml │ │ └── xing_window.yml │ └── session_based │ │ ├── retrain │ │ ├── diginetica.yml │ │ └── nowplaying.yml │ │ ├── single │ │ ├── diginetica.yml │ │ ├── rsc15.yml │ │ ├── rsc15_4.yml │ │ └── rsc15_64.yml │ │ └── window │ │ ├── 30music.yml │ │ ├── aotm.yml │ │ ├── diginetica.yml │ │ ├── nowplaying.yml │ │ ├── retailrocket.yml │ │ ├── rsc15.yml │ │ └── tmall.yml ├── retrain exp │ └── nowplaying │ │ └── gru │ │ ├── gru_retrain_0.yml │ │ ├── gru_retrain_1.yml │ │ ├── gru_retrain_10.yml │ │ ├── gru_retrain_2.yml │ │ ├── gru_retrain_3.yml │ │ ├── gru_retrain_4.yml │ │ ├── gru_retrain_5.yml │ │ ├── gru_retrain_6.yml │ │ ├── gru_retrain_7.yml │ │ ├── gru_retrain_8.yml │ │ └── gru_retrain_9.yml ├── save │ ├── 30music │ │ ├── hybrids_window30music.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_30music_csrm.yml │ │ │ ├── window_30music_ct.yml │ │ │ ├── window_30music_gru.yml │ │ │ ├── window_30music_knn.yml │ │ │ ├── window_30music_narm.yml │ │ │ ├── window_30music_nextitnet.yml │ │ │ ├── window_30music_sgnn.yml │ │ │ ├── window_30music_smf.yml │ │ │ ├── window_30music_sr.yml │ │ │ ├── window_30music_stan.yml │ │ │ └── window_30music_vstan.yml │ │ │ ├── window_30music_baselines.yml │ │ │ ├── window_30music_csrm.yml │ │ │ ├── window_30music_models.yml │ │ │ ├── window_30music_sgnn.yml │ │ │ ├── window_30music_stan.yml │ │ │ ├── window_30music_vstan.yml │ │ │ ├── window_multiple_30music_baselines.yml │ │ │ ├── window_multiple_30music_csrm.yml │ │ │ ├── window_multiple_30music_models.yml │ │ │ ├── window_multiple_30music_sgnn.yml │ │ │ ├── window_multiple_30music_stan.yml │ │ │ └── window_multiple_30music_vstan.yml │ ├── 8tracks │ │ └── window │ │ │ ├── hybrids_window_8tracks.yml │ │ │ ├── opt │ │ │ ├── window_8tracks_csrm.yml │ │ │ ├── window_8tracks_gru.yml │ │ │ ├── window_8tracks_knn.yml │ │ │ ├── window_8tracks_narm.yml │ │ │ ├── window_8tracks_nextitnet.yml │ │ │ ├── window_8tracks_sgnn.yml │ │ │ ├── window_8tracks_sr.yml │ │ │ ├── window_8tracks_stamp.yml │ │ │ ├── window_8tracks_stan.yml │ │ │ └── window_8tracks_vstan.yml │ │ │ ├── window_8tracks_baselines.yml │ │ │ ├── window_8tracks_csrm.yml │ │ │ ├── window_8tracks_models.yml │ │ │ ├── window_8tracks_sgnn.yml │ │ │ ├── window_8tracks_stan.yml │ │ │ ├── window_8tracks_time.yml │ │ │ ├── window_8tracks_time_nextitnet.yml │ │ │ ├── window_multiple_8tracks_baselines.yml │ │ │ ├── window_multiple_8tracks_csrm.yml │ │ │ ├── window_multiple_8tracks_models.yml │ │ │ └── window_multiple_8tracks_stan.yml │ ├── aotm │ │ ├── hybrids_window_aotm.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_aotm_csrm.yml │ │ │ ├── window_aotm_gru.yml │ │ │ ├── window_aotm_knn.yml │ │ │ ├── window_aotm_narm.yml │ │ │ ├── window_aotm_nextitnet.yml │ │ │ ├── window_aotm_sgnn.yml │ │ │ ├── window_aotm_smf.yml │ │ │ ├── window_aotm_sr.yml │ │ │ ├── window_aotm_stan.yml │ │ │ └── window_aotm_vstan.yml │ │ │ ├── window_aotm_baselines.yml │ │ │ ├── window_aotm_models.yml │ │ │ ├── window_aotm_smf.yml │ │ │ ├── window_aotm_srgnn.yml │ │ │ ├── window_aotm_stan.yml │ │ │ ├── window_aotm_vstan.yml │ │ │ ├── window_multiple_aotm_baselines.yml │ │ │ ├── window_multiple_aotm_models.yml │ │ │ ├── window_multiple_aotm_smf.yml │ │ │ ├── window_multiple_aotm_srgnn.yml │ │ │ ├── window_multiple_aotm_stan.yml │ │ │ └── window_multiple_aotm_vstan.yml │ ├── cosmetics │ │ └── session_aware │ │ │ ├── scalability │ │ │ ├── window_cosmetics_baselines.yml │ │ │ ├── window_cosmetics_session_aware.yml │ │ │ └── window_cosmetics_session_based.yml │ │ │ └── window │ │ │ ├── exp │ │ │ ├── gru4rec │ │ │ │ ├── window_cosmetics_gru4rec.yml │ │ │ │ └── window_cosmetics_gru4rec_R.yml │ │ │ ├── narm │ │ │ │ ├── window_cosmetics_narm.yml │ │ │ │ └── window_cosmetics_narm_R.yml │ │ │ ├── sr │ │ │ │ └── window_cosmetics_sr_extensions.yml │ │ │ ├── stan │ │ │ │ ├── window_cosmetics_stan.yml │ │ │ │ ├── window_cosmetics_stan_B.yml │ │ │ │ ├── window_cosmetics_stan_E.yml │ │ │ │ ├── window_cosmetics_stan_EB.yml │ │ │ │ ├── window_cosmetics_stan_EBR.yml │ │ │ │ ├── window_cosmetics_stan_ER.yml │ │ │ │ └── window_cosmetics_stan_R.yml │ │ │ ├── vsknn │ │ │ │ ├── window_cosmetics_vsknn.yml │ │ │ │ ├── window_cosmetics_vsknn_B.yml │ │ │ │ ├── window_cosmetics_vsknn_E.yml │ │ │ │ ├── window_cosmetics_vsknn_EB.yml │ │ │ │ ├── window_cosmetics_vsknn_EBR.yml │ │ │ │ ├── window_cosmetics_vsknn_ER.yml │ │ │ │ └── window_cosmetics_vsknn_R.yml │ │ │ ├── vstan │ │ │ │ ├── window_cosmetics_vstan.yml │ │ │ │ ├── window_cosmetics_vstan_B.yml │ │ │ │ ├── window_cosmetics_vstan_E.yml │ │ │ │ ├── window_cosmetics_vstan_EB.yml │ │ │ │ ├── window_cosmetics_vstan_EBR.yml │ │ │ │ └── window_cosmetics_vstan_ER.yml │ │ │ ├── window_cosmetics_hgru4rec.yml │ │ │ ├── window_cosmetics_ii_rnn.yml │ │ │ ├── window_cosmetics_ncfs.yml │ │ │ ├── window_cosmetics_nsar.yml │ │ │ └── window_cosmetics_shan.yml │ │ │ └── opt │ │ │ ├── gru4rec │ │ │ ├── window_cosmetics_gru4rec.yml │ │ │ └── window_cosmetics_gru4rec_R.yml │ │ │ ├── narm │ │ │ ├── window_cosmetics_narm.yml │ │ │ └── window_cosmetics_narm_R.yml │ │ │ ├── shan_all_combination │ │ │ ├── window_cosmetics_shan_1.yml │ │ │ ├── window_cosmetics_shan_2.yml │ │ │ ├── window_cosmetics_shan_3.yml │ │ │ ├── window_cosmetics_shan_4.yml │ │ │ ├── window_cosmetics_shan_5.yml │ │ │ ├── window_cosmetics_shan_6.yml │ │ │ ├── window_cosmetics_shan_7.yml │ │ │ ├── window_cosmetics_shan_8.yml │ │ │ └── window_cosmetics_shan_9.yml │ │ │ ├── sr │ │ │ ├── window_cosmetics_sr.yml │ │ │ ├── window_cosmetics_sr_B.yml │ │ │ ├── window_cosmetics_sr_BR.yml │ │ │ └── window_cosmetics_sr_R.yml │ │ │ ├── stan │ │ │ ├── window_cosmetics_stan.yml │ │ │ ├── window_cosmetics_stan_B.yml │ │ │ ├── window_cosmetics_stan_E.yml │ │ │ ├── window_cosmetics_stan_EB.yml │ │ │ ├── window_cosmetics_stan_EBR.yml │ │ │ ├── window_cosmetics_stan_ER.yml │ │ │ └── window_cosmetics_stan_R.yml │ │ │ ├── vsknn │ │ │ ├── window_cosmetics_vsknn.yml │ │ │ ├── window_cosmetics_vsknn_B.yml │ │ │ ├── window_cosmetics_vsknn_E.yml │ │ │ ├── window_cosmetics_vsknn_EB.yml │ │ │ ├── window_cosmetics_vsknn_EBR.yml │ │ │ ├── window_cosmetics_vsknn_ER.yml │ │ │ └── window_cosmetics_vsknn_R.yml │ │ │ ├── vstan │ │ │ ├── window_cosmetics_vstan.yml │ │ │ ├── window_cosmetics_vstan_B.yml │ │ │ ├── window_cosmetics_vstan_E.yml │ │ │ ├── window_cosmetics_vstan_EB.yml │ │ │ ├── window_cosmetics_vstan_EBR.yml │ │ │ ├── window_cosmetics_vstan_ER.yml │ │ │ └── window_cosmetics_vstan_R.yml │ │ │ ├── window_cosmetics_hgru4rec.yml │ │ │ ├── window_cosmetics_ii_rnn.yml │ │ │ ├── window_cosmetics_ncfs.yml │ │ │ └── window_cosmetics_nsar.yml │ ├── diginetica │ │ ├── single split │ │ │ ├── opt │ │ │ │ ├── opt_digi_sgnn.yml │ │ │ │ ├── single_digi_gru.yml │ │ │ │ ├── single_digi_knn.yml │ │ │ │ ├── single_digi_narm.yml │ │ │ │ ├── single_digi_smf.yml │ │ │ │ ├── single_digi_sr.yml │ │ │ │ ├── single_digi_stamp.yml │ │ │ │ ├── single_digi_stan.yml │ │ │ │ ├── single_digi_vstan.yml │ │ │ │ ├── single_wrongtime_digi_gru.yml │ │ │ │ ├── single_wrongtime_digi_knn.yml │ │ │ │ ├── single_wrongtime_digi_narm.yml │ │ │ │ ├── single_wrongtime_digi_nextitnet.yml │ │ │ │ ├── single_wrongtime_digi_sr.yml │ │ │ │ └── single_wrongtime_digi_stamp.yml │ │ │ ├── single_digi_baselines.yml │ │ │ ├── single_digi_models.yml │ │ │ ├── single_digi_stan.yml │ │ │ ├── single_digi_vstan.yml │ │ │ ├── single_multiple_digi_baselines.yml │ │ │ ├── single_multiple_digi_models.yml │ │ │ ├── single_multiple_digi_stan.yml │ │ │ ├── single_multiple_digi_vstan.yml │ │ │ ├── single_multiple_wrongtime_digi_baselines.yml │ │ │ ├── single_multiple_wrongtime_digi_models.yml │ │ │ ├── single_wrongtime_digi_baselines.yml │ │ │ └── single_wrongtime_digi_models.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_digi_csrm.yml │ │ │ ├── window_digi_gru.yml │ │ │ ├── window_digi_knn.yml │ │ │ ├── window_digi_narm.yml │ │ │ ├── window_digi_nextitnet.yml │ │ │ ├── window_digi_sgnn.yml │ │ │ ├── window_digi_smf.yml │ │ │ ├── window_digi_sr.yml │ │ │ ├── window_digi_stamp.yml │ │ │ ├── window_digi_stan.yml │ │ │ └── window_digi_vstan.yml │ │ │ ├── opt_wrongtime │ │ │ ├── window_wrongtime_digi_gru.yml │ │ │ ├── window_wrongtime_digi_knn.yml │ │ │ ├── window_wrongtime_digi_narm.yml │ │ │ ├── window_wrongtime_digi_nextitnet.yml │ │ │ ├── window_wrongtime_digi_sr.yml │ │ │ └── window_wrongtime_digi_stamp.yml │ │ │ ├── window_digi_baselines.yml │ │ │ ├── window_digi_models.yml │ │ │ ├── window_digi_sgnn.yml │ │ │ ├── window_digi_smf.yml │ │ │ ├── window_digi_stan.yml │ │ │ ├── window_digi_vstan.yml │ │ │ ├── window_multiple_digi_baselines.yml │ │ │ ├── window_multiple_digi_models.yml │ │ │ ├── window_multiple_digi_sgnn.yml │ │ │ ├── window_multiple_digi_stan.yml │ │ │ ├── window_multiple_digi_vstan.yml │ │ │ ├── window_wrongtime_digi_baselines.yml │ │ │ ├── window_wrongtime_digi_models.yml │ │ │ ├── window_wrongtime_multiple_digi_baselines.yml │ │ │ └── window_wrongtime_multiple_digi_models.yml │ ├── lastfm │ │ └── session_aware │ │ │ ├── scalability │ │ │ ├── window_lastfm_baselines.yml │ │ │ ├── window_lastfm_session_aware.yml │ │ │ └── window_lastfm_session_based.yml │ │ │ ├── single │ │ │ └── opt │ │ │ │ ├── single_lastfm_hgru4rec.yml │ │ │ │ ├── single_lastfm_ii_rnn.yml │ │ │ │ ├── single_lastfm_ncfs.yml │ │ │ │ └── single_lastfm_uvsknn.yml │ │ │ └── window │ │ │ ├── exp │ │ │ ├── gru4rec │ │ │ │ ├── window_lastfm_gru4rec.yml │ │ │ │ └── window_lastfm_gru4rec_E.yml │ │ │ ├── narm │ │ │ │ ├── window_lastfm_narm.yml │ │ │ │ └── window_lastfm_narm_E.yml │ │ │ ├── sr │ │ │ │ ├── window_lastfm_sr.yml │ │ │ │ └── window_lastfm_usr.yml │ │ │ ├── stan │ │ │ │ ├── window_lastfm_stan.yml │ │ │ │ ├── window_lastfm_stan_B.yml │ │ │ │ ├── window_lastfm_stan_E.yml │ │ │ │ ├── window_lastfm_stan_EB.yml │ │ │ │ ├── window_lastfm_stan_EBR.yml │ │ │ │ ├── window_lastfm_stan_ER.yml │ │ │ │ └── window_lastfm_stan_R.yml │ │ │ ├── vsknn │ │ │ │ ├── window_lastfm_vsknn.yml │ │ │ │ ├── window_lastfm_vsknn_B.yml │ │ │ │ ├── window_lastfm_vsknn_E.yml │ │ │ │ ├── window_lastfm_vsknn_EB.yml │ │ │ │ ├── window_lastfm_vsknn_EBR.yml │ │ │ │ ├── window_lastfm_vsknn_ER.yml │ │ │ │ └── window_lastfm_vsknn_R.yml │ │ │ ├── vstan │ │ │ │ ├── window_lastfm_vstan.yml │ │ │ │ ├── window_lastfm_vstan_B.yml │ │ │ │ ├── window_lastfm_vstan_E.yml │ │ │ │ ├── window_lastfm_vstan_EB.yml │ │ │ │ ├── window_lastfm_vstan_EBR.yml │ │ │ │ ├── window_lastfm_vstan_ER.yml │ │ │ │ └── window_lastfm_vstan_R.yml │ │ │ ├── window_lastfm_hgru4rec.yml │ │ │ ├── window_lastfm_ii_rnn.yml │ │ │ ├── window_lastfm_ncfs.yml │ │ │ ├── window_lastfm_nsar.yml │ │ │ └── window_lastfm_shan.yml │ │ │ └── opt │ │ │ ├── gru4rec │ │ │ ├── window_lastfm_gru4rec.yml │ │ │ ├── window_lastfm_gru4rec_E.yml │ │ │ └── window_lastfm_gru4rec_R.yml │ │ │ ├── ii_rnn │ │ │ ├── window_lastfm_ii_rnn_100_epochs.yml │ │ │ └── window_lastfm_ii_rnn_20_epochs.yml │ │ │ ├── narm │ │ │ ├── window_lastfm_narm.yml │ │ │ ├── window_lastfm_narm_E.yml │ │ │ └── window_lastfm_narm_R.yml │ │ │ ├── shan_all_combination │ │ │ ├── window_lastfm_shan_1.yml │ │ │ ├── window_lastfm_shan_2.yml │ │ │ ├── window_lastfm_shan_3.yml │ │ │ ├── window_lastfm_shan_4.yml │ │ │ ├── window_lastfm_shan_5.yml │ │ │ ├── window_lastfm_shan_6.yml │ │ │ ├── window_lastfm_shan_7.yml │ │ │ ├── window_lastfm_shan_8.yml │ │ │ └── window_lastfm_shan_9.yml │ │ │ ├── sr │ │ │ ├── window_lastfm_sr.yml │ │ │ ├── window_lastfm_sr_B.yml │ │ │ ├── window_lastfm_sr_BR.yml │ │ │ └── window_lastfm_sr_R.yml │ │ │ ├── stan │ │ │ ├── window_lastfm_stan.yml │ │ │ ├── window_lastfm_stan_B.yml │ │ │ ├── window_lastfm_stan_E.yml │ │ │ ├── window_lastfm_stan_EB.yml │ │ │ ├── window_lastfm_stan_EBR.yml │ │ │ ├── window_lastfm_stan_ER.yml │ │ │ └── window_lastfm_stan_R.yml │ │ │ ├── vsknn │ │ │ ├── window_lastfm_vsknn.yml │ │ │ ├── window_lastfm_vsknn_B.yml │ │ │ ├── window_lastfm_vsknn_E.yml │ │ │ ├── window_lastfm_vsknn_EB.yml │ │ │ ├── window_lastfm_vsknn_EBR.yml │ │ │ ├── window_lastfm_vsknn_ER.yml │ │ │ └── window_lastfm_vsknn_R.yml │ │ │ ├── vstan │ │ │ ├── window_lastfm_vstan.yml │ │ │ ├── window_lastfm_vstan_B.yml │ │ │ ├── window_lastfm_vstan_E.yml │ │ │ ├── window_lastfm_vstan_EB.yml │ │ │ ├── window_lastfm_vstan_EBR.yml │ │ │ ├── window_lastfm_vstan_ER.yml │ │ │ └── window_lastfm_vstan_R.yml │ │ │ ├── window_lastfm_hgru4rec.yml │ │ │ ├── window_lastfm_ncfs.yml │ │ │ ├── window_lastfm_nsar.yml │ │ │ └── window_lastfm_shan.yml │ ├── nowplaying │ │ └── window │ │ │ ├── opt │ │ │ ├── window_aotm_knn.yml │ │ │ ├── window_nowplaying_csrm.yml │ │ │ ├── window_nowplaying_csrm.yml~513094df8433db6ca6b1100d4a760f30bb014381 │ │ │ ├── window_nowplaying_gru.yml │ │ │ ├── window_nowplaying_nextitnet.yml │ │ │ ├── window_nowplaying_sgnn.yml │ │ │ ├── window_nowplaying_smf.yml │ │ │ ├── window_nowplaying_sr.yml │ │ │ ├── window_nowplaying_stan.yml │ │ │ └── window_nowplaying_vstan.yml │ │ │ ├── window_multiple_nowplaying_baselines.yml │ │ │ ├── window_multiple_nowplaying_csrm.yml │ │ │ ├── window_multiple_nowplaying_models.yml │ │ │ ├── window_multiple_nowplaying_smf.yml │ │ │ ├── window_multiple_nowplaying_srgnn.yml │ │ │ ├── window_multiple_nowplaying_stamp.yml │ │ │ ├── window_multiple_nowplaying_stan.yml │ │ │ ├── window_multiple_nowplaying_vstan.yml │ │ │ ├── window_nowplaying_baselines.yml │ │ │ ├── window_nowplaying_csrm.yml │ │ │ ├── window_nowplaying_models.yml │ │ │ ├── window_nowplaying_smf.yml │ │ │ ├── window_nowplaying_srgnn.yml │ │ │ ├── window_nowplaying_stamp.yml │ │ │ ├── window_nowplaying_stan.yml │ │ │ └── window_nowplaying_vstan.yml │ ├── retailrocket │ │ ├── session_aware │ │ │ ├── scalability │ │ │ │ ├── window_retailrocket_baselines.yml │ │ │ │ ├── window_retailrocket_session_aware.yml │ │ │ │ └── window_retailrocket_session_based.yml │ │ │ ├── single │ │ │ │ ├── exp │ │ │ │ │ ├── single_retailrocket_gru4rec.yml │ │ │ │ │ ├── single_retailrocket_hgru4rec.yml │ │ │ │ │ ├── single_retailrocket_ii_rnn.yml │ │ │ │ │ ├── single_retailrocket_narm.yml │ │ │ │ │ ├── single_retailrocket_ncfs.yml │ │ │ │ │ ├── single_retailrocket_nsar.yml │ │ │ │ │ ├── single_retailrocket_shan.yml │ │ │ │ │ ├── single_retailrocket_sr.yml │ │ │ │ │ ├── single_retailrocket_ugru4rec.yml │ │ │ │ │ ├── single_retailrocket_unarm.yml │ │ │ │ │ ├── single_retailrocket_usr.yml │ │ │ │ │ ├── single_retailrocket_uvsknn.yml │ │ │ │ │ └── single_retailrocket_vsknn.yml │ │ │ │ └── opt │ │ │ │ │ ├── narm │ │ │ │ │ ├── single_retailrocket_narm.yml │ │ │ │ │ ├── single_retailrocket_narm_reminders.yml │ │ │ │ │ ├── single_retailrocket_unarm.yml │ │ │ │ │ └── single_retailrocket_unarm_reminders.yml │ │ │ │ │ ├── single_retailrocket_hgru4rec.yml │ │ │ │ │ ├── single_retailrocket_ii_rnn.yml │ │ │ │ │ ├── single_retailrocket_ncfs.yml │ │ │ │ │ ├── single_retailrocket_nsar.yml │ │ │ │ │ ├── single_retailrocket_shan.yml │ │ │ │ │ ├── ugru4rec │ │ │ │ │ ├── single_retailrocket_gru4rec.yml │ │ │ │ │ ├── single_retailrocket_gru4rec_reminders.yml │ │ │ │ │ ├── single_retailrocket_ugru4rec.yml │ │ │ │ │ └── single_retailrocket_ugru4rec_reminders.yml │ │ │ │ │ ├── usr │ │ │ │ │ ├── single_retailrocket_sr.yml │ │ │ │ │ ├── single_retailrocket_sr_reminders.yml │ │ │ │ │ ├── single_retailrocket_usr.yml │ │ │ │ │ └── single_retailrocket_usr_reminders.yml │ │ │ │ │ └── uvsknn │ │ │ │ │ ├── single_retailrocket_uvsknn.yml │ │ │ │ │ ├── single_retailrocket_uvsknn_reminders.yml │ │ │ │ │ ├── single_retailrocket_vsknn.yml │ │ │ │ │ └── single_retailrocket_vsknn_reminder.yml │ │ │ └── window │ │ │ │ ├── exp │ │ │ │ ├── gru4rec │ │ │ │ │ ├── window_retailrocket_gru4rec.yml │ │ │ │ │ ├── window_retailrocket_gru4rec_E.yml │ │ │ │ │ └── window_retailrocket_gru4rec_R.yml │ │ │ │ ├── narm │ │ │ │ │ ├── window_retailrocket_narm.yml │ │ │ │ │ ├── window_retailrocket_narm_E.yml │ │ │ │ │ └── window_retailrocket_narm_R.yml │ │ │ │ ├── sr │ │ │ │ │ ├── window_retailrocket_sr.yml │ │ │ │ │ └── window_retailrocket_usr.yml │ │ │ │ ├── stan │ │ │ │ │ ├── window_retailrocket_stan.yml │ │ │ │ │ ├── window_retailrocket_stan_B.yml │ │ │ │ │ ├── window_retailrocket_stan_E.yml │ │ │ │ │ ├── window_retailrocket_stan_EB.yml │ │ │ │ │ ├── window_retailrocket_stan_EBR.yml │ │ │ │ │ ├── window_retailrocket_stan_ER.yml │ │ │ │ │ └── window_retailrocket_stan_R.yml │ │ │ │ ├── vsknn │ │ │ │ │ ├── window_retailrocket_vsknn.yml │ │ │ │ │ ├── window_retailrocket_vsknn_B.yml │ │ │ │ │ ├── window_retailrocket_vsknn_E.yml │ │ │ │ │ ├── window_retailrocket_vsknn_EB.yml │ │ │ │ │ ├── window_retailrocket_vsknn_EBR.yml │ │ │ │ │ ├── window_retailrocket_vsknn_ER.yml │ │ │ │ │ └── window_retailrocket_vsknn_R.yml │ │ │ │ ├── vstan │ │ │ │ │ ├── window_retailrocket_vstan.yml │ │ │ │ │ ├── window_retailrocket_vstan_B.yml │ │ │ │ │ ├── window_retailrocket_vstan_E.yml │ │ │ │ │ ├── window_retailrocket_vstan_EB.yml │ │ │ │ │ ├── window_retailrocket_vstan_EBR.yml │ │ │ │ │ ├── window_retailrocket_vstan_ER.yml │ │ │ │ │ └── window_retailrocket_vstan_R.yml │ │ │ │ ├── window_retailrocket_hgru4rec.yml │ │ │ │ ├── window_retailrocket_ii_rnn.yml │ │ │ │ ├── window_retailrocket_ncfs.yml │ │ │ │ ├── window_retailrocket_nsar.yml │ │ │ │ └── window_retailrocket_shan.yml │ │ │ │ └── opt │ │ │ │ ├── gru4rec │ │ │ │ ├── window_retailrocket_gru4rec.yml │ │ │ │ ├── window_retailrocket_gru4rec_E.yml │ │ │ │ └── window_retailrocket_gru4rec_R.yml │ │ │ │ ├── ii_rnn │ │ │ │ ├── window_retailrocket_ii_rnn_100_epochs.yml │ │ │ │ └── window_retailrocket_ii_rnn_20_epochs.yml │ │ │ │ ├── narm │ │ │ │ ├── window_retailrocket_narm.yml │ │ │ │ ├── window_retailrocket_narm_E.yml │ │ │ │ └── window_retailrocket_narm_R.yml │ │ │ │ ├── shan_all_combination │ │ │ │ ├── window_retailrocket_shan_1.yml │ │ │ │ ├── window_retailrocket_shan_2.yml │ │ │ │ ├── window_retailrocket_shan_3.yml │ │ │ │ ├── window_retailrocket_shan_4.yml │ │ │ │ ├── window_retailrocket_shan_5.yml │ │ │ │ ├── window_retailrocket_shan_6.yml │ │ │ │ ├── window_retailrocket_shan_7.yml │ │ │ │ ├── window_retailrocket_shan_8.yml │ │ │ │ └── window_retailrocket_shan_9.yml │ │ │ │ ├── sr │ │ │ │ ├── window_retailrocket_sr.yml │ │ │ │ ├── window_retailrocket_sr_B.yml │ │ │ │ ├── window_retailrocket_sr_BR.yml │ │ │ │ └── window_retailrocket_sr_R.yml │ │ │ │ ├── stan │ │ │ │ ├── window_retailrocket_stan.yml │ │ │ │ ├── window_retailrocket_stan_B.yml │ │ │ │ ├── window_retailrocket_stan_E.yml │ │ │ │ ├── window_retailrocket_stan_EB.yml │ │ │ │ ├── window_retailrocket_stan_EBR.yml │ │ │ │ ├── window_retailrocket_stan_ER.yml │ │ │ │ └── window_retailrocket_stan_R.yml │ │ │ │ ├── vsknn │ │ │ │ ├── window_retailrocket_vsknn.yml │ │ │ │ ├── window_retailrocket_vsknn_B.yml │ │ │ │ ├── window_retailrocket_vsknn_E.yml │ │ │ │ ├── window_retailrocket_vsknn_EB.yml │ │ │ │ ├── window_retailrocket_vsknn_EBR.yml │ │ │ │ ├── window_retailrocket_vsknn_ER.yml │ │ │ │ └── window_retailrocket_vsknn_R.yml │ │ │ │ ├── vstan │ │ │ │ ├── window_retailrocket_vstan.yml │ │ │ │ ├── window_retailrocket_vstan_B.yml │ │ │ │ ├── window_retailrocket_vstan_E.yml │ │ │ │ ├── window_retailrocket_vstan_EB.yml │ │ │ │ ├── window_retailrocket_vstan_EBR.yml │ │ │ │ ├── window_retailrocket_vstan_ER.yml │ │ │ │ └── window_retailrocket_vstan_R.yml │ │ │ │ ├── window_retailrocket_hgru4rec.yml │ │ │ │ ├── window_retailrocket_ncfs.yml │ │ │ │ └── window_retailrocket_nsar.yml │ │ ├── session_based │ │ │ ├── hybrids_window_retail.yml │ │ │ └── window │ │ │ │ ├── opt │ │ │ │ ├── window_retailrocket_csrm.yml │ │ │ │ ├── window_retailrocket_gru.yml │ │ │ │ ├── window_retailrocket_knn.yml │ │ │ │ ├── window_retailrocket_knnidf.yml │ │ │ │ ├── window_retailrocket_narm.yml │ │ │ │ ├── window_retailrocket_nextitnet.yml │ │ │ │ ├── window_retailrocket_sgnn.yml │ │ │ │ ├── window_retailrocket_smf.yml │ │ │ │ ├── window_retailrocket_sr.yml │ │ │ │ ├── window_retailrocket_stan.yml │ │ │ │ └── window_retailrocket_vstan.yml │ │ │ │ ├── window_multiple_retailr_baselines.yml │ │ │ │ ├── window_multiple_retailr_models.yml │ │ │ │ ├── window_multiple_retailr_smf.yml │ │ │ │ ├── window_multiple_retailr_stan.yml │ │ │ │ ├── window_multiple_retailr_vstan.yml │ │ │ │ ├── window_retailr_baselines.yml │ │ │ │ ├── window_retailr_models.yml │ │ │ │ ├── window_retailr_smf.yml │ │ │ │ ├── window_retailr_stan.yml │ │ │ │ └── window_retailr_vstan.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_retailrocket_csrm.yml │ │ │ ├── window_retailrocket_sgnn.yml │ │ │ ├── window_retailrocket_smf.yml │ │ │ ├── window_retailrocket_stan.yml │ │ │ └── window_retailrocket_vstan.yml │ │ │ ├── window_multiple_retailr_smf.yml │ │ │ ├── window_multiple_retailr_stan.yml │ │ │ ├── window_multiple_retailr_vstan.yml │ │ │ ├── window_retailr_smf.yml │ │ │ ├── window_retailr_stan.yml │ │ │ └── window_retailr_vstan.yml │ ├── rsc15 │ │ ├── hybrids_window_rsc15_multiple.yml │ │ ├── single │ │ │ ├── opt │ │ │ │ └── single_rsc15_vstan.yml │ │ │ ├── single_multiple_rsc15_vstan.yml │ │ │ └── single_rsc15_vstan.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_rsc15_csrm.yml │ │ │ ├── window_rsc15_gru.yml │ │ │ ├── window_rsc15_knn.yml │ │ │ ├── window_rsc15_knnidf.yml │ │ │ ├── window_rsc15_nextitnet.yml │ │ │ ├── window_rsc15_sgnn.yml │ │ │ ├── window_rsc15_smf.yml │ │ │ ├── window_rsc15_sr.yml │ │ │ ├── window_rsc15_stan.yml │ │ │ └── window_rsc15_vstan.yml │ │ │ ├── top10 │ │ │ └── csrm │ │ │ │ ├── window_multiple_rsc15_csrm_3.yml │ │ │ │ ├── window_multiple_rsc15_csrm_3_saver.yml │ │ │ │ ├── window_multiple_rsc15_csrm_5.yml │ │ │ │ ├── window_multiple_rsc15_csrm_6.yml │ │ │ │ ├── window_multiple_rsc15_csrm_8.yml │ │ │ │ ├── window_rsc15_csrm_1.yml │ │ │ │ ├── window_rsc15_csrm_10.yml │ │ │ │ ├── window_rsc15_csrm_2.yml │ │ │ │ ├── window_rsc15_csrm_3.yml │ │ │ │ ├── window_rsc15_csrm_4.yml │ │ │ │ ├── window_rsc15_csrm_5.yml │ │ │ │ ├── window_rsc15_csrm_6.yml │ │ │ │ ├── window_rsc15_csrm_7.yml │ │ │ │ ├── window_rsc15_csrm_8.yml │ │ │ │ └── window_rsc15_csrm_9.yml │ │ │ ├── window_multiple_rsc15_baselines.yml │ │ │ ├── window_multiple_rsc15_csrm.yml │ │ │ ├── window_multiple_rsc15_models.yml │ │ │ ├── window_multiple_rsc15_nextitnet.yml │ │ │ ├── window_multiple_rsc15_smf.yml │ │ │ ├── window_multiple_rsc15_srgnn.yml │ │ │ ├── window_multiple_rsc15_stan.yml │ │ │ ├── window_multiple_rsc15_vstan.yml │ │ │ ├── window_rsc15_baselines.yml │ │ │ ├── window_rsc15_csrm.yml │ │ │ ├── window_rsc15_memory.yml │ │ │ ├── window_rsc15_models.yml │ │ │ ├── window_rsc15_nextitnet.yml │ │ │ ├── window_rsc15_stan.yml │ │ │ ├── window_rsc15_time.yml │ │ │ ├── window_rsc15_time_ct.yml │ │ │ ├── window_rsc15_time_nextitnet.yml │ │ │ └── window_rsc15_vstan.yml │ ├── rsc15_4 │ │ └── single split │ │ │ ├── opt │ │ │ ├── single_rsc15_4_csrm.yml │ │ │ ├── single_rsc15_4_gru.yml │ │ │ ├── single_rsc15_4_narm.yml │ │ │ ├── single_rsc15_4_sgnn.yml │ │ │ ├── single_rsc15_4_smf.yml │ │ │ ├── single_rsc15_4_stamp.yml │ │ │ ├── single_rsc15_4_stan.yml │ │ │ ├── single_rsc15_4_vstan.yml │ │ │ ├── single_rsc_15_4_knn.yml │ │ │ └── single_rsc_15_4_sr.yml │ │ │ ├── single_multiple_rsc15_4_baselines.yml │ │ │ ├── single_multiple_rsc15_4_csrm.yml │ │ │ ├── single_multiple_rsc15_4_models.yml │ │ │ ├── single_multiple_rsc15_4_sgnn.yml │ │ │ ├── single_multiple_rsc15_4_stan.yml │ │ │ ├── single_multiple_rsc15_4_vstan.yml │ │ │ ├── single_rsc15_4_baselines.yml │ │ │ ├── single_rsc15_4_csrm.yml │ │ │ ├── single_rsc15_4_ct.yml │ │ │ ├── single_rsc15_4_models.yml │ │ │ ├── single_rsc15_4_sgnn.yml │ │ │ ├── single_rsc15_4_stan.yml │ │ │ └── single_rsc15_4_vstan.yml │ ├── rsc15_64 │ │ ├── single split │ │ │ └── opt │ │ │ │ ├── single_rsc15_54_stan.yml │ │ │ │ ├── single_rsc15_54_vstan.yml │ │ │ │ ├── single_rsc15_64_csrm.yml │ │ │ │ ├── single_rsc15_64_sgnn.yml │ │ │ │ ├── single_rsc15_64_smf.yml │ │ │ │ ├── single_rsc_15_64_knn.yml │ │ │ │ └── single_rsc_15_64_sr.yml │ │ ├── single_multiple_rsc15_64_baselines.yml │ │ ├── single_multiple_rsc15_64_models.yml │ │ ├── single_multiple_rsc15_64_srgnn.yml │ │ ├── single_multiple_rsc15_64_stan.yml │ │ ├── single_rsc15_64_baselines.yml │ │ ├── single_rsc15_64_models.yml │ │ ├── single_rsc15_64_srgnn.yml │ │ └── single_rsc15_64_stan.yml │ ├── tmall │ │ └── window │ │ │ └── opt │ │ │ ├── window_tmall_gru.yml │ │ │ └── window_tmall_narm.yml │ ├── xing │ │ └── session_aware │ │ │ ├── scalability │ │ │ ├── window_xing_baselines.yml │ │ │ ├── window_xing_session_aware.yml │ │ │ └── window_xing_session_based.yml │ │ │ ├── single │ │ │ ├── exp │ │ │ │ ├── single_xing_gru4rec.yml │ │ │ │ ├── single_xing_hgru4rec.yml │ │ │ │ ├── single_xing_narm.yml │ │ │ │ ├── single_xing_sr.yml │ │ │ │ ├── single_xing_ugru4rec.yml │ │ │ │ ├── single_xing_unarm.yml │ │ │ │ ├── single_xing_usr.yml │ │ │ │ ├── single_xing_uvsknn.yml │ │ │ │ └── single_xing_vsknn.yml │ │ │ └── opt │ │ │ │ ├── narm │ │ │ │ ├── single_xing_narm.yml │ │ │ │ ├── single_xing_narm_reminders.yml │ │ │ │ ├── single_xing_unarm.yml │ │ │ │ └── single_xing_unarm_reminders.yml │ │ │ │ ├── single_xing_hgru4rec.yml │ │ │ │ ├── single_xing_ii_rnn.yml │ │ │ │ ├── single_xing_ncfs.yml │ │ │ │ ├── single_xing_nsar.yml │ │ │ │ ├── single_xing_shan.yml │ │ │ │ ├── ugru4rec │ │ │ │ ├── single_xing_gru4rec.yml │ │ │ │ ├── single_xing_gru4rec_reminders.yml │ │ │ │ ├── single_xing_ugru4rec.yml │ │ │ │ └── single_xing_ugru4rec_reminders.yml │ │ │ │ ├── usr │ │ │ │ ├── single_xing_sr.yml │ │ │ │ ├── single_xing_sr_reminders.yml │ │ │ │ ├── single_xing_usr.yml │ │ │ │ └── single_xing_usr_reminders.yml │ │ │ │ └── uvsknn │ │ │ │ ├── single_xing_uvsknn.yml │ │ │ │ ├── single_xing_uvsknn_reminders.yml │ │ │ │ ├── single_xing_vsknn.yml │ │ │ │ └── single_xing_vsknn_reminder.yml │ │ │ └── window │ │ │ ├── exp │ │ │ ├── gru4rec │ │ │ │ ├── window_xing_gru4rec.yml │ │ │ │ ├── window_xing_gru4rec_E.yml │ │ │ │ └── window_xing_gru4rec_R.yml │ │ │ ├── narm │ │ │ │ ├── window_xing_narm.yml │ │ │ │ ├── window_xing_narm_E.yml │ │ │ │ └── window_xing_narm_R.yml │ │ │ ├── sr │ │ │ │ ├── window_xing_sr.yml │ │ │ │ └── window_xing_usr.yml │ │ │ ├── stan │ │ │ │ ├── window_xing_stan.yml │ │ │ │ ├── window_xing_stan_B.yml │ │ │ │ ├── window_xing_stan_E.yml │ │ │ │ ├── window_xing_stan_EB.yml │ │ │ │ ├── window_xing_stan_EBR.yml │ │ │ │ ├── window_xing_stan_ER.yml │ │ │ │ └── window_xing_stan_R.yml │ │ │ ├── vsknn │ │ │ │ ├── window_xing_vsknn.yml │ │ │ │ ├── window_xing_vsknn_B.yml │ │ │ │ ├── window_xing_vsknn_E.yml │ │ │ │ ├── window_xing_vsknn_EB.yml │ │ │ │ ├── window_xing_vsknn_EBR.yml │ │ │ │ ├── window_xing_vsknn_ER.yml │ │ │ │ └── window_xing_vsknn_R.yml │ │ │ ├── vstan │ │ │ │ ├── window_xing_vstan.yml │ │ │ │ ├── window_xing_vstan_B.yml │ │ │ │ ├── window_xing_vstan_E.yml │ │ │ │ ├── window_xing_vstan_EB.yml │ │ │ │ ├── window_xing_vstan_EBR.yml │ │ │ │ ├── window_xing_vstan_ER.yml │ │ │ │ └── window_xing_vstan_R.yml │ │ │ ├── window_xing_hgru4rec.yml │ │ │ ├── window_xing_ii_rnn.yml │ │ │ ├── window_xing_ncfs.yml │ │ │ ├── window_xing_nsar.yml │ │ │ └── window_xing_shan.yml │ │ │ └── opt │ │ │ ├── gru4rec │ │ │ ├── window_xing_gru4rec.yml │ │ │ ├── window_xing_gru4rec_E.yml │ │ │ └── window_xing_gru4rec_R.yml │ │ │ ├── narm │ │ │ ├── window_xing_narm.yml │ │ │ ├── window_xing_narm_E.yml │ │ │ └── window_xing_narm_R.yml │ │ │ ├── shan_all_combination │ │ │ ├── window_xing_shan_1.yml │ │ │ ├── window_xing_shan_2.yml │ │ │ ├── window_xing_shan_3.yml │ │ │ ├── window_xing_shan_4.yml │ │ │ ├── window_xing_shan_5.yml │ │ │ ├── window_xing_shan_6.yml │ │ │ ├── window_xing_shan_7.yml │ │ │ ├── window_xing_shan_8.yml │ │ │ └── window_xing_shan_9.yml │ │ │ ├── sr │ │ │ ├── window_xing_sr.yml │ │ │ ├── window_xing_sr_B.yml │ │ │ ├── window_xing_sr_BR.yml │ │ │ └── window_xing_sr_R.yml │ │ │ ├── stan │ │ │ ├── window_xing_stan.yml │ │ │ ├── window_xing_stan_B.yml │ │ │ ├── window_xing_stan_E.yml │ │ │ ├── window_xing_stan_EB.yml │ │ │ ├── window_xing_stan_EBR.yml │ │ │ ├── window_xing_stan_ER.yml │ │ │ └── window_xing_stan_R.yml │ │ │ ├── vsknn │ │ │ ├── window_xing_vsknn.yml │ │ │ ├── window_xing_vsknn_B.yml │ │ │ ├── window_xing_vsknn_E.yml │ │ │ ├── window_xing_vsknn_EB.yml │ │ │ ├── window_xing_vsknn_EBR.yml │ │ │ ├── window_xing_vsknn_ER.yml │ │ │ └── window_xing_vsknn_R.yml │ │ │ ├── vstan │ │ │ ├── window_xing_vstan.yml │ │ │ ├── window_xing_vstan_B.yml │ │ │ ├── window_xing_vstan_E.yml │ │ │ ├── window_xing_vstan_EB.yml │ │ │ ├── window_xing_vstan_EBR.yml │ │ │ ├── window_xing_vstan_ER.yml │ │ │ └── window_xing_vstan_R.yml │ │ │ ├── window_xing_hgru4rec.yml │ │ │ ├── window_xing_ii_rnn.yml │ │ │ ├── window_xing_ncfs.yml │ │ │ ├── window_xing_nsar.yml │ │ │ └── window_xing_shan.yml │ └── zalando │ │ └── window │ │ ├── opt │ │ ├── window_zalando_csrm.yml │ │ ├── window_zalando_ct.yml │ │ ├── window_zalando_gru.yml │ │ ├── window_zalando_knn.yml │ │ ├── window_zalando_narm.yml │ │ ├── window_zalando_nextitnet.yml │ │ ├── window_zalando_sgnn.yml │ │ ├── window_zalando_smf.yml │ │ ├── window_zalando_sr.yml │ │ ├── window_zalando_stan.yml │ │ └── window_zalando_vstan.yml │ │ ├── window_multiple_zalando_baselines.yml │ │ ├── window_multiple_zalando_csrm.yml │ │ ├── window_multiple_zalando_models.yml │ │ ├── window_multiple_zalando_sgnn.yml │ │ ├── window_multiple_zalando_stan.yml │ │ ├── window_multiple_zalando_vstan.yml │ │ ├── window_zalando_baselines.yml │ │ ├── window_zalando_csrm.yml │ │ ├── window_zalando_ct.yml │ │ ├── window_zalando_memory.yml │ │ ├── window_zalando_models.yml │ │ ├── window_zalando_srgnn.yml │ │ ├── window_zalando_stan.yml │ │ ├── window_zalando_time.yml │ │ ├── window_zalando_time_ct.yml │ │ ├── window_zalando_time_nextitnet.yml │ │ └── window_zalando_vstan.yml └── seqpop │ ├── test_aotm.yml │ ├── test_nowplaying.yml │ └── test_rsc15_64.yml ├── data └── rsc15 │ ├── prepared │ ├── yoochoose-clicks-100k_test.txt │ ├── yoochoose-clicks-100k_train_full.txt │ ├── yoochoose-clicks-100k_train_tr.txt │ └── yoochoose-clicks-100k_train_valid.txt │ └── recommendations │ ├── recoms_rsc15_100k_ar.csv │ ├── recoms_rsc15_100k_gru4rec.csv │ ├── recoms_rsc15_100k_sr.csv │ └── recoms_rsc15_100k_vsknn.csv ├── docker ├── cpu │ ├── Dockerfile │ ├── build.txt │ └── environment_cpu.yml └── gpu │ ├── Dockerfile │ ├── build.txt │ └── environment_gpu.yml ├── docs ├── css │ ├── sortable-theme-bootstrap.css │ ├── sortable-theme-dark.css │ ├── sortable-theme-finder.css │ ├── sortable-theme-light.css │ ├── sortable-theme-minimal.css │ ├── sortable-theme-slick.css │ ├── sortable-theme-tu.css │ ├── style.css │ └── style_anon.css ├── index.html ├── js │ ├── install.js │ ├── sortable.js │ └── sortable.min.js ├── tables_opt │ ├── opt_table_single.html │ └── opt_tables_window.html ├── tables_single │ ├── tables_diginetica.html │ ├── tables_diginetica_stamp.html │ ├── tables_rsc15_4.html │ └── tables_rsc15_64.html ├── tables_window │ ├── tables_30music.html │ ├── tables_8tracks.html │ ├── tables_aotm.html │ ├── tables_diginetica.html │ ├── tables_diginetica_stamp.html │ ├── tables_nowplaying.html │ ├── tables_retailrocket.html │ ├── tables_rsc15.html │ └── tables_zalando.html └── umuai │ ├── css │ ├── sortable-theme-bootstrap.css │ ├── sortable-theme-dark.css │ ├── sortable-theme-finder.css │ ├── sortable-theme-light.css │ ├── sortable-theme-minimal.css │ ├── sortable-theme-slick.css │ ├── sortable-theme-tu.css │ ├── style.css │ └── style_anon.css │ ├── index.html │ ├── js │ ├── install.js │ ├── sortable.js │ └── sortable.min.js │ ├── tables_opt │ ├── opt_table_single.html │ └── opt_tables_window.html │ └── tables_window │ ├── tables_30music.html │ ├── tables_8tracks.html │ ├── tables_aotm.html │ ├── tables_diginetica.html │ ├── tables_diginetica_stamp.html │ ├── tables_nowplaying.html │ ├── tables_retailrocket.html │ ├── tables_rsc15.html │ └── tables_zalando.html ├── dpython ├── dpython.bat ├── dpython.orig ├── dpython_gpu ├── environment_cpu.yml ├── environment_gpu.yml ├── evaluation ├── __init__.py ├── evaluation.py ├── evaluation_last.py ├── evaluation_multiple.py ├── evaluation_next_multiple.py ├── evaluation_user_based.py ├── loader.py └── metrics │ ├── __init__.py │ ├── accuracy.py │ ├── accuracy_ext.py │ ├── accuracy_multiple.py │ ├── artist_coherence.py │ ├── artist_diversity.py │ ├── coverage.py │ ├── popularity.py │ ├── saver.py │ └── time_memory_usage.py ├── helper ├── __init__.py └── stats.py ├── markdown-github.css ├── preprocessing ├── __init__.py ├── check_statistics │ ├── cosmetics │ │ └── cosmetics_statistics_sampling_sliding_splitting.py │ ├── diginetica │ │ └── diginetica_statistics.py │ ├── lastfm │ │ ├── prepared │ │ │ ├── statistics_lastfm_for_prepared.py │ │ │ ├── statistics_lastfm_sampling_for_prepared.py │ │ │ ├── statistics_lastfm_sliding_for_prepared.py │ │ │ └── statistics_lastfm_sliding_splitting_for_prepared.py │ │ ├── statistics_lastfm.py │ │ ├── statistics_lastfm_sample.py │ │ ├── statistics_lastfm_sampling.py │ │ ├── statistics_lastfm_save.py │ │ ├── statistics_lastfm_sliding.py │ │ └── statistics_lastfm_sliding_splitting.py │ ├── retailrocket │ │ ├── retailrocket_statistics.py │ │ ├── retailrocket_statistics_sampling.py │ │ ├── retailrocket_statistics_sliding.py │ │ ├── retailrocket_statistics_sliding_splitting.py │ │ ├── retailrocket_statistics_timewise.py │ │ └── retailrocket_statistics_userwise.py │ ├── statistics_template.py │ ├── tmall │ │ └── statistics_tmall.py │ └── xing │ │ ├── statistics_xing_sample.py │ │ ├── xing_statistics.py │ │ ├── xing_statistics_sampling.py │ │ ├── xing_statistics_sliding.py │ │ ├── xing_statistics_sliding_splitting.py │ │ └── xing_statistics_userwise.py ├── session_aware │ ├── preprocess_cosmetics_aware.py │ ├── preprocess_diginetica_aware.py │ ├── preprocess_lastfm_aware.py │ ├── preprocess_retailrocket_aware.py │ ├── preprocess_retailrocket_aware_sample_test.py │ └── preprocess_xing_aware.py ├── session_based │ ├── preprocess_diginetica.py │ ├── preprocess_dressipi.py │ ├── preprocess_music.py │ ├── preprocess_playlist.py │ ├── preprocess_retailrocket.py │ ├── preprocess_rsc15.py │ ├── preprocess_tmall.py │ └── preprocess_windeln.py └── spliting_data │ └── split_tr_valid.py ├── run_config.py ├── run_preprocessing.py └── webpage ├── css ├── sortable-theme-bootstrap.css ├── sortable-theme-dark.css ├── sortable-theme-finder.css ├── sortable-theme-light.css ├── sortable-theme-minimal.css ├── sortable-theme-slick.css ├── sortable-theme-tu.css ├── style.css └── style_anon.css ├── index.html ├── js ├── install.js ├── sortable.js └── sortable.min.js ├── tables_opt ├── opt_table_single.html └── opt_tables_window.html ├── tables_single ├── tables_diginetica.html ├── tables_diginetica_stamp.html ├── tables_rsc15_4.html └── tables_rsc15_64.html └── tables_window ├── tables_30music.html ├── tables_8tracks.html ├── tables_aotm.html ├── tables_diginetica.html ├── tables_diginetica_stamp.html ├── tables_nowplaying.html ├── tables_retailrocket.html ├── tables_rsc15.html └── tables_zalando.html /algorithms/CSRM/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/CSRM/__init__.py -------------------------------------------------------------------------------- /algorithms/RepeatNet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/RepeatNet/__init__.py -------------------------------------------------------------------------------- /algorithms/RepeatNet/base/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/RepeatNet/base/__init__.py -------------------------------------------------------------------------------- /algorithms/RepeatNet/repeat_non_repeat_bar.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from matplotlib import pyplot as plt 3 | 4 | 5 | plt.figure(figsize=(9,6)) 6 | 7 | 8 | x=np.arange(4)+1 9 | 10 | 11 | y=np.array([62.81,63.11,]) -------------------------------------------------------------------------------- /algorithms/STAMP/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/basic_layer/LinearLayer.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | import tensorflow as tf 3 | from algorithms.STAMP.util.Randomer import Randomer 4 | 5 | class LinearLayer(object): 6 | 7 | def __init__(self, w_shape, stddev = None, params=None): 8 | ''' 9 | :param w_shape: [input_dim, output_dim] 10 | :param stddev: 用于初始化 11 | :param params: 从外界制定参数 12 | ''' 13 | if params is None: 14 | self.w = tf.Variable( 15 | Randomer.random_normal(w_shape), 16 | trainable=True 17 | ) 18 | else: 19 | self.w = params['w'] 20 | def forward(self, inputs): 21 | ''' 22 | count 23 | ''' 24 | # batch_size = tf.shape(inputs)[0] 25 | # w_shp0 = tf.shape(self.w)[0] 26 | # w_shp1 = tf.shape(self.w)[1] 27 | # w_line_3dim.shape = [batch_size, edim, edim] 28 | # w_line_3dim = tf.reshape( 29 | # tf.tile(self.w, [batch_size, 1]), 30 | # [batch_size, w_shp0, w_shp1] 31 | # ) 32 | # linear translate 33 | res = tf.matmul(inputs, self.w) 34 | return res -------------------------------------------------------------------------------- /algorithms/STAMP/basic_layer/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/basic_layer/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/data_prepare/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/data_prepare/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/data_prepare/entity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/data_prepare/entity/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/data_prepare/entity/sample.py: -------------------------------------------------------------------------------- 1 | #coding=utf-8 2 | 3 | class Sample(object): 4 | ''' 5 | 一个样本。 6 | ''' 7 | def __init__(self): 8 | self.id = -1 9 | self.session_id = -1 10 | self.click_items = [] 11 | 12 | self.items_idxes = [] 13 | 14 | self.in_idxes = [] 15 | self.out_idxes = [] 16 | self.label = [] 17 | self.pred =[] 18 | self.best_pred = [] 19 | self.ext_matrix = {'alpha':[]} # 额外数据,key是名字,value是矩阵。例如attention. 20 | 21 | def __str__(self): 22 | ret = 'id: ' + str(self.id) + '\n' 23 | ret += 'session_id: ' + str(self.session_id) + '\n' 24 | ret += 'items: '+ str(self.items_idxes) + '\n' 25 | ret += 'click_items: '+ str(self.click_items) + '\n' 26 | ret += 'out: ' + str(self.out_idxes) + '\n' 27 | ret += 'in: '+ str(self.in_idxes) + '\n' 28 | ret += 'label: '+ str(self.label) + '\n' 29 | return ret -------------------------------------------------------------------------------- /algorithms/STAMP/model/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/model/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/util/Activer.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | 3 | 4 | def activer(inputs, case='tanh'): 5 | ''' 6 | The active enter. 7 | ''' 8 | switch = { 9 | 'tanh': tanh, 10 | 'relu': relu, 11 | 'sigmoid': sigmoid, 12 | } 13 | func = switch.get(case, tanh) 14 | return func(inputs) 15 | 16 | 17 | def tanh(inputs): 18 | ''' 19 | The tanh active. 20 | ''' 21 | return tf.nn.tanh(inputs) 22 | 23 | def sigmoid(inputs): 24 | ''' 25 | The sigmoid active. 26 | ''' 27 | return tf.nn.sigmoid(inputs) 28 | 29 | 30 | def relu(inputs): 31 | ''' 32 | The relu active. 33 | ''' 34 | return tf.nn.relu(inputs) 35 | -------------------------------------------------------------------------------- /algorithms/STAMP/util/Bitmap.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | 3 | def bitmap_by_padid(inputs, padid): 4 | ''' 5 | inputs: the tensor consists of ids. 6 | padid: the pad id. 7 | generate the bitmap according to the inputs and padid. 8 | the shape of bitmap is same as inputs. 9 | ''' 10 | ret = [] 11 | if len(np.shape(inputs)) == 1: 12 | for idx in inputs: 13 | if idx == padid: 14 | ret.append(float(0)) 15 | else: 16 | ret.append(float(1)) 17 | else: 18 | for ip in inputs: 19 | ret.append(bitmap_by_padid(ip, padid)) 20 | return ret 21 | -------------------------------------------------------------------------------- /algorithms/STAMP/util/FileDumpLoad.py: -------------------------------------------------------------------------------- 1 | import dill as cp 2 | 3 | 4 | def dump_file(*dps): 5 | ''' 6 | dump file. 7 | dps: [data, path]s. 8 | ''' 9 | for dp in dps: 10 | if len(dp) != 2: 11 | print("issue:" + str(dp)) 12 | continue 13 | dfile = open(dp[1],'wb') 14 | cp.dump(dp[0], dfile) 15 | dfile.close() 16 | print ("dump file done.") 17 | 18 | 19 | def load_file(*ps): 20 | ''' 21 | load file. 22 | ps: [path,...]s 23 | ''' 24 | ret = [] 25 | for p in ps: 26 | dfile = open(p, 'rb') 27 | ret.append(cp.load(dfile)) 28 | return ret 29 | -------------------------------------------------------------------------------- /algorithms/STAMP/util/Formater.py: -------------------------------------------------------------------------------- 1 | def add_pad(inputs = [], max_lens = [], pad_idx = 0): 2 | ''' 3 | Format the input to tensor. 4 | 5 | inputs.shape = [n] 6 | max_lens.shape = [n] 7 | 8 | inputs = [nip1, nip2, ..., nipn], 9 | nipi.shape = [batch_size, len(sentence)], 10 | nipi = [[id0, id1, id2, ...], [id0, id1, id2, ...], ...] 11 | 12 | max_lens = [nml1, nml2, ..., nmln] 13 | max_lens.shape = [n] 14 | nml1 = int. means the max length of the nipi's sentences. 15 | 16 | the pad is use on the second dim of the nipi. 17 | 18 | pad_idx: the padding word's id. 19 | ''' 20 | if len(inputs) != len(max_lens): 21 | print("the max_lens.len not equal the inputs.len") 22 | return 23 | for i in range(len(inputs)): 24 | nips = inputs[i] 25 | nml = max_lens[i] 26 | for nip in nips: 27 | crt_len = len(nip) 28 | for _ in range(nml - crt_len): 29 | nip.append(pad_idx) 30 | -------------------------------------------------------------------------------- /algorithms/STAMP/util/Randomer.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | 3 | class Randomer(object): 4 | stddev = None 5 | 6 | @staticmethod 7 | def random_normal(wshape): 8 | return tf.random_normal(wshape, stddev=Randomer.stddev) 9 | 10 | @staticmethod 11 | def set_stddev(sd): 12 | Randomer.stddev = sd -------------------------------------------------------------------------------- /algorithms/STAMP/util/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/util/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/util/batcher/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/util/batcher/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/util/batcher/equal_len/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/STAMP/util/batcher/equal_len/__init__.py -------------------------------------------------------------------------------- /algorithms/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/__init__.py -------------------------------------------------------------------------------- /algorithms/ae/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/ae/__init__.py -------------------------------------------------------------------------------- /algorithms/ae/helper/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/ae/helper/__init__.py -------------------------------------------------------------------------------- /algorithms/apgnn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/apgnn/__init__.py -------------------------------------------------------------------------------- /algorithms/baselines/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/baselines/__init__.py -------------------------------------------------------------------------------- /algorithms/ct/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/ct/__init__.py -------------------------------------------------------------------------------- /algorithms/filemodel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/filemodel/__init__.py -------------------------------------------------------------------------------- /algorithms/gru4rec/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/gru4rec/__init__.py -------------------------------------------------------------------------------- /algorithms/gru4rec/gpu_ops.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Created on Fri Nov 10 14:17:58 2017 4 | 5 | @author: Balázs Hidasi 6 | """ 7 | 8 | import theano 9 | from theano import tensor as T 10 | 11 | def gpu_diag_wide(X): 12 | E = T.eye(*X.shape) 13 | return T.sum(X*E, axis=1) 14 | 15 | def gpu_diag_tall(X): 16 | E = T.eye(*X.shape) 17 | return T.sum(X*E, axis=0) -------------------------------------------------------------------------------- /algorithms/hgru4rec/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/hgru4rec/__init__.py -------------------------------------------------------------------------------- /algorithms/hybrid/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/hybrid/__init__.py -------------------------------------------------------------------------------- /algorithms/knn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/knn/__init__.py -------------------------------------------------------------------------------- /algorithms/narm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/narm/__init__.py -------------------------------------------------------------------------------- /algorithms/nextitnet/.gitignore: -------------------------------------------------------------------------------- 1 | /checkpoint 2 | /model_nextitnet.ckpt.data-00000-of-00001 3 | /model_nextitnet.ckpt.index 4 | /model_nextitnet.ckpt.meta 5 | *.swp -------------------------------------------------------------------------------- /algorithms/nextitnet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/nextitnet/__init__.py -------------------------------------------------------------------------------- /algorithms/nsar/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/nsar/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/sbr_adapter/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/factorization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/sbr_adapter/factorization/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/sbr_adapter/helpers/__init__.py -------------------------------------------------------------------------------- /algorithms/sgnn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/sgnn/__init__.py -------------------------------------------------------------------------------- /algorithms/shan/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/shan/__init__.py -------------------------------------------------------------------------------- /algorithms/smf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/algorithms/smf/__init__.py -------------------------------------------------------------------------------- /backup/algorithms/aware_backup/knn_aware/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/backup/algorithms/aware_backup/knn_aware/__init__.py -------------------------------------------------------------------------------- /backup/algorithms/aware_backup/knn_aware/eknn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/backup/algorithms/aware_backup/knn_aware/eknn/__init__.py -------------------------------------------------------------------------------- /backup/algorithms/aware_backup/smf_aware/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/backup/algorithms/aware_backup/smf_aware/__init__.py -------------------------------------------------------------------------------- /backup/algorithms/aware_backup/smf_aware/_test.py: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on 06.09.2017 3 | 4 | @author: ludewig 5 | ''' 6 | 7 | import numpy as np 8 | 9 | if __name__ == '__main__': 10 | 11 | pred = np.array( [0.3,0.1,0.2,0.4,0.5] ) 12 | 13 | print( np.diag( pred ) ) 14 | print( pred.T ) 15 | 16 | print( np.diag( pred ) - pred.T ) 17 | -------------------------------------------------------------------------------- /backup/algorithms/aware_backup/smf_aware/_test.py.orig: -------------------------------------------------------------------------------- 1 | ''' 2 | Created on 06.09.2017 3 | 4 | @author: ludewig 5 | ''' 6 | 7 | import numpy as np 8 | 9 | if __name__ == '__main__': 10 | 11 | pred = np.array( [0.3,0.1,0.2,0.4,0.5] ) 12 | 13 | print( np.diag( pred ) ) 14 | print( pred.T ) 15 | 16 | print( np.diag( pred ) - pred.T ) 17 | -------------------------------------------------------------------------------- /backup/conf/example/test_csrm.yml: -------------------------------------------------------------------------------- 1 | type: single # single|window, maybe add opt 2 | key: sgnn #added to the csv names 3 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: rsc #added in the end of the csv names 6 | folder: data/rsc15/prepared/ 7 | #prefix: yoochoose-clicks-100k 8 | prefix: yoochoose-clicks-short 9 | # slices: 5 #only window 10 | # skip: [0,3] #only window 11 | opts: {sessions_test: 100} 12 | 13 | results: 14 | folder: results/next/rsc15/ 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: saver.Saver 28 | length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: baselines.ar.AssociationRules 35 | key: ar 36 | #- class: narm.narm.NARM 37 | # params: { epochs: 10, lr: 0.007, hidden_units: 100, factors: 100 } 38 | # key: narm 39 | - class: CSRM.csrm.CSRM 40 | params: { } # , epoch_n: 30 -- for diginetica 41 | key: csrm 42 | -------------------------------------------------------------------------------- /backup/conf/preprocess/session_aware/cosmetics_window_feb.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: cosmetics_aware # dataset (folder) name 4 | data: 5 | folder: data/cosmetics/ 6 | prefix: interactions_feb 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 16 | days_shift: 6 # total_interval = 152 17 | min_session_length: 2 #3 18 | 19 | output: 20 | folder: data/cosmetics/prepared_window/ -------------------------------------------------------------------------------- /backup/conf/preprocess/session_aware/cosmetics_window_first_3.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: cosmetics_aware # dataset (folder) name 4 | data: 5 | folder: data/cosmetics/ 6 | prefix: interactions_first_3_months 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 16 | days_shift: 15 # total_interval = 152 17 | min_session_length: 2 #3 18 | 19 | output: 20 | folder: data/cosmetics/prepared_window/ -------------------------------------------------------------------------------- /backup/conf/preprocess/session_aware/cosmetics_window_last_2_months.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: cosmetics_aware # dataset (folder) name 4 | data: 5 | folder: data/cosmetics/ 6 | prefix: interactions_last_2_months 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 16 | days_shift: 12 # total_interval = 152 17 | min_session_length: 2 #3 18 | 19 | output: 20 | folder: data/cosmetics/prepared_window/ -------------------------------------------------------------------------------- /backup/conf/preprocess/session_aware/cosmetics_window_last_3_months.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: cosmetics_aware # dataset (folder) name 4 | data: 5 | folder: data/cosmetics/ 6 | prefix: interactions_last_3_months 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 16 | days_shift: 18 # total_interval = 152 17 | min_session_length: 2 #3 18 | sampling: False # True 19 | # percentage: 50 20 | 21 | output: 22 | folder: data/cosmetics/prepared_window/sampled/ -------------------------------------------------------------------------------- /backup/conf/save/retailrocket/session_aware/scalability/window_retailrocket_hgru4rec.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: hgru4rec #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,3] # we need only slice 4 (smallest one) 11 | 12 | results: 13 | folder: results/window/scalability/retailrocket/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # HGRU4Rec 22 | - class: hgru4rec.hgru4rec.HGRU4Rec 23 | params: { final_act: 'linear', dropout_p_hidden_usr: 0.4, dropout_p_hidden_ses: 0.3, dropout_p_init: 0.4, momentum: 0.3, learning_rate: 0.06, user_propagation_mode: 'all', batch_size: 50 } 24 | key: hgru4rec -------------------------------------------------------------------------------- /backup/conf/save/retailrocket/session_aware/scalability/window_retailrocket_iirnn.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: ii_rnn #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,3] # we need only slice 4 (smallest one) 11 | 12 | results: 13 | folder: results/window/scalability/retailrocket/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # IIRNN 22 | - class: IIRNN.ii_rnn.IIRNN 23 | params: { learning_rate: 0.002, dropout_pkeep: 0.4, embedding_size: 100, use_last_hidden_state: False, max_session_representation: 15, max_epoch: 100} 24 | key: ii_rnn -------------------------------------------------------------------------------- /backup/conf/save/retailrocket/session_aware/scalability/window_retailrocket_ncsf.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: ncsf #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,3] # we need only slice 4 (smallest one) 11 | 12 | results: 13 | folder: results/window/scalability/retailrocket/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # NCSF 22 | - class: NCFS.ncfs.NCFS 23 | params: { window_sz: 2, max_nb_his_sess: 5, att_alpha: 10 } 24 | key: ncsf -------------------------------------------------------------------------------- /backup/conf/save/retailrocket/session_aware/scalability/window_retailrocket_nsar.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: nsar #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,3] # we need only slice 4 (smallest one) 11 | 12 | results: 13 | folder: results/window/scalability/retailrocket/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # NSAR 22 | - class: nsar.nsar.NSAR # small network, the TOP1 loss always outperformed other ranking losses, so we consider only it 23 | params: {num_epoch: 20, batch_size: 64, keep_pr: 0.25, learning_rate: 0.01, hidden_units: 100} 24 | key: nsar -------------------------------------------------------------------------------- /backup/conf/save/retailrocket/session_aware/scalability/window_retailrocket_shan.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: shan #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,3] # we need only slice 4 (smallest one) 11 | 12 | results: 13 | folder: results/window/scalability/retailrocket/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # SHAN 22 | - class: shan.shan.SHAN 23 | params: { iter: 100, global_dimension: 100, lambda_uv: 0.01, lambda_a: 1 } 24 | key: shan 25 | -------------------------------------------------------------------------------- /conf/in/test_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: sgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | #prefix: yoochoose-clicks-100k 9 | prefix: yoochoose-clicks-short 10 | # slices: 5 #only window 11 | # skip: [0,3] #only window 12 | opts: {sessions_test: 100} 13 | 14 | results: 15 | folder: results/next/rsc15/ 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: accuracy_multiple.NDCG 23 | length: [3,5,10,15,20] 24 | - class: coverage.Coverage 25 | length: [20] 26 | - class: popularity.Popularity 27 | length: [20] 28 | - class: saver.Saver 29 | length: [50] 30 | - class: time_memory_usage.Time_usage_training 31 | - class: time_memory_usage.Time_usage_testing 32 | #- class: time_memory_usage.Memory_usage 33 | 34 | algorithms: 35 | - class: baselines.ar.AssociationRules 36 | key: ar 37 | #- class: narm.narm.NARM 38 | # params: { epochs: 10, lr: 0.007, hidden_units: 100, factors: 100 } 39 | # key: narm 40 | - class: CSRM.csrm.CSRM 41 | params: { } # , epoch_n: 30 -- for diginetica 42 | key: csrm 43 | -------------------------------------------------------------------------------- /conf/preprocess/retrain/diginetica.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: retrain # single|window|retrain 3 | preprocessor: diginetica # 4 | data: 5 | folder: data/diginetica/raw/ 6 | prefix: train-item-views 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 14 #all days to be tested 14 | days_train: 60 #to start retaining 15 | days_retrain: 1 #numner of days to include data for retraining 16 | 17 | output: 18 | folder: data/diginetica/retrain/ -------------------------------------------------------------------------------- /conf/preprocess/retrain/nowplaying.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: retrain # single|window 3 | preprocessor: music # 4 | data: 5 | folder: data/nowplaying/raw/ 6 | prefix: nowplaying 7 | 8 | filter: 9 | min_item_support: 2 10 | min_session_length: 5 11 | 12 | params: 13 | days_test: 14 #all days to be tested 14 | days_train: 60 #to start retaining 15 | days_retrain: 1 #numner of days to include data for retraining 16 | 17 | output: 18 | folder: data/nowplaying/retrain/ -------------------------------------------------------------------------------- /conf/preprocess/session_aware/cosmetics_window.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: cosmetics_aware # dataset (folder) name 4 | data: 5 | folder: data/cosmetics/ 6 | prefix: interactions 7 | sample_percentage: 10 8 | 9 | filter: 10 | min_item_support: 5 #20 11 | min_session_length: 2 #3 12 | min_user_sessions: 3 # 5 13 | 14 | params: 15 | num_slices: 5 16 | days_offset: 0 17 | days_shift: 31 # total_interval = 152 18 | min_session_length: 2 #3 19 | 20 | output: 21 | folder: data/cosmetics/prepared_window/sampled/ -------------------------------------------------------------------------------- /conf/preprocess/session_aware/for_debugging/retailrocket_sample_test.yml: -------------------------------------------------------------------------------- 1 | type: single # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: retailrocket_aware_sample_test # dataset (folder) name 4 | data: 5 | folder: data/retailrocket/raw/ 6 | prefix: events 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 12 | # max_user_sessions: 200 13 | 14 | params: 15 | min_session_length: 2 #3 16 | test_sessions: 1 17 | 18 | output: 19 | folder: data/retailrocket/prepared/sample/ 20 | -------------------------------------------------------------------------------- /conf/preprocess/session_aware/lastfm_window.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: lastfm_aware # dataset (folder) name 4 | data: 5 | folder: data/lastfm/ 6 | prefix: userid-timestamp-artid-artname-traid-traname 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 12 | max_session_length: 20 13 | 14 | params: 15 | num_slices: 5 16 | days_offset: 500 # to skip first 1/3 of data 17 | days_shift: 217 # total_interval = 1587 18 | min_session_length: 2 #3 19 | 20 | output: 21 | folder: data/lastfm/prepared_window/ 22 | -------------------------------------------------------------------------------- /conf/preprocess/session_aware/retailrocket_window.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: retailrocket_aware # dataset (folder) name 4 | data: 5 | folder: data/retailrocket/raw/ 6 | prefix: events 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 # to skip first 1/3 of data 16 | days_shift: 27 # total_interval = 139 17 | min_session_length: 2 #3 18 | 19 | output: 20 | folder: data/retailrocket/prepared_window/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_aware/single/diginetica.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single 3 | mode: session_aware # session_based | session_aware 4 | preprocessor: diginetica_aware # dataset (folder) name 5 | data: 6 | folder: data/diginetica/ 7 | prefix: train-item-views 8 | 9 | filter: 10 | min_item_support: 5 11 | min_session_length: 2 #3 12 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 13 | # max_user_sessions: 200 14 | 15 | params: 16 | min_session_length: 2 #3 17 | test_sessions: 1 18 | 19 | output: 20 | folder: data/diginetica/prepared/ -------------------------------------------------------------------------------- /conf/preprocess/session_aware/single/lastfm.yml: -------------------------------------------------------------------------------- 1 | type: single # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: lastfm_aware # dataset (folder) name 4 | data: 5 | folder: data/lastfm/ 6 | prefix: userid-timestamp-artid-artname-traid-traname 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 12 | max_session_length: 20 13 | 14 | params: 15 | min_session_length: 2 #3 16 | 17 | output: 18 | folder: data/lastfm/prepared/ 19 | -------------------------------------------------------------------------------- /conf/preprocess/session_aware/single/retailrocket.yml: -------------------------------------------------------------------------------- 1 | type: single # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: retailrocket_aware # dataset (folder) name 4 | data: 5 | folder: data/retailrocket/raw/ 6 | prefix: events 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # need to be 3, because we need at least 1 for each training, validation and test set! 12 | # max_user_sessions: 200 13 | 14 | params: 15 | min_session_length: 2 #3 16 | test_sessions: 1 17 | 18 | output: 19 | folder: data/retailrocket/prepared/ 20 | -------------------------------------------------------------------------------- /conf/preprocess/session_aware/single/xing.yml: -------------------------------------------------------------------------------- 1 | type: single # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: xing_aware # dataset (folder) name 4 | data: 5 | folder: data/xing/xing2016/ 6 | prefix: interactions 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | min_session_length: 2 #3 15 | 16 | output: 17 | folder: data/xing/xing2016/prepared/ -------------------------------------------------------------------------------- /conf/preprocess/session_aware/xing_window.yml: -------------------------------------------------------------------------------- 1 | type: window # single 2 | mode: session_aware # session_based | session_aware 3 | preprocessor: xing_aware # dataset (folder) name 4 | data: 5 | folder: data/xing/xing2016/ 6 | prefix: interactions 7 | 8 | filter: 9 | min_item_support: 5 #20 10 | min_session_length: 2 #3 11 | min_user_sessions: 3 # 5 12 | 13 | params: 14 | num_slices: 5 15 | days_offset: 0 16 | days_shift: 16 # total_interval = 82 17 | min_session_length: 2 #3 18 | 19 | output: 20 | folder: data/xing/xing2016/prepared_window/ -------------------------------------------------------------------------------- /conf/preprocess/session_based/retrain/diginetica.yml: -------------------------------------------------------------------------------- 1 | type: retrain # single|window|retrain 2 | preprocessor: diginetica # 3 | data: 4 | folder: data/diginetica/raw/ 5 | prefix: train-item-views 6 | 7 | filter: 8 | min_item_support: 5 9 | min_session_length: 2 10 | 11 | params: 12 | days_test: 14 #all days to be tested 13 | days_train: 60 #to start retaining 14 | days_retrain: 1 #numner of days to include data for retraining 15 | 16 | output: 17 | folder: data/diginetica/retrain/ -------------------------------------------------------------------------------- /conf/preprocess/session_based/retrain/nowplaying.yml: -------------------------------------------------------------------------------- 1 | type: retrain # single|window 2 | preprocessor: music # 3 | data: 4 | folder: data/nowplaying/raw/ 5 | prefix: nowplaying 6 | 7 | filter: 8 | min_item_support: 2 9 | min_session_length: 5 10 | 11 | params: 12 | days_test: 14 #all days to be tested 13 | days_train: 60 #to start retaining 14 | days_retrain: 1 #numner of days to include data for retraining 15 | 16 | output: 17 | folder: data/nowplaying/retrain/ -------------------------------------------------------------------------------- /conf/preprocess/session_based/single/diginetica.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 3 | mode: session_based # session_based | session_aware 4 | preprocessor: diginetica # dataset (folder) name 5 | data: 6 | folder: data/diginetica/raw/ 7 | prefix: train-item-views 8 | 9 | filter: 10 | min_item_support: 5 11 | min_session_length: 2 12 | 13 | params: 14 | days_test: 7 15 | 16 | output: 17 | folder: data/diginetica/prepared/ 18 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/single/rsc15.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 3 | mode: session_based # session_based | session_aware 4 | preprocessor: rsc15 # 5 | data: 6 | folder: data/rsc15/raw/ 7 | prefix: rsc15-clicks 8 | 9 | filter: 10 | min_item_support: 5 11 | min_session_length: 2 12 | 13 | params: 14 | days_test: 1 15 | 16 | output: 17 | folder: data/rsc15/prepared/ 18 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/single/rsc15_4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 3 | mode: session_based # session_based | session_aware 4 | preprocessor: rsc15 # 5 | data: 6 | folder: data/rsc15/raw/ 7 | prefix: rsc15-clicks 8 | 9 | filter: 10 | min_item_support: 5 11 | min_session_length: 2 12 | 13 | params: 14 | days_test: 1 15 | last_nth: 4 #optional for rsc15_4/64 16 | 17 | output: 18 | folder: data/rsc15/prepared/ 19 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/single/rsc15_64.yml: -------------------------------------------------------------------------------- 1 | type: single # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: rsc15 # 4 | data: 5 | folder: data/rsc15/raw/ 6 | prefix: rsc15-clicks 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 1 14 | last_nth: 64 #optional for rsc15_4/64 15 | 16 | output: 17 | folder: data/rsc15/prepared/ 18 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/30music.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: music # 4 | data: 5 | folder: data/30music/raw/ 6 | prefix: 30music-200ks 7 | 8 | filter: 9 | min_item_support: 2 10 | min_session_length: 5 11 | 12 | params: 13 | days_test: 5 14 | days_train: 90 15 | num_slices: 5 #only window 16 | days_offset: 0 #only window 17 | days_shift: 60 #only window 18 | 19 | output: 20 | folder: data/30music/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/aotm.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: music # 4 | data: 5 | folder: data/aotm/raw/ 6 | prefix: playlists-aotm 7 | 8 | filter: 9 | min_item_support: 2 10 | min_session_length: 5 11 | 12 | params: 13 | days_test: 5 14 | days_train: 90 15 | num_slices: 5 #only window 16 | days_offset: 0 #only window 17 | days_shift: 60 #only window 18 | 19 | output: 20 | folder: data/aotm/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/diginetica.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: diginetica # 4 | data: 5 | folder: data/diginetica/raw/ 6 | prefix: train-item-views 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 7 14 | days_train: 25 #only window 15 | num_slices: 5 #only window 16 | days_offset: 45 #only window 17 | days_shift: 18 #only window 18 | 19 | output: 20 | folder: data/diginetica/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/nowplaying.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: music # 4 | data: 5 | folder: data/nowplaying/raw/ 6 | prefix: nowplaying 7 | 8 | filter: 9 | min_item_support: 2 10 | min_session_length: 5 11 | 12 | params: 13 | days_test: 5 14 | days_train: 90 15 | num_slices: 5 #only window 16 | days_offset: 0 #only window 17 | days_shift: 60 #only window 18 | 19 | output: 20 | folder: data/nowplaying/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/retailrocket.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: retailrocket # 4 | data: 5 | folder: data/retailrocket/raw/ 6 | prefix: events 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 2 14 | days_train: 25 #only window 15 | num_slices: 5 #only window 16 | days_offset: 0 #only window 17 | days_shift: 27 #only window 18 | 19 | output: 20 | folder: data/retailrocket/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/rsc15.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | preprocessor: rsc15 # 4 | data: 5 | folder: data/rsc15/raw/ 6 | prefix: rsc15-clicks 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 1 14 | days_train: 30 #only window 15 | num_slices: 5 #only window 16 | days_offset: 5 #only window 17 | days_shift: 31 #only window 18 | 19 | output: 20 | folder: data/rsc15/slices/ 21 | -------------------------------------------------------------------------------- /conf/preprocess/session_based/window/tmall.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window 2 | mode: session_based # session_based | session_aware 3 | dataset: tmall # 4 | data: 5 | folder: data/tmall/raw/ 6 | prefix: dataset 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 1 14 | days_train: 90 15 | num_slices: 5 #only window 16 | days_offset: 1 #only window 17 | days_shift: 10 #only window 18 | 19 | output: 20 | folder: data/tmall/slices/ 21 | -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/30music_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | 28 | optimize: 29 | class: accuracy.MRR 30 | length: [20] 31 | iterations: 50 #optional 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, batch_size: 128} 36 | params_opt: 37 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 38 | memory_size: [128] 39 | key: csrm -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/30music_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: ct.ct.ContextTree 34 | params: {} 35 | params_opt: 36 | expert: ['StdExpert', 'DirichletExpert'] 37 | history_maxlen: [5,10,20,30,40,50,75] 38 | nb_candidates: [250,500,1000,1500] 39 | key: ct 40 | -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: ../../data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 2000} 10 | 11 | results: 12 | folder: results/opt/30music_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20,30] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/30music_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/single/ 8 | prefix: 30music-200ks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/30music_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,2.1,4.2,8.4,16.8,33.6] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,2.1,4.2,8.4,16.8,33.6] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/30music/window/window_30music_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/slices/ 8 | prefix: 30music-200ks 9 | # opts: {sessions_test: 5000} 10 | slices: 5 11 | 12 | results: 13 | folder: results/window/30music/ 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: data/30music/slices/recs/csrm-second } 33 | key: csrm-second 34 | - class: filemodel.resultfile.ResultFile 35 | params: { file: data/30music/slices/recs/csrm-best } 36 | key: csrm-best 37 | -------------------------------------------------------------------------------- /conf/save/30music/window/window_30music_sgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: sgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music-window #added in the end of the csv names 7 | folder: data/30music/slices/ 8 | prefix: 30music-200ks 9 | # opts: {sessions_test: 5000} 10 | slices: 5 11 | 12 | results: 13 | folder: results/window/30music/ 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: saver.Saver 27 | length: [50] 28 | - class: time_memory_usage.Time_usage_training 29 | - class: time_memory_usage.Time_usage_testing 30 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: sgnn.gnn.GGNN 34 | params: { hidden_size: 100, out_size: 100, step: 1, nonhybrid: True, batch_size: 100, epoch_n: 10, batch_predict: True, lr: 0.0006, l2: 3.00E-05, lr_dc: 0.36666667, lr_dc_step: 3} -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks-window #added in the end of the csv names 7 | folder: data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/8tracks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | 28 | optimize: 29 | class: accuracy.MRR 30 | length: [20] 31 | iterations: 50 #optional 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10 }#, batch_size: 256 } 36 | params_opt: 37 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 38 | memory_size: [128,256,512] 39 | key: csrm 40 | 41 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks-window #added in the end of the csv names 7 | folder: ../../data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 1000} 10 | 11 | results: 12 | folder: results/opt/8tracks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | iterations_skip: 46 32 | 33 | algorithms: 34 | - class: narm.narm.NARM 35 | params: { epochs: 20 } 36 | params_opt: 37 | factors: [50, 100] 38 | hidden_units: [50, 100] 39 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 40 | key: narm 41 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/8tacks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | # - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks-window #added in the end of the csv names 7 | folder: ../../data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/8tracks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks-window #added in the end of the csv names 7 | folder: data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/8tracks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: {} 35 | params_opt: 36 | n_epochs: [10,20] 37 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 38 | init_lr: [{from: 0.001, to: 0.01, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 39 | key: stamp 40 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks-window #added in the end of the csv names 7 | folder: data/8tracks/single/ 8 | prefix: playlists-8tracks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/8tracks_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,1.42,2.84,5.68,11.36,22.72] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,1.42,2.84,5.68,11.36,22.72] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/window_8tracks_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks #added in the end of the csv names 7 | folder: data/8tracks/slices/ 8 | prefix: playlists-8tracks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/8tracks/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [1,3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: time_memory_usage.Time_usage_training 28 | - class: time_memory_usage.Time_usage_testing 29 | #- class: time_memory_usage.Memory_usage 30 | 31 | algorithms: 32 | - class: filemodel.resultfile.ResultFile 33 | params: { file: data/8tracks/slices/recs/csrm-second } 34 | key: csrm-second 35 | - class: filemodel.resultfile.ResultFile 36 | params: { file: data/8tracks/slices/recs/csrm-best } 37 | key: csrm-best 38 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/window_8tracks_sgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks #added in the end of the csv names 7 | folder: data/8tracks/slices/ 8 | prefix: playlists-8tracks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/8tracks/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: saver.Saver 28 | length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | 34 | algorithms: 35 | - class: sgnn.gnn.GGNN 36 | params: { hidden_size: 100, out_size: 100, step: 1, nonhybrid: True, batch_size: 100, epoch_n: 10, batch_predict: True, lr: 0.002, l2: 5.00E-05, lr_dc: 0.46, lr_dc_step: 7} -------------------------------------------------------------------------------- /conf/save/8tracks/window/window_8tracks_time_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: time-nin #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 8tracks #added in the end of the csv names 7 | folder: ../../data/8tracks/slices/ 8 | prefix: playlists-8tracks 9 | slices: 5 #only window 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 1000} 12 | #opts: {sessions_test: 10} 13 | 14 | results: 15 | folder: results/window/8tracks/ 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | algorithms: 27 | - class: nextitnet.nextitrec.Nextitrec 28 | params: { learning_rate: 0.001, iterations: 1 } 29 | key: nextitnet -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm-window #added in the end of the csv names 7 | folder: data/aotm/single/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/aotm_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | # - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm-window #added in the end of the csv names 7 | folder: data/aotm/single/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/aotm_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm-window #added in the end of the csv names 7 | folder: data/aotm/single/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/aotm_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 37 | iterations: [10,20,30] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailr #added in the end of the csv names 7 | folder: data/aotm/slices/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/retailrocket_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm #added in the end of the csv names 7 | folder: data/aotm/single/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/aotm_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,1.7625,3.525,7.05,14.1,28.2] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,1.7625,3.525,7.05,14.1,28.2] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/aotm/window/window_aotm_srgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: srgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm #added in the end of the csv names 7 | folder: data/aotm/slices/ 8 | prefix: playlists-aotm 9 | slices: 5 #only window 10 | 11 | results: 12 | folder: results/window/aotm/ 13 | #pickle_models: results/models/nowplaying-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: data/aotm/slices/recs/srgnn-best } 33 | key: srgnn-best 34 | - class: filemodel.resultfile.ResultFile 35 | params: { file: data/aotm/slices/recs/srgnn-second } 36 | key: srgnn-second 37 | -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/exp/narm/window_cosmetics_narm.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: narm #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/cosmetics/narm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | 30 | algorithms: 31 | # narm-epochs=20-factors=100-lr=0,007 32 | - class: narm.narm.NARM 33 | params: { epochs: 20, lr: 0.007, factors: 100 } 34 | key: narm 35 | # fixed: hidden_units: 100 -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/exp/stan/window_cosmetics_stan.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: stan #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/cosmetics/stan/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | 30 | algorithms: 31 | # stan-k=500-sample_size=2500-lambda_spw=0,905-lambda_snh=40-lambda_inh=0,4525 32 | - class: knn.stan.STAN 33 | params: { k: 500, sample_size: 2500, lambda_spw: 0.905 , lambda_snh: 40, lambda_inh: 0.4525 } 34 | key: stan -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/exp/window_cosmetics_ncfs.yml: -------------------------------------------------------------------------------- 1 | type: window # single|window, maybe add opt 2 | key: ncsf #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/cosmetics/ncsf/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | 30 | algorithms: 31 | # ncfs-window_sz=3-max_nb_his_sess=0-att_alpha=1 32 | - class: NCFS.ncfs.NCFS 33 | params: { window_sz: 3, max_nb_his_sess: 0, att_alpha: 1 } 34 | key: ncsf -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/exp/window_cosmetics_shan.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: shan #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/cosmetics/shan/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | 30 | algorithms: 31 | # shan1-iter=100-global_dimension=100-lambda_uv=0,01-lambda_a=1 32 | - class: shan.shan.SHAN 33 | params: { iter: 100, global_dimension: 100, lambda_uv: 0.01, lambda_a: 1 } 34 | params_opt: {} 35 | key: shan -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/narm/window_cosmetics_narm.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: narm #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/narm/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 50 #optional 29 | 30 | algorithms: 31 | - class: narm.narm.NARM 32 | params: { epochs: 20 } 33 | params_opt: 34 | factors: [50, 100] 35 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 36 | key: narm -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/shan_all_combination/window_cosmetics_shan_1.yml: -------------------------------------------------------------------------------- 1 | type: opt # single|window, maybe add opt 2 | key: shan_1 #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/shan/all_combination/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 1 #optional 29 | 30 | algorithms: 31 | - class: shan.shan.SHAN # small network, the TOP1 loss always outperformed other ranking losses, so we consider only it 32 | params: {iter: 100, global_dimension: 100, lambda_uv: 0.01, lambda_a: 1} 33 | params_opt: {} 34 | # lambda_uv: [0.01, 0.001, 0.0001] 35 | # lambda_a: [1,10,50] 36 | key: shan1 -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/sr/window_cosmetics_sr.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/sr/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.sr.SequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | key: sr 37 | -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/sr/window_cosmetics_sr_B.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr_B #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/usr/B/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.usr.USequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | boost_own_sessions: {from: 0.1, to: 3.9 , in: 20, type: float32} 37 | key: sr_B -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/sr/window_cosmetics_sr_R.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr_R #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/usr/R/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 20 #optional 29 | 30 | algorithms: 31 | - class: baselines.usr.USequentialRules 32 | params: { steps: 15, weighting: div, reminders: True, remind_strategy: 'hybrid' } 33 | params_opt: 34 | remind_sessions_num: {from: 1, to: 10, in: 10, type: int32} 35 | weight_base: {from: 1, to: 10, in: 10, type: int32} 36 | weight_IRec: {from: 0, to: 9, in: 10, type: int32} 37 | key: sr_R -------------------------------------------------------------------------------- /conf/save/cosmetics/session_aware/window/opt/window_cosmetics_ncfs.yml: -------------------------------------------------------------------------------- 1 | type: opt # single|window, maybe add opt 2 | key: ncfs #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: cosmetics #added in the end of the csv names 6 | folder: data/cosmetics/prepared_window/sampled/ 7 | prefix: interactions.1 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/cosmetics/ncfs/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: NCFS.ncfs.NCFS 32 | params: {} # mini_batch_sz # neg_samples # max_epoch # max_session_len # embeding_len 33 | params_opt: 34 | window_sz: {from: 1, to: 10, in: 10, type: int32} 35 | max_nb_his_sess: [0,1,2,5,10] 36 | att_alpha: [0.01, 0.1, 1, 10] 37 | key: ncfs -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: {} 35 | params_opt: 36 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 37 | n_epochs: [10, 20, 30] 38 | init_lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: stamp 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,0.625,1.25,2.5,5,10] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,0.625,1.25,2.5,5,10] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_wrongtime_digi_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-wrongtime #added in the end of the csv names 7 | folder: data/diginetica/prepared_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_wrongtime_digi_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-wrongtime #added in the end of the csv names 7 | folder: data/diginetica/prepared_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_wrongtime_digi_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-wrongtime #added in the end of the csv names 7 | folder: data/diginetica/prepared_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_wrongtime_digi_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-wrongtime #added in the end of the csv names 7 | folder: data/diginetica/prepared_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params_opt: 35 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 36 | n_epochs: [10, 20, 30] 37 | init_lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 38 | key: stamp 39 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: {} 35 | params_opt: 36 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 37 | n_epochs: [10, 20, 30] 38 | init_lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: stamp 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt_wrongtime/window_wrongtime_digi_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt_wrongtime/window_wrongtime_digi_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt_wrongtime/window_wrongtime_digi_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt_wrongtime/window_wrongtime_digi_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/single_stamp/ 8 | prefix: train-item-views 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/diginetica_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: {} 35 | params_opt: 36 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 37 | n_epochs: [10, 20, 30] 38 | init_lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: stamp 40 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/window_digi_sgnn.yml: -------------------------------------------------------------------------------- 1 | 2 | --- 3 | type: window # single|window, maybe add opt 4 | key: models #added to the csv names 5 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 6 | data: 7 | name: diginetica-window #added in the end of the csv names 8 | folder: ../../data/diginetica/slices/ 9 | prefix: train-item-views 10 | # opts: {sessions_test: 5000} 11 | slices: 5 12 | 13 | results: 14 | folder: results/window/diginetica/ 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: saver.Saver 28 | length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: sgnn.gnn.GGNN 35 | params: { lr: 0.0001, l2: 0.000007, lr_dc: 0.63, lr_dc_step: 3, nonhybrid: True, epoch_n: 10 } 36 | key: srgnn-best 37 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/window_digi_smf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-window #added in the end of the csv names 7 | folder: ../../data/diginetica/slices/ 8 | prefix: train-item-views 9 | # opts: {sessions_test: 5000} 10 | slices: 5 11 | 12 | results: 13 | folder: results/window/diginetica/smf/ 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: saver.Saver 27 | length: [50] 28 | - class: time_memory_usage.Time_usage_training 29 | - class: time_memory_usage.Time_usage_testing 30 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: smf.smf.SessionMF 34 | params: { objective: 'bpr_max_org', activation: 'linear', dropout: 0.2, skip: 0.2, momentum: 0.7, learning_rate: 0.01 } 35 | key: smf 36 | -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/scalability/window_lastfm_session_based.yml: -------------------------------------------------------------------------------- 1 | type: window # opt|single|window 2 | key: session_based #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_next_multiple|evaluation_user_based_next|evaluation_user_based_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | slices: 5 10 | skip: [0,1,2,4] # we need only slice 3 11 | 12 | results: 13 | folder: results/window/scalability/lastfm/ 14 | 15 | metrics: 16 | - class: time_memory_usage.Time_usage_training 17 | - class: time_memory_usage.Time_usage_testing 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | # GRU4Rec 22 | - class: gru4rec.gru4rec.GRU4Rec 23 | params: { loss: 'bpr-max', final_act: 'linear', batch_size: 100, dropout_p_hidden: 0.0, learning_rate: 0.04, momentum: 0.1, constrained_embedding: False } 24 | key: gru4rec 25 | # NARM 26 | - class: narm.narm.NARM 27 | params: { epochs: 20, lr: 0.007, factors: 100} 28 | key: narm 29 | 30 | -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/single/opt/single_lastfm_ncfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: ncfs #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: lastfm #added in the end of the csv names 7 | folder: data/lastfm/prepared/ 8 | prefix: userid-timestamp-artid-artname-traid-traname_sample 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/single/lastfm/ncfs/ 13 | 14 | 15 | metrics: 16 | - class: accuracy_multiple.Precision 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.Recall 19 | length: [5,10,15,20] 20 | - class: accuracy_multiple.MAP 21 | length: [5,10,15,20] 22 | - class: accuracy.HitRate 23 | length: [5,10,15,20] 24 | - class: accuracy.MRR 25 | length: [5,10,15,20] 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: NCFS.ncfs.NCFS 34 | params: {} # mini_batch_sz # neg_samples # max_epoch # max_session_len # embeding_len 35 | params_opt: 36 | window_sz: {from: 1, to: 10, in: 10, type: int32} 37 | max_nb_his_sess: [0,1,2,5,10] 38 | att_alpha: [0.01, 0.1, 1, 10] 39 | key: ncfs -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/window/opt/narm/window_lastfm_narm.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: narm #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname.3 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/lastfm/narm/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 50 #optional 29 | 30 | algorithms: 31 | - class: narm.narm.NARM 32 | params: { epochs: 20 } 33 | params_opt: 34 | factors: [50, 100] 35 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 36 | key: narm -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/window/opt/narm/window_lastfm_narm_E.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: unarm #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname.3 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/lastfm/unarm/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: narm.unarm.UNARM 32 | params: { epochs: 20 } 33 | params_opt: 34 | factors: [50, 100] 35 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 36 | extend_session_length: {from: 1, to: 25, in: 25, type: int32} 37 | key: unarm -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/window/opt/sr/window_lastfm_sr.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname.3 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/lastfm/sr/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.sr.SequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | key: sr 37 | -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/window/opt/sr/window_lastfm_sr_B.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: usr #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname.3 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/lastfm/usr/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.usr.USequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | boost_own_sessions: {from: 0.1, to: 3.9 , in: 20, type: float32} 37 | key: usr -------------------------------------------------------------------------------- /conf/save/lastfm/session_aware/window/opt/window_lastfm_ncfs.yml: -------------------------------------------------------------------------------- 1 | type: opt # single|window, maybe add opt 2 | key: ncfs #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 4 | data: 5 | name: lastfm #added in the end of the csv names 6 | folder: data/lastfm/prepared_window/ 7 | prefix: userid-timestamp-artid-artname-traid-traname.3 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/lastfm/ncfs/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: NCFS.ncfs.NCFS 32 | params: {} # mini_batch_sz # neg_samples # max_epoch # max_session_len # embeding_len 33 | params_opt: 34 | window_sz: {from: 1, to: 10, in: 10, type: int32} 35 | max_nb_his_sess: [0,1,2,5,10] 36 | att_alpha: [0.01, 0.1, 1, 10] 37 | key: ncfs -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/csrm/opt/nowplaying/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [3,5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [3,5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | 40 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_csrm.yml~513094df8433db6ca6b1100d4a760f30bb014381: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/nowplaying_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | # - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/nowplaying_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | # - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20,30] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/nowplaying_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_vstan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/nowplaying_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,1.275,2.55,5.1,10.2,20.4] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,1.275,2.55,5.1,10.2,20.4] 42 | key: vstan 43 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/window_nowplaying_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: srgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/slices/ 8 | prefix: nowplaying 9 | slices: 5 #only window 10 | 11 | results: 12 | folder: results/window/nowplaying/ 13 | pickle_models: results/models/nowplaying-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: data/nowplaying/slices/recs/csrm-second } 33 | key: csrm-second 34 | - class: filemodel.resultfile.ResultFile 35 | params: { file: data/nowplaying/slices/recs/csrm-best } 36 | key: csrm-best 37 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/window_nowplaying_srgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: srgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/slices/ 8 | prefix: nowplaying 9 | slices: 5 #only window 10 | 11 | results: 12 | folder: results/window/nowplaying/ 13 | pickle_models: results/models/nowplaying-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: data/nowplaying/slices/recs/srgnn-second } 33 | key: srgnn-second 34 | - class: filemodel.resultfile.ResultFile 35 | params: { file: data/nowplaying/slices/recs/srgnn-best } 36 | key: srgnn-best 37 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/window_nowplaying_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/slices/ 8 | prefix: nowplaying 9 | slices: 5 #only window 10 | 11 | results: 12 | folder: results/window/nowplaying/ 13 | pickle_models: results/models/nowplaying-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: data/nowplaying/slices/recs/stamp-second } 33 | key: stamp-second 34 | - class: filemodel.resultfile.ResultFile 35 | params: { file: data/nowplaying/slices/recs/stamp-org } 36 | key: stamp-org 37 | -------------------------------------------------------------------------------- /conf/save/retailrocket/session_aware/single/opt/narm/single_retailrocket_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 5 | data: 6 | name: retailrocket #added in the end of the csv names 7 | folder: data/retailrocket/prepared/ 8 | prefix: events 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/retailrocket/narm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 50 #optional 30 | 31 | algorithms: 32 | - class: narm.narm.NARM 33 | params: { epochs: 20 } 34 | params_opt: 35 | factors: [50, 100] 36 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 37 | key: narm -------------------------------------------------------------------------------- /conf/save/retailrocket/session_aware/single/opt/usr/single_retailrocket_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailrocket #added in the end of the csv names 7 | folder: data/retailrocket/prepared/ 8 | prefix: events 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/retailrocket/sr/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: baselines.sr.SequentialRules 33 | params: {} 34 | params_opt: 35 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 36 | weighting: ['linear','div','quadratic','log'] 37 | key: sr 38 | -------------------------------------------------------------------------------- /conf/save/retailrocket/session_aware/single/opt/usr/single_retailrocket_usr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: usr #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailrocket #added in the end of the csv names 7 | folder: data/retailrocket/prepared/ 8 | prefix: events 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/retailrocket/usr/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: baselines.usr.USequentialRules 33 | params: {} 34 | params_opt: 35 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 36 | weighting: ['linear','div','quadratic','log'] 37 | boost_own_sessions: {from: 0.1, to: 3.9 , in: 20, type: float32} 38 | key: usr -------------------------------------------------------------------------------- /conf/save/retailrocket/session_aware/window/opt/narm/window_retailrocket_narm.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: narm #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events.2 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/opt/window/retailrocket/narm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 50 #optional 30 | 31 | algorithms: 32 | - class: narm.narm.NARM 33 | params: { epochs: 20 } 34 | params_opt: 35 | factors: [50, 100] 36 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 37 | key: narm -------------------------------------------------------------------------------- /conf/save/retailrocket/session_aware/window/opt/sr/window_retailrocket_sr.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 4 | data: 5 | name: retailrocket #added in the end of the csv names 6 | folder: data/retailrocket/prepared_window/ 7 | prefix: events.2 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/opt/window/retailrocket/sr/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: baselines.sr.SequentialRules 33 | params: {} 34 | params_opt: 35 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 36 | weighting: ['linear','div','quadratic','log'] 37 | key: sr 38 | -------------------------------------------------------------------------------- /conf/save/retailrocket/session_based/window/opt/window_retailrocket_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailr-window #added in the end of the csv names 7 | folder: data/retailrocket/single/ 8 | prefix: events 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/retailrocket_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/retailrocket/session_based/window/opt/window_retailrocket_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailr-window #added in the end of the csv names 7 | folder: data/retailrocket/single/ 8 | prefix: events 9 | opts: {sessions_test: 5000} 10 | results: 11 | folder: results/opt/retailr_window/ 12 | 13 | metrics: 14 | - class: accuracy.HitRate 15 | length: [5,10,15,20] 16 | - class: accuracy.MRR 17 | length: [5,10,15,20] 18 | - class: coverage.Coverage 19 | length: [20] 20 | - class: popularity.Popularity 21 | length: [20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: nextitnet.nextitrec.Nextitrec 33 | params: {} 34 | params_opt: 35 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 36 | iterations: [10,20,30] 37 | is_negsample: [True,False] 38 | key: nextitnet 39 | -------------------------------------------------------------------------------- /conf/save/retailrocket/session_based/window/opt/window_retailrocket_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailr #added in the end of the csv names 7 | folder: ../../data/retailrocket/single/ 8 | prefix: events 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/retailrocket_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/retailrocket/session_based/window/window_retailr_smf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: smf #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: retailr-window-multiple #added in the end of the csv names 7 | folder: data/retailrocket/slices/ 8 | prefix: events 9 | slices: 5 10 | 11 | results: 12 | folder: results/retailrocket_window/ 13 | #pickle_models: results/models/retailrocket-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy_multiple.Precision 17 | length: [3,5,10,15,20] 18 | - class: accuracy_multiple.Recall 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.MAP 21 | length: [3,5,10,15,20] 22 | - class: accuracy_multiple.NDCG 23 | length: [3,5,10,15,20] 24 | - class: coverage.Coverage 25 | length: [20] 26 | - class: popularity.Popularity 27 | length: [20] 28 | - class: saver.Saver 29 | length: [50] 30 | - class: time_memory_usage.Time_usage_training 31 | - class: time_memory_usage.Time_usage_testing 32 | #- class: time_memory_usage.Memory_usage 33 | 34 | algorithms: 35 | - class: filemodel.resultfile.ResultFile 36 | params: { file: data/retailrocket/slices/recs/smf-best } 37 | key: smf-best 38 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_knnidf.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: knn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/single/ 8 | prefix: yoochoose-clicks-full 9 | opts: {sessions_test: 1000} 10 | 11 | results: 12 | folder: results/opt/rsc15_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.vmknn.VMContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | weighting: ['same','div','linear','quadratic','log'] 39 | weighting_score: ['same','div','linear','quadratic','log'] 40 | idf_weighting: [False,1,2,5,10] 41 | key: vsknn -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/single/ 8 | prefix: yoochoose-clicks-full 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 37 | iterations: [10,20,30] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: ../../data/rsc15/single/ 8 | prefix: yoochoose-clicks-full 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/single/ 8 | prefix: yoochoose-clicks-full 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,0.5,1,2,4,8] 40 | lambda_snh: [2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,0.5,1,2,4,8] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_1.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/1/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0002, memory_size: 256, batch_size: 256} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_10.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/10/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0001, memory_size: 512, batch_size: 512} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_2.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/2/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0002, memory_size: 128, batch_size: 128} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_3.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/3/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0004, memory_size: 256, batch_size: 256} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/4/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: saver.Saver 28 | length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0004, memory_size: 512, batch_size: 512} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_5.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/5/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0005, memory_size: 128, batch_size: 128} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_6.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/6/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0003, memory_size: 256, batch_size: 256} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_7.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/7/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0007, memory_size: 512, batch_size: 512} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_8.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/8/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.00006, memory_size: 128, batch_size: 128} 36 | key: csrm -------------------------------------------------------------------------------- /conf/save/rsc15/window/top10/csrm/window_rsc15_csrm_9.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/top1/9/ 14 | #pickle_models: results/window/rsc15/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | #- class: saver.Saver 28 | # length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: CSRM.csrm.CSRM 35 | params: { hidden_units: 100, epoch: 10, lr: 0.0008, memory_size: 512, batch_size: 512} 36 | key: csrm 37 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_multiple_rsc15_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/rsc15/ 13 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: saver.Saver 27 | length: [50] 28 | - class: time_memory_usage.Time_usage_training 29 | - class: time_memory_usage.Time_usage_testing 30 | 31 | algorithms: 32 | - class: nextitnet.nextitrec.Nextitrec 33 | params: { learning_rate: 0.0003, iterations: 10, is_negsample: False} 34 | key: nextitnet -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_rsc15_memory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15 #added in the end of the csv names 7 | folder: ../../data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 2000} 12 | 13 | results: 14 | folder: results/window/memory/rsc15/ 15 | pickle_models: results/models/rsc15-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | - class: gru4rec.gru4rec.GRU4Rec 22 | params: { n_epochs: 0} 23 | key: gru4rec-best 24 | - class: STAMP.model.STAMP.Seq2SeqAttNN 25 | params: { n_epochs: 0} 26 | key: stamp 27 | - class: narm.narm.NARM 28 | params: { epochs: 0 } 29 | key: narm 30 | - class: nextitnet.nextitrec.Nextitrec 31 | params: { iterations: 0 } 32 | key: nextitnet 33 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_rsc15_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | 11 | results: 12 | folder: results/window/rsc15/ 13 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: saver.Saver 27 | length: [50] 28 | - class: time_memory_usage.Time_usage_training 29 | - class: time_memory_usage.Time_usage_testing 30 | 31 | algorithms: 32 | - class: nextitnet.nextitrec.Nextitrec 33 | params: { learning_rate: 0.0003, iterations: 10, is_negsample: False} 34 | key: nextitnet -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_rsc15_time_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: time-ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 500} 12 | 13 | results: 14 | folder: results/window/rsc15/ 15 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | algorithms: 27 | - class: ct.ct.ContextTree 28 | params: {} 29 | key: ct-pre -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_rsc15_time_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: time-nin #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-window #added in the end of the csv names 7 | folder: data/rsc15/slices/ 8 | prefix: yoochoose-clicks-full 9 | slices: 5 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 1000} 12 | 13 | results: 14 | folder: results/window/rsc15/ 15 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | algorithms: 27 | - class: nextitnet.nextitrec.Nextitrec 28 | params: { learning_rate: 0.001, iterations: 1 } 29 | key: nextitnet 30 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc15_4_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/csrm/opt/rsc15_4/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [3,5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [3,5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc15_4_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_4/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc15_4_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_4/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params_opt: 35 | decay_rate: {from: 0.0, to: 0.9, in: 10, type: float32} 36 | n_epochs: [10, 20, 30] 37 | init_lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 38 | key: stamp 39 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc15_4_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_4/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,0.5,1,2,4,8] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,0.5,1,2,4,8] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc_15_4_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_4/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_multiple_rsc15_4_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4-multiple #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results_new/single/multiple/rsc15_4/ 13 | #pickle_models: results/models/rsc15_4/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy_multiple.Precision 17 | length: [3,5,10,15,20] 18 | - class: accuracy_multiple.Recall 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.MAP 21 | length: [3,5,10,15,20] 22 | - class: accuracy_multiple.NDCG 23 | length: [3,5,10,15,20] 24 | - class: coverage.Coverage 25 | length: [20] 26 | - class: popularity.Popularity 27 | length: [20] 28 | - class: time_memory_usage.Time_usage_training 29 | - class: time_memory_usage.Time_usage_testing 30 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: filemodel.resultfile.ResultFile 34 | params: { file: data/rsc15/rsc15_4_recommendations/csrm } 35 | key: csrm -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_multiple_rsc15_4_sgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: sgnn #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4_multi #added in the end of the csv names 7 | folder: ../../data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_4/multiple/ 13 | #pickle_models: results/models/rsc15_4/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: coverage.Coverage 21 | length: [20] 22 | - class: popularity.Popularity 23 | length: [20] 24 | #- class: saver.Saver 25 | # length: [50] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: filemodel.resultfile.ResultFile 32 | params: { file: ../../data/rsc15/rsc15_4_recommendations/test_single_sgnn_rsc15_4 } 33 | key: sgnn -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_rsc15_4_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results_new/single/rsc15_4/ 13 | #pickle_models: results/models/rsc15_4/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: coverage.Coverage 21 | length: [20] 22 | - class: popularity.Popularity 23 | length: [20] 24 | - class: saver.Saver 25 | length: [50] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: CSRM.csrm.CSRM 32 | params: { hidden_units: 100, epoch: 10, lr: 0.0008, memory_size: 512} 33 | key: csrm 34 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_rsc15_4_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: ../../data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_4/ 13 | pickle_models: results/models/rsc15_4/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: coverage.Coverage 21 | length: [20] 22 | - class: popularity.Popularity 23 | length: [20] 24 | - class: saver.Saver 25 | length: [50] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: ct.ct.ContextTree 32 | params: {} 33 | key: ct-pre -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_rsc15_4_sgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: sgnn #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_4 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-4 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_4/ 13 | #pickle_models: results/models/rsc15_4/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: coverage.Coverage 21 | length: [20] 22 | - class: popularity.Popularity 23 | length: [20] 24 | - class: saver.Saver 25 | length: [50] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: sgnn.gnn.GGNN 32 | params: { hidden_size: 100, out_size: 100, step: 1, nonhybrid: True, batch_size: 100, epoch_n: 10, batch_predict: True, lr: 0.0006, l2: 5.00E-06, lr_dc: 0.1, lr_dc_step: 3} 33 | key: sgnn -------------------------------------------------------------------------------- /conf/save/rsc15_64/single split/opt/single_rsc15_54_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15_64 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-64 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_64/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,0.5,1,2,4,8] 40 | lambda_snh: [0.00001,2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,0.5,1,2,4,8] 42 | key: stan 43 | -------------------------------------------------------------------------------- /conf/save/rsc15_64/single split/opt/single_rsc15_64_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-64 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-64 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/csrm/opt/rsc15/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [3,5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [3,5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | 40 | -------------------------------------------------------------------------------- /conf/save/rsc15_64/single split/opt/single_rsc_15_64_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-64 #added in the end of the csv names 7 | folder: ../../data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-64 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/rsc15_64/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/tmall/window/opt/window_tmall_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: tmall-window #added in the end of the csv names 7 | folder: data/tmall/single/ 8 | prefix: dataset15 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/retailrocket_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/narm/single_xing_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based_next|evaluation_user_based_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/narm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 38 | key: narm -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/narm/single_xing_unarm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: unarm #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/unarm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.unarm.UNARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 38 | extend_session_length: {from: 1, to: 25, in: 25, type: int32} 39 | key: unarm -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/single_xing_ncfs.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: ncfs #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/ncfs/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: NCFS.ncfs.NCFS 33 | params: {} # mini_batch_sz # neg_samples # max_epoch # max_session_len # embeding_len 34 | params_opt: 35 | window_sz: {from: 1, to: 10, in: 10, type: int32} 36 | max_nb_his_sess: [0,1,2,5,10] 37 | att_alpha: [0.01, 0.1, 1, 10] 38 | key: ncfs 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/usr/single_xing_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/sr/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr 39 | -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/usr/single_xing_usr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: usr #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/usr/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.usr.USequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | boost_own_sessions: {from: 0.1, to: 3.9 , in: 20, type: float32} 39 | key: usr -------------------------------------------------------------------------------- /conf/save/xing/session_aware/single/opt/uvsknn/single_xing_vsknn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: vsknn #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared/ 8 | prefix: interactions 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/xing/vsknn/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 100 #optional 30 | 31 | algorithms: 32 | - class: knn.vsknn.VMContextKNN 33 | params: {} 34 | params_opt: 35 | k: [50,100,500,1000,1500] 36 | sample_size: [500,1000,2500,5000,10000] 37 | weighting: ['same','div','linear','quadratic','log'] 38 | weighting_score: ['same','div','linear','quadratic','log'] 39 | idf_weighting: [False,1,2,5,10] 40 | key: vsknn 41 | -------------------------------------------------------------------------------- /conf/save/xing/session_aware/window/opt/narm/window_xing_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # opt|single|window 3 | key: narm #added to the csv names 4 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 5 | data: 6 | name: xing #added in the end of the csv names 7 | folder: data/xing/xing2016/prepared_window/ 8 | prefix: interactions.3 # slice with maximum number of users 9 | type: hdf #hdf (if there is no type, the default is csv) 10 | 11 | results: 12 | folder: results/opt/window/xing/narm/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [5,10,15,20] 19 | - class: accuracy_multiple.MAP 20 | length: [5,10,15,20] 21 | - class: accuracy.HitRate 22 | length: [5,10,15,20] 23 | - class: accuracy.MRR 24 | length: [5,10,15,20] 25 | 26 | optimize: 27 | class: accuracy.MRR 28 | length: [20] 29 | iterations: 50 #optional 30 | 31 | algorithms: 32 | - class: narm.narm.NARM 33 | params: { epochs: 20 } 34 | params_opt: 35 | factors: [50, 100] 36 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 37 | key: narm -------------------------------------------------------------------------------- /conf/save/xing/session_aware/window/opt/sr/window_xing_sr.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 4 | data: 5 | name: xing #added in the end of the csv names 6 | folder: data/xing/xing2016/prepared_window/ 7 | prefix: interactions.3 # slice with maximum number of users 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/xing/sr/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.sr.SequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | key: sr 37 | -------------------------------------------------------------------------------- /conf/save/xing/session_aware/window/opt/sr/window_xing_sr_B.yml: -------------------------------------------------------------------------------- 1 | type: opt # opt|single|window 2 | key: sr_B #added to the csv names 3 | evaluation: evaluation_user_based #evaluation|evaluation_last|evaluation_multiple|evaluation_user_based|evaluation_user_based_multiple 4 | data: 5 | name: xing #added in the end of the csv names 6 | folder: data/xing/xing2016/prepared_window/ 7 | prefix: interactions.3 # slice with maximum number of users 8 | type: hdf #hdf (if there is no type, the default is csv) 9 | 10 | results: 11 | folder: results/opt/window/xing/usr/ 12 | 13 | metrics: 14 | - class: accuracy_multiple.Precision 15 | length: [5,10,15,20] 16 | - class: accuracy_multiple.Recall 17 | length: [5,10,15,20] 18 | - class: accuracy_multiple.MAP 19 | length: [5,10,15,20] 20 | - class: accuracy.HitRate 21 | length: [5,10,15,20] 22 | - class: accuracy.MRR 23 | length: [5,10,15,20] 24 | 25 | optimize: 26 | class: accuracy.MRR 27 | length: [20] 28 | iterations: 100 #optional 29 | 30 | algorithms: 31 | - class: baselines.usr.USequentialRules 32 | params: {} 33 | params_opt: 34 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 35 | weighting: ['linear','div','quadratic','log'] 36 | boost_own_sessions: {from: 0.1, to: 3.9 , in: 20, type: float32} 37 | key: sr_B -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_csrm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: csrm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-64 #added in the end of the csv names 7 | folder: ../../data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/csrm/opt/zalando/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [3,5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [3,5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: CSRM.csrm.CSRM 34 | params: { hidden_units: 100, epoch: 10} 35 | params_opt: 36 | lr: [{from: 0.001, to: 0.0001, in: 10, type: float32},{from: 0.0001, to: 0.00001, in: 10, type: float32}] 37 | memory_size: [128,256,512] 38 | key: csrm 39 | 40 | -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando-window #added in the end of the csv names 7 | folder: data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: ct.ct.ContextTree 34 | params: {} 35 | params_opt: 36 | expert: ['StdExpert', 'DirichletExpert'] 37 | history_maxlen: [5,10,20,30,40,50,75] 38 | nb_candidates: [250,500,1000,1500] 39 | key: ct 40 | -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_narm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: narm #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando-window #added in the end of the csv names 7 | folder: data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: narm.narm.NARM 34 | params: { epochs: 20 } 35 | params_opt: 36 | factors: [50, 100] 37 | hidden_units: [50, 100] 38 | lr: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.0001, to: 0.001, in: 10, type: float32}] 39 | key: narm 40 | -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: nextitnet #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando-window #added in the end of the csv names 7 | folder: data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | # - class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 50 #optional 31 | 32 | algorithms: 33 | - class: nextitnet.nextitrec.Nextitrec 34 | params: {} 35 | params_opt: 36 | learning_rate: [{from: 0.01, to: 0.001, in: 10, type: float32},{from: 0.001, to: 0.0001, in: 10, type: float32}] 37 | iterations: [10,20] 38 | is_negsample: [True,False] 39 | key: nextitnet 40 | -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_sr.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando-window #added in the end of the csv names 7 | folder: data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: baselines.sr.SequentialRules 34 | params: {} 35 | params_opt: 36 | steps: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,25,30] 37 | weighting: ['linear','div','quadratic','log'] 38 | key: sr -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_stan.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: stan #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando-window #added in the end of the csv names 7 | folder: data/zalando/single/ 8 | prefix: clicks 9 | opts: {sessions_test: 5000} 10 | 11 | results: 12 | folder: results/opt/zalando_window/ 13 | 14 | metrics: 15 | - class: accuracy.HitRate 16 | length: [5,10,15,20] 17 | - class: accuracy.MRR 18 | length: [5,10,15,20] 19 | - class: coverage.Coverage 20 | length: [20] 21 | - class: popularity.Popularity 22 | length: [20] 23 | - class: time_memory_usage.Time_usage_training 24 | - class: time_memory_usage.Time_usage_testing 25 | #- class: time_memory_usage.Memory_usage 26 | 27 | optimize: 28 | class: accuracy.MRR 29 | length: [20] 30 | iterations: 100 #optional 31 | 32 | algorithms: 33 | - class: knn.stan.STAN 34 | params: {} 35 | params_opt: 36 | k: [100,200,500,1000,1500,2000] 37 | sample_size: [1000,2500,5000,10000] 38 | #stan 39 | lambda_spw: [0.00001,1.56, 3.13, 6.25, 12.51, 25.02] 40 | lambda_snh: [2.5,5,10,20,40,80,100] 41 | lambda_inh: [0.00001,1.56, 3.13, 6.25, 12.51, 25.02] 42 | -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando #added in the end of the csv names 7 | folder: data/zalando/slices/ 8 | prefix: clicks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/zalando/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [3,5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.NDCG 22 | length: [3,5,10,15,20] 23 | - class: coverage.Coverage 24 | length: [20] 25 | - class: popularity.Popularity 26 | length: [20] 27 | - class: saver.Saver 28 | length: [50] 29 | - class: time_memory_usage.Time_usage_training 30 | - class: time_memory_usage.Time_usage_testing 31 | #- class: time_memory_usage.Memory_usage 32 | 33 | algorithms: 34 | - class: ct.ct.ContextTree 35 | params: {} 36 | key: ct-default 37 | -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_memory.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando #added in the end of the csv names 7 | folder: ../../data/zalando/slices/ 8 | prefix: clicks 9 | slices: 5 #only window 10 | skip: [1,2,3,4] 11 | #opts: {sessions_test: 10} 12 | 13 | results: 14 | folder: results/window/memory/zalando/ 15 | pickle_models: results/models/zalando-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: time_memory_usage.Memory_usage 19 | 20 | algorithms: 21 | - class: gru4rec.gru4rec.GRU4Rec 22 | params: { n_epochs: 0} 23 | key: gru4rec-best 24 | - class: STAMP.model.STAMP.Seq2SeqAttNN 25 | params: { n_epochs: 0} 26 | key: stamp 27 | - class: narm.narm.NARM 28 | params: { epochs: 0 } 29 | key: narm 30 | - class: nextitnet.nextitrec.Nextitrec 31 | params: { iterations: 0 } 32 | key: nextitnet 33 | -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_srgnn.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando #added in the end of the csv names 7 | folder: ../../data/zalando/slices/ 8 | prefix: clicks 9 | slices: 5 #only window 10 | 11 | results: 12 | folder: results/window/zalando/sgnn/ 13 | pickle_models: results/sgnn/window/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [1,3,5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [3,5,10,15,20] 20 | - class: accuracy_multiple.NDCG 21 | length: [3,5,10,15,20] 22 | - class: coverage.Coverage 23 | length: [20] 24 | - class: popularity.Popularity 25 | length: [20] 26 | - class: time_memory_usage.Time_usage_training 27 | - class: time_memory_usage.Time_usage_testing 28 | #- class: time_memory_usage.Memory_usage 29 | 30 | algorithms: 31 | - class: sgnn.gnn.GGNN 32 | params: { lr: 0.006, l2: 0.000005, lr_dc: 0.28, lr_dc_step: 3, nonhybrid: True, epoch_n: 10 } 33 | key: srgnn -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_time_ct.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: time-ct #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando #added in the end of the csv names 7 | folder: ../../data/zalando/slices/ 8 | prefix: clicks 9 | slices: 5 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 500} 12 | 13 | results: 14 | folder: results/window/time/zalando/ 15 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | algorithms: 27 | - class: ct.ct.ContextTree 28 | params: {} 29 | key: ct-pre 30 | 31 | -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_time_nextitnet.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: time-nin #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: zalando #added in the end of the csv names 7 | folder: ../../data/zalando/slices/ 8 | prefix: clicks 9 | slices: 5 10 | skip: [1,2,3,4] 11 | opts: {sessions_test: 500} 12 | 13 | results: 14 | folder: results/window/time/zalando/ 15 | #pickle_models: results/models/rsc15-window/ # not working for tensorflow models 16 | 17 | metrics: 18 | - class: accuracy.HitRate 19 | length: [3,5,10,15,20] 20 | - class: accuracy.MRR 21 | length: [3,5,10,15,20] 22 | - class: time_memory_usage.Time_usage_training 23 | - class: time_memory_usage.Time_usage_testing 24 | - class: time_memory_usage.Memory_usage 25 | 26 | algorithms: 27 | - class: nextitnet.nextitrec.Nextitrec 28 | params: { learning_rate: 0.001, iterations: 1 } 29 | key: nextitnet 30 | -------------------------------------------------------------------------------- /conf/seqpop/test_aotm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_ext #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm #added in the end of the csv names 7 | folder: data/aotm/single/ 8 | prefix: playlists-aotm 9 | opts: {sessions_test: 1000} 10 | 11 | results: 12 | folder: results/single/ 13 | pickle_models: results/models/aotm/ 14 | 15 | metrics: 16 | - class: accuracy_ext.HitRate 17 | length: [5,10,15,20] 18 | - class: accuracy_ext.MRR 19 | length: [5,10,15,20] 20 | 21 | algorithms: 22 | 23 | - class: baselines.ar.AssociationRules 24 | key: ar 25 | - class: baselines.sr.SequentialRules 26 | params: { weighting: div } 27 | key: sr 28 | - class: knn.vmknn.VMContextKNN 29 | params: 30 | k: 100 31 | sample_size: 1000 32 | weighting: quadratic 33 | weighting_score: quadratic 34 | key: vsknn -------------------------------------------------------------------------------- /conf/seqpop/test_nowplaying.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_ext #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying #added in the end of the csv names 7 | folder: data/nowplaying/single/ 8 | prefix: nowplaying 9 | opts: {sessions_test: 1000} 10 | 11 | results: 12 | folder: results/single/ 13 | pickle_models: results/models/nowplaying/ 14 | 15 | metrics: 16 | - class: accuracy_ext.HitRate 17 | length: [5,10,15,20] 18 | - class: accuracy_ext.MRR 19 | length: [5,10,15,20] 20 | 21 | algorithms: 22 | 23 | - class: baselines.ar.AssociationRules 24 | key: ar 25 | - class: baselines.sr.SequentialRules 26 | params: { weighting: div } 27 | key: sr 28 | - class: knn.vmknn.VMContextKNN 29 | params: 30 | k: 100 31 | sample_size: 1000 32 | weighting: quadratic 33 | weighting_score: quadratic 34 | key: vsknn -------------------------------------------------------------------------------- /conf/seqpop/test_rsc15_64.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_ext #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-64 9 | opts: {sessions_test: 10000} 10 | 11 | results: 12 | folder: results/single/ 13 | pickle_models: results/models/rsc15_64/ 14 | 15 | metrics: 16 | - class: accuracy_ext.HitRate 17 | length: [5,10,15,20] 18 | - class: accuracy_ext.MRR 19 | length: [5,10,15,20] 20 | 21 | algorithms: 22 | 23 | - class: baselines.ar.AssociationRules 24 | key: ar 25 | - class: baselines.sr.SequentialRules 26 | params: { weighting: div } 27 | key: sr 28 | - class: knn.vmknn.VMContextKNN 29 | params: 30 | k: 100 31 | sample_size: 1000 32 | weighting: quadratic 33 | weighting_score: quadratic 34 | key: vsknn -------------------------------------------------------------------------------- /docker/cpu/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM continuumio/miniconda3 2 | 3 | WORKDIR /app 4 | 5 | # Make RUN commands use `bash --login`: 6 | SHELL ["/bin/bash", "--login", "-c"] 7 | 8 | # Create the environment: 9 | COPY environment_cpu.yml . 10 | RUN conda env create -f environment_cpu.yml 11 | 12 | # Initialize conda in bash config fiiles: 13 | RUN conda init bash 14 | 15 | # Activate the environment, and make sure it's activated: 16 | RUN echo "conda activate srec37" > ~/.bashrc 17 | RUN echo "Make sure flask is installed:" 18 | RUN python -c "import tensorflow as tf" 19 | 20 | # The code to run when container is started: 21 | #COPY python.sh . 22 | #ENTRYPOINT ["/bin/bash"] -------------------------------------------------------------------------------- /docker/cpu/build.txt: -------------------------------------------------------------------------------- 1 | docker build -t maltel/session-rec-cpu:v1 . 2 | -------------------------------------------------------------------------------- /docker/cpu/environment_cpu.yml: -------------------------------------------------------------------------------- 1 | name: srec37 2 | channels: 3 | - defaults 4 | - conda-forge 5 | - mila-udem 6 | dependencies: 7 | - python=3.7 8 | - pip 9 | - scipy=1.6.2 10 | - python-dateutil=2.8.1 11 | - pytz=2021.1 12 | - certifi=2020.12.5 13 | - numpy=1.20.2 14 | - dill=0.3.3 15 | - pyyaml=5.4.1 16 | - networkx=2.5.1 17 | - scikit-learn=0.24.2 18 | - numexpr=2.7.3 19 | - keras=2.3.1 20 | - six=1.15.0 21 | - pandas=1.2.4 22 | - psutil=5.8.0 23 | - pympler=0.9 24 | - tensorflow=1.14 25 | - pytables=3.6.1 26 | - scikit-optimize=0.8.1 27 | - python-telegram-bot=13.5 28 | - theano=1.0.3 -------------------------------------------------------------------------------- /docker/gpu/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM continuumio/miniconda3 2 | 3 | WORKDIR /app 4 | 5 | # Make RUN commands use `bash --login`: 6 | SHELL ["/bin/bash", "--login", "-c"] 7 | 8 | # Create the environment: 9 | COPY environment_gpu.yml . 10 | RUN conda env create -f environment_gpu.yml 11 | 12 | # Initialize conda in bash config fiiles: 13 | RUN conda init bash 14 | 15 | # Activate the environment, and make sure it's activated: 16 | RUN echo "conda activate srec37" > ~/.bashrc 17 | RUN echo "Make sure flask is installed:" 18 | RUN python -c "import tensorflow as tf" 19 | 20 | # The code to run when container is started: 21 | #COPY python.sh . 22 | #ENTRYPOINT ["/bin/bash"] -------------------------------------------------------------------------------- /docker/gpu/build.txt: -------------------------------------------------------------------------------- 1 | docker build -t maltel/session-rec-gpu:v1 . -------------------------------------------------------------------------------- /docker/gpu/environment_gpu.yml: -------------------------------------------------------------------------------- 1 | name: srec37 2 | channels: 3 | - defaults 4 | - conda-forge 5 | - mila-udem 6 | dependencies: 7 | - python=3.7 8 | - scipy=1.6.2 9 | - python-dateutil=2.8.1 10 | - pytz=2021.1 11 | - certifi=2020.12.5 12 | - numpy=1.20.2 13 | - dill=0.3.3 14 | - pyyaml=5.4.1 15 | - networkx=2.5.1 16 | - scikit-learn=0.24.2 17 | - numexpr=2.7.3 18 | - keras=2.3.1 19 | - six=1.15.0 20 | - theano=1.0.3 21 | - pygpu 22 | - pandas=1.2.4 23 | - psutil=5.8.0 24 | - pympler=0.9 25 | - tensorflow-gpu=1.14 26 | - pytables=3.6.1 27 | - scikit-optimize=0.8.1 28 | - python-telegram-bot=13.5 -------------------------------------------------------------------------------- /docs/css/style_anon.css: -------------------------------------------------------------------------------- 1 | 2 | h2 { 3 | color:#333333; 4 | } 5 | .nav-tabs a:hover { 6 | color: #333333; 7 | } 8 | 9 | table th { 10 | border-top: 1px solid #333333; 11 | border-bottom: 1px solid #333333; 12 | } 13 | 14 | table tr:nth-child(odd) { 15 | background-color: #f7f7f7; 16 | } 17 | 18 | table tr:last-child td { 19 | border-bottom: 1px solid #333333; 20 | } -------------------------------------------------------------------------------- /docs/js/install.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var options = INSTALL_OPTIONS; 3 | 4 | Array.prototype.forEach.call(document.querySelectorAll('table'), function(table){ 5 | var firstTBodyRow, tHead; 6 | 7 | try { 8 | // If there’s no tHead but the first tBody row contains ths, create a tHead and move that row into it. 9 | if (!table.tHead && (firstTBodyRow = table.tBodies[0].rows[0]).children[0].tagName === 'TH') { 10 | tHead = document.createElement('thead'); 11 | tHead.appendChild(firstTBodyRow); 12 | table.insertBefore(tHead, table.firstChild); 13 | } 14 | 15 | // Sortable requires this 16 | if (table.tHead.rows.length !== 1) { 17 | return; 18 | } 19 | } catch (err) { 20 | return; 21 | } 22 | 23 | table.setAttribute('data-sortable', ''); 24 | table.classList.add('sortable-theme-' + options.theme); 25 | }); 26 | })(); 27 | -------------------------------------------------------------------------------- /docs/umuai/css/style_anon.css: -------------------------------------------------------------------------------- 1 | 2 | h2 { 3 | color:#333333; 4 | } 5 | .nav-tabs a:hover { 6 | color: #333333; 7 | } 8 | 9 | table th { 10 | border-top: 1px solid #333333; 11 | border-bottom: 1px solid #333333; 12 | } 13 | 14 | table tr:nth-child(odd) { 15 | background-color: #f7f7f7; 16 | } 17 | 18 | table tr:last-child td { 19 | border-bottom: 1px solid #333333; 20 | } -------------------------------------------------------------------------------- /docs/umuai/js/install.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var options = INSTALL_OPTIONS; 3 | 4 | Array.prototype.forEach.call(document.querySelectorAll('table'), function(table){ 5 | var firstTBodyRow, tHead; 6 | 7 | try { 8 | // If there’s no tHead but the first tBody row contains ths, create a tHead and move that row into it. 9 | if (!table.tHead && (firstTBodyRow = table.tBodies[0].rows[0]).children[0].tagName === 'TH') { 10 | tHead = document.createElement('thead'); 11 | tHead.appendChild(firstTBodyRow); 12 | table.insertBefore(tHead, table.firstChild); 13 | } 14 | 15 | // Sortable requires this 16 | if (table.tHead.rows.length !== 1) { 17 | return; 18 | } 19 | } catch (err) { 20 | return; 21 | } 22 | 23 | table.setAttribute('data-sortable', ''); 24 | table.classList.add('sortable-theme-' + options.theme); 25 | }); 26 | })(); 27 | -------------------------------------------------------------------------------- /dpython: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #docker run -it --runtime=nvidia --hostname=$HOSTNAME -v $PWD:/project -w /project 042019/session-rec:latest /bin/bash -c "pip install -r requirements_pip.txt; python $*" 3 | docker run -it --hostname=$HOSTNAME -v $PWD:/project -w /project maltel/session-rec-cpu:v1 \ 4 | /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh; conda activate srec37; python $*" -------------------------------------------------------------------------------- /dpython.bat: -------------------------------------------------------------------------------- 1 | docker run -it --hostname=%COMPUTERNAME% -v %cd%:/project -w /project maltel/session-rec-cpu:v1 /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh; conda activate srec37; python %*" -------------------------------------------------------------------------------- /dpython.orig: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run -it --runtime=nvidia --hostname=$HOSTNAME -v $PWD:/project -w /project 042019/session-rec-docker:latest /bin/bash -c "pip install -r requirements.txt; python $*" 3 | -------------------------------------------------------------------------------- /dpython_gpu: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | #docker run -it --runtime=nvidia --hostname=$HOSTNAME -v $PWD:/project -w /project 042019/session-rec:latest /bin/bash -c "pip install -r requirements_pip.txt; python $*" 3 | #docker run -it --gpus all --hostname=$HOSTNAME -v $PWD:/project -w /project maltel/session-rec-gpu:v1 \ 4 | # /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh; conda activate srec37; THEANO_FLAGS='device=cuda0,floatX=float32' python $*" 5 | docker run -it --runtime=nvidia -e NVIDIA_VISIBLE_DEVICES=0 --hostname=$HOSTNAME -v $PWD:/project -w /project maltel/session-rec-gpu:v1 \ 6 | /bin/bash -c "source /opt/conda/etc/profile.d/conda.sh; conda activate srec37; THEANO_FLAGS='device=cuda0,floatX=float32' python $*" 7 | -------------------------------------------------------------------------------- /environment_cpu.yml: -------------------------------------------------------------------------------- 1 | name: srec37 2 | channels: 3 | - defaults 4 | - conda-forge 5 | dependencies: 6 | - python=3.7 7 | - scipy=1.6.2 8 | - python-dateutil=2.8.1 9 | - pytz=2021.1 10 | - certifi=2020.12.5 11 | - numpy=1.20.2 12 | - dill=0.3.3 13 | - pyyaml=5.4.1 14 | - networkx=2.5.1 15 | - scikit-learn=0.24.2 16 | - numexpr=2.7.3 17 | - keras=2.3.1 18 | - six=1.15.0 19 | - theano=1.0.3 20 | - pandas=1.2.4 21 | - psutil=5.8.0 22 | - pympler=0.9 23 | - tensorflow=1.14 24 | - pytables=3.6.1 25 | - scikit-optimize=0.8.1 26 | - python-telegram-bot=13.5 -------------------------------------------------------------------------------- /environment_gpu.yml: -------------------------------------------------------------------------------- 1 | name: srec37 2 | channels: 3 | - defaults 4 | - conda-forge 5 | - mila-udem 6 | dependencies: 7 | - python=3.7 8 | - scipy=1.6.2 9 | - python-dateutil=2.8.1 10 | - pytz=2021.1 11 | - certifi=2020.12.5 12 | - numpy=1.20.2 13 | - dill=0.3.3 14 | - pyyaml=5.4.1 15 | - networkx=2.5.1 16 | - scikit-learn=0.24.2 17 | - numexpr=2.7.3 18 | - keras=2.3.1 19 | - six=1.15.0 20 | - theano=1.0.3 21 | - pygpu 22 | - pandas=1.2.4 23 | - psutil=5.8.0 24 | - pympler=0.9 25 | - tensorflow-gpu=1.14 26 | - pytables=3.6.1 27 | - scikit-optimize=0.8.1 28 | - python-telegram-bot=13.5 -------------------------------------------------------------------------------- /evaluation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/evaluation/__init__.py -------------------------------------------------------------------------------- /evaluation/metrics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/evaluation/metrics/__init__.py -------------------------------------------------------------------------------- /helper/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/helper/__init__.py -------------------------------------------------------------------------------- /preprocessing/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rn5l/session-rec/5dcd583cbd8d44703a5248b9a308945f24b91390/preprocessing/__init__.py -------------------------------------------------------------------------------- /webpage/css/style_anon.css: -------------------------------------------------------------------------------- 1 | 2 | h2 { 3 | color:#333333; 4 | } 5 | .nav-tabs a:hover { 6 | color: #333333; 7 | } 8 | 9 | table th { 10 | border-top: 1px solid #333333; 11 | border-bottom: 1px solid #333333; 12 | } 13 | 14 | table tr:nth-child(odd) { 15 | background-color: #f7f7f7; 16 | } 17 | 18 | table tr:last-child td { 19 | border-bottom: 1px solid #333333; 20 | } -------------------------------------------------------------------------------- /webpage/js/install.js: -------------------------------------------------------------------------------- 1 | (function(){ 2 | var options = INSTALL_OPTIONS; 3 | 4 | Array.prototype.forEach.call(document.querySelectorAll('table'), function(table){ 5 | var firstTBodyRow, tHead; 6 | 7 | try { 8 | // If there’s no tHead but the first tBody row contains ths, create a tHead and move that row into it. 9 | if (!table.tHead && (firstTBodyRow = table.tBodies[0].rows[0]).children[0].tagName === 'TH') { 10 | tHead = document.createElement('thead'); 11 | tHead.appendChild(firstTBodyRow); 12 | table.insertBefore(tHead, table.firstChild); 13 | } 14 | 15 | // Sortable requires this 16 | if (table.tHead.rows.length !== 1) { 17 | return; 18 | } 19 | } catch (err) { 20 | return; 21 | } 22 | 23 | table.setAttribute('data-sortable', ''); 24 | table.classList.add('sortable-theme-' + options.theme); 25 | }); 26 | })(); 27 | --------------------------------------------------------------------------------