Crossproduct 

So, turns out basically nothing needed to change in the training code; I just made precompute dump the entire feature set. On my laptop it now takes ~7 minutes to do the evaluate. Not great, but it's something.

The perplexity number is pretty terrible, I think? 2887 

We could try to do the sparse matrix thing later, but probably once the numbers are a little better.

Another thing is there is no UNK handling right now, AFAICT. This is probably hurting the perplexity numbers quite a lot.