Source: https://web.stanford.edu/class/archive/cs/cs224n/cs224n.1184/reports/6839354.pdf