Project of "Models of Sequence Data" course, Skoltech, 2020
The problem is to develop a model that learns to predict users' return times from browsing histories of many other users. Some users do not come back, hence, our model needs to be able to both learn from such users' data and predict that some users will not come back during some specified prediction window.
RMTPP
- folder with our implementation of Du et al. paperRNNSM
- folder with our implementation of Grob et al. papergrobformer
- folder with our implementation of RNNSM model based on hawkes transformerdata
- folder with relevant datasets and helper function for their processing.dataset.py
preprocessing can be reused for other datasets. Check the details in theOCON
folder.references
- folder with relevant existing implementations and their descriptions
The more detailed description of the models are available in the corresponding folders.
- Install the requirements:
pip3 install -r requirements.txt
- A model can be trained using
train.py
script:
python3 train.py
Training parameters, including the model choice, can be changed in the file config.yaml
The key parameters are the model too train:
model = rmtpp / rnnsm / groobformer
and the metric which the best model is chosen by
(if None
the model is saved)
validate_by = rmse / recall / auc / none
- The model can be tested using
test.py
script:
python3 test.py
The project is based on the following papers:
-
A Recurrent Neural Network Survival Model: Predicting Web User Return Time
Georg L. Grob, Ângelo Cardoso, C. H. Bryan Liu, Duncan A. Little, Benjamin Paul Chamberlain, 2018 -
Recurrent Marked Temporal Point Processes:Embedding Event History to Vector
Nan Du, Hanjun Dai, R. Trivedi, U. Upadhyay, M. Gomez-Rodriguez, Le Song, 2016 -
Transformer Hawkes Process
Simiao Zuo, Haoming Jiang, Zichong Li, Tuo Zhao, Hongyuan Zha