推薦系統簡介——基於協同過濾的推薦

1、推薦系統簡介

  個性化推薦是根據用戶的興趣特點和購買行爲,向用戶推薦用戶感興趣的信息和商品。

  推薦系統主要處理的有兩類內容:一個是User,一個是Item。系統的目標也很明確,就是向User推薦Item。

  應用了推薦系統的例子有很多,比如:知名的電商:Amazon,全球有名的在線影片租賃商:Netflix,國內的新聞應用:今日頭條。

2、推薦系統分類

2.1基於內容的推薦(Content-based Recommendation)

  基於內容的推薦系統的核心思想是挖掘被推薦對象的信息。基於內容的推薦算法的前提假設是:如果用戶喜歡物品a,那麼用戶也應該會喜歡與a類似的物品。由於筆者的目的是側重於介紹協同過濾推薦算法,所以對基於內容的推薦算法舉個簡單的例子一帶而過:

  假設一首歌有:名稱、歌手、風格、作曲人這4個屬性。如果用戶Alice對Michael 的歌曲Beat It評分很高,那麼系統會分析Beat It這首歌的屬性,隨後系統就可能會向Alice推薦Michael的歌曲Dangerous,因爲Dangerous與Beat It有很多共同之處:歌手都是Michael,風格都是搖滾。

  總的來講,基於內容的推薦,利用的是被推薦對象自身的屬性信息,利用這些信息來聚類,例如將衆多的歌曲按風格聚類,得到藍調風格的歌曲集合、搖滾風格的集合、田園風格的集合等等,當用戶表示喜歡某一首歌曲時,系統會分析這個歌曲屬於哪個風格,如果這個歌曲屬於搖滾風格,那麼系統就會從搖滾風格的集合中挑選出一些歌曲,將其推薦給用戶。當然,這只是一種思路,實際的基於內容的推薦比我描述的要更復雜更詳細,有興趣的朋友可以深入研究一下,我以後有空也會把基於內容的推薦算法做一個詳細介紹。

2.2協同過濾推薦 (Collaborative Filtering Recommendation)

  協同過濾算法是推薦系統中應用最爲廣泛和成功的算法。協同過濾推薦算法的前提假設是:如果用戶a與用戶b均對一系列相同的物品表示喜歡,那麼a極有可能也喜歡b用戶喜歡的其他物品。在協同過濾推薦的過程中:用戶首先爲每個項目進行評價打分,通過計算不同用戶評分之間的相似程度,可以找到最近鄰居,根據最近鄰居的評價,產生推薦——這是協同過濾算法的主要思想。 舉例來講,假設在音樂推薦系統中,一共有4個用戶,7個音樂,每個用戶對每個音樂的評價矩陣如下:
 
  All About That Bass Shake It Off Black Widow Habits Bang Bang Don't Tell 'Em Animals
Alice 4     5 1    
Bob 5 5 4 4 2    
John 2     1 5 4  
David   3         3
 
注:總分爲5分,空項表示該用戶沒有聽過該音樂因此尚且沒有做出過評價。
此時要爲用戶Alice推薦一些可能喜歡的音樂步下:
1.尋找與Alice“品味”最接近的用戶
  自然描述
  這裏的“品味”相近反應到數字上就是打分接近。比如表中,Alice對All About That Bass和Habits這兩首歌有着極高的評價(分別爲4分和5分),但是不喜歡Bang Bang;通過觀察不難發現Bob對All About That Bass和Habits也表示相當的喜歡(分別爲5分和4分),但對Bang Bang評價較低(僅爲2分)。因此不難發現,實際上Alice和Bob的品味是較爲接近的,Bob就是Alice的最近鄰用戶
  數學模型
  當然,當用戶多起來的時候,我們不可能用肉眼找到Alice的鄰居用戶,所以要建立數學模型讓算法自動尋找Alice的鄰居用戶。實際上有很多的方法來衡量兩個用戶的“品味”是否相近。如果把上面表格中的每一行看作是一個向量,這個向量就用來表示用戶喜好,那麼就可以用多種方法來衡量兩個用戶喜好的相似度,如餘弦相似度、皮爾遜相似度等,在這裏只簡單介紹一種:
  餘弦相似度:
  
  其中Cos(u1,u2)就表示用戶u1與用戶u2的相似度;
  R就是評價矩陣,Ru1,y表示用戶u1對音樂y的評分,Ru2,y表示用戶u2對音樂y的評分;
  分子中的y表示用戶u1與用戶u2評價過的音樂的交集;
  分母中的y則表示用戶u1與u2各自的評分集合;
 
2.利用Alice的最近鄰用戶預測Alice的打分值
  我們可以遍歷所有用戶,Alice與每個人都計算出一個相似度,隨後對相似度進行排序,選擇前10個相似度最高的用戶作爲Alice的最近鄰用戶。用這10個最近鄰用戶的評分數據來給Alice進行推薦,在介紹推薦算法之前,首先要提一下這個公式:
  其中,Predict(u,i)就表示用戶u對音樂i的打分預測值;
  U就是用戶u的最近鄰用戶集合;
  R就是評價矩陣;
 
3.向Alice推薦音樂!

  將第二步得到的一些Alice從未聽過的音樂的預測分值進行排序,選擇前10個分值最高的音樂推薦給Alice,大功告成!

 

由於是初次結束推薦算法,所以文中難免有錯誤,歡迎大家指正~我也會再抽時間更新一些關於推薦算法的文章~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章