1、概述
Collaborative filtering methods are based on collecting and analyzing a large amount of information on users’ behaviors, activities or preferences and predicting what users will like based on their similarity to other users.
通過收集和分析大量的使用者行為、活動以及評分記錄來發現跟該使用者興趣相似的其他使用者,藉由其他使用者的行為記錄來預測使用者會喜歡什麼東西。
A key advantage of the collaborative filtering approach is that it does not rely on machine analyzable content and therefore it is capable of accurately recommending complex items such as movies without requiring an "understanding" of the item itself.
協同過濾的最大優勢是它通過使用者的行為來分析使用者對事物的喜惡,而不需要演算法去“理解”某個事物究竟是什麼。
Many algorithms have been used in measuring user similarity or item similarity in recommender systems. For example, the k-nearest neighborhood (k-NN) approach and the Pearson Correlation.
有很多演算法可以用來“測量”使用者之間的興趣相似程度,比如K-NN演算法、皮爾遜相關係數等。
2、資料收集
進行協同過濾需要收集使用者資料,收集使用者資料的方式分為兩種類型:顯示收集(explicit data collection)以及隱式收集(implicit data collection)。也就是明著來,還有暗著來。
明著來的方法諸如:
Asking a user to rate an item on a sliding scale.
Asking a user to rank a collection of items from favorite to least favorite.
Presenting two items to a user and asking him/her to choose the better one of them.
Asking a user to create a list of items that he/she likes
暗著來的方式諸如:
Observing the items that a user views in an online store.
Analyzing item/user viewing times[12]
Keeping a record of the items that a user purchases online.
Obtaining a list of items that a user has listened to or watched on his/her computer.
Analyzing the user's social network and discovering similar likes and dislikes
個人比較中意暗著來的方式,不需要使用者額外的工作。但是暗著來的方式常常也涉及到隱私問題,所以也有弊端。
3、資料分析方式
The recommender system compares the collected data to similar and dissimilar data collected from others and calculates a list of recommended items for the user.
通過將收集到的使用者A的資料與之前收集到的其他跟使用者A相似以及非相似的使用者資料進行比較,來得出一個要推薦的物品清單。例子有:
One
of the most famous examples of collaborative filtering is item-to-item
collaborative filtering (people who buy x also buy y), an algorithm
popularized by Amazon.com's recommender system.
比較著名的協同過濾的例子就是物品到物品的協同過濾,即“購買A的使用者通常也購買B”,這是由亞馬遜開始推廣開來的演算法。
Other examples include: 其他的演算法還有
Last.fm recommends music based on a comparison of the listening habits of similar users.
Last.fm 通過比較相似使用者的收聽清單來為使用者推薦音樂。
Facebook, MySpace, LinkedIn, and other social networks use
collaborative filtering to recommend new friends, groups, and other
social connections (by examining the network of connections between a
user and their friends).
Facebook等SNS網路通過協同過濾來向使用者推薦新朋友,其方式是檢測使用者的朋友圈來找出相似的使用者群進行推薦。
4、協同過濾會遇到的問題
Collaborative filtering approaches often suffer from three problems: cold start(冷啟動), scalability(可擴充性), and sparsity(稀疏性).
參考:Sanghack
Lee and Jihoon Yang and Sung-Yong Park, Discovery of Hidden Similarity
on Collaborative Filtering to Overcome Sparsity Problem, Discovery
Science, 2007.
① Cold Start: These systems often require a large amount of existing data on a user in order to make accurate recommendations.
冷啟動:推薦系統一般需要大量的已存在資料來進行精確推薦。冷啟動在wikipedia中的定義裡有這麼一段話:
“it concerns the issue that the system cannot draw any inferences for users or items about which it has not yet gathered sufficient information.”那麼在推薦系統中,冷啟動的解決思路是:“In recommender systems, the cold start problem is often reduced by adopting a hybrid approach between content-based matching and collaborative filtering. New items (which have not yet received any ratings from the community) would be assigned a rating automatically, based on the ratings assigned by the community to other similar items. Item similarity would be determined according to the items' content-based characteristics” 也就是在沒有使用者評分的時候,自動根據相似的產品來給它預先賦予一個分數,而什麼產品跟它是相似的呢?判斷的方法則使用基於內容的演算法。這樣,就相當於混合了協同過濾和基於內容的方式了。
② Scalability: In many of the environments
that these systems make recommendations in, there are millions of users
and products. Thus, a large amount of computation power is often
necessary to calculate recommendations.
可擴充性:在使用推薦系統的環境中,一般都存在大量的使用者的商品資料,因此為了計算推薦列表,需要巨大的計算能力。
③ Sparsity:
The number of items sold on major e-commerce sites is extremely large.
The most active users will only have rated a small subset of the overall
database. Thus, even the most popular items have very few ratings.
在主要的電商網站上銷售的商品非常多。即使是有一部分非常活躍的使用者,也只能評價其中的某些商品而已,所以總體而言,商品的評價率是很低的。因此在計算時,就存在一個疏鬆陣列的計算問題。
A particular type of collaborative filtering algorithm uses matrix factorization, a low-rank matrix approximation technique.
為此,一種特殊類型的協同過濾演算法採用矩陣分解,低秩矩陣逼近技術。
參考:
I. Markovsky, Low-Rank Approximation: Algorithms, Implementation, Applications, Springer, 2012, ISBN 978-1-4471-2226-5
Takács,
G.; Pilászy, I.; Németh, B.; Tikk, D. (March 2009). "Scalable
Collaborative Filtering Approaches for Large Recommender Systems".
Journal of Machine Learning Research 10: 623–656
Rennie,
J.; Srebro, N. (2005). "Fast Maximum Margin Matrix Factorization for
Collaborative Prediction". In Luc De Raedt, Stefan Wrobel (PDF).
Proceedings of the 22nd Annual International Conference on Machine
Learning. ACM Press.