Iterative similarity inference via message passing in factor graphs for collaborative filtering