協同過濾是利用集體智慧的一個典型方法。要了解什麼是協同過濾 (collaborative filtering, 簡稱 cf),首先想一個簡單的問題,如果你現在想看個電影,但你不知道具體看哪部,你會怎麼做?大部分的人會問問周圍的朋友,看看最近有什麼好看的電影推薦,而我們一般更傾向于從口味比較類似的朋友那裡得到推薦。這就是協同過濾的核心思想。
協同過濾一般是在海量的使用者中發掘出一小部分和你品位比較類似的,在協同過濾中,這些使用者成為鄰居,然後根據他們喜歡的其他東西組織成一個排序的目錄作為推薦給你。當然其中有一個核心的問題:
如何确定一個使用者是不是和你有相似的品位?
如何将鄰居們的喜好組織成一個排序的目錄?
協同過濾相對于集體智慧而言,它從一定程度上保留了個體的特征,就是你的品位偏好,是以它更多可以作為個性化推薦的算法思想。
mahout提供了2個評估推薦器的名額,查準率和召回率(查全率),這兩個名額是搜尋引擎中經典的度量方法。
相關 不相關
檢索到 a c
未檢索到 b d
a:檢索到的,相關的 (搜到的也想要的)
b:未檢索到的,但是相關的 (沒搜到,然而實際上想要的)
c:檢索到的,但是不相關的 (搜到的但沒用的)
d:未檢索到的,也不相關的 (沒搜到也沒用的)
被檢索到的越多越好,這是追求“查全率”,即a/(a+b),越大越好。
被檢索到的,越相關的越多越好,不相關的越少越好,這是追求“查準率”,即a/(a+c),越大越好。
在大規模資料集合中,這兩個名額是互相制約的。當希望索引出更多的資料的時候,查準率就會下降,當希望索引更準确的時候,會索引更少的資料
基于使用者的協同過濾,通過不同使用者對物品的評分來評測使用者之間的相似性,基于使用者之間的相似性做出推薦。簡單來講就是:給使用者推薦和他興趣相似的其他使用者喜歡的物品。
基于使用者的 cf 的基本思想相當簡單,基于使用者對物品的偏好找到相鄰鄰居使用者,然後将鄰居使用者喜歡的推薦給目前使用者。計算上,就是将一個使用者對所有物品的偏好作為一個向量來計算使用者之間的相似度,找到 k 鄰居後,根據鄰居的相似度權重以及他們對物品的偏好,預測目前使用者沒有偏好的未涉及物品,計算得到一個排序的物品清單作為推薦。下圖 給出了一個例子,對于使用者 a,根據使用者的曆史偏好,這裡隻計算得到一個鄰居 - 使用者 c,然後将使用者 c 喜歡的物品 d 推薦給使用者 a。
基于item的協同過濾,通過使用者對不同item的評分來評測item之間的相似性,基于item之間的相似性做出推薦。簡單來講就是:給使用者推薦和他之前喜歡的物品相似的物品。
基于物品的 cf 的原理和基于使用者的 cf 類似,隻是在計算鄰居時采用物品本身,而不是從使用者的角度,即基于使用者對物品的偏好找到相似的物品,然後根據使用者的曆史偏好,推薦相似的物品給他。從計算的角度看,就是将所有使用者對某個物品的偏好作為一個向量來計算物品之間的相似度,得到物品的相似物品後,根據使用者曆史的偏好預測目前使用者還沒有表示偏好的物品,計算得到一個排序的物品清單作為推薦。下圖 給出了一個例子,對于物品 a,根據所有使用者的曆史偏好,喜歡物品 a 的使用者都喜歡物品 c,得出物品 a 和物品 c 比較相似,而使用者 c 喜歡物品 a,那麼可以推斷出使用者 c 可能也喜歡物品 c。
基于物品的 cf 的基本原理
對于 user cf,推薦的原則是假設使用者會喜歡那些和他有相同喜好的使用者喜歡的東西,但如果一個使用者沒有相同喜好的朋友,那 user cf 的算法的效果就會很差,是以一個使用者對的 cf 算法的适應度是和他有多少共同喜好使用者成正比的。
item cf 算法也有一個基本假設,就是使用者會喜歡和他以前喜歡的東西相似的東西,那麼我們可以計算一個使用者喜歡的物品的自相似度。一個使用者喜歡物品的自相似度大,就說明他喜歡的東西都是比較相似的,也就是說他比較符合 item cf 方法的基本假設,那麼他對 item cf 的适應度自然比較好;反之,如果自相似度小,就說明這個使用者的喜好習慣并不滿足 item cf 方法的基本假設,那麼對于這種使用者,用 item cf 方法做出好的推薦的可能性非常低。
data.txt内容
<a href="https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/" target="_blank">https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/</a>
<a href="http://blog.csdn.net/zhoubl668/article/details/13297663" target="_blank">http://blog.csdn.net/zhoubl668/article/details/13297663</a>