first implementation of collab filtering cost function
nearly done with collaborative filtering, need to update scipy to get scipy.optimize.minimize