Source: https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1174/reports/2710385.pdf