First pass at hierarchical softmax.
Why is building the dictionary so slow?