推荐系统入门必读:一文读懂推荐系统负采样
?作者?|?潘星宇
學校?|?中國人民大學碩士生
研究方向?|?推薦系統
推薦系統負采樣作為推薦模型訓練的重要一環,對模型的訓練效果有著重要影響,也是推薦系統領域的一個重要研究分支。本文將從研究背景到現有的經典工作對推薦系統負采樣進行一個概括性的介紹。為了降低本文的閱讀門檻,讓更多“科研小白”也可以理解文章內容,筆者將盡可能使用通俗的語言來代替論文公式對算法進行描述,希望可以讓讀者對推薦系統負采樣有一個基本的了解。?
1. 研究背景
推薦系統的目的在于根據用戶的興趣愛好向用戶進行個性化推薦,以提升用戶在網上購物,新聞閱讀,影音娛樂等場景下的體驗。在推薦場景中,推薦模型主要依賴用戶的歷史反饋信息來建模用戶的興趣。一般來說,在模型訓練過程中,我們需要同時提供正例(用戶喜歡的商品)和負例(用戶不喜歡的商品)給模型,然后基于損失函數來學習用戶和商品的表示,最終完成模型的訓練。但在實際推薦場景中,考慮到數據收集的難度,我們很難獲取用戶的顯式反饋信息(例如用戶對商品的評分)來確切知道用戶喜歡哪些商品,不喜歡哪些商品,絕大部分的數據都是用戶的隱式反饋信息(例如用戶消費過的商品記錄)。
對于隱式反饋來說,數據沒有明確的標簽,為了進行模型訓練,我們一般假設用戶交互過的商品都是正例,并通過采樣的方式,從用戶未交互過的商品集中選擇一部分作為負例。從用戶未交互商品集中基于一定策略進行負例選擇的這一過程,就被稱為負采樣(Negative Sampling)
推薦系統負采樣示意圖
2. 推薦系統負采樣中的研究方向
在推薦系統負采樣中,主要有三方面的研究方向:采樣質量,采樣偏差和采樣效率。
1、采樣質量:
一般來說,在負采樣過程中,采樣的質量主要是指采到的負例所包含的信息量。相比于低信息量的負例,采到信息量更高的負例將顯著提升模型訓練的效率,加速模型收斂。從近幾年推薦系統負采樣領域的論文數量來看,提升采樣質量是目前該領域的主要研究方向。
2、采樣偏差:
在推薦系統負采樣中,我們的基本假設是用戶交互過的商品都是該用戶的正例,未交互過的都是負例。但容易發現,這個假設還是比較強的,與真實場景存在一定偏差,例如用戶未購買過的商品并不一定是不喜歡的,也有可能是用戶在未來想要發生交互的商品,這一偏差可以被稱為偽負例(False Negative)問題。這些采樣中的偏差會對模型訓練造成影響,因此緩解或消除采樣中的偏差是該領域一個重要的研究方向。
3、采樣效率:
在推薦場景中,用戶的歷史交互數據是比較稀疏的,一般來說,用戶平均交互的商品數量不會超過整個商品集大小的10%。因此,對于負采樣而言,需要在一個較大的采樣池中進行采樣,一旦采樣過于復雜,會導致模型訓練的開銷增大,這也與實際工業場景下的要求不符。因此,采樣算法的設計需要控制好復雜度,提升采樣效率也是該領域一個有重要研究意義的方向。
3. 主流推薦系統負采樣算法
負采樣算法的本質就是基于某些方式來設置或調整負采樣時的采樣分布。根據負采樣算法設置采樣分布的方式,我們可以將目前的負采樣算法分為兩大類:啟發式負采樣算法和基于模型的負采樣算法。
(一)啟發式負采樣算法:
啟發式負采樣算法主要指通過設定一些啟發式的規則來設置采樣分布,這類算法的特點就是開銷較小,易于理解和實現,但在效果上會有一定的瓶頸。下面介紹兩種經典的啟發式負采樣算法。
1、隨機負采樣(Random Negative Sampling, RNS)[1]:
RNS是最基本的負采樣算法,它的思想就是平等地對待采樣池內的每一個商品,按相等的概率進行采樣。RNS的算法邏輯非常簡單,在效率上有著很大的優勢,同時也避免在采樣過程中引入新的偏差,是一個被廣泛使用的采樣算法。
2、基于流行度的負采樣(Popularity-biased Negative Sampling, PNS)[2]
PNS也是一個啟發式的負采樣算法,它的思想是以商品流行度作為采樣權重對采樣池內的商品進行帶權采樣,流行度越高的商品越容易被采到。這里的流行度有很多種定義方式,一種常見的定義方式該商品的歷史交互次數,即商品被消費次數越多,其流行度就越高。這種算法相比于RNS,就是將均勻分布替換成一個基于流行度的采樣分布,只需要在采樣前計算出每個商品的流行度作為采樣分布,然后就按照這個分布進行采樣即可,在開銷上沒有增加特別多。
相比于RNS, 按照流行度采樣的目的是為了提高所采負例的信息量,提高采樣質量。例如一個非常流行的商品,卻出現在某個用戶的未交互商品集中,那么這個商品就很大概率是用戶不喜歡的商品,那么通過這個負例就可以很好的學習到用戶的喜好;相反,一個大家都不喜歡的商品,將它作為負例進行學習,其實能夠帶給模型的信息量就很少了,很難學習到該用戶的個性化特征。
但也有文獻指出[3],PNS也有一定的局限性。首先,因為PNS的采樣分布是提前計算好的,在模型訓練過程中,采樣分布不會變化。因此那些在訓練初期能夠提高更高信息量的負例,在經過多次訓練后,其帶來信息量可能會有所下降。其次,流行度的引入也可能會引入新的偏差,因為流行度的計算是全局的,而在用戶中,不同用戶類別之間的興趣可能是有差異的,如果所給數據中的用戶類別分布不均勻,就可能導致流行度的定義出現偏差。
(二)基于模型的負采樣算法:
相比于前面提到的兩種啟發式算法,基于模型的負采樣算法更容易采到質量高的負例,也是目前較為前沿的采樣算法。下面介紹幾種基于模型的負采樣算法:
1、動態采樣(Dynamically Negative Sampling, DNS)[4]
在模型訓練過程中,負例能夠帶給模型的信息量是會隨著模型的訓練情況不斷變化的。DNS的思路就是根據模型當前的情況動態地改變采樣分布,提升每一輪的采樣質量。對于模型來說,我們最后希望的模型是能夠給正例打更高的分,給負例打更低的分。因此,對于每一輪訓練,那些會被模型打高分的采樣池中的商品更應該被挑出來讓模型進行學習,它們對于模型而言包含更多的信息量。基于這樣的思路,DNS會在每次采樣時使用當前模型作為一個采樣模型,對樣例進行打分,然后選擇分數更高的樣例來作為負例對當前模型進行訓練,得到新一輪的模型,并這樣迭代下去。
2、基于GAN的負采樣算法
在模型訓練過程中,模型的訓練目標是將損失函數的值降低,而采樣器的采樣目標是將能使得模型損失函數的值增大的負例選出來,這就蘊含著一種對抗的思想。自然的,生成對抗網絡(Generative Adversarial Networks,GAN)也就被運用到了負采樣中。IRGAN [5]?是信息檢索負采樣領域的一篇經典工作,它首次將GAN的思想運用到信息檢索領域來進行負采樣。具體來說,在IRGAN的設計中,它包含了兩個推薦模型,一個作為判別器(Discriminator),一個作為生成器(Generator),基于對抗的思想進行訓練。生成器的目的在于從負例池中選擇負例混入正例中來迷惑判別器,而判別器則是要區分出正例和生成器混入的負例,并將反饋給予生成器。
IRGAN結構示意圖
在這個框架中,原則上生成器和判別器可以是任意結構的推薦模型,最終生成器和判別器也都可以作為最后的推薦模型進行使用。而DNS可以理解為一種判別器和生成器是相同模型結構的,共享同一套參數的特殊的IRGAN。受到IRGAN的影響,后續也出現了很多基于GAN的負采樣算法?[6][7],他們從效率,性能等不同方面對IRGAN的結構進行了優化和改進。
3、SRNS?(Simplify and Robustify Negative Sampling)[8]
雖然前面提到的兩種基于模型的采樣算法通過模型學習的方法可以提升采樣質量,獲得強負例(Hard Negative),但也存在著兩個關鍵問題:1)由于借助模型評分來選擇負例,會加重采樣時的偽負例(False Negative)問題。因為單從評分上來看,偽負例和強負例都會得到較高的分數,按照模型評分得到的分布進行采樣會提升偽負例被采到的概率。2)這種基于模型的算法,特別是基于GAN的算法,會有很大的時間開銷,影響模型的訓練。針對這兩個問題,nips 2020上的一篇工作提出了一種命名為“簡單且具有較強魯棒性的負采樣算法”。在這個算法中,它以觀察到的統計學特征作為先驗知識對偽負例和強負例進行區分,以增強模型的魯棒性,并使用了類似DNS的結構進行采樣,以保證采樣質量。在時間復雜度的分析上,SRNS也優于GAN類型的方法。本篇工作將視角放在了采樣去偏和采樣效率優化,同時創新性地引入統計學指標來嘗試區分偽負例和強負例,是一篇具有啟發意義的工作。
4. 結語
本文主要圍繞推薦系統負采樣這個主題,從研究背景到目前的經典工作進行了較為細致通俗的概況,希望可以通過這篇文章讓讀者對該領域有一個簡單認識。同時歡迎對文章內容有疑問或想法的同學在評論區積極留言討論!
在最后,也向大家安利一款非常好用的,特別適合剛剛入門推薦系統方向的“科研小白”的推薦算法工具包“伯樂” (RecBole)。希望大家可以多多支持!
易用又強大的伯樂二期來啦!
參考文獻
[1] Steffen Rendle, Christoph Freudenthaler, Zeno Gantner, and Lars Schmidt-Thieme. 2009. BPR: Bayesian Personalized Ranking from Implicit Feedback. In UAI. AUAI Press, 452–461.
[2] Ting Chen, Yizhou Sun, Yue Shi, and Liangjie Hong. 2017. On Sampling Strategies for Neural Network-based Collaborative Filtering. In KDD. ACM, 767–776.
[3] Steffen Rendle and Christoph Freudenthaler. 2014. Improving pairwise learning for item recommendation from implicit feedback. In WSDM. 273–282
[4] Weinan Zhang, Tianqi Chen, Jun Wang, and Yong Yu. 2013. Optimizing topn collaborative filtering via dynamic negative item sampling. In SIGIR. ACM,
785–788.
[5] Jun Wang, Lantao Yu, Weinan Zhang, Yu Gong, Yinghui Xu, Benyou Wang, Peng Zhang, and Dell Zhang. 2017. IRGAN: A Minimax Game for Unifying Generative and Discriminative Information Retrieval Models. In SIGIR. ACM, 515–524.
[6] Dae Hoon Park and Yi Chang. 2019. Adversarial Sampling and Training for Semi-Supervised Information Retrieval. In WWW. ACM, 1443–1453.
[7] Jingtao Ding, Yuhan Quan, Xiangnan He, Yong Li, and Depeng Jin. Reinforced negative sampling for recommendation with exposure data. In IJCAI, pages 2230–2236, 2019.
[8] Jingtao Ding, Yuhan Quan, Quanming Yao, Yong Li, and Depeng Jin. 2020. Simplify and Robustify Negative Sampling for Implicit Collaborative Filtering. In NeurIPS.
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
?????稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
?????投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的推荐系统入门必读:一文读懂推荐系统负采样的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 沪指跌破3600点 贵州茅台下跌118
- 下一篇: 入坑推荐系统,拿这个开源项目练手