机器学习相关——协同过滤
在現今的推薦技術和算法中,最被大家廣泛認可和采用的就是基于協同過濾的推薦方法。本文將帶你深入了解協同過濾的秘密。下面直接進入正題
1 什么是協同過濾
協同過濾是利用集體智慧的一個典型方法。要理解什么是協同過濾 (Collaborative Filtering, 簡稱 CF),首先想一個簡單的問題,如果你現在想看個電影,但你不知道具體看哪部,你會怎么做?大部分的人會問問周圍的朋友,看看最近有什么好看的電影推薦,而我們一般更傾向于從口味比較類似的朋友那里得到推薦。這就是協同過濾的核心思想。
換句話說,就是借鑒和你相關人群的觀點來進行推薦,很好理解。
2 協同過濾的實現
要實現協同過濾的推薦算法,要進行以下三個步驟:
收集數據——找到相似用戶和物品——進行推薦
收集數據
這里的數據指的都是用戶的歷史行為數據,比如用戶的購買歷史,關注,收藏行為,或者發表了某些評論,給某個物品打了多少分等等,這些都可以用來作為數據供推薦算法使用,服務于推薦算法。需要特別指出的在于,不同的數據準確性不同,粒度也不同,在使用時需要考慮到噪音所帶來的影響。
找到相似用戶和物品
這一步也很簡單,其實就是計算用戶間以及物品間的相似度。以下是幾種計算相似度的方法:
歐幾里德距離
皮爾遜相關系數
Cosine 相似度
Tanimoto 系數
進行推薦
在知道了如何計算相似度后,就可以進行推薦了。
在協同過濾中,有兩種主流方法:基于用戶的協同過濾,和基于物品的協同過濾。具體怎么來闡述他們的原理呢,看個圖大家就明白了
基于用戶的 CF 的基本思想相當簡單,基于用戶對物品的偏好找到相鄰鄰居用戶,然后將鄰居用戶喜歡的推薦給當前用戶。計算上,就是將一個用戶對所有物品的偏好作為一個向量來計算用戶之間的相似度,找到 K 鄰居后,根據鄰居的相似度權重以及他們對物品的偏好,預測當前用戶沒有偏好的未涉及物品,計算得到一個排序的物品列表作為推薦。 下圖給出了一個例子,對于用戶 A,根據用戶的歷史偏好,這里只計算得到一個鄰居 - 用戶 C,然后將用戶 C 喜歡的物品 D 推薦給用戶 A。
基于物品的 CF 的原理和基于用戶的 CF 類似,只是在計算鄰居時采用物品本身,而不是從用戶的角度,即基于用戶對物品的偏好找到相似的物品,然后根據用戶的歷史偏好,推薦相似的物品給他。從計算的角度看,就是將所有用戶對某個物品的偏好作為一個向量來計算物品之間的相似度,得到物品的相似物品后,根據用戶歷史的偏好預測當前用戶還沒有表示偏好的物品,計算得到一個排序的物品列表作為推薦。下圖給出了一個例子,對于物品 A,根據所有用戶的歷史偏好,喜歡物品 A 的用戶都喜歡物品 C,得出物品 A 和物品 C 比較相似,而用戶 C 喜歡物品 A,那么可以推斷出用戶 C 可能也喜歡物品 C。
總結
以上兩個方法都能很好的給出推薦,并可以達到不錯的效果。但是他們之間還是有不同之處的,而且適用性也有區別。下面進行一下對比
計算復雜度
Item CF 和 User CF 是基于協同過濾推薦的兩個最基本的算法,User CF 是很早以前就提出來了,Item CF 是從 Amazon 的論文和專利發表之后(2001 年左右)開始流行,大家都覺得 Item CF 從性能和復雜度上比 User CF 更優,其中的一個主要原因就是對于一個在線網站,用戶的數量往往大大超過物品的數量,同時物品的數據相對穩定,因此計算物品的相似度不但計算量較小,同時也不必頻繁更新。但我們往往忽略了這種情況只適應于提供商品的電子商務網站,對于新聞,博客或者微內容的推薦系統,情況往往是相反的,物品的數量是海量的,同時也是更新頻繁的,所以單從復雜度的角度,這兩個算法在不同的系統中各有優勢,推薦引擎的設計者需要根據自己應用的特點選擇更加合適的算法。
適用場景
在非社交網絡的網站中,內容內在的聯系是很重要的推薦原則,它比基于相似用戶的推薦原則更加有效。比如在購書網站上,當你看一本書的時候,推薦引擎會給你推薦相關的書籍,這個推薦的重要性遠遠超過了網站首頁對該用戶的綜合推薦。可以看到,在這種情況下,Item CF 的推薦成為了引導用戶瀏覽的重要手段。同時 Item CF 便于為推薦做出解釋,在一個非社交網絡的網站中,給某個用戶推薦一本書,同時給出的解釋是某某和你有相似興趣的人也看了這本書,這很難讓用戶信服,因為用戶可能根本不認識那個人;但如果解釋說是因為這本書和你以前看的某本書相似,用戶可能就覺得合理而采納了此推薦。
相反的,在現今很流行的社交網絡站點中,User CF 是一個更不錯的選擇,User CF 加上社會網絡信息,可以增加用戶對推薦解釋的信服程度。
總結
以上是生活随笔為你收集整理的机器学习相关——协同过滤的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何设置CentOS 7获取动态及静态I
- 下一篇: 公众号 -「前端攻略 开光篇」