協(xié)同過濾的分類
當?shù)玫街付ㄓ脩艋蛘邇?nèi)容的鄰居后,我們就可以利用這些數(shù)據(jù)信息為用戶進行詳細的推薦了。前面提到過,協(xié)同過濾算法可以分成三類:基于用戶的協(xié)同過濾,基于內(nèi)容項的協(xié)同過濾和基于模型的協(xié)同過濾。
1.基于用戶的協(xié)同過濾
基于用戶的協(xié)同過濾(User-based CF)是最早被提出來的算法,是根據(jù)用戶對不同內(nèi)容的喜好程度找到他的鄰居用戶,然后將這些鄰居喜歡的內(nèi)容排序推薦給指定用戶。具體流程是首先利用相似矩陣的行向量,即代表每個用戶對所有內(nèi)容的喜好程度,來計算得出每個用戶間的相似度,然后根據(jù)相似性結(jié)果找出K個最近的鄰居用戶,再根據(jù)鄰居的相似性程度對他們進行加權(quán),利用權(quán)重和他們對內(nèi)容的喜好程度,預測指定用戶可能也會喜好的內(nèi)容,最終得出一個經(jīng)過排序的內(nèi)容列表作為該指定用戶的推薦。Fig 5給出了一個實例,將用戶A作為指定用戶,根據(jù)他的用戶行為,系統(tǒng)可以得出他對不同內(nèi)容項的喜好程度,利用這些信息找到他的鄰居,示例中用戶C即為用戶A的鄰居用戶,所以將用戶C喜好的內(nèi)容D推薦給用戶A。

基于用戶的協(xié)同過濾適用于一些新聞,微博或其他媒體的推薦系統(tǒng),因為對于這些推薦系統(tǒng)來說,內(nèi)容項的數(shù)量是遠遠多于用戶的數(shù)量,而且內(nèi)容更新很快,所以與計算內(nèi)容項間的相似性相比,我們計算用戶間的相似性可以大大地減小計算量。
2.基于內(nèi)容項的協(xié)同過濾
基于內(nèi)容項的協(xié)同過濾(Item-based CF),它與基于用戶的協(xié)同過濾區(qū)別主要在于,它是通過計算內(nèi)容項之間的相似性,而非計算用戶間的相似性來得到指定用戶的推薦列表。具體步驟為首先利用相似矩陣的列向量,即代表所有用戶對內(nèi)容項的喜好程度,來計算得出內(nèi)容項間的相似度,然后利用指定用戶的歷史喜好信息,得出一個排序的相似內(nèi)容項列表作為推薦預測。Fig 6也給出了一個示例,根據(jù)所有用戶的喜好記錄,喜歡內(nèi)容B的用戶大部分也喜歡內(nèi)容D,也就是說內(nèi)容B的鄰居是內(nèi)容D,而指定用戶A喜歡內(nèi)容B,所以根據(jù)基于內(nèi)容項的協(xié)同過濾,我們可以預測用戶A也應該會喜歡內(nèi)容D。

基于內(nèi)容項的協(xié)同過濾適用于電子商務網(wǎng)站,如淘寶,京東,當當網(wǎng)等。因為這些網(wǎng)站的用戶數(shù)量是海量的,而商品內(nèi)容的數(shù)據(jù)相對比較穩(wěn)定,因此計算內(nèi)容項間的相似性可以減小計算量,也不需要頻繁地進行更新。
3.基于模型的協(xié)同過濾
基于模型的協(xié)同過濾(Model-based CF)是目前較為流行的協(xié)同過濾類型,它的思想和前面兩個類型有較大的區(qū)別?;谟脩舻膮f(xié)同過濾和基于內(nèi)容項的協(xié)同過濾都屬于基于記憶(Memory based)的協(xié)同過濾算法,它們難以處理大量的數(shù)據(jù)集,所以不適用于一些對時效性要求高的應用。而基于模型的協(xié)同過濾可以勝任該任務,它可以利用用戶和喜好內(nèi)容間的歷史數(shù)據(jù),預測出用戶和未知內(nèi)容之間的喜好關(guān)系,最后找出喜好程度最高的內(nèi)容推薦給指定用戶。基于模型的協(xié)同過濾主要利用了機器學習的方法,對樣本的用戶喜好數(shù)據(jù)進行建模,并將訓練好的模型來預測未知的用戶喜好信息,最終得出推薦。它的復雜度一般較高,因為對模型進行訓練和評估需要花費大量的時間和精力。