CIKM 2021 | Google出品:将对比学习用于解决推荐系统长尾问题
?作者 |?Sybil Wu
單位 |?明略科技集團
研究方向 |?NLP、推薦算法
本文主要分享一下 Google 發表于 CIKM 2021 的文章如何采用對比學習解決推薦長尾問題。
論文標題:
Self-supervised Learning for Large-scale Item Recommendations
論文鏈接:
https://arxiv.org/abs/2007.12865
先來個定義
長尾效應:20% 的熱門 item 占據了 80% 的曝光量,剩下 80% 的小眾、長尾 item 得不到多少曝光機會,自然在訓練樣本中也是少數、弱勢群體。
一般的推薦模型是迎合多數人群的,長尾的 item 曝光機會少,就導致小眾興趣難以滿足,這對一個成熟的生態系統來說,不利于用戶增長。
場景舉例:有些原來不受到重視的銷量小但種類多的商品,由于總量巨大,累積起來的總收益超過了主流商品。這種情況下,算法挖掘小眾興趣的能力顯得尤為重要。
對比學習
對于樣本不均衡的問題,一般首要想到的辦法是做數據增強(data agument), 對比學習的核心就是采用數據增強構建正負變體,傾向于無監督學習,學習一個比較好的特征提取器。推薦系統中引入對比學習用于推薦 debias,解決“少數人群+冷門物料,標注樣本少”的問題,從邏輯上看是可行的。
《Self-supervised Learning for Large-scale Item Recommendations》, 就是利用對比學習輔助訓練雙塔召回模型,目的是讓 item tower 對冷門、小眾 item 也能夠學習出高質量的 embedding,從而改善內容生態。從公式上看,可以理解為將對比學習的 loss 作為主任務 loss 的一個正則項。
論文解讀
小 Q 認為論文中有兩個核心的技術點,一個在對比學習部分,另一個在聯合訓練部分。
3.1 數據增強
在對比學習數據增強部分,論文提出對于 item 特征的數據增強分為兩個步驟:Masking 和 Dropout,其中 masking 是采用默認 embedding 隨機掩蓋一些輸入特征,dropout 就是簡單的隨機丟失一些輸入特征。
3.2 Random Feature Masking(RFM)
文中定義了一個 baseline Random Feature Masking(RFM),采用互補 masking 模式,即將特征集拆分為兩個互斥特征集,構建為兩個擴展變體。具體來說,將特征集隨機分成兩個不相交的子集。大致結構如下:
某個 item xi, 隨機抽取一半的特征 h,得到變體 yi,再經過 Encoder H,得到向量 zi;保留剩下的另一半特征 g,得到變體 yi’,再經過 Encoder G,得到向量 zi’。
來自同一個 item xi 的兩種變體對應的 embedding zi 和 zi’,兩者之間的相似度應該越大越好。
按照同樣的作法,另一個 item xj,用一半特征 h 得到變體,再經過? Encoder H 得到 yj;用另一半特征 g,得到變體,再經過 Encoder G 得到 yj’。
來自不同 item 的變體對應的 embedding,兩者之間的相似度應該越低越好。
3.3 Correlated Feature Masking(CFM)
論文基于信息論中的互信息,提出了 Correlated Feature Masking(CFM)方法,這個方法每個 batch 進行訓練時,先會隨機選取一個特征 f_seed , 然后選擇 topn(n 為 item 的特征總數的一半)構建一個特征集做為變體。
3.4 為什么采用 CFM
此處樓主小 Q 主要想討論一下的是:為什么要采用互補 masking 模式構建對比學習的變體呢,為什么采用互信息高的特征集會比隨機 masking 效果好呢。
在論文中有這么一段描述:
For?instance,?the?SSL?contrastive?learning?task?may?exploit?the?shortcut?of?highly?correlated?features? between?the?two?augmented?examples,?making?the?SSL?task?too?easy.從字面意思看,是說隨機 masking 可能有一些高度相關的 feature 分到兩個變體中, CL Train 的就太 easy 了,所以要加大一下難度的樣子。
hmmm,查了一些資料,沒找到更詳細的解析了,大致意思是由于物品的不同特征可能存在著一些關聯性,隨機 masking 可能會使得模型在對比學習的過程中,通過關聯度較高的特征來“猜”出被 mask 的特征,使得任務訓練變得簡單。
這里小 Q 嘗試舉個例子,來強行解釋一下吧,假設:item 是個商品,它有品類,品牌,產品系列,價格等特征,假設“品牌”被拆分到變體 h 中,“產品系列”被拆分到變體 g 中,看上去兩個變體都是不同的,但是兩個特征包含的隱信息其實沒太大區別,最終兩個變體的 embedding 太容易相似,就不到訓練模型的目的。至于為什么要采用互補 masking 模式,大致也是為了保證變體的差異性。
好,小 Q 只能忽悠到這個程度了,大家有別的想法歡迎在評論區留言。
3.5 聯合訓練
做完對比學習,下一個步驟就是聯合訓練了 ,先上個論文中的模型圖:
從上圖可以看出,整個 item tower 是被 user-item 雙塔召回的主任務、對比學習輔助任務中的 encoder H 和 G,這三者所共享的。
論文的第二個重點來了,“We sample items uniformly from the corpus for Lself " ,論文中明確表示參與對比學習的樣本,和參與主任務的樣本,來自不同的樣本空間。主任務,需要擬合用戶與 item 之間的真實互動,還是以已經曝光過的 user/item 為主。對比學習部分,是為了消除推薦長尾問題,主要是要關注曝光率低的 item。
參考資料
[1] 石塔西:少數派報告:談推薦場景下的對比學習:https://zhuanlan.zhihu.com/p/435903339
[2] 對比學習(Contrastive Learning)相關進展梳理
[3] self-supervised learning for large-scale item recommendations:https://blog.csdn.net/m0_37924639/article/details/121078066
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的CIKM 2021 | Google出品:将对比学习用于解决推荐系统长尾问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 男孩鹏字取名的寓意是什么?
- 下一篇: 八年大回沙酒和十二年大回沙酒有什么特色