內容推薦場景中自監督學習的應用
本系列文章包含每平每屋過去一年在召回、排序和冷啟動等模組中的一些探索和實踐經驗,本文為該專題的第七篇。
第一篇指路: 冷啟動系統優化與內容潛力預估實踐
第二篇指路: GNN在輕應用內容推薦中的召回實踐
第三篇指路: 基於特徵全埋點的精排ODL實踐總結
第四篇指路: Gradient Normalization在多工學習中的優化實踐
第五篇指路: 生成式重排在內容推薦中的應用實踐
第六篇指路 : 無盡流場景優化總結
背景介紹
在機器學習學界,無監督學習 (或者自監督學習) 一直被認為是最有價值的領域之一。在ISSCC 2019上,著名的人工智慧研究者,圖靈獎獲得者Yann LeCun給出了他的“蛋糕圖”2.0版本,並再次強調了自監督學習的地位,認為自監督學習是通向未來通用人工智慧的可能道路。
其實,自監督學習並不是一個新概念,在NLP領域,已經有非常多相關的應用。自監督學習的本質,是通過資料本身來構造訓練目標,從而達到不需要人工標註的目的。例如,word2vec,使用skip-gram的訓練方式,是通過單詞來預測上下文;之後Google提出的Bert,則是通過Masked LM和Next sentence prediction來實現pre-training。本質上都是利用了原有資料來構造訓練目標。
自監督的學習方式,與我們的實際場景契合度很高。在現實世界中,海量資料並不存在所謂的標籤體系,例如在內容維度,作者們創作的影象、文字,既無法套入一個標準的標籤體系,也不可能存在一個標註團隊可以處理每天百萬級的資料。通過自監督學習的方式來獲取這部分資訊成為了一條必由之路。
每平每屋輕應用是是淘系大家裝垂類中的主要流量入口,以內容導購的形式滿足使用者在家居領域的購買需求。在去年Visual4Rec的工作(詳見 http://mp.weixin.qq.com/s/LmON8pQ8TvPTfN2spblzDQ )中,我們主要通過預訓練好的影象embedding,對精排、召回以及EE三個環節做了優化取得了不錯的線上結果。在去年工作基礎之上,我們希望進一步探究自監督學習得到的embedding 質量 對 推薦、分類、搜尋 的影響。我們嘗試了2020年以來部分影象自監督學習模型在影象embedding抽取、達摩院M6預訓練模型在多模態embedding抽取中的效果,並在線下線上不同環節做了詳實的驗證。本文為琢切在每平每屋演算法團隊實習期間的工作總結。
理論基礎
▐ 影象自監督學習
自2020年以來,影象自監督演算法在學術界取得了巨大進展,基於影象隨機變換 + infoNCE loss 的設計正規化,一步步重新整理SOTA,基於自監督演算法訓練得到的無監督影象embedding,在下游使用線性分類器,其分類準確率開始逐步接近甚至超越使用CNN訓練的分類準確率。在實際場景中,我們主要使用了EVTorch團隊提供的Moco v2 [1] 模型、SwAV [2] 模型做為測試驗證。在此簡單介紹SwAV的模型原理。Fig1 展示了SwAV和一般的自監督對比學習的核心差異。
Fig1 SwAV與一般自監督對比學習的差異
一般的自監督對比學習,主要通過影象的隨機transform(例如隨機加入少量噪點、顏色輕微變化、隨機裁剪等),如下所示。我們認為,這樣的輕微變化,對於影象本身的語義表達是沒有影響的。
Fig2 影象隨機Transform舉例
同一張圖的不同transform做為正樣本,不同圖的不同transform做為負樣本,在embedding層面進行對比訓練 ,如下所示
其中 為編碼函式(表示學習方程), 與 為正樣本, 與 為負樣本集合,通過上述公式進行優化。
從上述式子中我們可以發現,假設在一個百萬級的資料集上,做embedding之間的兩兩比較,其計算開銷是非常龐大的。學術界對此提出了一些解決辦法,例如Moco系列的memory bank的思想,就是對embedding本身做近似,將歷史上計算過的embedding存入一個memory bank中,用於後續的對比學習。而SwAV演算法在此基礎上提出,或許我們並不需要對兩兩圖片對的embedding都做對比學習,可以將任務做近似,先對embedding做聚類,然後通過聚類來學習兩兩之間的關係。在Fig1 中, 代表直接由編碼函式輸出的embedding, 表示對映矩陣,將embedding對映到聚類Prototype上,即 ,在一個batch中,通過Swapped Prediction來拉近正樣本之間的距離,通過不同圖之間引入聚類的均勻間隔限制來保證負樣本之間的聚類距離。 具體公式如下:
Swapped Prediction, 為 的映射向量,作者認 為同一張圖的不同變化生成的embedding,經過不同映射向量,應該對映到同一個cluster
聚類均勻限制,即同一batch中,不同影象對應的cluster會被均勻選擇到
SwAV演算法,通過將embedding之間的對比學習簡化成聚類之間的對比學習,大幅降低了計算開銷,同時在線上聚類時引入了均勻限制,使得模型不會陷入到平凡解,從而獲得了高質量的影象自監督embedding。
▐ M6多模態預訓練
M6(Multi-Modality to Multi- Modality Multitask Mega-transformer)是阿里集團達摩院研發的基於稀疏MoE的多模態預訓練模型。在萬億級別引數的預訓練模型基礎上,使用淘系商品資料進行對比學習,獲得我們最終使用的模型。稀疏MoE可以在增加引數量的情況下,保持較低的計算開銷,在Whale框架的支援下,可以獲得較好的計算效率。稀疏MoE定義如下
其中 為輸入的representation,經過gate函式的引數 計算後,再經過softmax,得到的weight中取top 個。假設總共有 個expert,其中 ,篩選得到top 的gate值之後再經過一次softmax計算,得到最終用於和expert輸出值相乘的weight。 為 expert i的輸出結果。 在實 際使用中,模型的每次運算只使用了有限個expert的輸出,可以減少 一部分計算量。
在分散式訓練場景下,我們可以進一步將不同的experts置於不同的worker,在具體工程實現中需要考慮load balance以保證稀疏設定的合理性。具體實現和演算法實現可以參考 [4]
場景實踐
▐ 場景、風格KNN召回一致率
在每平每屋輕應用場景,使用輕應用內容封面圖訓練了Moco v2、SwAV兩版自監督影象模型,並分別對影象提取embedding;此外使用M6 預訓練模型對輕應用內容的封面標題提取多模態embedding;我們對比的baseline為當前線上使用的預訓練影象embedding。對比方式為使用種子內容(seed),基於不同embedding的KNN召回的結果,對比召回內容的場景、風格標籤和種子內容的場景、風格標籤的一致率,指標越高,表明一致性越好。計算方式為歐式距離。這一對比,主要可以體現出內容embedding在場景、風格方面的語義表達能力,一定程度上可以反映embedding的語義表達能力。+w 代表對embedding做白化處理後的結果。對embedding進行白化操作後再執行KNN召回,主要是參考文獻[5]。在Bert模型的輸出embedding基礎上進行白化處理,可以大幅提升召回的相關性。Table1 為記錄的結果
特徵 |
召回內容風格一致率 |
召回內容場景一致率 |
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在風格、場景召回一致率表現
-
結果分析
-
Moco v2在風格一致率上略低於基線,而在場景一致率上優於基線,總體來看,優勢並不明顯。M6與SwAV輸出的embedding在風格、場景的召回一致率上都顯著優於Moco v2以及線上使用的embedding基線。
-
M6的風格召回一致率上顯著優於其他embedding,我們在進一步調查後發現這主要來自於標題提供的資訊,在標題中會有大量關於風格的描述性語句
-
白化操作在各個embedding基礎上都會帶來額外提升,這主要是由於我們使用歐式距離的計算,是基於歐式空間的假設,白化操作可以在embedding原有幾何空間基礎選擇合適的標準正交基,可以擬合歐式空間假設,這也符合文獻[5]中提到的假設。
-
視覺化
從視覺化結果中也可以發現,線上使用的embedding以及Moco v2產出的embedding,在KNN召回後還是存在一些bad case,而SwAV和M6召回結果則直觀得看起來更好一些。此外,我們視覺化主要使用了封面主圖,SwAV做為純影象的embedding,在視覺一致性上要優於M6的結果,後者使用了封面圖以及內容的標題。
▐ M6&SwAV內容封面特徵加入排序
在KNN召回的實驗中,我們初步驗證了SwAV、M6產出的embedding在某些語義表達維度具有優勢,下面我們進一步驗證在線上精排模型中加入M6&SwAV的embedding之後的auc指標變化情況(粗體為最優指標,下劃線為次優),如下所示。在全部特徵中,我們僅對封面圖的embedding特徵進行增添或者替換。對比基準為不使用內容封面圖embedding特徵的特徵集合,3個實驗分別為:1. 只添加了內容封面圖預訓練embedding特徵,2. 只添加了內容封面圖SwAV自監督學習獲得的影象embedding特徵,3. 只新增內容標題 + 封面圖的M6預訓練embedding特徵。其中SwAV和M6的embedding都經過了白化處理。
在內容點選、詳情頁點選、商詳頁點選三個任務預測的auc值,其中全量資料測試,我們選取了兩個時間段訓練測試。此外為了進一步驗證效果,我們針對近7天新發布的內容也做了測試。所有實驗均3次執行後取平均值以及方差值,具體結果如下所示
特徵 |
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訓練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天新發布內容auc情況對比
-
結果分析
-
新增內容的影象embedding特徵或者多模態embedding特徵,在三個任務的離線auc指標上,對比沒有使用這樣特徵的基線都有一定提升提升,提升相對穩定。
-
使用不同時期的訓練測試資料,加入M6 embedding都對比使用線上embedding略有提升或基本持平。此外我們進一步在近7天釋出的新內容測試中發現,M6 embedding的提升會更為明顯一些,這表明對於缺乏統計類特徵的新發布內容,M6多模態特徵會扮演更重要的角色,對離線auc指標的提升也更為明顯。
線上我們對加入M6 embedding的模型進行了線上ab,7天觀察pctcvr +2.6%,avg_ipv +1.51%
▐ 其他 場景
-
影象分類
大量影象自監督學習的論 文都實驗驗證了,基於預訓練的自監督模型在下游任務(分類/檢測等)上Finetune的效果要優於end2end的訓練方式。這裡,我們基於預訓練的SwAV模型,在躺 平好貨場景的影象上進行葉子類目的分類模型實驗,總共3519個類目,使用SwAV預 訓練的模型作為Backbone,效果優於直接使用ResNet50模型的分類器效果。
Type |
top1-accuracy |
top-5 accuracy |
ResNet50 |
73.72% |
92.85% |
SwAV |
74.67% |
93.22% |
Table5 SwAV預訓練對下游分類任務的提升
-
度量學習
在躺平好貨的圖搜場景,我們主要使用度量學習的方式來優化影象特徵,主要評估指標為召回的商品的Identity Recall@N,即召回的Top-N商品中含有與query圖屬於相同商品的query數佔總query數的比例。由於我們的測試集為目標檢測 + 商品錨點資訊自動合成的資料集,具有一定的噪聲,同時每個query圖僅對應一個真實的相同商品(實際上一個query可以對應多個商品),因此得到的指標會偏低。結論是使用預訓練的自監督模型作為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預訓練對下游度量學習任務的提升
結果分析: 使用預訓練的自監督模型對下游任務進行Finetune能夠帶來較為明顯的提升。
總結
利用海量無標籤資料進行自監督訓練,可以極大程度上利用業務中的實際資料,同時解耦了對大規模預訓練的標籤依賴(例如使用ImageNet的預訓練),也更貼近實際業務場景。通過SwAV、M6等方法進行預訓練得到的embedding具有良好的語義表達特性,不僅在推薦效果上有所提升,SwAV自監督獲取的embedding對實際業務場景的影象分類、影象搜尋模型也有穩定的提升。
參考文獻
[1] Chen, Xinlei, et al. "Improved baselines with momentum contrastive learning." arXiv preprint arXiv:2003.04297 (2020).
[2] Caron, Mathilde, et al. "Unsupervised learning of visual features by contrasting cluster assignments." arXiv preprint arXiv:2006.09882 (2020).
[3] Lin, Junyang, et al. "M6: Multi-Modality-to-Multi-Modality Multitask Mega-transformer for Unified Pretraining." (2021).
[4] Wang, An, et al. "Exploring Sparse Expert Models and Beyond." (2021).
[5] Sun, Jianlin, et al. "Whitening Sentence Representations for Better Semantics and Faster Retrieval." (2021).
團隊介紹
大淘寶技術-淘寶智慧團隊
淘寶智慧團隊是一支資料和演算法一體的團隊,服務於淘寶、天貓、聚划算、閒魚和每平每屋等業務線的二十餘個業務場景,提供線上零售、內容社群、3D智慧設計和端上智慧等資料和演算法服務。我們通過機器學習、強化學習、資料探勘、機器視覺、NLP、運籌學、3D演算法、搜尋和推薦演算法,為千萬商家尋找商機,為平臺運營提供智慧化方案,為使用者提高使用體驗,為設計師提供自動搭配和佈局,從而促進平臺和生態的供給繁榮和使用者增長,不斷拓展商業邊界。
這是一支快速成長中的學習型團隊。在創造業務價值的同時,我們不斷輸出學術成果,在KDD、ICCV、Management Science等國際會議和雜誌上發表數篇學術論文。團隊學習氛圍濃厚,每年組織上百場技術分享交流,互相學習和啟發。真誠邀請海內外相關方向的優秀人才加入我們,在這裡成長並貢獻才智。
如果您有興趣可將簡歷 發至[email protected],期待 您的加入!
✿ 拓展閱讀
作者 | 邦祝
編輯| 橙子君
- 阿里郭進士:淘係數據模型治理與方案分享
- 淘寶直播PC客戶端的hybrid探索
- iOS繪製物理按鈕 - 透明圓角漸變邊框
- SIGIR2022 | 流行度偏差如何利用?探索解耦域適應無偏召回模型
- 多模態技術在淘寶主搜召回場景的探索
- 合理使用執行緒池以及執行緒變數
- CVPR 2022 | GEN-VLKT:基於預訓練知識遷移的HOI檢測方法
- 大淘寶使用者平臺技術團隊單元測試建設
- 淺入淺出代理模式與Spring事務管理
- 內容推薦場景中自監督學習的應用
- 下一代響應式Web設計:元件驅動式Web設計
- 淘系使用者平臺技術團隊單元測試建設
- CVPR2022 | 開源:基於間距自適應查詢表的實時影象增強方法
- 建設下一代 Web 開放技術——WebContain
- MaxCompute中的JSON資料處理
- 無盡流場景優化總結
- 淺談 TS 標稱型別介紹及社群實現
- 2022大淘寶技術工程師推薦書單
- Flutter 新一代圖形渲染器 Impeller
- 面向前端與未來標準的Node.js Web 框架再進化