少數人的智慧

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

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

我忽然想起來我在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]。我當年是在SIGIR09裡面發現的,覺得很有意思。這篇論文的核心內容非常簡單,主要方式是對比分析,結論也挺中肯的。

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

1)通過對 Netflix Users vs. Experts(作者自己收集的)的數據進行對比分析

  • Number of Ratings and Data Sparsity

  • Average Rating Distribution

  • Rating Standard Deviation (std)

得出結論認為,

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

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

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

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

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

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方法,能夠帶來的好處。

1、Data Sparsity,數據稀疏性

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

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

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

3、Cold Start Problem,冷啟動問題

專家通常更加關注自己領域內的新事物,並能夠更快地給出評價。

4、Scalability,可擴展性

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

5、Privacy,用戶隱私

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

當年我這篇blog發出之後,在推薦圈引發了一些小討論,當年還是豆瓣演算法組小鮮肉現在已經成為機器學習大牛的阿穩同學也給出了自己的解讀。[2]

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

  • 一個龐大的用戶集合的偏好是否可以通過一個比較小的用戶集合的偏好預測出來;

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

  • 分析專家的收藏是否可以用作普通用戶的推薦;

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

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

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

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

參考資料:

[1] nuriaoliver.com/recsys/

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

推薦關注微信公眾號【ResysChina】,中國最專業的個性化推薦技術與產品社區。更多內容會首發在微信公眾號。

猜你喜歡:「基於Deep Learning的中文分詞嘗試」

推薦閱讀:

[論文學習]Deep Learning Based Recommendation: A Survey
關於評分預測和TopN推薦的討論?
如何學習推薦系統?
為什麼感覺「今日頭條」推薦的內容很不準,而且好像也沒見怎麼改善過?
有哪些解決推薦系統中冷啟動的思路和方法?

TAG:推荐系统 | 机器学习 | 个性化推荐 |