開發與維運

全局自適應模塊:為召回模型裝上第三隻眼 | sigir論文解讀

新零售智能引擎事業群出品

ESAM: Discriminative Domain Adaptation with Non-Displayed Items to Improve Long-Tail Performance
文章鏈接:arxiv地址 https://arxiv.org/abs/2005.10545
開源代碼:https://github.com/A-bone1/ESAM

前言

DeepMatch在搜索、推薦和廣告等系統都大量應用,是一種重要的召回方式。通常將用戶(搜索場景下包含Query)和商品通過深度模型編碼成向量,線上通過向量近鄰查找top K個商品作為召回結果。DeepMatch模型常見兩種訓練模式:

  1. 曝光&點擊作為正樣本,負樣本隨機採樣+Importance Sampling(batch內或全局)
    在推薦系統中召回沒有Query的限制,這種採樣方式應用的較多[1,2,3,4], 主要的問題有:
  2. 隨機採樣的大部分負樣本可能過於簡單;
  3. 高頻item過度被採樣為負樣本可能會影響模型性能;
  4. 正樣本存在曝光偏差,用戶點擊的item都是他所看到的,大量未曝光的商品情況未知。
  5. 曝光&點擊作為正樣本,曝光&未點擊作為負樣本,即CTR目標
    在廣告和搜索中常見, 這種方法也有類似的樣本選擇偏差(SSB)問題:用曝光數據上訓練模型,在全局商品集合上做預測,兩者分佈可能會存在比較大差異。

如圖1所示,相比rank模型,match模型面對的曝光偏差問題要嚴重很多。舉個例子:用戶搜索連衣裙,展示的商品數量級大概幾十個,用這部分數據可以訓練一個模型在精排階段泛化能力較好,對數千個商品較精準的打分。但直接應用在召回階段,面對百萬甚至千萬全局商品集,由於大量未曝光或低曝光商品無法充分訓練,預測性能可能會下降。
image.png

圖1-召回模型的SSB問題

然而,這樣的訓練模式和用戶一樣,僅僅看到了曝光的樣本,導致模型對於那些非曝光的樣本缺乏魯棒性。因此,我們想著如何在訓練中引入非曝光樣本,為模型裝上第三隻眼,讓模型能代替用戶去了解那些非曝光樣本,提高模型對非曝光樣本的預測準確率。

問題定義和抽象

為了實錘SSB問題,我們做了一些數據分析和實驗:我們將商品按點擊數量分層,統計CTR模型在各層商品上的表現:我們發現一個比較有意思的現象:將同一點擊分層的商品放在一起,CTR模型表現沒有明顯差別;但將每一層的正樣本與所有的負樣本放在一起,CTR模型的表現下降的比較明顯。這說明:熱門的正負樣本在一起,模型很好區分;冷門的正負樣本在一起,模型也能區分;但將冷門的正樣本和熱門負樣本放一起,模型表現就不盡人意了。在一些公開搜索和推薦數據集也有類似現象,例如CIKM Cup 2016的數據集上:
image.png

圖2-CIKM Cup 2016 電商搜索數據集商品按曝光評率分層

參考圖1,召回模型通常是需要在全局商品上做預測,這就意味著冷門的“好”商品無法和熱門的“差”商品區分開,在召回的時候會比較吃虧。冷門的商品本來曝光機會就少,現在進入召回的機會都被剝奪了,這意味著系統會越來越馬太。
我們分析問題可能在於:我們的訓練數據只使用了少量曝光的樣本,對大量未曝光數據都丟棄掉了,導致這些商品沒有充足的訓練機會,模型也無法正確區分。因此如何使用這些未曝光的數據是一個非常值得研究的問題。
未曝光數據的應用主要面臨著兩個比較大的挑戰:1、很明顯地,未曝光數據是沒有label的,意味著無法用大家熟悉的監督學習的方式來使用;2、直觀地認為,未曝光數據與曝光數據的分佈是有比較大差異的。比如:用戶搜索連衣裙,曝光的商品通常都是銷量比較高的,而連衣裙類目下有幾百萬商品,且大多都是0銷量或低銷量的冷門商品。如前面的圖三,冷門商品中的“好”與熱門商品中的“好”是有差別的。也正是因為這個分佈的差異導致CTR模型在召回階段的表現不盡人意,尤其是偏冷門的商品上。

技術選擇

幸運地是,在機器學習和圖像領域,對這個問題已經有一些比較好的研究成果,這個領域一般叫Unsupervised Domain Adaptation(無監督領域適應)。因此,我們思考如何利用那些模型通過曝光樣本學到的知識來為模型裝上第三隻眼,使得模型能在學習曝光樣本包含的知識外,能將這些知識應用在非曝光的樣本上。
Unsupervised DA適用於兩個相關Task之間的知識遷移,其中一個Task是有label, 其訓練數據稱為Source Domain, 另外一個Task是沒有label的,稱為Target Domain。兩個Domain之間的數據分佈通常存在一些差異,所以才必要將有label的Source Domain上的知識遷移到無label的Target Domain。
在深度學習時代,Unsupervised DA通常利用神經網絡強大的表達能力,在Source Domain和Target Domain之間學習領域無關的表達,使得模型在無label的Target Domain也有比較好的表現。領域無關的表達學習,通常有兩種思路:一種是基於度量的形式,通過人工的定義數據的分佈並縮小兩個域分佈間的距離來實現分佈的對齊;另一種是基於對抗的方式,通過對特徵提取器於鑑別器的對抗訓練,鼓勵特徵提取器能夠提取域不變的特徵。

技術創新:

為了將Unsupervised DA應用在搜索和推薦領域,我們首先需要定義清楚Source Domain和Target Domain,可參照圖3。在模型推斷時,搜索場景的查詢+用戶特徵或者推薦場景下的用戶特徵表示為q, 對應全局候選樣品池表示成D^all, 我們的召回模型需要對這集合中的每個樣本打分,選取topK個得分最高的樣本作為召回結果;在模型訓練時,對每個q, 對應候選池D^all被劃分成兩個Domain, 曝光過的樣本為Source Domain,表示為D^s, 未曝光過的樣本因為數量太大,我們進行隨機採樣作為Target Domain表示為t;對每個q, Source Domain上的樣本是有label的,D_q^s=〖{(d_j^s,y_j^s)}〗_(j=1)^n;而Target Domain上的樣本是沒有label的,表示為D_q^t=〖{d_j^t}〗_(j=1)^n;我們要做的工作是:對每個q, 將在Source Domain D_q^s上學到的“知識”遷移到Target Domain D_q^t上,並獲取比較好的效果。這也是為什麼我們的模型稱為ESAM (Entire Space Adaptation Model)。
Baseline Model
DeepMatch模型通常包含三個部分:1、對q學習一個表達v_q=f_q (q);2、對樣本d學習一個表達v_d=f_d (d);3、計算q和d相關性通常用內積或歐式距離再做sigmoid變
換得到得分Sc,再與groudtruth計算loss, 例如交叉熵:
image.png
各種不同模型的差異通常在於f_q和f_d的網絡結構和輸入特徵不一樣;ESAM所做的工作:對每個q對應的Source Domain和Target Domain上的樣本特徵表達做“對齊”或“知識遷移”。因此,它是一個比較通用的框架,適用於現在大多數主流DeepMatch模型。ESAM主要包含三個損失函數:

image.png

圖3-Source和Target Domain 示意圖

1、Attribute Correlation Congruence
首先,將通過深度模型將q對應的Source Domain 和Target Domain上的樣
本通過f_d映射成向量表示:

image.png

image.png

對Source Domain的樣本還是與常規的DeepMatch模型一致,計算相關性和Loss,並通過BP優化參數;對Target Domain的樣本, 如前面所述,為了將Source Domain上的知識遷移到Target Domain上,我們將兩者的分佈通過CORAL Loss做“對齊”;
image.png
其中,‖∙‖_F^2表示Frobenius範數,Cov(D)表示每個域上樣本特徵的協方差矩陣。簡單來說,通過最小化兩個Domain特徵的協方差矩陣的距離,可以使得兩個分佈相似。因此,使得模型雖然是在Source Domain上訓練的,但在Target Domain上預測也有會比較好的效果。

2、Center-Wise Clustering
另外在搜索和推薦場景,用戶短時間內點擊的doc通常有極高的相似度,例如:一個高消費力的用戶搜索“手機”的時候通常會點擊多個不同“iphone”手機的寶貝,“小米”等手機會被忽略掉。這也啟發我們對商品的表示可以增加這樣一些約束,以便在商品向量空間中具有更好的流形結構,對判斷向量相似度任務能有更好效果[9],並且能有利於“知識”的遷移。 因此,我們在Source Domain上增加特徵距離約束,使得同一q下,點擊的樣本之間的距離接近,點擊的樣本和沒點擊的樣本之間遠離。
image.png
其中c_q^k表示同一q下label=k的所有樣本的中心點,因此該Loss第一項使得同一類樣本的直接距離更接近,第二項使得不同類型樣本的距離更遠。

3、Self-Training
同時,在Unsupervised DA領域,僅採用“特徵”對齊常常會導致“負遷移”:
例如把Target Domain上的負樣本特徵“對齊”到Source Domain上的正樣本區域,也能保證CORAL等距離Loss的最小化。為了解決這個問題,比較常見的解法:隨著訓練迭代過程,將模型在Target Domain上的置信度比較高的預測值作為偽label(pseudo-label),通過這種self-training的方式減少“負遷移”,使得模型在沒有label的Target Domain上能預測的越來越準。我們設置兩個閾值p_1,p_2,對每個Target Domain上的樣本對,並設置Loss項:
image.png
其目的在於如果模型對其預測為正的概率Sc_(q,d_j )>p_2, 則使得模型預測值儘可能接近1;如果模型對其預測為正的概率Sc_(q,d_j )ESAM
上述幾部分結合起來就構成了ESAM(Entire Space Adaptation Model), 我們將樣本按PV形式組織,每次PV下展示的商品組成Source Domain,未展示的商品中隨機採樣部分作為Target Domain,其整體損失函數如下所示:

image.png

image.png

圖4-ESAM整體網絡框架圖

實驗數據與結果

我們分別在公開推薦和搜索數據集、以及工業界一個實際的搜索數據上實驗了我們ESAM的效果。
推薦數據集
推薦我們採用的MovieLens 1M。對每個用戶,打過分的電影看做Source Domain, 其中打3分的電影設置為正樣本,低於3分設置為負樣本;同時,從該用戶未打分電影中採樣10個與Source Domain類型一樣的電影作為Target Domain。注意:這裡的Hot和Long-Tail集合只有正樣本來自Hot或Long-Tail部分,負樣本仍然是所有的負樣本。我們在幾個比較常見的推薦模型上嘗試了ESAM框架,都有不錯的效果,尤其長尾部分提升明顯。
image.png

搜索數據集
搜索我們採用的CIKM Cup 2016,也是一個電商搜索數據集。對每個Query,我們統計Query下出現上的商品全集,然後對每次PV,從未曝光集合中採樣10個商品作為Target Domain。ESAM框架也有不錯的表現。
image.png

特徵可視化分析
為了更好的觀察添加了各個Loss項對訓練過程的影響,我們隨機採樣100次PV中對應的Source Domain和Target Domain中的商品,經過網絡生成對應的表達v_d=f_d (d),並採用T-SNE進行可視化。圖(a)是僅採用交叉熵損失函數訓練的BaseModel所提取的特徵, 可以觀察到Source Domain和Target Domain的商品分佈確實有比較大的差異,可以確定在Source Domain上訓練的Base Model在Target Domain上肯定表現有比較大偏差;圖(b)是經過CORAL對齊後兩個Domain商品特徵分佈,可以觀察到確實對兩個Domain的特徵分佈有“對齊”的作用。圖(c)+(d)是分別增加了距離約束和Self-Training約束後,能直觀的反應特徵分佈會更合理:具有更好的聚類間區分度和類內緊密度。
image.png
另外,我們從dress,phone,shoe, computer類目中採樣了1000個商品,用1000個商品向量的平均值來表示類目中心點,同時計算類目中心之間的cosine距離,如下圖所示ESAM生成的商品向量來表示類目,會更有區分度。
image.png

最後總結下,本文在如何利用大量未曝光商品來訓練一個無偏差的召回模型做了一個小小的嘗試,為模型裝上了能看到非曝光樣本的第三隻眼。在搜索和推薦的公開數據集上都有不錯的表現。

參考

[1] Yi, Xinyang, et al. "Sampling-bias-corrected neural modeling for large corpus item recommendations." Proceedings of the 13th ACM Conference on Recommender Systems. 2019.
[2]Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.
[3] Yuan, Bowen, et al. "Improving Ad Click Prediction by Considering Non-displayed Events." Proceedings of the 28th ACM International Conference on Information and Knowledge Management. 2019.
[4] Zhu, Ziwei, Jianling Wang, and James Caverlee. "Improving Top-K Recommendation via JointCollaborative Autoencoders." The World Wide Web Conference. 2019.
[5] Bonner, Stephen, and Flavian Vasile. "Causal embeddings for recommendation." Proceedings of the 12th ACM Conference on Recommender Systems. 2018.

更多信息檢索技術內容請查看:獨家下載!《SIGIR 頂會論文解讀》電子書重磅發佈

Leave a Reply

Your email address will not be published. Required fields are marked *