推荐系统遇到曝光偏差怎么办?用对比学习!
推薦系統中常常需要在億級別的候選集中找到上百個相關的item,俗稱DCG問題(Deep candidate generation)。通常處理這類問題采用的類似語言建模的方法。然而顯存的推薦系統都存在著曝光偏差,在候選集多的時候這個偏差更加的嚴重,導致模型只學習了曝光多的樣本,因此這篇論文《Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems》使用了對比學習去解決曝光偏差問題,該方法已經成功部署在淘寶,并且效果有顯著提升。
DCG問題中的對比學習
首先我們可以拿到這樣的數據集和,D={(xu,t,yu,t): u=1,2,...,N, t=1,2,...Tu},xu,t= {yu,1:(t-1)},即我們在預估t時刻用戶要點啥時,用到的是該用戶t時刻前點擊的所有items。在DCG問題中,我們需要學習用戶的encoder和item的encoder把用戶和item映射到一個空間中,并通過cos相似度找到top k的item,典型的學習方式如下,使用最大似然估計(MLE)去擬合上述數據集合:
然而使用觀測到的點擊數據訓練模型會有嚴重的曝光偏差問題,對有潛力但沒機會曝光的item是毀滅性打擊。很多高質量的item但是在訓練數據集中點擊較少,在MLE這種學習方式就很難再曝光。
如何理解對比學習能解決曝光偏差呢?
論文中使用的對比loss類似Sampled Softmax,先看看Sampled Softmax:
L表示負采樣的個數,pn(y|x)是預先定義好的負采樣分布,減去logpn(y|x)是為了讓該loss收斂到和MLE相似的結果。在實踐中pn(y|x)往往就使用pn(y),pn(y)就等同于流行度,使用該流行度加速收斂,在實踐中L取值上千。當候選集巨大時,sampled softmax效果要優于NCE和negative sampling。
接下來我們討論對比學習中的contrastive loss,在負采樣概率分布為pn(y|x),loss如下:
但是我們發現上式中不再減去logpn(y|x),因此該公式不再與MLE一致了,所以對比學習主要是優化pn(y|x)這個分布,使得模型收斂到合適的地方。
對比學習為什么能緩解曝光偏差?
讓我們先看下IPW(inverse propensity weighted) loss:
q(y|x)就是調節loss的權重了,它可以是曝光的分布。實現IPW有兩步,第一步用一個獨立的模型(該模型作用就是得到q(y|x))并通過曝光產生的數據集擬合MLE loss,第二步擬合IPW loss,然而這種方式效率比較低下。
我們可以證明contrastive loss和IPW可以達到同樣的效果,這兩種方法都是最小化KL散度,證明過程可以參考論文附錄。
CLRec
從上圖中,我們可以清晰的看到負采樣的方式,都近似pn(y|x)=pdata(y) (a)就是batch內負采樣,(b)創建了一個固定大小的FIFO隊列存取之前見到過的正例,然后用在當前batch內作為負樣本。(c)和(b)不同在于隊列直接緩存了encoder的結果。
如果是用IPW,很難估計到準確的q(y|x),CLRec就用q(y)代替q(y|x),q(y)和pdata(y)有高度相關性,很容易理解,系統曝光的item是因為這些item點擊率較高,所以q(y)就可以近似pdata(y)。但是簡單的使用pdata(y)進行負采樣雖然可以緩解偏差,但是計算成本很高也不能保證每個item在一個epoch內被采樣到,因此設計了(b)和(c)這種隊列采樣方法。(b)和(c)兩種方法中,如果隊列大小就是batch_size,那就等同于(a)方法。為了使得泛化效果更好,我們需要上千負樣本,因此選擇一個比較大的隊列大小,但是較小的batch size去節約內存。e.g. batch size = 256 queue size = 2560。(b)和(c)本質區別時(c)需要更多steps才能收斂,因為梯度回傳不到負樣本,但是由于訓練速度提升了,整體訓練時間(c)是優于(b)的。論文中還提到了Multi-CLRec,緩解多意圖偏差,感興趣的可以看原文。
實驗
論文中的實驗持續了至少4個月,離線評估糾偏時,比較了sampled softmax和CLRec,在不同loss下我們可以看到CLRec顯著提高了多樣性(提升了1倍),并且從曝光分布我們可以看到sampled softmax更擬合訓練集的分布而CLRec學到了一個相對不同的分布從而緩解了曝光偏差:
如果改變分布就是好的,那隨機出豈不是更好?所以還必須對比點擊率和recall才能真正說明CLRec是有效的,從下圖我們可以看到CLRec提升了點擊率和Recall:
參考文獻
1、Contrastive Learning for Debiased Candidate Generation in Large-Scale Recommender Systems https://arxiv.org/pdf/2005.12964.pdf
總結
以上是生活随笔為你收集整理的推荐系统遇到曝光偏差怎么办?用对比学习!的全部內容,希望文章能夠幫你解決所遇到的問題。