【推薦系統(tǒng)】論文筆記 | 基于專家建議的 CF 算法

一财搁、前言

論文:The Wisdom of the Few

這篇論文據(jù)說是豆瓣阿穩(wěn)在介紹豆瓣猜的時候極力推薦過這篇論文蘸炸,豆瓣猜也充分應(yīng)用了這篇論文中提出的算法。

1.1 摘要

最近鄰的協(xié)同過濾算法 (Nearest-neighbor collaborative filtering ) 生成的推薦系統(tǒng)已經(jīng)取得很好的成果尖奔。但依舊存在以下 3 個缺點:

  1. 對數(shù)據(jù)稀疏性和噪音的處理
  2. 冷啟動問題
  3. 可擴展性差

論文提出一種新方法搭儒,一種傳統(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 準確度歧斟,而是:

  1. 研究如何通過使用一小組用戶(即專家)來預(yù)測大量用戶的偏好;
  2. 了解獨立和不相關(guān)的數(shù)據(jù)集產(chǎn)生推薦的可能性;
  3. 分析專業(yè)評估者是否是普通用戶的良好預(yù)測者;
  4. 討論這種方法如何解決傳統(tǒng) CF 中的一些缺點

論文主要內(nèi)容結(jié)構(gòu):

  1. 兩個數(shù)據(jù)集的收集與對比:一個是來自 Netflix 的用戶評分數(shù)據(jù)集,一個是來自網(wǎng)上超過 150 個電影評審專家的評分數(shù)據(jù)偏形;
  2. 設(shè)計一個基于專家建議的預(yù)測個性化用戶的評分;
  3. 利用預(yù)測準確度和推薦列表的精確度來評估基于專家建議的推薦系統(tǒng)觉鼻;
  4. 利用實驗驗證基于專家建議的推薦系統(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ù)

  1. 從可靠來源獲得的項目評價,并使用評分推理模型或自動檢測專家模式(沒懂)
  2. 某些領(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)概率之和馒疹,即F_X(x) = P(X \leq x)

一般佳簸,CDF 曲線長這樣:

CDF 曲線實例

2.2.2 利用 CDF 分析數(shù)據(jù)集分布情況

論文中使用的數(shù)據(jù)集情況:

  1. 已知用戶數(shù)據(jù)集比專家數(shù)據(jù)集大得多。專家數(shù)據(jù)集一共選取了 169名專家颖变;電影數(shù)量大約在 8,000 左右
  2. 用戶數(shù)據(jù)集的稀疏系數(shù)大約為0.01生均,意味著用戶-電影矩陣中只有 1% 的位置是非零值。而專家-電影矩陣非空值大約100,000個腥刹,產(chǎn)生的稀疏系數(shù)為0.07马胧。
用戶-電影矩陣與專家-電影矩陣

PS: 通常專家數(shù)據(jù)集比用戶數(shù)據(jù)集小得多。

a. 評分數(shù)量的分布
評分數(shù)量的分布情況

針對上圖簡單分析:

  1. 專家-電影矩陣的稀疏程度低于用戶-電影矩陣的稀疏程度肛走,即專家數(shù)據(jù)集更完整(參照上右圖總結(jié) 1)
  2. 同時每個專家的評分數(shù)量以及每部電影的專家評分數(shù)量的分布更加均勻漓雅。

b. 評分平均分的分布

評分平均分的分布情況

針對上圖簡單分析:

  1. 雖然專家的評分平均分數(shù)相當比較集中(右圖),但是對于每部電影專家評分差異性大于用戶評分差異性(左圖)朽色。原因可能是無論專家是否喜歡這電影邻吞,專家都會客觀觀看與評價電影,而用戶往往傾向先選擇評價好的電影觀看與評價葫男。
  2. 專家給出了更多的高分電影抱冷。專家似乎對優(yōu)秀電影的看法是一致的。

c. 評分標準差的分布

評分標準差的分布情況

針對上圖簡單分析:

  1. 專家對每部電影的整體標準差較低(參考左圖)梢褐,對一部電影的專家們評分比較相似旺遮,專家觀點較一致;
  2. 每個專家的標準差低于用戶之間的標準差盈咳;即用戶評分波動大耿眉,反映用戶對電影評分主觀色彩更明顯鱼响,而專家評分波動小鸣剪。

2.3 小結(jié):兩個數(shù)據(jù)集的區(qū)別

上述三張圖的分析目標是讓我們了解到用戶集和專家集數(shù)據(jù)的較大的區(qū)別。總結(jié)以下幾點:

  1. 用戶數(shù)據(jù)集比專家數(shù)據(jù)集更加大且更加稀疏筐骇;
  2. 專家數(shù)據(jù)集比用戶數(shù)據(jù)集更完整:專家會對所有類別的電影進行客觀評分债鸡,而用戶往往傾向先選擇評價好的電影觀看與評價;
  3. 專家數(shù)據(jù)集比用戶數(shù)據(jù)集噪聲更蓄跷场:比如用戶的評分往往存在主觀因素厌均;
  4. 專家對電影評分具有一致性;

三告唆、基于專家建議的 CF 算法

傳統(tǒng)的 CF 方法使用 kNN 算法基于找 k 個最近鄰來預(yù)測用戶評分棺弊,其中 k 個最近鄰可以是基于用戶的或者基于項目的 。這里悔详,我們選用基于用戶的 kNN 的 CF 方法镊屎,因為它對專家數(shù)據(jù)的透明適用性。方法步驟如下:

  1. 填充用戶-電影矩陣茄螃;
  2. 根據(jù)預(yù)先定義的相似函數(shù)計算每一對用戶之間的相似度缝驳。

這里,我們使用的相似函數(shù)是余弦相似度的一個變種:

相似函數(shù)

而論文提出的方法是基于專家建議的 CF 推薦系統(tǒng)归苍。因此用狱,我們計算不是普通用戶間的相似度,而是計算用戶與專家間的相似度拼弃。論文采用的方法與Ma等人的鄰域選擇方法密切相關(guān)夏伊。

基于專家建議的 CF 推薦系統(tǒng)構(gòu)建的方法的步驟如下:

  1. 先找出與給定用戶相似度超過某一閥值 \delta 的專家集合
基于專家建議的 CF 算法第一步驟
  1. 預(yù)測給定用戶 u 對項目 i 的評分
基于專家建議的 CF 算法第二步驟

PS:待修改之處:\sigma_u 是不是寫錯了,應(yīng)該是 \sigma_a吻氧?用 \sigma_u 好處在于應(yīng)對新用戶進入

方法參數(shù)有兩個:\delta\tau 這兩個閥值溺忧。這兩參數(shù)的最佳設(shè)置取決于數(shù)據(jù)集和應(yīng)用程序。注意盯孙,這兩個參數(shù)在傳統(tǒng) Neighbor-CF 算法也是存在的鲁森。

四、標準 CF 算法和基于專家建議的 CF 算法結(jié)果比較

下面用三種推薦系統(tǒng)振惰,并對他們的結(jié)果進行比較:

  1. Critics' Choice:計算每個電影在所有專家評分的平均分歌溉,取平均分高的推薦。作為最差情況的基線度量骑晶。
  2. 基于專家建議的 CF:我們用 169 個專家數(shù)據(jù)來預(yù)測 10,000 個用戶評分痛垛。其中閥值 \delta=0.01~and~\tau=10
  3. Standard-CF:傳統(tǒng)的 CF 算法(Neighbor-CF,基于用戶最近鄰的 CF)桶蛔,不使用專家數(shù)據(jù)集匙头。其中閥值 \delta=0.01~and~\tau=10

與此同時,我們采用交叉驗證的方法仔雷,將用戶數(shù)據(jù)集通過隨機抽樣劃分為 80% 的訓(xùn)練數(shù)據(jù)與 20% 的測試數(shù)據(jù)并進行 5 次交叉驗證乾胶,取 5 次交叉驗證的平均值抖剿。

4.1 平均誤差的對比

三種方法產(chǎn)生的推薦結(jié)果

簡單分析一下:

  1. 相對于 Critics Choice 而言,基于專家建議的 CF 算法的準確度有顯著地提高识窿;
  2. 基于專家建議的 CF 誤差大于傳統(tǒng)的 Neighbor-CF 的誤差,但相差不多脑融,可接受范圍喻频;
  3. 基于專家建議的 CF 覆蓋率大于傳統(tǒng)的 Neighbor-CF

上面的結(jié)果是固定了基于專家建議的 CF 方法的兩個參數(shù):\delta,\tau。下面改變參數(shù)觀察參數(shù)對基于專家建議的 CF 算法中誤差肘迎、覆蓋率兩個指標的影響甥温。

閥值 δ、τ 對基于專家建議的 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.使用下面公式計算分類的精確度:
precision = \frac{true~positive} {true~positive+false~positive}

傳統(tǒng)的Neighbor-CF 與基于專家的CF 在精確度的比較

因此,對于愿意接受任何高于平均項目的建議(Critics' Choice method)的用戶首装,基于專家的方法似乎表現(xiàn)得與傳統(tǒng)Neighbor-CF一樣好创夜。

五、用戶研究

盡管誤差和推薦列表精確度是用于 CF 評估的重要指標仙逻,但它們與推薦的實際質(zhì)量的關(guān)系尚不清楚驰吓。因此,我們設(shè)計了一項用戶研究系奉,以進一步驗證我們的發(fā)現(xiàn)檬贰。

使用收集的評級和我們在上述實驗中考慮的8000部電影,我們生成了4個前10個推薦列表缺亮。生成推薦列表的方法有以下 4 種:

  1. 隨機列表:隨機生成推薦列表;
  2. Critics Choice:將電影按專家給出的平均評分排序翁涤,找出平均分排前 10 的組成一個推薦列表。 如果兩部電影具有相同的平均值,我們會根據(jù)有多少專家對電影進行評分來對它們進行排名葵礼;
  3. Neighbor-CF:為每個實驗人員從 Netfilx 用戶數(shù)據(jù)集中找到相似度高的用戶号阿,從實驗人員未評分過而相似的用戶已評分過的電影中,選取評分排前 10 的電影組成推薦列表鸳粉;
  4. Expert-CF:與(iii)類似扔涧,但使用專家數(shù)據(jù)集而不是 Netflix 用戶數(shù)據(jù)集

其中3,4方法的相似度閥值 \delta 與自信閥值 \tau 取值一樣:\delta = 0.01~and~\tau = 10

同時實驗人員有 57 名届谈,年齡范圍在 22 到 47之間枯夜,平均年齡是 31.2 。大約 90%的實驗人員年齡在 22 到 37 之間艰山。79.12% 是男性湖雹。通常,這組實驗人員構(gòu)成對應(yīng)于在線推薦系統(tǒng)應(yīng)用程序中最活躍的組曙搬。

有了推薦列表和合理的實驗人員構(gòu)成后摔吏,我們要求實驗人員評估:

  1. 推薦列表的總體質(zhì)量;
  2. 是否包括用戶喜歡的物品 (good)织鲸;
  3. 是否包括用戶不喜歡的物品 (bad or very bad)舔腾;
  4. 是否包括令人驚訝的物品 (very good);

目前情況搂擦,我們必須根據(jù)有限的實驗人員反饋生成推薦列表稳诚。 因此,我們的測試條件類似于用戶最近開始使用推薦服務(wù)的真實設(shè)置瀑踢,即我們的結(jié)果可用于評估算法在冷啟動條件下的表現(xiàn)扳还。

實驗人員對4種方法生成的推薦列表進行反饋

PS:圖上只有 34 人進行評分,我估計是剩下 23 人信息太少或者就退出了實驗橱夭。不然少了一半的實驗人員的數(shù)據(jù)有點失真了吧氨距?或者我對圖理解錯了?

實驗人員對4種方法生成的推薦列表的滿意度與不滿意度反饋

最后棘劣,我們進行了方差分析(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ù)雜度是 O(N^2 M)剂买。每當新項目或者新用戶加入,更新相似度的成本就非常高丧诺。因此,可擴展性比較差也是傳統(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 算法一些局限性志于。

總結(jié)

疑問

  1. 在第 3 部分中 N_{a \cup b} 聯(lián)合評分是什么意思?
  2. 基于專家建議的 CF 算法第二步驟中废睦,公式中 \sigma_u 是不是寫錯了伺绽,應(yīng)該是用戶 a 的評分平均分 \sigma_a

還望各位大佬多多指教嗜湃,謝謝

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奈应,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子购披,更是在濱河造成了極大的恐慌杖挣,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刚陡,死亡現(xiàn)場離奇詭異惩妇,居然都是意外死亡,警方通過查閱死者的電腦和手機筐乳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門歌殃,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蝙云,你說我怎么就攤上這事氓皱。” “怎么了贮懈?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵匀泊,是天一觀的道長。 經(jīng)常有香客問我朵你,道長各聘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任抡医,我火速辦了婚禮躲因,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘忌傻。我一直安慰自己大脉,他們只是感情好,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布水孩。 她就那樣靜靜地躺著镰矿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪俘种。 梳的紋絲不亂的頭發(fā)上秤标,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天绝淡,我揣著相機與錄音,去河邊找鬼苍姜。 笑死牢酵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的衙猪。 我是一名探鬼主播馍乙,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼垫释!你這毒婦竟也來了丝格?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤棵譬,失蹤者是張志新(化名)和其女友劉穎铁追,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茫船,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年扭屁,在試婚紗的時候發(fā)現(xiàn)自己被綠了算谈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡料滥,死狀恐怖然眼,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情葵腹,我是刑警寧澤高每,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站践宴,受9級特大地震影響鲸匿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜阻肩,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一带欢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧烤惊,春花似錦乔煞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雄右,卻和暖如春空骚,著一層夾襖步出監(jiān)牢的瞬間纺讲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工府怯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刻诊,地道東北人。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓牺丙,卻偏偏與公主長得像则涯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冲簿,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容