Home

Awesome

The Neural Hawkes Particle Smoothing

Source code for Imputing Missing Events in Continuous-Time Event Streams (ICML 2019) runnable on GPU and CPU.

Reference

If you use this code as part of any published research, please acknowledge the following paper (it encourages researchers who publish their code!):

@inproceedings{mei-2019-smoothing,
  author =      {Hongyuan Mei and Guanghui Qin and Jason Eisner},
  title =       {Imputing Missing Events in Continuous-Time Event Streams},
  booktitle =   {Proceedings of the International Conference on Machine Learning},
  year =        {2019}
}

Instructions

Here are the instructions to use the code base.

Dependencies

This code is written in Python 3, and I recommend you to install:

Prepare Data

Download datasets from this Google Drive link to the 'data' folder. See more details in this README.

Install Modules

Run the command line below to install the modules (add -e option if you need an editable installation):

pip install .

Train Models

Go to the nhps/functions directory.

To train the neural Hawkes process with complete data, try the command line below for detailed guide (see section 2 in paper for more technical details):

python train_nhpf.py --help

To train the neural Hawkes particle smoother with incomplete data, try the command line below for detailed guide (see section 3 in paper for more technical details):

python train_nhps.py --help

Test Models

Go to the nhps/functions directory.

To evaluate (dev or test), use the command line below for detailed guide (see section 4 in paper for more technical details):

python test.py --help

License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.