如何理解協同過濾?

墨卡司


協同過濾可以簡單理解為人們對“人以群分,物以類聚”算法解釋和應用。


人以群分——基於用戶的協同過濾

基於用戶的協同過濾主要基於的是用戶之間的相似度(依賴用戶的歷史喜好數據),先計算用戶之間的相似度,然後將用戶喜歡的物品推薦給相似用戶。也就是說,當用戶需要個性化推薦時,可以先找到與他相似其他用戶(通過興趣、愛好或行為習慣等),然後把那些相似用戶喜歡的並且自己不知道的物品推薦給用戶。


物以類聚——基於物品的協同過濾

基於項目(item-based)的協同過濾基於物品之間的相似度,先計算物品之間的相似度,然後根據用戶對物品的評分,將用戶喜歡物品的相似物品推薦給用戶。也就是說,當一個用戶需要個性化推薦時,例如由於他之前購買過《集體智慧編程》這本書,所以會給他推薦《機器學習實戰》,因為其他用戶很多都同時購買了這兩本書。


基於用戶協同過濾與基於物品協同過濾的區別

基於用戶的協同過濾需要在線(系統上線後)找用戶和用戶之間的相似度關係,計算複雜度肯定會比基於物品的協同過濾高。同時還需考慮推薦算法的冷啟動問題(如何在沒有大量用戶數據的前提下能夠讓用戶對推薦結果滿意),比如可以通過用戶註冊時讓用戶選擇自己感興趣的領域,生成粗粒度的推薦。

基於用戶的協同過濾是給用戶推薦那些和他有共同興趣的用戶喜歡的物品,所以基於用戶的協同過濾推薦較為社會化,即推薦的物品是與用戶興趣一致的那個群體中的熱門物品,同時能夠推薦給用戶新類別物品。

基於物品協同過濾則是為用戶推薦那些和他之前喜歡的物品類似的物品,基於物品協同過濾的推薦較為個性,因為推薦的物品一般都滿足自己的獨特興趣,所以比較是適應於用戶個性化需求強烈的領域,但由於物品的相似度比較穩定,很難推薦給用戶新類別的物品。


小悟空騎摩托


協同過濾是推薦系統中採用的一種技術手段,簡單地說就是利用跟你有某些相似之處的群體的喜好行為來推薦你可能感的興趣的信息,跟你行為相似的用戶或者用戶行為能幫助過濾篩選你想要的信息,達到一種“協同”的效果。

舉例來說,比如你現在想去看電影,但是不知道在眾多的電影之中選擇哪一部,這時你會怎麼做?


你可能問你身邊的朋友、同事、同學,他們最近看了什麼好看電影,你會參考他們的選擇。

或者,打開視頻網站,你在選擇電影的時候,你會偏向去你之前經常看的電影類別中,找一找有沒有什麼新出的這類題材的電影,比如你之前是一個鋼鐵俠迷,鋼鐵俠系列的電影你都看過了,你可能就會再去看美國隊長等。

上面這個例子,就展現了協同過濾的思想及兩種方式:基於用戶的協同過濾和基於物品的協同過濾。

1)基於用戶的協同過濾,目標就是尋找跟你行為相似度高的用戶,把他們的選擇推薦給你。如下圖所示:

但這種方式,會面臨一些問題,一是對於一個沒有什麼行為積累的新用戶,很難找到跟他行為相似的用戶;二是,本用戶關係的某類產品,跟其相似的用戶在該類產品的選擇上很少,也無法推薦;三是,人是善變的動物,比如,你之前特別愛手遊,某一天你突然把遊戲戒掉了,那在給你推薦遊戲類的軟件就是無用的。因此基於用戶的協同過濾在實際應用中,因用戶表稀疏,且不易維護往往不常使用。

2)基於物品的協同過濾,既然用戶不便維護,我們就尋求物品之間的相似度。因為物品的一旦生產出來,特性就是確定的,而且商家為了能更好地賣出商品,也會積極描述物品的特點,因此基於物品的協同過濾,物品的特徵更容易獲取,也就更容易計算物品之間的相似度。

而在實際中,也要根據不同的應用場景選擇合適的方式,比如,如果做新聞推薦的話,就最好選擇基於用戶的方式,實時進行推薦。如果是做電商、像圖書、電影等,就更適合基於物品的推薦。


分享到:


相關文章: