rewrite training model using Repa parallel arrays
result is much slower than using mutable arrays as we recreate a full model on each iteration which is pretty much useless
given that on each iteration we use a very small subset of the entire matrix, we could probably use tuples (Int,Vector) for the word matrix
instead of a pure matrix and put it in a hash so that we can update only a small fraction of it each time and still take advantage of parallel computation of vector operations