協同過濾的分類
當得到指定用戶或者內容的鄰居后,我們就可以利用這些數據信息為用戶進行詳細的推薦了。前面提到過,協同過濾算法可以分成三類:基于用戶的協同過濾,基于內容項的協同過濾和基于模型的協同過濾。
1.基于用戶的協同過濾
基于用戶的協同過濾(User-based CF)是最早被提出來的算法,是根據用戶對不同內容的喜好程度找到他的鄰居用戶,然后將這些鄰居喜歡的內容排序推薦給指定用戶。具體流程是首先利用相似矩陣的行向量,即代表每個用戶對所有內容的喜好程度,來計算得出每個用戶間的相似度,然后根據相似性結果找出K個最近的鄰居用戶,再根據鄰居的相似性程度對他們進行加權,利用權重和他們對內容的喜好程度,預測指定用戶可能也會喜好的內容,最終得出一個經過排序的內容列表作為該指定用戶的推薦。Fig 5給出了一個實例,將用戶A作為指定用戶,根據他的用戶行為,系統可以得出他對不同內容項的喜好程度,利用這些信息找到他的鄰居,示例中用戶C即為用戶A的鄰居用戶,所以將用戶C喜好的內容D推薦給用戶A。
基于用戶的協同過濾適用于一些新聞,微博或其他媒體的推薦系統,因為對于這些推薦系統來說,內容項的數量是遠遠多于用戶的數量,而且內容更新很快,所以與計算內容項間的相似性相比,我們計算用戶間的相似性可以大大地減小計算量。
2.基于內容項的協同過濾
基于內容項的協同過濾(Item-based CF),它與基于用戶的協同過濾區別主要在于,它是通過計算內容項之間的相似性,而非計算用戶間的相似性來得到指定用戶的推薦列表。具體步驟為首先利用相似矩陣的列向量,即代表所有用戶對內容項的喜好程度,來計算得出內容項間的相似度,然后利用指定用戶的歷史喜好信息,得出一個排序的相似內容項列表作為推薦預測。Fig 6也給出了一個示例,根據所有用戶的喜好記錄,喜歡內容B的用戶大部分也喜歡內容D,也就是說內容B的鄰居是內容D,而指定用戶A喜歡內容B,所以根據基于內容項的協同過濾,我們可以預測用戶A也應該會喜歡內容D。
基于內容項的協同過濾適用于電子商務網站,如淘寶,京東,當當網等。因為這些網站的用戶數量是海量的,而商品內容的數據相對比較穩定,因此計算內容項間的相似性可以減小計算量,也不需要頻繁地進行更新。
3.基于模型的協同過濾
基于模型的協同過濾(Model-based CF)是目前較為流行的協同過濾類型,它的思想和前面兩個類型有較大的區別?;谟脩舻膮f同過濾和基于內容項的協同過濾都屬于基于記憶(Memory based)的協同過濾算法,它們難以處理大量的數據集,所以不適用于一些對時效性要求高的應用。而基于模型的協同過濾可以勝任該任務,它可以利用用戶和喜好內容間的歷史數據,預測出用戶和未知內容之間的喜好關系,最后找出喜好程度最高的內容推薦給指定用戶。基于模型的協同過濾主要利用了機器學習的方法,對樣本的用戶喜好數據進行建模,并將訓練好的模型來預測未知的用戶喜好信息,最終得出推薦。它的復雜度一般較高,因為對模型進行訓練和評估需要花費大量的時間和精力。