背景介紹 在機(jī)器學(xué)習(xí)學(xué)界,無監(jiān)督學(xué)習(xí) (或者自監(jiān)督學(xué)習(xí)) 一直被認(rèn)為是最有價值的領(lǐng)域之一。在ISSCC 2019上,著名的人工智能研究者,圖靈獎獲得者Yann LeCun給出了他的“蛋糕圖”2.0版本,并再次強(qiáng)調(diào)了自監(jiān)督學(xué)習(xí)的地位,認(rèn)為自監(jiān)督學(xué)習(xí)是通向未來通用人工智能的可能道路。 其實(shí),自監(jiān)督學(xué)習(xí)并不是一個新概念,在NLP領(lǐng)域,已經(jīng)有非常多相關(guān)的應(yīng)用。自監(jiān)督學(xué)習(xí)的本質(zhì),是通過數(shù)據(jù)本身來構(gòu)造訓(xùn)練目標(biāo),從而達(dá)到不需要人工標(biāo)注的目的。例如,word2vec,使用skip-gram的訓(xùn)練方式,是通過單詞來預(yù)測上下文;之后Google提出的Bert,則是通過Masked LM和Next sentence prediction來實(shí)現(xiàn)pre-training。本質(zhì)上都是利用了原有數(shù)據(jù)來構(gòu)造訓(xùn)練目標(biāo)。 自監(jiān)督的學(xué)習(xí)方式,與我們的實(shí)際場景契合度很高。在現(xiàn)實(shí)世界中,海量數(shù)據(jù)并不存在所謂的標(biāo)簽體系,例如在內(nèi)容維度,作者們創(chuàng)作的圖像、文字,既無法套入一個標(biāo)準(zhǔn)的標(biāo)簽體系,也不可能存在一個標(biāo)注團(tuán)隊可以處理每天百萬級的數(shù)據(jù)。通過自監(jiān)督學(xué)習(xí)的方式來獲取這部分信息成為了一條必由之路。 每平每屋輕應(yīng)用是是淘系大家裝垂類中的主要流量入口,以內(nèi)容導(dǎo)購的形式滿足用戶在家居領(lǐng)域的購買需求。在去年Visual4Rec的工作(詳見https://mp.weixin.qq.com/s/LmON8pQ8TvPTfN2spblzDQ)中,我們主要通過預(yù)訓(xùn)練好的圖像embedding,對精排、召回以及EE三個環(huán)節(jié)做了優(yōu)化取得了不錯的線上結(jié)果。在去年工作基礎(chǔ)之上,我們希望進(jìn)一步探究自監(jiān)督學(xué)習(xí)得到的embedding質(zhì)量對推薦、分類、搜索的影響。我們嘗試了2020年以來部分圖像自監(jiān)督學(xué)習(xí)模型在圖像embedding抽取、達(dá)摩院M6預(yù)訓(xùn)練模型在多模態(tài)embedding抽取中的效果,并在線下線上不同環(huán)節(jié)做了詳實(shí)的驗(yàn)證。本文為琢切在每平每屋算法團(tuán)隊實(shí)習(xí)期間的工作總結(jié)。 理論基礎(chǔ) ? 圖像自監(jiān)督學(xué)習(xí) 自2020年以來,圖像自監(jiān)督算法在學(xué)術(shù)界取得了巨大進(jìn)展,基于圖像隨機(jī)變換 + infoNCE loss 的設(shè)計范式,一步步刷新SOTA,基于自監(jiān)督算法訓(xùn)練得到的無監(jiān)督圖像embedding,在下游使用線性分類器,其分類準(zhǔn)確率開始逐步接近甚至超越使用CNN訓(xùn)練的分類準(zhǔn)確率。在實(shí)際場景中,我們主要使用了EVTorch團(tuán)隊提供的Moco v2 [1] 模型、SwAV [2] 模型做為測試驗(yàn)證。在此簡單介紹SwAV的模型原理。Fig1 展示了SwAV和一般的自監(jiān)督對比學(xué)習(xí)的核心差異。Fig1 SwAV與一般自監(jiān)督對比學(xué)習(xí)的差異一般的自監(jiān)督對比學(xué)習(xí),主要通過圖像的隨機(jī)transform(例如隨機(jī)加入少量噪點(diǎn)、顏色輕微變化、隨機(jī)裁剪等),如下所示。我們認(rèn)為,這樣的輕微變化,對于圖像本身的語義表達(dá)是沒有影響的。Fig2 圖像隨機(jī)Transform舉例 同一張圖的不同transform做為正樣本,不同圖的不同transform做為負(fù)樣本,在embedding層面進(jìn)行對比訓(xùn)練,如下所示 其中為編碼函數(shù)(表示學(xué)習(xí)方程),與為正樣本,與 為負(fù)樣本集合,通過上述公式進(jìn)行優(yōu)化。 從上述式子中我們可以發(fā)現(xiàn),假設(shè)在一個百萬級的數(shù)據(jù)集上,做embedding之間的兩兩比較,其計算開銷是非常龐大的。學(xué)術(shù)界對此提出了一些解決辦法,例如Moco系列的memory bank的思想,就是對embedding本身做近似,將歷史上計算過的embedding存入一個memory bank中,用于后續(xù)的對比學(xué)習(xí)。而SwAV算法在此基礎(chǔ)上提出,或許我們并不需要對兩兩圖片對的embedding都做對比學(xué)習(xí),可以將任務(wù)做近似,先對embedding做聚類,然后通過聚類來學(xué)習(xí)兩兩之間的關(guān)系。在Fig1 中,代表直接由編碼函數(shù)輸出的embedding,表示映射矩陣,將embedding映射到聚類Prototype上,即,在一個batch中,通過Swapped Prediction來拉近正樣本之間的距離,通過不同圖之間引入聚類的均勻間隔限制來保證負(fù)樣本之間的聚類距離。具體公式如下: Swapped Prediction,為的映射向量,作者認(rèn)為同一張圖的不同變化生成的embedding,經(jīng)過不同映射向量,應(yīng)該映射到同一個cluster 聚類均勻限制,即同一batch中,不同圖像對應(yīng)的cluster會被均勻選擇到 SwAV算法,通過將embedding之間的對比學(xué)習(xí)簡化成聚類之間的對比學(xué)習(xí),大幅降低了計算開銷,同時在在線聚類時引入了均勻限制,使得模型不會陷入到平凡解,從而獲得了高質(zhì)量的圖像自監(jiān)督embedding。 ? M6多模態(tài)預(yù)訓(xùn)練 M6(Multi-Modality to Multi- Modality Multitask Mega-transformer)是阿里集團(tuán)達(dá)摩院研發(fā)的基于稀疏MoE的多模態(tài)預(yù)訓(xùn)練模型。在萬億級別參數(shù)的預(yù)訓(xùn)練模型基礎(chǔ)上,使用淘系商品數(shù)據(jù)進(jìn)行對比學(xué)習(xí),獲得我們最終使用的模型。稀疏MoE可以在增加參數(shù)量的情況下,保持較低的計算開銷,在Whale框架的支持下,可以獲得較好的計算效率。稀疏MoE定義如下 其中為輸入的representation,經(jīng)過gate函數(shù)的參數(shù)計算后,再經(jīng)過softmax,得到的weight中取top個。假設(shè)總共有個expert,其中,篩選得到top 的gate值之后再經(jīng)過一次softmax計算,得到最終用于和expert輸出值相乘的weight。為expert i的輸出結(jié)果。在實(shí)際使用中,模型的每次運(yùn)算只使用了有限個expert的輸出,可以減少一部分計算量。 在分布式訓(xùn)練場景下,我們可以進(jìn)一步將不同的experts置于不同的worker,在具體工程實(shí)現(xiàn)中需要考慮load balance以保證稀疏設(shè)置的合理性。具體實(shí)現(xiàn)和算法實(shí)現(xiàn)可以參考 [4] 場景實(shí)踐 ? 場景、風(fēng)格KNN召回一致率 在每平每屋輕應(yīng)用場景,使用輕應(yīng)用內(nèi)容封面圖訓(xùn)練了Moco v2、SwAV兩版自監(jiān)督圖像模型,并分別對圖像提取embedding;此外使用M6 預(yù)訓(xùn)練模型對輕應(yīng)用內(nèi)容的封面標(biāo)題提取多模態(tài)embedding;我們對比的baseline為當(dāng)前線上使用的預(yù)訓(xùn)練圖像embedding。對比方式為使用種子內(nèi)容(seed),基于不同embedding的KNN召回的結(jié)果,對比召回內(nèi)容的場景、風(fēng)格標(biāo)簽和種子內(nèi)容的場景、風(fēng)格標(biāo)簽的一致率,指標(biāo)越高,表明一致性越好。計算方式為歐式距離。這一對比,主要可以體現(xiàn)出內(nèi)容embedding在場景、風(fēng)格方面的語義表達(dá)能力,一定程度上可以反映embedding的語義表達(dá)能力。+w 代表對embedding做白化處理后的結(jié)果。對embedding進(jìn)行白化操作后再執(zhí)行KNN召回,主要是參考文獻(xiàn)[5]。在Bert模型的輸出embedding基礎(chǔ)上進(jìn)行白化處理,可以大幅提升召回的相關(guān)性。Table1 為記錄的結(jié)果 特征 召回內(nèi)容風(fēng)格一致率 召回內(nèi)容場景一致率 Online 0.63551 0.62783 Online + w 0.63704 0.63452 Moco-v2 0.61398 0.68160 Moco-v2 + w 0.61538 0.68738 SwAV 0.64229 0.71147 SwAV + w 0.64566 0.71604 M6 (32 dim) 0.70252 0.70288 M6 + w (32 dim) 0.71607 0.70221 Table1 不同embedding在風(fēng)格、場景召回一致率表現(xiàn) 從可視化結(jié)果中也可以發(fā)現(xiàn),線上使用的embedding以及Moco v2產(chǎn)出的embedding,在KNN召回后還是存在一些bad case,而SwAV和M6召回結(jié)果則直觀得看起來更好一些。此外,我們可視化主要使用了封面主圖,SwAV做為純圖像的embedding,在視覺一致性上要優(yōu)于M6的結(jié)果,后者使用了封面圖以及內(nèi)容的標(biāo)題。 ? M6&SwAV內(nèi)容封面特征加入排序 在KNN召回的實(shí)驗(yàn)中,我們初步驗(yàn)證了SwAV、M6產(chǎn)出的embedding在某些語義表達(dá)維度具有優(yōu)勢,下面我們進(jìn)一步驗(yàn)證在線上精排模型中加入M6&SwAV的embedding之后的auc指標(biāo)變化情況(粗體為最優(yōu)指標(biāo),下劃線為次優(yōu)),如下所示。在全部特征中,我們僅對封面圖的embedding特征進(jìn)行增添或者替換。對比基準(zhǔn)為不使用內(nèi)容封面圖embedding特征的特征集合,3個實(shí)驗(yàn)分別為:1. 只添加了內(nèi)容封面圖預(yù)訓(xùn)練embedding特征,2. 只添加了內(nèi)容封面圖SwAV自監(jiān)督學(xué)習(xí)獲得的圖像embedding特征,3. 只添加內(nèi)容標(biāo)題 + 封面圖的M6預(yù)訓(xùn)練embedding特征。其中SwAV和M6的embedding都經(jīng)過了白化處理。 在內(nèi)容點(diǎn)擊、詳情頁點(diǎn)擊、商詳頁點(diǎn)擊三個任務(wù)預(yù)測的auc值,其中全量數(shù)據(jù)測試,我們選取了兩個時間段訓(xùn)練測試。此外為了進(jìn)一步驗(yàn)證效果,我們針對近7天新發(fā)布的內(nèi)容也做了測試。所有實(shí)驗(yàn)均3次運(yùn)行后取平均值以及方差值,具體結(jié)果如下所示 特征 ctr_auc ctcvr_auc 商詳頁行為_auc No Image Feature 0.65426 ± 0.00125 0.67302 ± 0.00506 0.68214 ± 0.00970 Online 0.65545 ± 0.00035 0.67250 ± 0.00408 0.67486 ± 0.00812 M6 + w 0.65570 ± 0.00127 0.67673 ± 0.00411 0.68759 ± 0.00655 SwAV + w 0.65568 ± 0.00144 0.67572 ± 0.00651 0.68547 ± 0.01055 Table2 0611~0617訓(xùn)練0618測試 特征 ctr_auc ctcvr_auc 商詳頁行為_auc No Image Feature 0.66242±0.00096 0.68005±0.00273 0.68821±0.00550 online 0.66649±0.00051 0.68404±0.00351 0.68670±0.00514 M6 + w 0.66509±0.00151 0.68450±0.00513 0.69332±0.01052 SwAV + w 0.66402±0.00095 0.68324±0.00076 0.69033±0.00173 Table3 0701~0707測試0708測試 模型 ctr_auc ctcvr_auc 商詳頁行為_auc No Image Feature 0.71587±0.00454 0.73770±0.00419 0.70397±0.00985 online 0.71907±0.00588 0.74005±0.00521 0.71821±0.01793 M6 + w 0.72516±0.00113 0.74885±0.00574 0.71666±0.00317 Table4 最近7天新發(fā)布內(nèi)容auc情況對比 線上我們對加入M6 embedding的模型進(jìn)行了線上ab,7天觀察pctcvr +2.6%,avg_ipv +1.51% ? 其他場景 大量圖像自監(jiān)督學(xué)習(xí)的論文都實(shí)驗(yàn)驗(yàn)證了,基于預(yù)訓(xùn)練的自監(jiān)督模型在下游任務(wù)(分類/檢測等)上Finetune的效果要優(yōu)于end2end的訓(xùn)練方式。這里,我們基于預(yù)訓(xùn)練的SwAV模型,在躺平好貨場景的圖像上進(jìn)行葉子類目的分類模型實(shí)驗(yàn),總共3519個類目,使用SwAV預(yù)訓(xùn)練的模型作為Backbone,效果優(yōu)于直接使用ResNet50模型的分類器效果。 Type top1-accuracy top-5 accuracy ResNet50 73.72% 92.85% SwAV 74.67% 93.22% Table5 SwAV預(yù)訓(xùn)練對下游分類任務(wù)的提升 在躺平好貨的圖搜場景,我們主要使用度量學(xué)習(xí)的方式來優(yōu)化圖像特征,主要評估指標(biāo)為召回的商品的Identity Recall@N,即召回的Top-N商品中含有與query圖屬于相同商品的query數(shù)占總query數(shù)的比例。由于我們的測試集為目標(biāo)檢測 + 商品錨點(diǎn)信息自動合成的數(shù)據(jù)集,具有一定的噪聲,同時每個query圖僅對應(yīng)一個真實(shí)的相同商品(實(shí)際上一個query可以對應(yīng)多個商品),因此得到的指標(biāo)會偏低。結(jié)論是使用預(yù)訓(xùn)練的自監(jiān)督模型作為Backbone,效果會更好。 Identity Recall R@1 R@5 R@10 R@15 R@20 no-pretrain 11.56% 18.55% 21.47% 22.62% 24.26% pretrained 14.23% 21.85% 25.28% 26.68% 28.97% Table6 SwAV預(yù)訓(xùn)練對下游度量學(xué)習(xí)任務(wù)的提升 結(jié)果分析:使用預(yù)訓(xùn)練的自監(jiān)督模型對下游任務(wù)進(jìn)行Finetune能夠帶來較為明顯的提升。 總結(jié) 利用海量無標(biāo)簽數(shù)據(jù)進(jìn)行自監(jiān)督訓(xùn)練,可以極大程度上利用業(yè)務(wù)中的實(shí)際數(shù)據(jù),同時解耦了對大規(guī)模預(yù)訓(xùn)練的標(biāo)簽依賴(例如使用ImageNet的預(yù)訓(xùn)練),也更貼近實(shí)際業(yè)務(wù)場景。通過SwAV、M6等方法進(jìn)行預(yù)訓(xùn)練得到的embedding具有良好的語義表達(dá)特性,不僅在推薦效果上有所提升,SwAV自監(jiān)督獲取的embedding對實(shí)際業(yè)務(wù)場景的圖像分類、圖像搜索模型也有穩(wěn)定的提升。