Use only one update function and pass in transpose of ratings matrix where appropriate