Collaborative Filtering Algorithm, including user based algorithm and item based algorithm