Source: https://snap.stanford.edu/class/cs224w-2010/proj2009/report_Sonal_Gupta.pdf