機器學習相關——協同過濾

來源:互聯網
上載者:User

在現今的推薦技術和演算法中,最被大家廣泛認可和採用的就是基於協同過濾的推薦方法。本文將帶你深入瞭解協同過濾的秘密。下面直接進入正題

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 更優,其中的一個主要原因就是對於一個線上網站,使用者的數量往往大大超過物品的數量,同時物品的資料相對穩定,因此計算物品的相似性不但計算量較小,同時也不必頻繁更新。但我們往往忽略了這種情況只適應於供應商品的電子商務網站,對於新聞,部落格或者微內容的推薦系統,情況往往是相反的,物品的數量是海量的,同時也是更新頻繁的,所以單從複雜度的角度,這兩個演算法在不同的系統中各有優勢,Recommendation Engine的設計者需要根據自己應用的特點選擇更加合適的演算法。

  適用情境

  在非社交網路的網站中,內容內在的聯絡是很重要的推薦原則,它比基於相似使用者的推薦原則更加有效。比如在購書網站上,當你看一本書的時候,Recommendation Engine會給你推薦相關的書籍,這個推薦的重要性遠遠超過了網站首頁對該使用者的綜合推薦。可以看到,在這種情況下,Item CF 的推薦成為了引導使用者瀏覽的重要手段。同時 Item CF 便於為推薦做出解釋,在一個非社交網路的網站中,給某個使用者推薦一本書,同時給出的解釋是某某和你有相似興趣的人也看了這本書,這很難讓使用者信服,因為使用者可能根本不認識那個人;但如果解釋說是因為這本書和你以前看的某本書相似,使用者可能就覺得合理而採納了此推薦。

  相反的,在現今很流行的社交網站中,User CF 是一個更不錯的選擇,User CF 加上社會網路資訊,可以增加使用者對推薦解釋的信服程度。

 

希望上面的內容對大家有所協助~ 如果想看更詳細的說明,請參見http://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/index.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.