Source: https://homepage.cs.uiowa.edu/~tyng/kdd15-tutorial.pdf