1. 程式人生 > >論文筆記|The Wisdom of The Few

論文筆記|The Wisdom of The Few

今天讀了The Wisdom of the Few這篇文章,這裡稍作整理。
在推薦系統中,最經典的莫過於協同過濾演算法,分為基於使用者的協同過濾演算法userCF與基於商品的協同過濾演算法itemCF,本質上為尋找與你最相近的使用者購買的商品或者與你購買過的商品最相近的商品。這兩種演算法首先都需要建立使用者與商品的關係矩陣,值為使用者對商品的評價打分或者0/1表示是否使用者與商品有過購買等行為。在實際應用場景中,關係矩陣存在高維、稀疏的特性,在進行計算推薦結果時,需要解決高維稀疏向量之間的相似度並進行排序,存在較大的運算複雜度。另一方面,針對冷啟動問題,在新使用者加入時,如何進行合理的推薦。與根據其他使用者進行推薦的思路不同,本文提出了一種根據與“專家”行為相似度進行推薦的思路。在這裡,“專家”的定義為在特定領域給出可靠、一致評分的人。
文章首先對比了兩個資料集,一個是來自Netflix的普通使用者評分資料集,一個是來自網上150個影評專家的評分資料。對比CDF曲線發現,專家給出的評分更加稠密(每位專家觀影量較多),而普通使用者資料集更大。另外,每個專家的評分數量、每部電影的專家評分數量更加均勻,相比之下普通使用者資料集可能存在熱門影片的評分遠比冷門影片多的情況。對比標準差發現,專家們對同一部電影的評分相對一致,標準差較小(大概在一定程度上表明惡意評分等現象的影響較小),存在更少的噪聲。
本文中對比了userCF與expertCF的演算法效果,包括評分預測的精確度(平均絕對誤差)

TopN推薦結果的precision。相似度的計算方式採取的是一種餘弦相似度的變形
s i m ( a , b )
= ( r a i
r b i )
r a i 2 r b i 2
2 N a b N a + N b sim(a,b)=\frac{\sum{(r_{ai}r_{bi})}}{\sqrt{\sum{r_{ai}^{2}}}\sqrt{\sum{r_{bi}^{2}}}}\frac{2N_{a\cup b}}{N_a+N_b}

可以看出,這種相似度的左邊部分為餘弦相似度,右邊部分近似於Jaccard相似度。
首先,計算使用者與所有專家向量的相似度,設定閾值 δ \delta ,找出相似度超過閾值的專家構成集合 E E' ,針對使用者 a a 對某個物品 i i 的評分預測,需要從 E E' 中選取對該物品進行過評分的專家構成集合 E " E" 。之後,若集合 E " E" 元素個數少於設定閾值 τ \tau ,則直接將所有專家的評分的平均值作為該使用者對該商品的評分估計值,否則,計算方法為
r a i = σ u + ( r e i σ e ) s i m ( e , a ) s i m ( e , a ) r_{ai}=\sigma_{u}+\frac{\sum(r_{ei}-\sigma_{e})sim(e,a)}{\sum sim(e,a)}
在這裡, δ \delta τ \tau 是需要根據具體情況調節的引數。
之後,論文對比了三種方法的實際結果,一種是所有專家評分的平均值,一種是expertCF,一種是普通的userCF。採用5折交叉驗證的方法,兩種CF方法採用相同的引數。對比之下,對於平均誤差,直接取平均的方式精度最低,expertCF的誤差稍高於userCF,但expertCF的覆蓋率(指資料集中涉及到運算的專家、普通使用者)較高。而對於topN推薦結果,這個問題顯然為二分類問題,採用precision作為衡量標準。計算結果表明,userCF的精確度稍高,適當降低正負樣本的閾值至3後,兩種演算法精確度大致相同。
而在實際應用場景中,並不是簡單的平均誤差低或者topN精度高就代表演算法效果好,在冷啟動場景即使用者資料缺乏時,資料集不完善,如何更加合理的推薦商品才是關鍵。本文進行了實際的測試,這也是本文突出的地方。參與實驗的人員有57名,將500000部來自Netflix的影片分成10份,每個實驗人員從10份中各自隨機抽樣10部影片構成共100部影片進行評分,構成實驗資料。之後,分別採用上述三種方法和隨機推薦共4種方法構建推薦列表,由實驗人員對四份推薦列表的總體質量、是否包括使用者喜歡的物品、是否包括使用者不喜歡的物品、是否包括令人驚訝的物品(very good)進行打分,統計結果表明expertCF表現更優。
總結來講,本文提出的expertCF思路(更換資料集的想法)一定程度上解決了資料稀疏的問題,降低了噪聲和惡意評分的影響、緩解了冷啟動資料集不完整的問題、增強了可擴充套件性(僅需更新物品維度、增加專家對新物品評分即可)。