少數人的智慧

在寫完《Quora是如何作推薦的》一文以後,我在思考一個問題:伴隨着Quora、知乎這樣的知識分享型社區的興起,涌現了一大批各個領域的專家用戶,這會對推薦系統帶來哪些可能的變化呢?剛好今天在讀馬爾科姆·格拉德威爾的《眨眼之間》這本書的時候,看到了這麼一段,html

當咱們在某一方面修煉到登堂入室的程度時,咱們的品味會變得愈發專業精深、愈發讓外行難以理解。也就是說,只有專家才能對本身的反饋信息和見解負起責任。算法

我突然想起來我在09年寫過一篇blog《The Wisdom of the Few》,正好和這個事情特別相關。《The Wisdom of the Few》是來自Telefonica Research的一篇論文,《The Wisdom of the Few: A Collaborative Filtering Approach Based on Expert Opinions from the Web》[1]。我當年是在SIGIR'09裏面發現的,以爲頗有意思。這篇論文的核心內容很是簡單,主要方式是對比分析,結論也挺中肯的。服務器

首先定義「專家/Expert」,他們必須是這樣的一羣人:在一個特定的領域內,能對該領域內的條目給出深思熟慮的、一致的、可靠的評價(打分)。[2]dom

1)經過對 Netflix Users vs. Experts(做者本身收集的)的數據進行對比分析機器學習

  • Number of Ratings and Data Sparsity學習

  • Average Rating Distribution網站

  • Rating Standard Deviation (std)spa

得出結論認爲,3d

  • 專家打分數據的稀疏性要好得多。rest

  • 專家的打分對象更全面,好的壞的,流行的冷門的,都會涉及到;而不像大衆打分會傾向於流行的和本身喜歡的。

  • 對好電影的評價專家們更趨一致。

  • 對於每單個電影的評價,專家們的分歧也相對更小

  • 對於每單個用戶和專家的對比,專家給出的打分更爲穩定

2)進行 Nearest-Neighbor CF vs. Expert CF 的推薦效果對比,主要評價「準確性/MAD」和「覆蓋率/Coverage」兩個指標,

  • 推薦準確性,NN-CF 差很少比 Expert-CF 要好 10%。

  • 推薦覆蓋率,Expert-CF 差很少比 NN-CF 要高 10%。

  • 有意思的是上面的右圖,用戶分佈與推薦準確性的關係,

    • 在 MAE < 0.5 時,兩種方法覆蓋的用戶數差很少

    • 差很少在 MAE = 0.5 時,NN-CF 比 Expert-CF 多 10%

    • 以後 MAE 在 [0.5, 1.0] 區間內時,NN-CF 與 Expert-CF 幾乎平行

    • 這個意思是說,與 Expert-CF 相比,NN-CF 僅對少部分用戶(MAE<0.5的用戶,佔總數的10%)有明顯優點。而這部分用戶又能夠認爲是可預測性很高的用戶,Expert-CF 比較容易利用其餘方法提升效果。

  • 結論是,Expert-CF 大多數狀況下與 NN-CF 效果至關。

3)進行 Nearest-Neighbor CF vs Expert CF 的推薦效果的用戶調研,推薦系統最終是爲用戶服務的,用戶說好纔是真的好!

  • Random,隨機生成的推薦列表。

  • Critics' Choice,Experts 平均打分比較高的影片組成的推薦列表。

  • kNN-CF/Experts-CF,文中兩種算法生成的推薦列表。

  • 左圖是用戶滿意度,調查推薦列表裏是否包含用戶喜歡的影片。兩個評價指標,包含喜歡影片的多少,及是否有驚喜。

  • 右圖是用戶反感度,調查推薦列表裏是否包含用戶討厭的影評。兩個評價指標,包含討厭影片的多少,及討厭程度。推薦系統裏面有句名言,「錯誤的推薦還不如不推薦」。

  • 結論是,Experts-CF 的用戶滿意度更高。固然了,這個結論的現實性是有一些爭議的,好比,參與用戶的數量不多,且大多數是男性用戶。不過論文做者在這方面都有提到,比較中肯。

證實了 Expert-CF 的可用性以後,吸引人的是這個方法相對傳統CF方法,可以帶來的好處。

一、Data Sparsity,數據稀疏性

專家的打分數據數據一般涵蓋面更廣,使用這個數據做推薦,解決了傳統 CF 的數據稀疏問題。

二、Noise and Malicious Ratings,噪音及惡意打分

專家的打分一般更加認真或是專業,解決了用戶不當心打錯分及惡意搗亂的問題。

三、Cold Start Problem,冷啓動問題

專家一般更加關注本身領域內的新事物,並可以更快地給出評價。

四、Scalability,可擴展性

對於 (N-User, M-Item) 的推薦問題,傳統 NN-CF 的算法複雜度是 O(N2M),計算量很大。而Expert-CF方法能夠大幅度下降計算成本。好比論文裏的數據,169 experts vs. 500, 000 potential neighbors (Netflix database)。

五、Privacy,用戶隱私

如何更好地保護用戶隱私,一直是推薦系統領域的一個熱點問題。好比,基於Expert-CF方法,能夠把一小撮專家打分數據下載到手機上,進行本地計算,而後獲得推薦結果,而避免把過多的數據都存儲在應用服務商的服務器上。

當年我這篇blog發出以後,在推薦圈引起了一些小討論,當年仍是豆瓣算法組小鮮肉如今已經成爲機器學習大牛的阿穩同窗也給出了本身的解讀。[2]

之因此要提出專家CF的算法取代傳統的CF,是基於傳統CF的一些弊病,好比數據的稀疏性,數據噪聲以及計算量的龐大等等,而正是這些數據上的緣由致使傳統CF算法推薦多樣性不足、推薦不許確以及推薦可擴展性不良好等種種問題。這裏提出的專家CF算法目的並不在於在某些數學精度指標上壓倒傳統的CF算法,而希冀能探究以下幾個問題:

  • 一個龐大的用戶集合的偏好是否能夠經過一個比較小的用戶集合的偏好預測出來;

  • 對於一個源數據集來講,另外一個與之不一樣源的、無直接相關的數據集是否具備對它進行推薦的能力;

  • 分析專家的收藏是否能夠用做普通用戶的推薦;

  • 探討專家CF是否能解決傳統CF的一些難題。

看這篇文章,更多的是看文中闡述的思想,雖然這可能並非他們獨創的,但畢竟他們做了一個很好的總結與分析。我一直在思索咱們到底須要什麼樣的推薦,最近我以爲: 至少在大部分的場合,咱們須要的並非與本身類似的用戶的推薦,而是與本身類似的專家的推薦。不管是看書、看電影、買手機、買筆記本,那批「行內人物」的觀點每每是左右咱們決定的主要因素。這個結論在個性化要求相對比較低的中國顯得更爲真實。

在這篇論文裏,做者並無詳細地探討如何從數據中發現一批領域專家,他們挑選的是一批來自從爛番茄網站爬取的現成的電影評論專家。這也是當年使用這個方法的一個難題,去哪裏找到這些各個領域的專家。而現在7年過去了,Quora、知乎、微博、包括各個垂直專業領域的自媒體的崛起,幾乎已經讓這個問題迎刃而解。

相似於SaaS,目前又有個提法叫作「數據即服務」。留個討論,你認同DaaS嗎,和本文的方法結合這裏面可能有什麼機會呢?一塊兒開開腦洞吧。

參考資料:

[1] 

[2] ,阿穩的blog已經訪問不了了,只能放這個轉載了。

相關文章
相關標籤/搜索