├── README.md ├── algorithms ├── 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 ├── __pycache__ │ └── __init__.cpython-36.pyc ├── baselines │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── random.cpython-36.pyc │ │ └── sr.cpython-36.pyc │ ├── ar.py │ ├── bpr.py │ ├── markov.py │ ├── pop.py │ ├── random.py │ ├── rpop.py │ ├── spop.py │ └── sr.py ├── ct │ ├── __init__.py │ ├── context_tree_BVMM.py │ └── ct.py ├── filemodel │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── resultfile.cpython-36.pyc │ ├── filemodel.py │ └── resultfile.py ├── gru4rec │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── gpu_ops.cpython-36.pyc │ │ └── gru4rec.cpython-36.pyc │ ├── gpu_ops.py │ └── gru4rec.py ├── hybrid │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── weighted.cpython-36.pyc │ ├── cascading.py │ ├── mixed.py │ ├── strategic.py │ ├── strategic_idf.py │ ├── strategic_seq.py │ └── weighted.py ├── knn │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── sknn.cpython-36.pyc │ ├── iknn.py │ ├── sknn.py │ └── vsknn.py ├── narm │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ └── narm.cpython-36.pyc │ └── narm.py ├── nextitnet │ ├── .gitignore │ ├── __init__.py │ ├── data_loader_recsys.py │ ├── generator_recsys.py │ ├── nextitrec.py │ └── ops.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 └── smf │ ├── __init__.py │ └── smf.py ├── conf ├── example_hybrid_opt.yml ├── example_multiple.yml ├── example_next.yml ├── example_opt.yml ├── example_simulation.yml ├── example_simulation_30music.yml ├── preprocess │ ├── single │ │ ├── diginetica.yml │ │ ├── nowplayling.yml │ │ ├── rsc15.yml │ │ ├── rsc15_4.yml │ │ └── rsc15_64.yml │ └── window │ │ ├── 30music.yml │ │ ├── aotm.yml │ │ ├── diginetica.yml │ │ ├── nowplaying.yml │ │ ├── retailrocket.yml │ │ ├── rsc15.yml │ │ └── tmall.yml ├── save │ ├── 30music │ │ ├── hybrids_window30music.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_30music_ct.yml │ │ │ ├── window_30music_gru.yml │ │ │ ├── window_30music_knn.yml │ │ │ ├── window_30music_narm.yml │ │ │ ├── window_30music_nextitnet.yml │ │ │ └── window_30music_sr.yml │ │ │ ├── window_30music_baselines.yml │ │ │ ├── window_30music_models.yml │ │ │ ├── window_multiple_30music_baselines.yml │ │ │ └── window_multiple_30music_models.yml │ ├── 8tracks │ │ └── window │ │ │ ├── hybrids_window_8tracks.yml │ │ │ ├── opt │ │ │ ├── window_8tracks_gru.yml │ │ │ ├── window_8tracks_knn.yml │ │ │ ├── window_8tracks_narm.yml │ │ │ ├── window_8tracks_nextitnet.yml │ │ │ ├── window_8tracks_sr.yml │ │ │ └── window_8tracks_stamp.yml │ │ │ ├── window_8tracks_baselines.yml │ │ │ ├── window_8tracks_models.yml │ │ │ ├── window_multiple_8tracks_baselines.yml │ │ │ └── window_multiple_8tracks_models.yml │ ├── aotm │ │ ├── hybrids_window_aotm.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_aotm_gru.yml │ │ │ ├── window_aotm_knn.yml │ │ │ ├── window_aotm_narm.yml │ │ │ ├── window_aotm_nextitnet.yml │ │ │ └── window_aotm_sr.yml │ │ │ ├── window_aotm_baselines.yml │ │ │ ├── window_aotm_models.yml │ │ │ ├── window_multiple_aotm_baselines.yml │ │ │ └── window_multiple_aotm_models.yml │ ├── diginetica │ │ ├── single split │ │ │ ├── opt │ │ │ │ ├── single_digi_gru.yml │ │ │ │ ├── single_digi_knn.yml │ │ │ │ ├── single_digi_narm.yml │ │ │ │ ├── single_digi_sr.yml │ │ │ │ ├── single_digi_stamp.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_multiple_digi_baselines.yml │ │ │ ├── single_multiple_digi_models.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_gru.yml │ │ │ ├── window_digi_knn.yml │ │ │ ├── window_digi_narm.yml │ │ │ ├── window_digi_nextitnet.yml │ │ │ ├── window_digi_sr.yml │ │ │ └── window_digi_stamp.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_multiple_digi_baselines.yml │ │ │ ├── window_multiple_digi_models.yml │ │ │ ├── window_wrongtime_digi_baselines.yml │ │ │ ├── window_wrongtime_digi_models.yml │ │ │ ├── window_wrongtime_multiple_digi_baselines.yml │ │ │ └── window_wrongtime_multiple_digi_models.yml │ ├── nowplaying │ │ └── window │ │ │ ├── opt │ │ │ ├── window_aotm_knn.yml │ │ │ ├── window_nowplaying_gru.yml │ │ │ ├── window_nowplaying_nextitnet.yml │ │ │ └── window_nowplaying_sr.yml │ │ │ ├── window_multiple_nowplaying_baselines.yml │ │ │ ├── window_multiple_nowplaying_models.yml │ │ │ ├── window_multiple_nowplaying_stamp.yml │ │ │ ├── window_nowplaying_baselines.yml │ │ │ ├── window_nowplaying_models.yml │ │ │ └── window_nowplaying_stamp.yml │ ├── retailrocket │ │ ├── hybrids_window_retail.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_retailrocket_gru.yml │ │ │ ├── window_retailrocket_knn.yml │ │ │ ├── window_retailrocket_knnidf.yml │ │ │ ├── window_retailrocket_narm.yml │ │ │ ├── window_retailrocket_nextitnet.yml │ │ │ └── window_retailrocket_sr.yml │ │ │ ├── window_multiple_retailr_baselines.yml │ │ │ ├── window_multiple_retailr_models.yml │ │ │ ├── window_retailr_baselines.yml │ │ │ └── window_retailr_models.yml │ ├── rsc15 │ │ ├── hybrids_window_rsc15_multiple.yml │ │ └── window │ │ │ ├── opt │ │ │ ├── window_rsc15_gru.yml │ │ │ ├── window_rsc15_knn.yml │ │ │ ├── window_rsc15_knnidf.yml │ │ │ ├── window_rsc15_nextitnet.yml │ │ │ └── window_rsc15_sr.yml │ │ │ ├── window_multiple_rsc15_baselines.yml │ │ │ ├── window_multiple_rsc15_models.yml │ │ │ ├── window_rsc15_baselines.yml │ │ │ ├── window_rsc15_memory.yml │ │ │ ├── window_rsc15_models.yml │ │ │ ├── window_rsc15_time.yml │ │ │ ├── window_rsc15_time_ct.yml │ │ │ └── window_rsc15_time_nextitnet.yml │ ├── rsc15_4 │ │ └── single split │ │ │ ├── opt │ │ │ ├── single_rsc15_4_gru.yml │ │ │ ├── single_rsc15_4_narm.yml │ │ │ ├── single_rsc15_4_stamp.yml │ │ │ ├── single_rsc_15_4_knn.yml │ │ │ └── single_rsc_15_4_sr.yml │ │ │ ├── single_multiple_rsc15_4_baselines.yml │ │ │ ├── single_multiple_rsc15_4_models.yml │ │ │ ├── single_rsc15_4_baselines.yml │ │ │ ├── single_rsc15_4_ct.yml │ │ │ └── single_rsc15_4_models.yml │ ├── rsc15_64 │ │ ├── single split │ │ │ └── opt │ │ │ │ ├── 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_rsc15_64_baselines.yml │ │ └── single_rsc15_64_models.yml │ ├── tmall │ │ └── window │ │ │ └── opt │ │ │ ├── window_tmall_gru.yml │ │ │ └── window_tmall_narm.yml │ └── zalando │ │ └── window │ │ ├── opt │ │ ├── window_zalando_ct.yml │ │ ├── window_zalando_gru.yml │ │ ├── window_zalando_knn.yml │ │ ├── window_zalando_narm.yml │ │ ├── window_zalando_nextitnet.yml │ │ └── window_zalando_sr.yml │ │ ├── window_multiple_zalando_baselines.yml │ │ ├── window_multiple_zalando_models.yml │ │ ├── window_zalando_baselines.yml │ │ ├── window_zalando_ct.yml │ │ ├── window_zalando_memory.yml │ │ ├── window_zalando_models.yml │ │ ├── window_zalando_time.yml │ │ ├── window_zalando_time_ct.yml │ │ └── window_zalando_time_nextitnet.yml └── seqpop │ ├── test_aotm.yml │ ├── test_nowplaying.yml │ └── test_rsc15_64.yml ├── docs ├── .DS_Store ├── 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 ├── dpython ├── drun ├── evaluation ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-36.pyc │ ├── eval_simulation.cpython-36.pyc │ ├── loader.cpython-36.pyc │ └── simulation.cpython-36.pyc ├── eval_simulation.py ├── evaluation.py ├── evaluation_last.py ├── evaluation_multiple.py ├── loader.py ├── metrics │ ├── __init__.py │ ├── __pycache__ │ │ ├── __init__.cpython-36.pyc │ │ ├── coverage.cpython-36.pyc │ │ ├── popularity.cpython-36.pyc │ │ ├── saver.cpython-36.pyc │ │ └── time_memory_usage.cpython-36.pyc │ ├── accuracy.py │ ├── accuracy_ext.py │ ├── accuracy_multiple.py │ ├── artist_coherence.py │ ├── artist_diversity.py │ ├── coverage.py │ ├── popularity.py │ ├── saver.py │ └── time_memory_usage.py └── simulation.py ├── helper ├── __init__.py └── stats.py ├── preprocessing ├── __init__.py ├── __pycache__ │ ├── __init__.cpython-36.pyc │ └── preprocess_music.cpython-36.pyc ├── preprocess_diginetica.py ├── preprocess_dressipi.py ├── preprocess_music.py ├── preprocess_playlist.py ├── preprocess_retailrocket.py ├── preprocess_rsc15.py ├── preprocess_tmall.py ├── preprocess_windeln.py └── run_preprocessing.py ├── requirements.txt ├── requirements_conda.txt ├── requirements_pip.txt ├── run_config.py └── run_preprocessing.py /algorithms/STAMP/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/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/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/STAMP/basic_layer/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/data_prepare/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/STAMP/data_prepare/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/data_prepare/entity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/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/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/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/Pooler.py: -------------------------------------------------------------------------------- 1 | import tensorflow as tf 2 | 3 | 4 | def pooler(inputs, pool_type, axis=1, **kwargs): 5 | ''' 6 | the pool function. 7 | ''' 8 | if pool_type == 'mean': 9 | return mean_pool(inputs, kwargs['sequence_length'], axis) 10 | elif pool_type == 'max': 11 | return max_pool(inputs, axis) 12 | elif pool_type == 'sum': 13 | return sum_pool(inputs, axis) 14 | 15 | 16 | def mean_pool(inputs, sequence_length=None, axis=1): 17 | ''' 18 | the mean pool function. 19 | inputs.shape = [batch_size, timestep_size, edim] 20 | sequence_length = [batch_size, 1] 21 | sequence_length = [[len(sequence)], [], ...] 22 | ''' 23 | if sequence_length is None: 24 | return tf.reduce_mean(inputs, axis) 25 | else: 26 | return tf.div(tf.reduce_sum(inputs, axis), sequence_length) 27 | 28 | 29 | def max_pool(inputs, axis=1): 30 | ''' 31 | the max pool function. 32 | ''' 33 | return tf.reduce_max(inputs, axis) 34 | 35 | 36 | def min_pool(inputs, axis=1): 37 | ''' 38 | the min pool function. 39 | ''' 40 | return tf.reduce_min(inputs, axis) 41 | 42 | 43 | def sum_pool(inputs, axis=1): 44 | ''' 45 | the add pool function. 46 | ''' 47 | return tf.reduce_sum(inputs, axis) 48 | -------------------------------------------------------------------------------- /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/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/STAMP/util/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/util/batcher/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/STAMP/util/batcher/__init__.py -------------------------------------------------------------------------------- /algorithms/STAMP/util/batcher/equal_len/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/STAMP/util/batcher/equal_len/__init__.py -------------------------------------------------------------------------------- /algorithms/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | -------------------------------------------------------------------------------- /algorithms/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/baselines/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | -------------------------------------------------------------------------------- /algorithms/baselines/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/baselines/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/baselines/__pycache__/random.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/baselines/__pycache__/random.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/baselines/__pycache__/sr.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/baselines/__pycache__/sr.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/ct/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/ct/__init__.py -------------------------------------------------------------------------------- /algorithms/filemodel/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/filemodel/__init__.py -------------------------------------------------------------------------------- /algorithms/filemodel/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/filemodel/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/filemodel/__pycache__/resultfile.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/filemodel/__pycache__/resultfile.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/gru4rec/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/gru4rec/__init__.py -------------------------------------------------------------------------------- /algorithms/gru4rec/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/gru4rec/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/gru4rec/__pycache__/gpu_ops.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/gru4rec/__pycache__/gpu_ops.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/gru4rec/__pycache__/gru4rec.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/gru4rec/__pycache__/gru4rec.cpython-36.pyc -------------------------------------------------------------------------------- /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/hybrid/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/hybrid/__init__.py -------------------------------------------------------------------------------- /algorithms/hybrid/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/hybrid/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/hybrid/__pycache__/weighted.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/hybrid/__pycache__/weighted.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/knn/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/knn/__init__.py -------------------------------------------------------------------------------- /algorithms/knn/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/knn/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/knn/__pycache__/sknn.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/knn/__pycache__/sknn.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/narm/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/narm/__init__.py -------------------------------------------------------------------------------- /algorithms/narm/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/narm/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/narm/__pycache__/narm.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/narm/__pycache__/narm.cpython-36.pyc -------------------------------------------------------------------------------- /algorithms/nextitnet/.gitignore: -------------------------------------------------------------------------------- 1 | /checkpoint 2 | /model_nextitnet.ckpt.data-00000-of-00001 3 | /model_nextitnet.ckpt.index 4 | /model_nextitnet.ckpt.meta 5 | -------------------------------------------------------------------------------- /algorithms/nextitnet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/nextitnet/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/sbr_adapter/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/factorization/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/sbr_adapter/factorization/__init__.py -------------------------------------------------------------------------------- /algorithms/sbr_adapter/helpers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/sbr_adapter/helpers/__init__.py -------------------------------------------------------------------------------- /algorithms/smf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/algorithms/smf/__init__.py -------------------------------------------------------------------------------- /conf/example_hybrid_opt.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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: aotm #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-100k 9 | # slices: 5 #only window 10 | # skip: [0,3] #only window 11 | opts: {sessions_test: 10} 12 | 13 | results: 14 | folder: results/hybrid_opt/rsc15_100k/ 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: time_memory_usage.Time_usage_training 26 | - class: time_memory_usage.Time_usage_testing 27 | - class: time_memory_usage.Memory_usage 28 | 29 | algorithms: 30 | - class: hybrid.mixed.MixedHybrid 31 | params: 32 | algorithms: #ex with parameters 33 | - class: baselines.sr.SequentialRules 34 | params: { weighting: div } 35 | key: sr 36 | - class: baselines.ar.AssociationRules 37 | key: ar 38 | fit: True 39 | params_var: 40 | recomLengths: [[5],[10],[15]] # ex for 3 algorithms: [[5, 5],[5, 10],[10, 5]] 41 | key: mixed 42 | - class: hybrid.weighted.WeightedHybrid 43 | params: 44 | algorithms: #ex with file model 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/rsc15/recommendations/recoms_rsc15_100k_ar } 47 | key: sr 48 | - class: filemodel.resultfile.ResultFile 49 | params: { file: data/rsc15/recommendations/recoms_rsc15_100k_sr } 50 | key: ar 51 | fit: True 52 | params_var: 53 | weights: [[0.25, 0.75],[0.5, 0.5],[0.75, 0.25]] # ex for 3 algorithms: [[0.5, 0.25, 0.25],[0.25, 0.5, 0.25],[0.25, 0.25, 0.5]] 54 | key: weighted 55 | -------------------------------------------------------------------------------- /conf/example_simulation.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: eval_simulation #evaluation|evaluation_last|evaluation_multiple 5 | simulation: 6 | opts: {iter_days: 7, n_recs: 30, alpha: 0, choose_seed: 'rnd', use_cagh: 'False', rerank: 'False', rerank_type: 'user'} 7 | 8 | data: 9 | name: nowplaying #added in the end of the csv names 10 | prefix: nowplaying 11 | model: results/models/nowplaying 12 | folder: data/nowplaying/prepared/ 13 | opts: {sessions_test: 100} 14 | 15 | results: 16 | folder: results/multiple/nowplaying/ 17 | pickle_models: results/models/nowplaying/ 18 | 19 | metrics: 20 | - class: coverage.Coverage 21 | length: [30] 22 | - class: popularity.Popularity 23 | length: [30] 24 | - class: accuracy_multiple.Precision 25 | length: [3,5,10,15,20,30] 26 | - class: accuracy_multiple.Recall 27 | length: [3,5,10,15,20,30] 28 | 29 | algorithms: 30 | #- class: narm.narm.NARM 31 | # params: {epochs: 20, lr: 0.004} 32 | # key: narm 33 | - class: knn.sknn.ContextKNN 34 | params: {'similarity': 'jaccard', 'sample_size': 2500, 'k': 50} 35 | key: knn 36 | #- class: gru4rec.gru4rec.GRU4Rec 37 | # params: {'loss': 'bpr-max', 'final_act': 'elu-0.5', 'dropout_p_hidden':0.0, 'learning_rate': 0.04, momentum: 0.0, constrained_embedding: True} 38 | # key: gru4rec 39 | # params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.6, learning_rate: 0.05, momentum: 0.1, constrained_embedding: True } 40 | #- class: baselines.random.RandomPred 41 | # params: {} 42 | # key: rnd 43 | -------------------------------------------------------------------------------- /conf/example_simulation_30music.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: eval_simulation #evaluation|evaluation_last|evaluation_multiple 5 | simulation: 6 | opts: {iter_days: 7, n_recs: 30, alpha: 0, choose_seed: 'rnd', use_cagh: 'False', rerank: 'False', rerank_type: 'user'} 7 | 8 | data: 9 | name: 30music #added in the end of the csv names 10 | folder: data/30music/prepared/ 11 | prefix: 30music-200ks 12 | model: results/models/30music 13 | opts: {sessions_test: 100} 14 | 15 | results: 16 | folder: results/multiple/nowplaying/ 17 | pickle_models: results/models/nowplaying/ 18 | 19 | metrics: 20 | - class: coverage.Coverage 21 | length: [30] 22 | - class: popularity.Popularity 23 | length: [30] 24 | - class: accuracy_multiple.Precision 25 | length: [3,5,10,15,20,30] 26 | - class: accuracy_multiple.Recall 27 | length: [3,5,10,15,20,30] 28 | 29 | algorithms: 30 | # 31 | #- class: narm.narm.NARM 32 | # params: {epochs: 20, lr: 0.007} 33 | # key: narm 34 | #- class: knn.sknn.ContextKNN 35 | # params: {'similarity': 'cosine', 'sample_size': 500, 'k': 100} 36 | # key: sknn 37 | - class: gru4rec.gru4rec.GRU4Rec 38 | params: {'loss': 'bpr-max', 'final_act': 'linear', 'dropout_p_hidden':0.6, 'learning_rate': 0.08, momentum: 0.1} 39 | key: gru4rec 40 | #- class: baselines.random.RandomPred 41 | # params: {} 42 | # key: rnd 43 | -------------------------------------------------------------------------------- /conf/preprocess/single/diginetica.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 3 | preprocessor: diginetica # dataset (folder) name 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 | 15 | output: 16 | folder: data/diginetica/prepared/ -------------------------------------------------------------------------------- /conf/preprocess/single/nowplayling.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 3 | preprocessor: music # 4 | data: 5 | folder: data/nowplaying/raw/ 6 | prefix: nowplaying 7 | 8 | filter: 9 | min_item_support: 5 10 | min_session_length: 2 11 | 12 | params: 13 | days_test: 1 14 | 15 | output: 16 | folder: data/nowplaying/prepared/ 17 | -------------------------------------------------------------------------------- /conf/preprocess/single/rsc15.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 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 | 15 | output: 16 | folder: data/rsc15/prepared/ -------------------------------------------------------------------------------- /conf/preprocess/single/rsc15_4.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 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: 4 #optional for rsc15_4/64 15 | 16 | output: 17 | folder: data/rsc15/prepared/ -------------------------------------------------------------------------------- /conf/preprocess/single/rsc15_64.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/30music.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/aotm.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/diginetica.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/nowplaying.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # 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: 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/retailrocket.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/rsc15.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/preprocess/window/tmall.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window 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/ -------------------------------------------------------------------------------- /conf/save/30music/hybrids_window30music.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: hybrid_gru4rec_sr #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music #added in the end of the csv names 7 | folder: ../../data/30music/slices/ 8 | prefix: 30music-200ks 9 | slices: 5 #only window 10 | # skip: [0,3] #only window 11 | #opts: {sessions_test: 10} 12 | 13 | results: 14 | folder: results/window/ 15 | 16 | metrics: 17 | - class: accuracy.HitRate 18 | length: [5,10,15,20] 19 | - class: accuracy.MRR 20 | length: [5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: time_memory_usage.Time_usage_training 26 | - class: time_memory_usage.Time_usage_testing 27 | - class: time_memory_usage.Memory_usage 28 | 29 | algorithms: 30 | - class: hybrid.weighted.WeightedHybrid 31 | params: 32 | algorithms: 33 | # - class: baselines.sr.SequentialRules 34 | # params: { weighting: div } 35 | # key: sr 36 | # - class: baselines.ar.AssociationRules 37 | # key: ar 38 | - class: filemodel.resultfile.ResultFile 39 | params: { file: ../../data/30music/slices/recs/gru-best.1-learning_rate=0.08-momentum=0.1 } 40 | key: gru 41 | - class: filemodel.resultfile.ResultFile 42 | params: { file: ../../data/30music/slices/recs/sr } 43 | key: sr 44 | fit: True 45 | params_var: 46 | weights: [[0.25, 0.75],[0.5, 0.5],[0.75, 0.25],[0.1, 0.9],[0.9, 0.1],[0.2, 0.8],[0.8, 0.2],[0.3, 0.7],[0.7, 0.3],[0.4, 0.6],[0.6, 0.4]] 47 | key: weighted 48 | -------------------------------------------------------------------------------- /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_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: {from: 0.1, to: 0.01, in: 10, type: float32} 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/30music/window/opt/window_30music_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /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/window_30music_baselines.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: 30music-window #added in the end of the csv names 7 | folder: ../../data/30music/slices/ 8 | prefix: 30music-200ks 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/30music/ 14 | pickle_models: results/window/30music/ # 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: baselines.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 30, weighting: quadratic } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 100 46 | sample_size: 500 47 | similarity: cosine 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 100 52 | sample_size: 10000 53 | weighting: quadratic 54 | weighting_score: quadratic 55 | key: vsknn 56 | -------------------------------------------------------------------------------- /conf/save/30music/window/window_30music_models.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: 30music #added in the end of the csv names 7 | folder: ../../data/30music/slices/ 8 | prefix: 30music-200ks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/30music/ 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: 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: STAMP.model.STAMP.Seq2SeqAttNN 35 | params: { init_lr: 0.003, n_epochs: 10, decay_rate: 0.4} 36 | key: stamp 37 | - class: narm.narm.NARM 38 | params: { epochs: 20, lr: 0.007 } 39 | key: narm 40 | - class: gru4rec.gru4rec.GRU4Rec 41 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.1, learning_rate: 0.08, momentum: 0.1 } 42 | key: gru4rec-best 43 | - class: gru4rec.gru4rec.GRU4Rec 44 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.6, learning_rate: 0.08, momentum: 0.0, constrained_embedding: True } 45 | key: gru4rec-backup 46 | #- class: ct.ct.ContextTree 47 | # params: {} 48 | # key: ct-pre 49 | -------------------------------------------------------------------------------- /conf/save/30music/window/window_multiple_30music_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music #added in the end of the csv names 7 | folder: ../../data/30music/slices/ 8 | prefix: 30music-200ks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/30music/ 14 | pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | #- class: saver.Saver 30 | # length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: ../../data/30music/slices/recs/markov } 38 | key: markov 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: ../../data/30music/slices/recs/ar } 41 | key: ar 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: ../../data/30music/slices/recs/sr } 44 | key: sr 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: ../../data/30music/slices/recs/sknn } 47 | key: sknn 48 | - class: filemodel.resultfile.ResultFile 49 | params: { file: ../../data/30music/slices/recs/vsknn } 50 | key: vsknn 51 | -------------------------------------------------------------------------------- /conf/save/30music/window/window_multiple_30music_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: 30music #added in the end of the csv names 7 | folder: ../../data/30music/slices/ 8 | prefix: 30music-200ks 9 | slices: 5 #only window 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/30music/ 14 | pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | - class: saver.Saver 30 | length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: STAMP.model.STAMP.Seq2SeqAttNN 37 | params: { init_lr: 0.003, n_epochs: 10, decay_rate: 0.4} 38 | key: stamp 39 | - class: narm.narm.NARM 40 | params: { epochs: 20, lr: 0.007 } 41 | key: narm 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.1, learning_rate: 0.08, momentum: 0.1 } 44 | key: gru4rec-best 45 | - class: gru4rec.gru4rec.GRU4Rec 46 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.6, learning_rate: 0.08, momentum: 0.0, constrained_embedding: True } 47 | key: gru4rec-backup 48 | - class: ct.ct.ContextTree 49 | params: {} 50 | key: ct-pre 51 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: {from: 0.1, to: 0.01, in: 10, type: float32} 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/opt/window_8tracks_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /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/window_8tracks_baselines.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: 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_mutiple.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.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 25, weighting: log } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 1000 46 | sample_size: 1000 47 | similarity: cosine 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 100 52 | sample_size: 5000 53 | weighting: quadratic 54 | weighting_score: quadratic 55 | idf_weighting: False 56 | key: vsknn 57 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/window_8tracks_models.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: 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 | algorithms: 34 | - class: STAMP.model.STAMP.Seq2SeqAttNN 35 | params: { init_lr: 0.0008, n_epochs: 10, decay_rate: 0.8} 36 | key: stamp 37 | - class: narm.narm.NARM 38 | params: { epochs: 20, lr: 0.003 } 39 | key: narm 40 | - class: gru4rec.gru4rec.GRU4Rec 41 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.8, learning_rate: 0.04, momentum: 0.3, constrained_embedding: True } 42 | key: gru4rec-best 43 | - class: gru4rec.gru4rec.GRU4Rec 44 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.7, learning_rate: 0.07, momentum: 0.2, constrained_embedding: True } 45 | key: gru4rec-backup 46 | #- class: ct.ct.ContextTree 47 | # params: {} 48 | # key: ct-pre 49 | -------------------------------------------------------------------------------- /conf/save/8tracks/window/window_multiple_8tracks_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation_multiple #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_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | #- class: saver.Saver 30 | # length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/8tracks/slices/recs/markov } 38 | key: markov 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: data/8tracks/slices/recs/ar } 41 | key: ar 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/8tracks/slices/recs/sr } 44 | key: sr 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/8tracks/slices/recs/sknn } 47 | key: sknn 48 | - class: filemodel.resultfile.ResultFile 49 | params: { file: data/8tracks/slices/recs/vsknn } 50 | key: vsknn 51 | -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/aotm/window/opt/window_aotm_knn.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: 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/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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /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/window_aotm_baselines.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: aotm-window #added in the end of the csv names 7 | folder: ../../data/aotm/slices/ 8 | prefix: playlists-aotm 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/aotm/ 14 | pickle_models: results/window/aotm/ # 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: baselines.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 6, weighting: div } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 50 46 | sample_size: 1000 47 | similarity: cosine 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 50 52 | sample_size: 1000 53 | weighting: div 54 | weighting_score: quadratic 55 | key: vsknn 56 | -------------------------------------------------------------------------------- /conf/save/aotm/window/window_aotm_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models2 #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/aotm-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 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: { init_lr: 0.004, n_epochs: 30, decay_rate: 0.0} 35 | key: stamp 36 | - class: narm.narm.NARM 37 | params: { epochs: 20, lr: 0.004 } 38 | key: narm 39 | - class: gru4rec.gru4rec.GRU4Rec 40 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.0, learning_rate: 0.04, momentum: 0.6 } 41 | key: gru4rec-best 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.1, learning_rate: 0.2, momentum: 0.4 } 44 | key: gru4rec-backup 45 | - class: nextitnet.nextitrec.Nextitrec 46 | params: { learning_rate: 0.005, iterations: 30, is_negsample: True } 47 | key: nextitnet 48 | - class: ct.ct.ContextTree 49 | params: {} 50 | key: ct-pre 51 | -------------------------------------------------------------------------------- /conf/save/aotm/window/window_multiple_aotm_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: aotm-window-multiple #added in the end of the csv names 7 | folder: data/aotm/slices/ 8 | prefix: playlists-aotm 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/aotm/ 14 | pickle_models: results/window/aotm/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | - class: saver.Saver 30 | length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: baselines.markov.MarkovModel 37 | params: {} 38 | key: markov 39 | - class: baselines.ar.AssociationRules 40 | params: {} 41 | key: ar 42 | - class: baselines.sr.SequentialRules 43 | params: { steps: 6, weighting: div } 44 | key: sr 45 | - class: knn.sknn.ContextKNN 46 | params: 47 | k: 50 48 | sample_size: 1000 49 | similarity: cosine 50 | key: sknn 51 | - class: knn.vsknn.VMContextKNN 52 | params: 53 | k: 50 54 | sample_size: 1000 55 | weighting: div 56 | weighting_score: quadratic 57 | key: vsknn 58 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float32} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_digi_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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_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/single split/opt/single_wrongtime_digi_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float32} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/opt/single_wrongtime_digi_knn.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: 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: knn.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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/single split/single_digi_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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 #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/diginetica_single/ 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: accuracy_multiple.NDCG 20 | length: [3,5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: saver.Saver 26 | length: [50] 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: baselines.markov.MarkovModel 33 | params: {} 34 | key: markov 35 | - class: baselines.ar.AssociationRules 36 | params: {} 37 | key: ar 38 | - class: baselines.sr.SequentialRules 39 | params: { steps: 2, weighting: log } 40 | key: sr 41 | - class: knn.sknn.ContextKNN 42 | params: { k: 50, sampling: 500, similarity: cosine } 43 | key: sknn 44 | - class: knn.vsknn.VMContextKNN 45 | params: { k: 1500, sampling: 10000, weighting: quadratic , weighting_score: linear, idf_weighting: 10 } 46 | key: vsknn 47 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_digi_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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: diginetica #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/single/diginetica/ 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: accuracy_multiple.NDCG 20 | length: [3,5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: saver.Saver 26 | length: [50] 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: STAMP.model.STAMP.Seq2SeqAttNN 33 | params: { init_lr: 0.0007, n_epochs: 10, decay_rate: 0.3} 34 | key: stamp 35 | - class: narm.narm.NARM 36 | params: { epochs: 20, lr: 0.0007, factors: 50 } 37 | key: narm 38 | - class: gru4rec.gru4rec.GRU4Rec 39 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.1, learning_rate: 0.02, momentum: 0.5, constrained_embedding: True } 40 | key: gru4rec-best 41 | - class: gru4rec.gru4rec.GRU4Rec 42 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.4, learning_rate: 0.06, momentum: 0.2, constrained_embedding: True } 43 | key: gru4rec-backup 44 | - class: ct.ct.ContextTree 45 | params: {} 46 | key: ct-pre -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_multiple_digi_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #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 | #slices: 5 11 | 12 | results: 13 | folder: results/single/diginetica/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | #- class: saver.Saver 30 | # length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/diginetica/prepared/recs/markov } 38 | key: markov 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: data/diginetica/prepared/recs/ar } 41 | key: ar 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/diginetica/prepared/recs/sr } 44 | key: sr 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/diginetica/prepared/recs/sknn } 47 | key: sknn 48 | - class: filemodel.resultfile.ResultFile 49 | params: { file: data/diginetica/prepared/recs/vsknn } 50 | key: vsknn 51 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_multiple_digi_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-multiple #added in the end of the csv names 7 | folder: data/diginetica/prepared/ 8 | prefix: train-item-views 9 | # opts: {sessions_test: 5000} 10 | #slices: 5 11 | 12 | results: 13 | folder: results/single/diginetica/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | #- class: saver.Saver 30 | # length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/diginetica/prepared/recs/gru4rec } 38 | key: gru4rec 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: data/diginetica/prepared/recs/narm } 41 | key: narm 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/diginetica/prepared/recs/stamp } 44 | key: stamp 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/diginetica/prepared/recs/ct } 47 | key: ct 48 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_multiple_wrongtime_digi_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselinesopt #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: diginetica-multiple-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/diginetica_single/ 13 | 14 | metrics: 15 | - class: accuracy_multiple.Precision 16 | length: [3,5,10,15,20] 17 | - class: accuracy_multiple.Recall 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.MAP 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: filemodel.resultfile.ResultFile 35 | params: { file: data/diginetica/prepared_stamp/recs/markov } 36 | key: markov 37 | - class: filemodel.resultfile.ResultFile 38 | params: { file: data/diginetica/prepared_stamp/recs/ar } 39 | key: ar 40 | - class: filemodel.resultfile.ResultFile 41 | params: { file: data/diginetica/prepared_stamp/recs/sr } 42 | key: sr 43 | - class: filemodel.resultfile.ResultFile 44 | params: { file: data/diginetica/prepared_stamp/recs/sknn } 45 | key: sknn 46 | - class: filemodel.resultfile.ResultFile 47 | params: { file: data/diginetica/prepared_stamp/recs/vsknn } 48 | key: vsknn 49 | 50 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_wrongtime_digi_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselinesopt #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/diginetica_single/ 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: accuracy_multiple.NDCG 20 | length: [3,5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: saver.Saver 26 | length: [50] 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: baselines.markov.MarkovModel 33 | params: {} 34 | key: markov 35 | - class: baselines.ar.AssociationRules 36 | params: {} 37 | key: ar 38 | - class: baselines.sr.SequentialRules 39 | params: { steps: 8, weighting: quadratic } 40 | key: sr 41 | - class: knn.sknn.ContextKNN 42 | params: { k: 100, sampling: 500, similarity: cosine } 43 | key: sknn 44 | - class: knn.vsknn.VMContextKNN 45 | params: { k: 500, sampling: 10000, weighting: quadratic , weighting_score: quadratic, idf_weighting: 10 } 46 | key: vsknn 47 | -------------------------------------------------------------------------------- /conf/save/diginetica/single split/single_wrongtime_digi_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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: 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: 10} 10 | 11 | results: 12 | folder: results/single/diginetica/ 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: accuracy_multiple.NDCG 20 | length: [3,5,10,15,20] 21 | - class: coverage.Coverage 22 | length: [20] 23 | - class: popularity.Popularity 24 | length: [20] 25 | - class: saver.Saver 26 | length: [50] 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: STAMP.model.STAMP.Seq2SeqAttNN 33 | params: { init_lr: 0.0004, n_epochs: 30, decay_rate: 0.9} 34 | key: stamp 35 | - class: narm.narm.NARM 36 | params: { epochs: 20, lr: 0.002, factors: 50 } 37 | key: narm 38 | - class: gru4rec.gru4rec.GRU4Rec 39 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.2, learning_rate: 0.05, momentum: 0.1, constrained_embedding: True } 40 | key: gru4rec-best 41 | - class: gru4rec.gru4rec.GRU4Rec 42 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.0, learning_rate: 0.07, momentum: 0.0, constrained_embedding: True } 43 | key: gru4rec-backup 44 | - class: ct.ct.ContextTree 45 | params: {} 46 | key: ct-pre -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.3, to: 0.1, in: 3, type: float32}, {from: 0.01, to: 0.001, in: 10, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt/window_digi_knn.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: 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: knn.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.3, to: 0.1, in: 3, type: float32}, {from: 0.01, to: 0.001, in: 10, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/opt_wrongtime/window_wrongtime_digi_knn.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: 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: knn.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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_baselines.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/diginetica_single/ 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: baselines.markov.MarkovModel 34 | params: {} 35 | key: markov 36 | - class: baselines.ar.AssociationRules 37 | params: {} 38 | key: ar 39 | - class: baselines.sr.SequentialRules 40 | params: { steps: 20, weighting: quadratic } 41 | key: sr 42 | - class: knn.sknn.ContextKNN 43 | params: { k: 100, sampling_size: 500, similarity: cosine } 44 | key: sknn 45 | - class: knn.vsknn.VMContextKNN 46 | params: { k: 500, sampling_size: 5000, weighting: quadratic , weighting_score: div, idf_weighting: 5 } 47 | key: vsknn 48 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/window_multiple_digi_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #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/ 14 | #pickle_models: results/models/music-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | #- class: saver.Saver 30 | # length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/diginetica/slices/recs/markov } 38 | key: markov 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: .data/diginetica/slices/recs/ar } 41 | key: ar 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/diginetica/slices/recs/sr } 44 | key: sr 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/diginetica/slices/recs/sknn } 47 | key: sknn 48 | - class: filemodel.resultfile.ResultFile 49 | params: { file: data/diginetica/slices/recs/vsknn } 50 | key: vsknn 51 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/window_wrongtime_digi_baselines.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-wrongtime #added in the end of the csv names 7 | folder: ../../data/diginetica/slices_stamp/ 8 | prefix: train-item-views 9 | # opts: {sessions_test: 5000} 10 | slices: 5 11 | 12 | results: 13 | folder: results/window/diginetica/ 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: baselines.markov.MarkovModel 34 | params: {} 35 | key: markov 36 | - class: baselines.ar.AssociationRules 37 | params: {} 38 | key: ar 39 | - class: baselines.sr.SequentialRules 40 | params: { steps: 30, weighting: quadratic } 41 | key: sr 42 | - class: knn.sknn.ContextKNN 43 | params: { k: 1500, sample_size: 5000, similarity: cosine } 44 | key: sknn_1500_5000 45 | - class: knn.sknn.ContextKNN 46 | params: { k: 1000, sample_size: 5000, similarity: cosine } 47 | key: sknn_1000_5000 48 | - class: knn.sknn.ContextKNN 49 | params: { k: 1000, sample_size: 10000, similarity: cosine } 50 | key: sknn_1000_10000 51 | - class: knn.vsknn.VMContextKNN 52 | params: { k: 50, sample_size: 2500, weighting: log , weighting_score: quadratic, idf_weighting: 1 } 53 | key: vsknn 54 | -------------------------------------------------------------------------------- /conf/save/diginetica/window/window_wrongtime_digi_models.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: diginetica-window-wrongtime #added in the end of the csv names 7 | folder: ../../data/diginetica/slices_stamp/ 8 | prefix: train-item-views 9 | # opts: {sessions_test: 5000} 10 | slices: 5 11 | 12 | results: 13 | folder: results/window/diginetica/ 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: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: { init_lr: 0.0008, n_epochs: 30, decay_rate: 0.0} 35 | key: stamp 36 | - class: narm.narm.NARM 37 | params: { epochs: 20, lr: 0.008, factors: 100 } 38 | key: narm 39 | - class: gru4rec.gru4rec.GRU4Rec 40 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.6, learning_rate: 0.07, momentum: 0, constrained_embedding: True } 41 | key: gru4rec-best 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.5, learning_rate: 0.09, momentum: 0, constrained_embedding: True } 44 | key: gru4rec-backup 45 | - class: nextitnet.nextitrec.Nextitrec 46 | params: { learning_rate: 0.009, iterations: 20, is_negsample: False } 47 | key: nextitnet 48 | - class: ct.ct.ContextTree 49 | params: {} 50 | key: ct-pre -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_aotm_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /conf/save/nowplaying/window/opt/window_nowplaying_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #added to the csv names 4 | evaluation: evaluation #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying-window #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float32} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /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/window_multiple_nowplaying_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying-multiple #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_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: baselines.markov.MarkovModel 36 | params: {} 37 | key: markov 38 | - class: baselines.ar.AssociationRules 39 | params: {} 40 | key: ar 41 | - class: baselines.sr.SequentialRules 42 | params: { steps: 9, weighting: quadratic } 43 | key: sr 44 | - class: knn.sknn.ContextKNN 45 | params: 46 | k: 50 47 | sample_size: 2500 48 | similarity: jaccard 49 | key: sknn 50 | - class: knn.vsknn.VMContextKNN 51 | params: 52 | k: 100 53 | sample_size: 2500 54 | weighting: quadratic 55 | weighting_score: quadratic 56 | key: vsknn 57 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/window_multiple_nowplaying_stamp.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: stamp #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: nowplaying-multiple #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_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: STAMP.model.STAMP.Seq2SeqAttNN 36 | params: { init_lr: 0.0007, n_epochs: 20, decay_rate: 0.4} 37 | key: stamp-second 38 | - class: STAMP.model.STAMP.Seq2SeqAttNN 39 | params: { init_lr: 0.0005, n_epochs: 20, decay_rate: 0.9} 40 | key: stamp-org 41 | -------------------------------------------------------------------------------- /conf/save/nowplaying/window/window_nowplaying_baselines.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: nwoplaying-window #added in the end of the csv names 7 | folder: ../../data/nwoplaying/slices/ 8 | prefix: nwoplaying 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/nwoplaying/ 14 | pickle_models: results/window/nwoplaying/ # 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: baselines.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 9, weighting: quadratic } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 50 46 | sample_size: 2500 47 | similarity: jaccard 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 100 52 | sample_size: 2500 53 | weighting: quadratic 54 | weighting_score: quadratic 55 | key: vsknn 56 | -------------------------------------------------------------------------------- /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/window/opt/window_retailrocket_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float32} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/retailrocket/window/opt/window_retailrocket_knn.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: retailr #added in the end of the csv names 7 | folder: data/retailrocket/slices/ 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: knn.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /conf/save/retailrocket/window/opt/window_retailrocket_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: retailr #added in the end of the csv names 7 | folder: data/retailrocket/slices/ 8 | prefix: events 9 | opts: {sessions_test: 1000} 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: 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/retailrocket/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/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/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/window/window_multiple_retailr_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #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/window/retailrocket/ 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: baselines.markov.MarkovModel 36 | params: {} 37 | key: markov 38 | - class: baselines.ar.AssociationRules 39 | params: {} 40 | key: ar 41 | - class: baselines.sr.SequentialRules 42 | params: { steps: 7, weighting: div } 43 | key: sr 44 | - class: knn.sknn.ContextKNN 45 | params: 46 | k: 50 47 | sample_size: 5000 48 | similarity: cosine 49 | key: sknn 50 | - class: knn.vsknn.VMContextKNN 51 | params: 52 | k: 1500 53 | sample_size: 2500 54 | weighting: same 55 | weighting_score: linear 56 | key: vsknn 57 | -------------------------------------------------------------------------------- /conf/save/retailrocket/window/window_multiple_retailr_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #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/window/retailrocket/ 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: STAMP.model.STAMP.Seq2SeqAttNN 36 | params: { init_lr: 0.0.0008, n_epochs: 10, decay_rate: 0.6} 37 | key: stamp 38 | - class: narm.narm.NARM 39 | params: { epochs: 20, lr: 0.01 } 40 | key: narm 41 | - class: gru4rec.gru4rec.GRU4Rec 42 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.3, learning_rate: 0.03, momentum: 0.2, constrained_embedding: True } 43 | key: gru4rec 44 | - class: ct.ct.ContextTree 45 | params: {} 46 | key: ct-pre 47 | - class: nextitnet.nextitrec.Nextitrec 48 | params: { learning_rate: 0.006, iterations: 10 } 49 | key: nextitnet 50 | -------------------------------------------------------------------------------- /conf/save/retailrocket/window/window_retailr_baselines.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: retailr-window #added in the end of the csv names 7 | folder: ../../data/retailrocket/slices/ 8 | prefix: events 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/retailrocket/ 14 | pickle_models: results/window/retailrocket/ # 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: baselines.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 7, weighting: div } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 50 46 | sample_size: 5000 47 | similarity: cosine 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 1500 52 | sample_size: 2500 53 | weighting: same 54 | weighting_score: linear 55 | key: vsknn 56 | -------------------------------------------------------------------------------- /conf/save/retailrocket/window/window_retailr_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models-corrected #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/slices/ 8 | prefix: events 9 | slices: 5 10 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/retailr/ 14 | pickle_models: results/models/retailr-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: STAMP.model.STAMP.Seq2SeqAttNN 35 | params: { init_lr: 0.0008, n_epochs: 10, decay_rate: 0.6} 36 | key: stamp 37 | - class: narm.narm.NARM 38 | params: { epochs: 20, lr: 0.01 } 39 | key: narm 40 | - class: gru4rec.gru4rec.GRU4Rec 41 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.3, learning_rate: 0.03, momentum: 0.2, constrained_embedding: True } 42 | key: gru4rec 43 | - class: ct.ct.ContextTree 44 | params: {} 45 | key: ct-pre 46 | - class: nextitnet.nextitrec.Nextitrec 47 | params: { learning_rate: 0.006, iterations: 10 } 48 | key: nextitnet 49 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/opt/window_rsc15_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | key: vsknn -------------------------------------------------------------------------------- /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/window_multiple_rsc15_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-multiple #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/ 14 | pickle_models: results/models/rsc15-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | - class: saver.Saver 30 | length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: baselines.markov.MarkovModel 37 | params: {} 38 | key: markov 39 | - class: baselines.ar.AssociationRules 40 | params: {} 41 | key: ar 42 | - class: baselines.sr.SequentialRules 43 | params: { steps: 8, weighting: div } 44 | key: sr 45 | - class: knn.sknn.ContextKNN 46 | params: 47 | k: 500 48 | sample_size: 10000 49 | similarity: jaccard 50 | key: sknn 51 | - class: knn.vsknn.VMContextKNN 52 | params: 53 | k: 100 54 | sample_size: 1000 55 | weighting: quadratic 56 | weighting_score: quadratic 57 | key: vsknn 58 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_multiple_rsc15_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: models #added to the csv names 4 | evaluation: evaluation_multiple #evaluation|evaluation_last|evaluation_multiple 5 | data: 6 | name: rsc15-multiple #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/ 14 | pickle_models: results/models/rsc15-window/ # not working for tensorflow models 15 | 16 | metrics: 17 | - class: accuracy_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 29 | - class: saver.Saver 30 | length: [50] 31 | - class: time_memory_usage.Time_usage_training 32 | - class: time_memory_usage.Time_usage_testing 33 | #- class: time_memory_usage.Memory_usage 34 | 35 | algorithms: 36 | - class: STAMP.model.STAMP.Seq2SeqAttNN 37 | params: { init_lr: 0.0007, n_epochs: 20, decay_rate: 0.0} 38 | key: stamp 39 | - class: narm.narm.NARM 40 | params: { epochs: 20, lr: 0.0008 } 41 | key: narm 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.3, learning_rate: 0.04, momentum: 0.0, constrained_embedding: True } 44 | key: gru4rec-best 45 | - class: gru4rec.gru4rec.GRU4Rec 46 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.2, learning_rate: 0.4, momentum: 0.0 } 47 | key: gru4rec-backup 48 | - class: ct.ct.ContextTree 49 | params: {} 50 | key: ct-pre 51 | -------------------------------------------------------------------------------- /conf/save/rsc15/window/window_rsc15_baselines.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: 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/ 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: baselines.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 8, weighting: div } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 500 46 | sample_size: 10000 47 | similarity: jaccard 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 100 52 | sample_size: 1000 53 | weighting: quadratic 54 | weighting_score: quadratic 55 | key: vsknn 56 | -------------------------------------------------------------------------------- /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_models.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 | #opts: {sessions_test: 10} 11 | 12 | results: 13 | folder: results/window/rsc15/ 14 | pickle_models: results/models/rsc15-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: STAMP.model.STAMP.Seq2SeqAttNN 35 | params: { init_lr: 0.0007, n_epochs: 20, decay_rate: 0.0} 36 | key: stamp 37 | - class: narm.narm.NARM 38 | params: { epochs: 20, lr: 0.0008 } 39 | key: narm 40 | - class: gru4rec.gru4rec.GRU4Rec 41 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.3, learning_rate: 0.04, momentum: 0.0, constrained_embedding: True } 42 | key: gru4rec-best 43 | - class: gru4rec.gru4rec.GRU4Rec 44 | params: { loss: 'top1-max', final_act: 'elu-0.5', dropout_p_hidden: 0.2, learning_rate: 0.4, momentum: 0.0 } 45 | key: gru4rec-backup 46 | - class: ct.ct.ContextTree 47 | params: {} 48 | key: ct-pre -------------------------------------------------------------------------------- /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: 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: nextitnet.nextitrec.Nextitrec 28 | params: { learning_rate: 0.001, iterations: 1 } 29 | key: nextitnet -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/opt/single_rsc15_4_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float32} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /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_rsc_15_4_knn.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_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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #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/single/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/prepared/recs_4/markov } 35 | key: markov 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/rsc15/prepared/recs_4/ar } 38 | key: ar 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: data/rsc15/prepared/recs_4/sr } 41 | key: sr 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/rsc15/prepared/recs_4/sknn } 44 | key: sknn 45 | - class: filemodel.resultfile.ResultFile 46 | params: { file: data/rsc15/prepared/recs_4/vsknn } 47 | key: vsknn 48 | -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_multiple_rsc15_4_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: models #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/single/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/prepared/recs_4/stamp } 35 | key: stamp 36 | - class: filemodel.resultfile.ResultFile 37 | params: { file: data/rsc15/prepared/recs_4/narm } 38 | key: narm 39 | - class: filemodel.resultfile.ResultFile 40 | params: { file: data/rsc15/prepared/recs_4/gru4rec1 } 41 | key: gru4rec1 42 | - class: filemodel.resultfile.ResultFile 43 | params: { file: data/rsc15/prepared/recs_4/gru4rec2 } 44 | key: gru4rec2 -------------------------------------------------------------------------------- /conf/save/rsc15_4/single split/single_rsc15_4_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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: 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: 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: baselines.markov.MarkovModel 34 | params: {} 35 | key: markov 36 | - class: baselines.ar.AssociationRules 37 | params: {} 38 | key: ar 39 | - class: baselines.sr.SequentialRules 40 | params: { steps: 2, weighting: log } 41 | key: sr 42 | - class: knn.sknn.ContextKNN 43 | params: { k: 1500, sampling: 500, similarity: jaccard } 44 | key: sknn 45 | - class: knn.vsknn.VMContextKNN 46 | params: { k: 1000, sampling: 1000, weighting: log , weighting_score: quadratic, idf_weighting: 5 } 47 | key: vsknn 48 | -------------------------------------------------------------------------------- /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_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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_64 #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: 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: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: { init_lr: 0.0002, n_epochs: 20, decay_rate: 0.2} 35 | key: stamp 36 | - class: narm.narm.NARM 37 | params: { epochs: 20, lr: 0.002 } 38 | key: narm 39 | - class: gru4rec.gru4rec.GRU4Rec 40 | params: { loss: 'bpr-max', final_act: 'linear', dropout_p_hidden: 0.1, learning_rate: 0.09, momentum: 0.0, constrained_embedding: True } 41 | key: gru4rec1 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'top1-max', final_act: 'linear', dropout_p_hidden: 0.3, learning_rate: 0.08, momentum: 0.0, constrained_embedding: True } 44 | key: gru4rec2 -------------------------------------------------------------------------------- /conf/save/rsc15_64/single split/opt/single_rsc_15_64_knn.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-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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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/rsc15_64/single_multiple_rsc15_64_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #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: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_64_multiple/ 13 | pickle_models: results/models/rsc15_64/ # 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: baselines.markov.MarkovModel 36 | params: {} 37 | key: markov 38 | - class: baselines.ar.AssociationRules 39 | params: {} 40 | key: ar 41 | - class: baselines.sr.SequentialRules 42 | params: { steps: 4, weighting: quadratic } 43 | key: sr 44 | - class: knn.sknn.ContextKNN 45 | params: 46 | k: 500 47 | sample_size: 1000 48 | similarity: cosine 49 | key: sknn 50 | - class: knn.vsknn.VMContextKNN 51 | params: 52 | k: 1000 53 | sample_size: 5000 54 | weighting: log 55 | weighting_score: quadratic 56 | idf_weighting: 2 57 | key: vsknn 58 | -------------------------------------------------------------------------------- /conf/save/rsc15_64/single_rsc15_64_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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: 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: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_64/ 13 | pickle_models: results/models/rsc15_64/ # 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 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: baselines.markov.MarkovModel 34 | params: {} 35 | key: markov 36 | - class: baselines.ar.AssociationRules 37 | params: {} 38 | key: ar 39 | - class: baselines.sr.SequentialRules 40 | params: { steps: 4, weighting: quadratic } 41 | key: sr 42 | - class: knn.sknn.ContextKNN 43 | params: { k: 500, sampling: 1000, similarity: cosine } 44 | key: sknn 45 | - class: knn.vsknn.VMContextKNN 46 | params: { k: 1000, sampling: 5000, weighting: log, weighting_score: quadratic, idf_weighting: 2 } 47 | key: vsknn -------------------------------------------------------------------------------- /conf/save/rsc15_64/single_rsc15_64_models.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: single # 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_64 #added in the end of the csv names 7 | folder: data/rsc15/prepared/ 8 | prefix: yoochoose-clicks-full-64 9 | #opts: {sessions_test: 10} 10 | 11 | results: 12 | folder: results/single/rsc15_64/ 13 | pickle_models: results/models/rsc15_64/ # not working for tensorflow models 14 | 15 | metrics: 16 | - class: accuracy.HitRate 17 | length: [5,10,15,20] 18 | - class: accuracy.MRR 19 | length: [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: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: { init_lr: 0.0004, n_epochs: 30, decay_rate: 0.4} 35 | key: stamp 36 | - class: narm.narm.NARM 37 | params: { epochs: 20, lr: 0.005 } 38 | key: narm 39 | - class: nextitnet.nextitrec.Nextitrec 40 | params: { learning_rate: 0.001, iterations: 10 } 41 | key: nextitnet 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.5, learning_rate: 0.01, momentum: 0.8 } 44 | key: gru4rec 45 | -------------------------------------------------------------------------------- /conf/save/tmall/window/opt/window_tmall_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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/tmall_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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /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/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_gru.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: opt # single|window, maybe add opt 3 | key: gru #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: gru4rec.gru4rec.GRU4Rec 34 | params: {} 35 | params_opt: 36 | loss: ['bpr-max', 'top1-max'] 37 | final_act: ['elu-0.5','linear'] 38 | dropout_p_hidden: {from: 0.0, to: 0.9, in: 10, type: float} 39 | momentum: {from: 0.0, to: 0.9, in: 10, type: float32} 40 | learning_rate: [ {from: 0.1, to: 0.01, in: 10, type: float32}, {from: 0.5, to: 0.1, in: 5, type: float32} ] 41 | constrained_embedding: [True,False] 42 | key: gru4rec 43 | -------------------------------------------------------------------------------- /conf/save/zalando/window/opt/window_zalando_knn.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: 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.sknn.ContextKNN 34 | params: {} 35 | params_opt: 36 | k: [50,100,500,1000,1500] 37 | sample_size: [500,1000,2500,5000,10000] 38 | similarity: ['cosine','jaccard'] 39 | key: sknn 40 | - class: knn.vsknn.VMContextKNN 41 | params: {} 42 | params_opt: 43 | k: [50,100,500,1000,1500] 44 | sample_size: [500,1000,2500,5000,10000] 45 | weighting: ['same','div','linear','quadratic','log'] 46 | weighting_score: ['same','div','linear','quadratic','log'] 47 | idf_weighting: [False,1,2,5,10] 48 | key: vsknn -------------------------------------------------------------------------------- /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/window_multiple_zalando_baselines.yml: -------------------------------------------------------------------------------- 1 | --- 2 | type: window # single|window, maybe add opt 3 | key: baselines #added to the csv names 4 | evaluation: evaluation_multiple #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_multiple.Precision 18 | length: [3,5,10,15,20] 19 | - class: accuracy_multiple.Recall 20 | length: [3,5,10,15,20] 21 | - class: accuracy_multiple.MAP 22 | length: [3,5,10,15,20] 23 | - class: accuracy_multiple.NDCG 24 | length: [3,5,10,15,20] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 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: filemodel.resultfile.ResultFile 35 | params: { file: mdl/zalando_window/markov } 36 | key: markov 37 | - class: filemodel.resultfile.ResultFile 38 | params: { file: mdl/zalando_window/ar } 39 | key: ar 40 | - class: filemodel.resultfile.ResultFile 41 | params: { file: mdl/zalando_window/sr } 42 | key: sr 43 | - class: filemodel.resultfile.ResultFile 44 | params: { file: mdl/zalando_window/sknn } 45 | key: sknn 46 | - class: filemodel.resultfile.ResultFile 47 | params: { file: mdl/zalando_window/vknn } 48 | key: vsknn 49 | -------------------------------------------------------------------------------- /conf/save/zalando/window/window_zalando_baselines.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: 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: [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: saver.Saver 24 | length: [50] 25 | - class: coverage.Coverage 26 | length: [20] 27 | - class: popularity.Popularity 28 | length: [20] 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.markov.MarkovModel 35 | params: {} 36 | key: markov 37 | - class: baselines.ar.AssociationRules 38 | params: {} 39 | key: ar 40 | - class: baselines.sr.SequentialRules 41 | params: { steps: 7, weighting: div } 42 | key: sr 43 | - class: knn.sknn.ContextKNN 44 | params: 45 | k: 50 46 | sample_size: 10000 47 | similarity: cosine 48 | key: sknn 49 | - class: knn.vsknn.VMContextKNN 50 | params: 51 | k: 50 52 | sample_size: 10000 53 | weighting: log 54 | weighting_score: quadratic 55 | idf_weighting: 10 56 | key: vsknn 57 | -------------------------------------------------------------------------------- /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_models.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/ 13 | pickle_models: results/models/music-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 | #- class: time_memory_usage.Memory_usage 31 | 32 | algorithms: 33 | - class: STAMP.model.STAMP.Seq2SeqAttNN 34 | params: { init_lr: 0.009, n_epochs: 30, decay_rate: 0.7} 35 | key: stamp 36 | - class: narm.narm.NARM 37 | params: { epochs: 20, lr: 0.007 } 38 | key: narm 39 | - class: gru4rec.gru4rec.GRU4Rec 40 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.1, learning_rate: 0.1, momentum: 0.3 } 41 | key: gru4rec-best 42 | - class: gru4rec.gru4rec.GRU4Rec 43 | params: { loss: 'bpr-max', final_act: 'elu-0.5', dropout_p_hidden: 0.2, learning_rate: 0.1, momentum: 0.2 } 44 | key: gru4rec-backup 45 | - class: ct.ct.ContextTree 46 | params: {} 47 | key: ct-default 48 | -------------------------------------------------------------------------------- /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/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 | -------------------------------------------------------------------------------- /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/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 -------------------------------------------------------------------------------- /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 -------------------------------------------------------------------------------- /docs/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/docs/.DS_Store -------------------------------------------------------------------------------- /docs/css/sortable-theme-minimal.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | font-weight: bold; 10 | } 11 | /* line 10, ../sass/_sortable.sass */ 12 | table[data-sortable] th, table[data-sortable] td { 13 | text-align: left; 14 | padding: 10px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 5px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 1px; 39 | margin-left: 10px; 40 | float: right; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /docs/css/sortable-theme-tu.css: -------------------------------------------------------------------------------- 1 | /* line 2, ../sass/_sortable.sass */ 2 | table[data-sortable] { 3 | border-collapse: collapse; 4 | border-spacing: 0; 5 | } 6 | /* line 6, ../sass/_sortable.sass */ 7 | table[data-sortable] th { 8 | vertical-align: bottom; 9 | text-align: right; 10 | font-weight: bold; 11 | } 12 | /* line 10, ../sass/_sortable.sass */ 13 | table[data-sortable] th, table[data-sortable] td { 14 | padding: 5px; 15 | } 16 | /* line 14, ../sass/_sortable.sass */ 17 | table[data-sortable] th:not([data-sortable="false"]) { 18 | -webkit-user-select: none; 19 | -moz-user-select: none; 20 | -ms-user-select: none; 21 | -o-user-select: none; 22 | user-select: none; 23 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 24 | -webkit-touch-callout: none; 25 | cursor: pointer; 26 | } 27 | /* line 26, ../sass/_sortable.sass */ 28 | table[data-sortable] th:after { 29 | content: ""; 30 | visibility: hidden; 31 | display: inline-block; 32 | vertical-align: inherit; 33 | height: 0; 34 | width: 0; 35 | border-width: 4px; 36 | border-style: solid; 37 | border-color: transparent; 38 | margin-right: 0px; 39 | margin-left: 7px; 40 | float: left; 41 | } 42 | /* line 40, ../sass/_sortable.sass */ 43 | table[data-sortable] th[data-sorted="true"]:after { 44 | visibility: visible; 45 | } 46 | /* line 43, ../sass/_sortable.sass */ 47 | table[data-sortable] th[data-sorted-direction="descending"]:after { 48 | border-top-color: inherit; 49 | margin-top: 8px; 50 | } 51 | /* line 47, ../sass/_sortable.sass */ 52 | table[data-sortable] th[data-sorted-direction="ascending"]:after { 53 | border-bottom-color: inherit; 54 | margin-top: 3px; 55 | } 56 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /dpython: -------------------------------------------------------------------------------- 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 | -------------------------------------------------------------------------------- /drun: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | docker run -it --runtime=nvidia -v $PWD:/project -w /project wolfgangschmid/tf_theano_py35:0.1 $* 3 | -------------------------------------------------------------------------------- /evaluation/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/__init__.py -------------------------------------------------------------------------------- /evaluation/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/__pycache__/eval_simulation.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/__pycache__/eval_simulation.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/__pycache__/loader.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/__pycache__/loader.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/__pycache__/simulation.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/__pycache__/simulation.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/metrics/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__init__.py -------------------------------------------------------------------------------- /evaluation/metrics/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/metrics/__pycache__/coverage.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__pycache__/coverage.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/metrics/__pycache__/popularity.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__pycache__/popularity.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/metrics/__pycache__/saver.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__pycache__/saver.cpython-36.pyc -------------------------------------------------------------------------------- /evaluation/metrics/__pycache__/time_memory_usage.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/evaluation/metrics/__pycache__/time_memory_usage.cpython-36.pyc -------------------------------------------------------------------------------- /helper/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | -------------------------------------------------------------------------------- /preprocessing/__init__.py: -------------------------------------------------------------------------------- 1 | # 2 | -------------------------------------------------------------------------------- /preprocessing/__pycache__/__init__.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/preprocessing/__pycache__/__init__.cpython-36.pyc -------------------------------------------------------------------------------- /preprocessing/__pycache__/preprocess_music.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/andrebola/session-rec-effect/bb65c12e8b49ae4d35754bb48f2e5a4a81821ef4/preprocessing/__pycache__/preprocess_music.cpython-36.pyc -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # 2 | -------------------------------------------------------------------------------- /requirements_conda.txt: -------------------------------------------------------------------------------- 1 | numpy==1.15.4 2 | scipy==1.1.0 3 | pandas==0.23.4 4 | dill==0.2.8.2 5 | scikit-learn==0.20.2 6 | tensorflow-gpu==1.13.1 7 | -------------------------------------------------------------------------------- /requirements_pip.txt: -------------------------------------------------------------------------------- 1 | pympler==0.6 2 | theano==1.0.3 3 | tensorflow-tensorboard==0.1.8 4 | pyyaml==3.13 5 | python-telegram-bot==11.1.0 6 | psutil==5.6.1 --------------------------------------------------------------------------------