天天看點

全局自适應子產品:為召回模型裝上第三隻眼 | 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模型面對的曝光偏差問題要嚴重很多。舉個例子:使用者搜尋連衣裙,展示的商品數量級大概幾十個,用這部分資料可以訓練一個模型在精排階段泛化能力較好,對數千個商品較精準的打分。但直接應用在召回階段,面對百萬甚至千萬全局商品集,由于大量未曝光或低曝光商品無法充分訓練,預測性能可能會下降。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

圖1-召回模型的SSB問題

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

問題定義和抽象

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

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

圖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, 例如交叉熵:

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

各種不同模型的差異通常在于f_q和f_d的網絡結構和輸入特征不一樣;ESAM所做的工作:對每個q對應的Source Domain和Target Domain上的樣本特征表達做“對齊”或“知識遷移”。是以,它是一個比較通用的架構,适用于現在大多數主流DeepMatch模型。ESAM主要包含三個損失函數:

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

圖3-Source和Target Domain 示意圖

1、Attribute Correlation Congruence

首先,将通過深度模型将q對應的Source Domain 和Target Domain上的樣

本通過f_d映射成向量表示:

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀
全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

對Source Domain的樣本還是與正常的DeepMatch模型一緻,計算相關性和Loss,并通過BP優化參數;對Target Domain的樣本, 如前面所述,為了将Source Domain上的知識遷移到Target Domain上,我們将兩者的分布通過CORAL Loss做“對齊”;

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

其中,‖∙‖_F^2表示Frobenius範數,Cov(D)表示每個域上樣本特征的協方差矩陣。簡單來說,通過最小化兩個Domain特征的協方差矩陣的距離,可以使得兩個分布相似。是以,使得模型雖然是在Source Domain上訓練的,但在Target Domain上預測也有會比較好的效果。

2、Center-Wise Clustering

另外在搜尋和推薦場景,使用者短時間内點選的doc通常有極高的相似度,例如:一個高消費力的使用者搜尋“手機”的時候通常會點選多個不同“iphone”手機的寶貝,“小米”等手機會被忽略掉。這也啟發我們對商品的表示可以增加這樣一些限制,以便在商品向量空間中具有更好的流形結構,對判斷向量相似度任務能有更好效果[9],并且能有利于“知識”的遷移。 是以,我們在Source Domain上增加特征距離限制,使得同一q下,點選的樣本之間的距離接近,點選的樣本和沒點選的樣本之間遠離。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

其中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項:

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

其目的在于如果模型對其預測為正的機率Sc_(q,d_j )>p_2, 則使得模型預測值盡可能接近1;如果模型對其預測為正的機率Sc_(q,d_j )ESAM

上述幾部分結合起來就構成了ESAM(Entire Space Adaptation Model), 我們将樣本按PV形式組織,每次PV下展示的商品組成Source Domain,未展示的商品中随機采樣部分作為Target Domain,其整體損失函數如下所示:

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀
全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

圖4-ESAM整體網絡架構圖

實驗資料與結果

我們分别在公開推薦和搜尋資料集、以及工業界一個實際的搜尋資料上實驗了我們ESAM的效果。

推薦資料集

推薦我們采用的MovieLens 1M。對每個使用者,打過分的電影看做Source Domain, 其中打3分的電影設定為正樣本,低于3分設定為負樣本;同時,從該使用者未打分電影中采樣10個與Source Domain類型一樣的電影作為Target Domain。注意:這裡的Hot和Long-Tail集合隻有正樣本來自Hot或Long-Tail部分,負樣本仍然是所有的負樣本。我們在幾個比較常見的推薦模型上嘗試了ESAM架構,都有不錯的效果,尤其長尾部分提升明顯。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

搜尋資料集

搜尋我們采用的CIKM Cup 2016,也是一個電商搜尋資料集。對每個Query,我們統計Query下出現上的商品全集,然後對每次PV,從未曝光集合中采樣10個商品作為Target Domain。ESAM架構也有不錯的表現。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

特征可視化分析

為了更好的觀察添加了各個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限制後,能直覺的反應特征分布會更合理:具有更好的聚類間區分度和類内緊密度。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

另外,我們從dress,phone,shoe, computer類目中采樣了1000個商品,用1000個商品向量的平均值來表示類目中心點,同時計算類目中心之間的cosine距離,如下圖所示ESAM生成的商品向量來表示類目,會更有區分度。

全局自适應子產品:為召回模型裝上第三隻眼 | sigir論文解讀

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

參考

[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 頂會論文解讀》電子書重磅釋出

繼續閱讀