added collaborative filtering gradient