added svd and kmeans++ initializations that respect missing data (ie, they are causal