Changed to scipy.sparse

Optimized the svd call by using scipy.sparse.linalg.svds since the matrix that we are using svd on is extremely sparse.