一财搁、前言
這篇論文據(jù)說是豆瓣阿穩(wěn)在介紹豆瓣猜的時候極力推薦過這篇論文蘸炸,豆瓣猜也充分應(yīng)用了這篇論文中提出的算法。
1.1 摘要
最近鄰的協(xié)同過濾算法 (Nearest-neighbor collaborative filtering ) 生成的推薦系統(tǒng)已經(jīng)取得很好的成果尖奔。但依舊存在以下 3 個缺點:
- 對數(shù)據(jù)稀疏性和噪音的處理
- 冷啟動問題
- 可擴展性差
論文提出一種新方法搭儒,一種傳統(tǒng)協(xié)同過濾算法的變形:基于專家建議 (based on expert opinions) 的推薦系統(tǒng),簡單概括就是「使用一組獨立提茁、數(shù)據(jù)量較少但可靠的專家數(shù)據(jù)集來計算預(yù)測淹禾,專家的建議是根據(jù)它們與用戶的相似性進行加權(quán)」。這方法解決了上述的傳統(tǒng)協(xié)同過濾算法的缺點茴扁。
最后铃岔,實驗和實踐證明基于專家建議的推薦系統(tǒng)效果不錯,用戶喜歡峭火。
關(guān)鍵字:最近鄰的協(xié)同過濾毁习、基于專家建議的協(xié)同過濾
1.2 論文主要內(nèi)容介紹
協(xié)同過濾(下面簡稱為 CF)是協(xié)作的推薦系統(tǒng),在上一篇文章介紹過 CF 的推薦思想:「推薦給你的項目將會是與你相似度較高的用戶過去所喜歡的項目」卖丸,可以理解為 CF 是基于用戶間的相似度推薦纺且。例如,最近鄰算法就是為每個用戶找到許多相似的用戶稍浆。
但是载碌,「用戶間的相似度如何有效計算」就是一個難點。它受限于數(shù)據(jù)稀疏和噪聲的影響衅枫,同時因為用戶數(shù)量龐大導(dǎo)致計算成本難度很高〖尥В現(xiàn)有基于用戶顯式反饋的 CF 算法中的很大一部分誤差是來源于用戶顯式反饋數(shù)據(jù)的噪聲。
因此弦撩,為了降低噪聲的影響步咪,我們使用具有噪聲較少的某領(lǐng)域?qū)<业姆答亖斫⑼扑]系統(tǒng)。
專家的定義「一個在特定領(lǐng)域中能給出可靠益楼、經(jīng)過深思熟慮以及一致評分的人」
引入專家建議的目標不是提高 CF 準確度歧斟,而是:
- 研究如何通過使用一小組用戶(即專家)來預(yù)測大量用戶的偏好;
- 了解獨立和不相關(guān)的數(shù)據(jù)集產(chǎn)生推薦的可能性;
- 分析專業(yè)評估者是否是普通用戶的良好預(yù)測者;
- 討論這種方法如何解決傳統(tǒng) CF 中的一些缺點
論文主要內(nèi)容結(jié)構(gòu):
- 兩個數(shù)據(jù)集的收集與對比:一個是來自 Netflix 的用戶評分數(shù)據(jù)集,一個是來自網(wǎng)上超過 150 個電影評審專家的評分數(shù)據(jù)偏形;
- 設(shè)計一個基于專家建議的預(yù)測個性化用戶的評分;
- 利用預(yù)測準確度和推薦列表的精確度來評估基于專家建議的推薦系統(tǒng)觉鼻;
- 利用實驗驗證基于專家建議的推薦系統(tǒng)的真實性能
二俊扭、兩個數(shù)據(jù)集的收集與對比
兩個數(shù)據(jù)集分別是一個是來自 Netflix 的用戶評分數(shù)據(jù)集,一個是來自網(wǎng)上超過 150 個電影評審專家的評分數(shù)據(jù)坠陈。來自 Netflix 的用戶評分數(shù)據(jù)集是比較好爬取得到萨惑。但是專家評分數(shù)據(jù)就比較難爬取捐康。
2.1 挖掘?qū)<以u分數(shù)據(jù)
- 從可靠來源獲得的項目評價,并使用評分推理模型或自動檢測專家模式(沒懂)
- 某些領(lǐng)域已經(jīng)有專門的專家評價的網(wǎng)站庸蔼,如電影領(lǐng)域解总、書籍領(lǐng)域等等,這樣就可以直接爬取姐仅。(論文選用這種方法)
當然花枫,還有其他方法爬取專家評分數(shù)據(jù)。但論文的主要內(nèi)容不是講解如何爬取專家評分數(shù)據(jù)掏膏,而是使用這些數(shù)據(jù)量不大的專家評分數(shù)據(jù)去預(yù)測普遍用戶的評分劳翰。
2.2 兩個數(shù)據(jù)集分析:用戶與專家
2.2.1 必要知識:CDF 曲線
定義很簡單:對于所有實數(shù) x,累計分布函數(shù)(CDF)等于所有小于等于 x 的值出現(xiàn)概率之和馒疹,即
一般佳簸,CDF 曲線長這樣:
2.2.2 利用 CDF 分析數(shù)據(jù)集分布情況
論文中使用的數(shù)據(jù)集情況:
- 已知用戶數(shù)據(jù)集比專家數(shù)據(jù)集大得多。專家數(shù)據(jù)集一共選取了 169名專家颖变;電影數(shù)量大約在 8,000 左右
- 用戶數(shù)據(jù)集的稀疏系數(shù)大約為0.01生均,意味著用戶-電影矩陣中只有 1% 的位置是非零值。而專家-電影矩陣非空值大約100,000個腥刹,產(chǎn)生的稀疏系數(shù)為0.07马胧。
PS: 通常專家數(shù)據(jù)集比用戶數(shù)據(jù)集小得多。
a. 評分數(shù)量的分布
針對上圖簡單分析:
- 專家-電影矩陣的稀疏程度低于用戶-電影矩陣的稀疏程度肛走,即專家數(shù)據(jù)集更完整(參照上右圖總結(jié) 1)
- 同時每個專家的評分數(shù)量以及每部電影的專家評分數(shù)量的分布更加均勻漓雅。
b. 評分平均分的分布
針對上圖簡單分析:
- 雖然專家的評分平均分數(shù)相當比較集中(右圖),但是對于每部電影專家評分差異性大于用戶評分差異性(左圖)朽色。原因可能是無論專家是否喜歡這電影邻吞,專家都會客觀觀看與評價電影,而用戶往往傾向先選擇評價好的電影觀看與評價葫男。
- 專家給出了更多的高分電影抱冷。專家似乎對優(yōu)秀電影的看法是一致的。
c. 評分標準差的分布
針對上圖簡單分析:
- 專家對每部電影的整體標準差較低(參考左圖)梢褐,對一部電影的專家們評分比較相似旺遮,專家觀點較一致;
- 每個專家的標準差低于用戶之間的標準差盈咳;即用戶評分波動大耿眉,反映用戶對電影評分主觀色彩更明顯鱼响,而專家評分波動小鸣剪。
2.3 小結(jié):兩個數(shù)據(jù)集的區(qū)別
上述三張圖的分析目標是讓我們了解到用戶集和專家集數(shù)據(jù)的較大的區(qū)別。總結(jié)以下幾點:
- 用戶數(shù)據(jù)集比專家數(shù)據(jù)集更加大且更加稀疏筐骇;
- 專家數(shù)據(jù)集比用戶數(shù)據(jù)集更完整:專家會對所有類別的電影進行客觀評分债鸡,而用戶往往傾向先選擇評價好的電影觀看與評價;
- 專家數(shù)據(jù)集比用戶數(shù)據(jù)集噪聲更蓄跷场:比如用戶的評分往往存在主觀因素厌均;
- 專家對電影評分具有一致性;
三告唆、基于專家建議的 CF 算法
傳統(tǒng)的 CF 方法使用 kNN 算法基于找 k 個最近鄰來預(yù)測用戶評分棺弊,其中 k 個最近鄰可以是基于用戶的或者基于項目的 。這里悔详,我們選用基于用戶的 kNN 的 CF 方法镊屎,因為它對專家數(shù)據(jù)的透明適用性。方法步驟如下:
- 填充用戶-電影矩陣茄螃;
- 根據(jù)預(yù)先定義的相似函數(shù)計算每一對用戶之間的相似度缝驳。
這里,我們使用的相似函數(shù)是余弦相似度的一個變種:
而論文提出的方法是基于專家建議的 CF 推薦系統(tǒng)归苍。因此用狱,我們計算不是普通用戶間的相似度,而是計算用戶與專家間的相似度拼弃。論文采用的方法與Ma等人的鄰域選擇方法密切相關(guān)夏伊。
基于專家建議的 CF 推薦系統(tǒng)構(gòu)建的方法的步驟如下:
- 先找出與給定用戶相似度超過某一閥值 的專家集合
- 預(yù)測給定用戶 u 對項目 i 的評分
PS:待修改之處: 是不是寫錯了,應(yīng)該是 吻氧?用 好處在于應(yīng)對新用戶進入
方法參數(shù)有兩個: 與 這兩個閥值溺忧。這兩參數(shù)的最佳設(shè)置取決于數(shù)據(jù)集和應(yīng)用程序。注意盯孙,這兩個參數(shù)在傳統(tǒng) Neighbor-CF 算法也是存在的鲁森。
四、標準 CF 算法和基于專家建議的 CF 算法結(jié)果比較
下面用三種推薦系統(tǒng)振惰,并對他們的結(jié)果進行比較:
- Critics' Choice:計算每個電影在所有專家評分的平均分歌溉,取平均分高的推薦。作為最差情況的基線度量骑晶。
- 基于專家建議的 CF:我們用 169 個專家數(shù)據(jù)來預(yù)測 10,000 個用戶評分痛垛。其中閥值
- Standard-CF:傳統(tǒng)的 CF 算法(Neighbor-CF,基于用戶最近鄰的 CF)桶蛔,不使用專家數(shù)據(jù)集匙头。其中閥值
與此同時,我們采用交叉驗證的方法仔雷,將用戶數(shù)據(jù)集通過隨機抽樣劃分為 80% 的訓(xùn)練數(shù)據(jù)與 20% 的測試數(shù)據(jù)并進行 5 次交叉驗證乾胶,取 5 次交叉驗證的平均值抖剿。
4.1 平均誤差的對比
簡單分析一下:
- 相對于 Critics Choice 而言,基于專家建議的 CF 算法的準確度有顯著地提高识窿;
- 基于專家建議的 CF 誤差大于傳統(tǒng)的 Neighbor-CF 的誤差,但相差不多脑融,可接受范圍喻频;
- 基于專家建議的 CF 覆蓋率大于傳統(tǒng)的 Neighbor-CF
上面的結(jié)果是固定了基于專家建議的 CF 方法的兩個參數(shù):。下面改變參數(shù)觀察參數(shù)對基于專家建議的 CF 算法中誤差肘迎、覆蓋率兩個指標的影響甥温。
4.2 top-N 推薦的精確度的對比
推薦算法的評估除了平均誤差之外妓布,還可以使用 top-N 推薦列表的精確度衡量姻蚓。
在我們的例子中,我們不是構(gòu)建固定的 N 值得推薦列表匣沼,而是在給定閾值的情況下將項目分類為可推薦或不可推薦:「如果項目的預(yù)測值大于 σ狰挡,我們將其定義為可推薦的項目;反之释涛,則為不可推薦的項目加叁。如果測試集中沒有值得推薦給給定目標用戶的項目, 我們只返回一個空列表唇撬∷埃」
因此,考慮到這個定義窖认,我們將系統(tǒng)評估為二分類問題:
1.對于給定用戶豫柬,計算所有預(yù)測并向用戶顯示大于或等于 σ 的預(yù)測;
2.將預(yù)測可推薦項目對照標簽扑浸,統(tǒng)計 true positive 和 false positive 數(shù)量烧给;
3.使用下面公式計算分類的精確度:
因此,對于愿意接受任何高于平均項目的建議(Critics' Choice method)的用戶首装,基于專家的方法似乎表現(xiàn)得與傳統(tǒng)Neighbor-CF一樣好创夜。
五、用戶研究
盡管誤差和推薦列表精確度是用于 CF 評估的重要指標仙逻,但它們與推薦的實際質(zhì)量的關(guān)系尚不清楚驰吓。因此,我們設(shè)計了一項用戶研究系奉,以進一步驗證我們的發(fā)現(xiàn)檬贰。
使用收集的評級和我們在上述實驗中考慮的8000部電影,我們生成了4個前10個推薦列表缺亮。生成推薦列表的方法有以下 4 種:
- 隨機列表:隨機生成推薦列表;
- Critics Choice:將電影按專家給出的平均評分排序翁涤,找出平均分排前 10 的組成一個推薦列表。 如果兩部電影具有相同的平均值,我們會根據(jù)有多少專家對電影進行評分來對它們進行排名葵礼;
- Neighbor-CF:為每個實驗人員從 Netfilx 用戶數(shù)據(jù)集中找到相似度高的用戶号阿,從實驗人員未評分過而相似的用戶已評分過的電影中,選取評分排前 10 的電影組成推薦列表鸳粉;
- Expert-CF:與(iii)類似扔涧,但使用專家數(shù)據(jù)集而不是 Netflix 用戶數(shù)據(jù)集
其中3,4方法的相似度閥值 與自信閥值 取值一樣:
同時實驗人員有 57 名届谈,年齡范圍在 22 到 47之間枯夜,平均年齡是 31.2 。大約 90%的實驗人員年齡在 22 到 37 之間艰山。79.12% 是男性湖雹。通常,這組實驗人員構(gòu)成對應(yīng)于在線推薦系統(tǒng)應(yīng)用程序中最活躍的組曙搬。
有了推薦列表和合理的實驗人員構(gòu)成后摔吏,我們要求實驗人員評估:
- 推薦列表的總體質(zhì)量;
- 是否包括用戶喜歡的物品 (good)织鲸;
- 是否包括用戶不喜歡的物品 (bad or very bad)舔腾;
- 是否包括令人驚訝的物品 (very good);
目前情況搂擦,我們必須根據(jù)有限的實驗人員反饋生成推薦列表稳诚。 因此,我們的測試條件類似于用戶最近開始使用推薦服務(wù)的真實設(shè)置瀑踢,即我們的結(jié)果可用于評估算法在冷啟動條件下的表現(xiàn)扳还。
PS:圖上只有 34 人進行評分,我估計是剩下 23 人信息太少或者就退出了實驗橱夭。不然少了一半的實驗人員的數(shù)據(jù)有點失真了吧氨距?或者我對圖理解錯了?
最后棘劣,我們進行了方差分析(anova)俏让,以測試四個推薦列表之間的差異是否具有統(tǒng)計顯著性。經(jīng)過一系列操作茬暇,最后論文得出的結(jié)論是專家CF算法產(chǎn)生的參與者滿意度的差異不能歸因于用戶研究的抽樣
六首昔、基于專家建議的 CF 解決的問題
在第 4 部分,可以看到基于專家建議的 CF 的在精確度方面表現(xiàn)不如傳統(tǒng)的 CF 算法糙俗。然而勒奇,我們使用專家數(shù)據(jù)的目標并不是提高預(yù)測精確度的,而是解決傳統(tǒng) CF 推薦系統(tǒng)的一些普遍存在的問題巧骚。
6.1 解決數(shù)據(jù)稀疏問題
一般情況赊颠,用戶-項目矩陣是很稀疏的格二。盡管使用降維算法可以提供幫助,但是用戶數(shù)據(jù)源的噪音與不一致性對預(yù)測影響很大竣蹦。而專家數(shù)據(jù)更完整顶猜、噪音很小并具有很好的一致性,同時專家更有可能評估了大部分的項目(可以回看第 2 部分 用戶與專家數(shù)據(jù)集對比)痘括。最后在第 5 部分中驶兜,通過實例證明在數(shù)據(jù)稀疏情況下,如冷啟動時远寸,基于專家建議的 CF 表現(xiàn)優(yōu)于傳統(tǒng)的 CF 算法。
6.2 降低噪聲和惡意評分的影響
用戶評分數(shù)據(jù)集的噪聲和惡意評分是普遍存在的屠凶,這些會影響預(yù)測精確度的驰后。第 2 部分也講到了專家評分數(shù)據(jù)更加客觀與穩(wěn)定。使用專家評分數(shù)據(jù)有利于降低噪聲和惡意評分矗愧。
6.3 緩解冷啟動問題
在傳統(tǒng) CF 算法中灶芝,新項目的進入,由于缺少評分數(shù)據(jù)唉韭,就很難被推薦夜涕。而專家用戶通常會在知道其存在的情況下對新項目進行評分,從而最大限度地減少項目冷啟動属愤。 此外女器,如我們的用戶研究所示,創(chuàng)建一個不那么稀疏與噪聲較少專家數(shù)據(jù)集比較簡單恨闪,同時還可以改善用戶的冷啟動問題骑祟。
6.4 可擴展性
在有 M 個項目中計算 N 個用戶之間的相似度的時間復(fù)雜度是 剂买。每當新項目或者新用戶加入,更新相似度的成本就非常高丧诺。因此,可擴展性比較差也是傳統(tǒng) CF 算法的缺點⊙俎保現(xiàn)有有很多種解決方法驳阎,如使用 K-means 聚類∧俚伲基于專家建議的 CF 算法也是一種解決方案呵晚。它不需要計算用戶之間的相似度,而是計算用戶和專家之間的相似度远搪,同時專家的數(shù)據(jù)集相比于用戶小很多劣纲。(如例子中 169 專家 vs 50,000 用戶)
總結(jié)
基于專家建議的 CF 推薦算法目的是用少量可靠的專家數(shù)據(jù)集去預(yù)測大量用戶的評分。這就是論文題目 The Wisdom of The Few 的含義谁鳍。
在第 4 部分可見癞季,基于專家建議的 CF 推薦算法在誤差和 top-N 精確度雖不是最好的劫瞳,但能得到較好可接受的結(jié)果。在第 5 部分證明了基于專家建議 CF 算法在實際運用的優(yōu)越性绷柒。而在第 6 部分介紹了基于專家建議的 CF 算法解決了傳統(tǒng)的 CF 算法一些局限性志于。
疑問
- 在第 3 部分中 聯(lián)合評分是什么意思?
- 基于專家建議的 CF 算法第二步驟中废睦,公式中 是不是寫錯了伺绽,應(yīng)該是用戶 a 的評分平均分 ?
還望各位大佬多多指教嗜湃,謝謝