如何解決推薦系統中的冷啓動問題?

當新用戶或新項目進入內容平臺時,就會出現冷啓動(Cold Start)問題。

以協同過濾這樣的經典推薦系統爲例,假設每個用戶或項目都有評級,這樣我們就可以推斷出類似用戶/項目的評級,即使這些評級沒辦法調用。但是,對於新進入的用戶/項目,實現這一點很困難,因爲我們沒有相關的瀏覽、點擊或下載等數據,也就沒辦法使用矩陣分解技術來“填補空白”。

不過,研究人員已經提出了各種方法來解決冷啓動問題。在這篇文章中,我們會簡單介紹一些解決推薦系統中冷啓動問題的方法,至於這些方法在實踐工作中是否奏效,尚無定論。

精華版

•基於代表性:使用有代表性的項目和用戶子集;

•基於內容:使用諸如文本、社交網絡等的輔助信息;

•老虎機:考慮新項目中的EE問題(Exploration&Exploitation);

•深度學習:使用黑盒子。

詳細版

基於代表性

如果沒有足夠的用戶和項目信息,我們可以更多地依賴那些能夠“代表”項目和用戶的用戶。這就是基於代表性的方法背後的哲學。

代表性用戶的興趣偏好線性組合能與其他用戶的無限接近。例如,基於代表性的矩陣因子分解(RBMF,Representative Based Matrix Factorization),其實是矩陣因子分解方法的擴展,其附加約束條件是m個項應該由k個項的線性組合表示,如下面的目標函數所示:
如何解決推薦系統中的冷啓動問題?

有了這個附加約束條件,就有了類似於標準MF方法的重建誤差。當新用戶進入平臺時,要求新用戶對這k個項進行評級,並用它來推斷其他m-k項的評級。這種方法通過讓用戶對某些項目進行額外評級,從而改進對新用戶的推薦。經過改進的RBMF只需要一部分新用戶對這些項目評級,而不是所有的新用戶。

優點

•用少數代表性用戶來表達新用戶,更具可解釋性;

•是MF的簡單擴展。

缺點

•需要改進UI和前端邏輯,以要求用戶對代表項進行評級。

基於內容

在推薦系統中還有許多未充分利用的輔助信息。

近年來,電子商務和社交網絡之間的界限越來越模糊。許多電子商務網站支持社交登錄機制,用戶可以使用他們的社交網絡賬號登錄,例如微信、微博、QQ帳戶。用戶還可以在微博上直接分享他們購買的新產品,其中包含指向產品網頁的鏈接。
如何解決推薦系統中的冷啓動問題?

那如何在CF方法中處理這些內容呢?經典的CF方法以重建誤差爲目標,基本上是矩陣填充,從而很難利用這些輔助信息。因此,研究人員提出了將矩陣重建目標和基於內容的目標相結合的混合方法。這些方法並非特定的冷啓動,感興趣的讀者可以進一步探討。

優點

•可以包含各種內容信息;

•是MF的簡單擴展。

缺點

•通過深層方法解決,具有不同的缺點,目標函數變得雜亂無章。

•出現大量的功能工程,需要考慮是否在數據庫中插入用戶/項目功能。

老虎機問題(Bandit)

冷啓動問題可以重新定義並轉換爲老虎機問題。什麼是老虎機(Bandit)問題?一個典型的例子如下:

一個賭徒,要去搖老虎機,一排老虎機外表一模一樣,但是每個老虎機吐錢的概率可不一樣,他不知道每個老虎機吐錢的概率分佈是什麼,那麼每次該選擇哪個老虎機纔可以做到收益最大化呢?

如何解決推薦系統中的冷啓動問題?
老虎機問題和冷啓動問題又有什麼關係呢?我們可以這樣類比:以電子商務平臺爲例,每天有k個新物品進入平臺,我們可以把這k個項看作是具有不同回報(收入、利潤)的老虎機。但由於它們是新產品,因此無權訪問購買它們的用戶數量。推薦哪些項目就像選擇要用哪臺老虎機一樣。

在老虎機問題上,我們會非常關心EE (exploration vs exploitation)問題。如果發現一個銷量非常好的新商品,我們希望向用的展示的次數也更多(Exploitation);但與此同時,我們還想展示其他沒有展示過的東西,因爲它們有可能比已經展示過的商品(Exploration)更受歡迎。

解決老虎機問題有很多方法:

Epsilon-Greedy算法:這是最簡單的一種,選一個(0,1)之間較小的數作爲epsilon;每次以概率epsilon做一件事:所有臂中隨機選一個;每次以概率1-epsilon 選擇截止到當前,平均收益最大的那個臂。epsilon的值可以控制對Exploit和Explore的偏好程度。越接近0,越保守,只想花錢不想掙錢。

UCB算法:UCB算法全稱是Upper Confidence Bound(置信區間上界),它的算法步驟如下:

如何解決推薦系統中的冷啓動問題?
初始化:先對每一個臂都試一遍;

按照如下公式計算每個臂的分數,然後選擇分數最大的臂作爲選擇:

觀察選擇結果,更新t和Tjt。其中加號前面是這個臂到目前的收益均值,後面的叫做bonus,本質上是均值的標準差,t是目前的試驗次數,Tjt是這個臂被試次數。

這個公式反映一個特點:均值越大,標準差越小,被選中的概率會越來越大,同時哪些被選次數較少的臂也會得到試驗機會。

Thompson sampling算法:這種算法簡單實用,因爲它只要一行代碼就可以實現。簡單介紹一下它的原理,要點如下:

每個臂是否產生收益,其背後有一個概率分佈,產生收益的概率爲p。

我們不斷地試驗,去估計出一個置信度較高的“概率p的概率分佈”就能近似解決這個問題了。

怎麼能估計“概率p的概率分佈”呢? 答案是假設概率p的概率分佈符合beta(wins, lose)分佈,它有兩個參數: wins, lose。

每個臂都維護一個beta分佈的參數。每次試驗後,選中一個臂,搖一下,有收益則該臂的wins增加1,否則該臂的lose增加1。

每次選擇臂的方式是:用每個臂現有的beta分佈產生一個隨機數b,選擇所有臂產生的隨機數中最大的那個臂去搖。

上下文老虎機問題

上下文老虎機問題是老虎機問題的一般化,更接近現實世界的情況。唯一的區別是,除了動作(例如,要顯示的項目)和獎勵(例如銷售)之外,還有上下文(例如項目描述、圖片、用戶點擊的次數)。通過利用這些上下文,我們可以更好地估計獎勵。例如,在上面的UCB中,我們可以向獎勵函數添加上下文特徵的線性組合。在TS中,我們可以使似然函數除了取決於獎勵和行動之外,還取決於上下文。

優點

•易於實現:與複雜的機器學習方法相比,簡單的Bandit算法非常容易實現;

•良好的理論保證:由於其簡單性,已經對平均情況和最壞情況的獎勵進行了大量的理論分析。

缺點

•太過簡單?

深度學習

這裏把深度學習視爲解決冷啓動問題的一大類,但其實使用深度學習的方式非常多樣化,以下只是其中的一些方法:

DropoutNet:

基本思路很簡單,但很有效果。具體方法是,在訓練基於深度學習的推薦系統(如多層的協同過濾)時,我們可以隨機捨去某些項目和用戶的評級,使其對新項目具有魯棒性。與神經網絡訓練中的標準dropout相反,神經網絡訓練會捨去特徵,而DropoutNet會捨去節點。這樣做可以減少神經網絡對某些評級的依賴,更普遍地適用於評級較少的項目/用戶。這種方法的優勢是可以與任何基於神經網絡的推薦系統一起使用,同時還適用於用戶和物品的冷啓動。

基於會話的RNN:

這種方法試圖把每個用戶會話反饋到RNN中,具體來說,它訓練了GRU (Gated Recurrent Unit)的變體,其中輸入是會話的當前狀態,輸出是會話中下一個事件的項目。在只有少數用戶會話可用的小型電子商務網站中,這種方法很有用。

如何解決推薦系統中的冷啓動問題?
優點

•如果能夠找到適合當前目的的特定域的模型,則有可能顯著提高推薦性能。

缺點

•實施和調整模型花費時間;

•部署深層模型可能需要更多時間,具體情況取決於當前的堆棧;

•具體效果無法保證。

原文鏈接:Tackling the Cold Start Problem in Recommender Systems請添加鏈接描述

以上內容由第四範式先薦編譯,僅用於學習、交流,版權歸原作者所有。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章