This is an implementation of SINE (Sparse-Interest Network for Sequential Recommendation) matching model. The implementation follows the arXiv paper (https://arxiv.org/abs/2102.09267), but also take into consider the original implementation in TensorFlow (https://github.com/Qiaoyut/SINE/blob/master/model.py). However, the original implementation seems to significantly deviate (e.g., position embedding, implementation of self attention, usage of temperature parameter, etc) from what the model is described in the SINE paper, I decided to first follow the original paper as much as possible.
Metrics averaged over 5 rounds on ml-1m
(with the config in run_ml_sine.py file, with @k parameter and data file changed to 100 and ml-1m.csv)
Hit/Recall@100: 0.12134 (± 0.019)
Precision@100: 0.0012 (± 0.0002), Recall@100
Next steps
follow the exact computation of the TensorFlow implementation via debugger is possible.
current framework architecture does not allow the model to pass a model-based regularizer (in this case a covariance regularizer) and add in to the total loss function, this could be useful in the future.
the metrics on ml-1m in the original paper could not be reproduced for this implementation because the two implementations use different evaluation strategy. It would useful to borrow each other's evaluation strategy and to check the quality of the current implementation.
the current implementation over fits quickly after e.g. 5 epochs, more knowledge about the hyper parameters and the regularization term could help in the future.
This is an implementation of SINE (Sparse-Interest Network for Sequential Recommendation) matching model. The implementation follows the arXiv paper (https://arxiv.org/abs/2102.09267), but also take into consider the original implementation in TensorFlow (https://github.com/Qiaoyut/SINE/blob/master/model.py). However, the original implementation seems to significantly deviate (e.g., position embedding, implementation of self attention, usage of temperature parameter, etc) from what the model is described in the SINE paper, I decided to first follow the original paper as much as possible.
Metrics averaged over 5 rounds on ml-1m
(with the config in run_ml_sine.py file, with @k parameter and data file changed to 100 and ml-1m.csv)
Next steps