complete implementation of block version ALS matrix factorization