少數人的智慧:基於專家意見的協同過濾
基於最近鄰演算法的協同過濾(nearest-neighbor collaborative filtering)是一種十分成功的推薦方法。然而,這種方法存在一些缺點,比如資料稀疏性、髒資料、冷啟動問題以及可擴充套件性。
本文將介紹一種基於專家意見向用戶推薦內容的新方法,該方法是傳統協同過濾的一種變體,它的不同之處在於: 該方法不再將最鄰近演算法用於使用者評級資料,而是使用一組獨立的專家資料集來計算預測專家意見和使用者之間相似性。該方法能在解決傳統協同過濾問題的同時保持相近的準確性。
0x01 簡介
CF(collaborative filtering)是目前構建推薦系統的主流演算法。CF 演算法假設為了向用戶推薦 Items,可以從過去其他類似使用者的喜好中提取資訊。 例如,最近鄰演算法通過為每個使用者找到許多類似使用者來實現這一目的,這些使用者的畫像隨後可用於預測建議。然而,定義使用者之間的相似性並不是一件容易的事:它受到資料中的稀疏性和噪聲的限制,並且計算量很大。
本文將探討特定領域的專業評估者(即專家)如何預測一般人群的行為。 在最近的工作中,我們發現傳統 CF 演算法中的很大一部分誤差是來自於使用者反饋中的噪聲。 因此,本文的目標是使用噪聲較小的來源(即專家)的反饋來建立推薦系統。
關於專家的定義,我們認為專家是能對特定領域物品給出經過深思熟慮的、一致且可靠評級的人。
0x02 專家協同過濾
傳統 CF 方法
傳統 CF 方法使用 KNN 演算法來預測使用者的評級,該演算法基於最近的 k 個鄰居來計算 user-item 對的預測結果,計算過程既可以是 item-based 也可以是 user-based,本文選擇 user-based (基於使用者的 CF )方法。整個計算流程可以拆解為下面幾個階段:
- 構造 user-item評分矩陣
- 通過預定義的相似度計算方法,計算所有 user-item 對的相似性
- 排序,生成推薦結果
關於相似度的計算方式,我們可以使用餘弦相似度的變體:在餘弦相似度的基礎上加入調整因子,用以調整兩個使用者共同評定的物品數量。計算公式如下圖:
公式中各部分的含義:
- 使用者:a,b
- 物品:i
- user-item 打分:rai,rbi
- 使用者打分的 item 的數量:Na,Nb
- 使用者共同打分的數量:Naub
專家 CF 方法
基於專家意見的協同過濾(後文簡稱 專家 CF )的不同之處在於,它不需要構造 user-item 評分矩陣,而是構建了一個每個使用者和專家集之間的相似性矩陣。
專家 CF 的核心思想是這樣的: 為了預測使用者對特定物品的評級,我們需要找到和給定使用者的相似度大於 δ 的專家。
整個演算法可以分下面幾塊來理解:
一、給定使用者和專家的空間 V 和相似性度量 sim:V×V→R,我們定義一組專家 E = {e1,…,ek}⊆V 和一組使用者 U = {u1 ,…,uN} ⊆ V。 給定一個特定的使用者 u⊆U 和一個值 δ,我們找到專家組 E’⊆E,使得:∀e⊆E’⇒sim(u,e)≥ δ。
二、使用固定閾值 δ 的一個缺點是存在找到很少鄰居的風險;此外,找到的那些可能沒有評定當前專案。 為了解決這個問題,我們將置信度閾值 τ 定義為必須對專案進行評級以信任其預測的最小專家鄰居數量。
三、假設上一步中發現的專家組 E’ 和 物品 i,我們發現 E’ 的子集 E′′ 存在這種關係:∀e ⊆ E′′⇒ rei,其中 rei 專家 e ⊆E’ 對 物品 i 的評級 。
四、經過前面的計算,我們得到了專家組 E′′ = e1e2…en,如果 n 的數量小於 τ,再不返回預測結果,如果 n 的數量大於 τ ,則使用如下計算公式算得使用者和物品的相似度:
0x03 優點
-
資料稀疏性:推薦資料集固有的資料稀疏問題會因為資訊量不足而帶來一些額外的問題,專家收藏的資料稀疏度要比全體使用者收藏的稀疏程度要低,即有更多的可參考的資訊。
-
噪聲評分:無論使用者是有意的還是無意的,資料集裡面難免會存在一些噪聲評分。而專家在這方面則可靠得多,而且個人意見也比較容易保持一致。
-
冷啟動問題:這是專家CF的一大優勢。對於使用者冷啟動,由於資料稀疏性與噪聲問題而造成的問題,在專家CF裡得到了不錯的解決。對於新物品的冷啟動問題,由於專家更具有前瞻性,所以新物品更容易通過專家而進入到推薦池中。
-
可擴充套件性:如果直接使用基於使用者相似度的CF演算法進行推薦,在實際系統中難度是相當大的,因為構造一個使用者相似度矩陣是如此地龐大。而使用量要少得多的專家作為相似度矩陣的一個維度,矩陣的規模則現實得多。
-
隱私:這裡還考慮了這樣的一種可能性,即不需要你把資料傳遞到伺服器,只需要把專家喜好傳遞到客戶端,與你本地的收藏相匹配,然後伺服器給你返回相應的推薦,避免了伺服器記錄你的收藏。
0xFF 總結
本文是論文《The Wisdom of the Few》的閱讀筆記,算是論文一個簡短的總結。
另外,本文略去了論文中關於資料集的介紹以及演算法最終效果評估這兩部分內容,對該部分內容感興趣或者想深入研究原文的可以下載論文閱讀。