Categories
程式開發

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用


ACM SIGKDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining)是世界數據挖掘領域的頂級國際會議。今年,KDD Cup共設置四個賽道共五道賽題,涉及數據偏差問題(Debiasing)、多模態召回(Multimodalities Recall)、自動化圖學習(AutoGraph)、對抗學習問題和強化學習問題。
美團搜索廣告算法團隊最終在去偏賽道中獲得冠軍(1/1895),在簽名賽道中也獲得了冠軍(1/149)。在多模式召回賽道中,亞軍被美團搜索與NLP團隊摘得(2/1433),而季軍被美團搜索廣告算法團隊收入囊中(3/1433)。
本文將介紹多模態召回比賽亞軍的技術方案,以及在美團搜索業務中的應用與實踐,希望能給從事相關工作的同學帶來一些幫助或者啟發。

1. 背景

跟其它電商公司一樣,美團業務場景中除了文本,還存在圖片、動圖、視頻等多種模態信息。同時,美團搜索是典型的多模態搜索引擎,召回和排序列表中存在POI、圖片、文本、視頻等多種模態結果,如何保證Query和多模態搜索結果的相關性面臨著很大的挑戰。

鑑於多模態召回賽題(Multimodalities Recall)和美團搜索業務的挑戰比較類似,本著磨煉算法基本功和沈淀相關技術能力的目的,美團搜索與NLP組建團隊參與了該項賽事,最終提出的“基於ImageBERT和LXMERT融合的多模態召回解決方案”最終獲得了第二名(2/1433)(KDD Cup2020 Recall榜單)。本文將介紹多模態召回賽題的技術方案,以及多模態技術在美團搜索場景中的落地應用。

相關代碼已經在GitHub上開源:

https://github.com/zuokai/KDDCUP_2020_MultimodalitiesRecall_2nd_Place

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 1

圖1 KDD Cup 2020 Multimodalities Recall 比賽TOP 10榜單

2. 賽題簡介

2019年,全球零售電子商務銷售額達3.53萬億美元,預計到2022年,電子零售收入將增長至6.54萬億美元。如此快速增長的業務規模表明了電子商務行業的廣闊發展前景,但與此同時,這也意味著日益複雜的市場和用戶需求。隨著電子商務行業規模的不斷增長,與之相關的各個模態數據也在不斷增多,包括各式各樣的帶貨直播視頻、以圖片或視頻形式展示的生活故事等等。新的業務和數據都為電子商務平台的發展帶來了新的挑戰。

目前,绝大多数的电子商务和零售公司都采用了各种数据分析和挖掘算法来增强其搜索和推荐系统的性能。在这一过程中,多模态的语义理解是极为重要的。高质量的语义理解模型能够帮助平台更好的理解消费者的需求,返回与用户请求更为相关的商品,能够显著的提高平台的服务质量和用户体验。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 2

在此背景下,今年的KDD Cup舉辦了多媒體召回任務(Modern E-Commerce Platform: Multimodalities Recall),任務要求參賽者根據用戶的查詢Query,對候選集合中的所有商品圖片進行相關性排序,並找出最相關的5個商品圖片。舉例說明如下:

如下圖2所示,用戶輸入的Query為:

leopard-print women's shoes

根據其語義信息,左側圖片與查詢Query是相關的,而右側的圖片與查詢Query是不相關的。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 3

圖2 多模態匹配示意圖

從示例可以看出,該任務是典型的多模態召回任務,可以轉化為Text-Image Matching問題,通過訓練多模態召回模型,對Query-Image樣本對進行相關性打分,然後對相關性分數進行排序,確定最後的召回列表。

2.1 比賽數據

本次比賽的數據來自淘寶平台真實場景下用戶Query以及商品數據,包含三部分:訓練集(Train)、驗證集(Val)和測試集(Test)。根據比賽階段的不同,測試集又分為testA和testB兩個部分。數據集的規模、包含的字段以及數據樣例如表1所示。真實樣本數據不包含可視化圖片,示例圖是為了閱讀和理解的便利。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 4

表1 比賽數據集詳情

在數據方面,需要注意的點有:

  • 訓練集(Train)每條數據代表相關的Query-Image樣本對,而在驗證集(Val)和測試集(Test)中,每條Query會有多張候選圖片,每條數據表示需要計算相關性的Query-Image樣本對。
  • 賽事主辦方已經對所有圖片通過目標檢測模型(Faster-RCNN)提取了多個目標框,並保存了目標框相應的2048維圖像特徵。因此,在模型中無需再考慮圖像特徵的提取。

2.2 評價指標

本次比賽採用召回Top 5結果的歸一化折損累計增益(Normalized Discounted Cumulative Gain,[email protected])來作為相關結果排序的評價指標。

3. 經典解法

本次比賽需要解決的問題可以轉化為Text-Image Matching任務,即對每一個Query-Image 樣本對進行相似性打分,進而對每個Query的候選圖片進行相關度排序,得到最終結果。多模態匹配問題通常有兩種解決思路:

  1. 將不同模態數據映射到不同特徵空間,然後通過隱層交互這些特徵學習到一個不可解釋的距離函數,如圖3 (a)所示。
  2. 將不同模態數據映射到同一特徵空間,從而計算不同模態數據之間的可解釋距離(相似度),如圖3 (b)所示。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 5

圖3 常用的多模態匹配解決思路

一般而言,同等條件下,由於圖文特徵組合後可以為模型隱層提供更多的交叉特徵信息,因而左側的模型效果要優於右側的模型,所以在後續的算法設計中,我們都是圍繞圖3左側的解決思路展開的。

隨著Goolge BERT模型在自然語言處理領域的巨大成功,在多模態領域也有越來越多的研究人員開始借鑒BERT的預訓練方法,發展出融合圖片/視頻(Image/Video)等其他模態的BERT模型,並成功應用與多模態檢索、VQA、Image Caption等任務中。因此,考慮使用BERT相關的多模態預訓練模型(Vision-Language Pre-training, VLP),並將圖文相關性計算的下游任務轉化為圖文是否匹配的二分類問題,進行模型學習。

目前,基於Transformer模型的多模態VLP算法主要分為兩個流派:

  • 單流模型,在單流模型中文本信息和視覺信息在一開始便進行了融合,直接一起輸入到Encoder(Transformer)中。典型的單流模型如ImageBERT [3],VisualBERT [9],VL-BERT [10] 等。
  • 雙流模型,在雙流模型中文本信息和視覺信息一開始先經過兩個獨立的Encoder(Transformer)模塊,然後再通過Cross Transformer來實現不同模態信息的融合。典型的雙流模型如LXMERT [4],ViLBERT [8] 等。

4. 我們的方法:Transformer-Based Ensembled Models TBEM

本次比賽中,在算法方面,我們選用了領域最新的基於Transformer的VLP算法構建模型主體,並加入了Text-Image Matching作為下游任務。除了構建模型以外,我們通過數據分析來確定模型參數,構建訓練數據。在完成模型訓練後,通過結果後處理策略來進一步提升算法效果。整個算法的流程如下圖4所示:

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 6

圖4 算法流程圖

接下來對算法中的每個環節進行詳細說明。

4.1 數據分析&處理

數據分析和處理主要基於以下三個方面考慮:

  • 正負樣本構建 :由於主辦方提供的訓練數據中,只包含了相關的Query-Image樣本對,相當於只有正樣本數據,因此需要通過數據分析,設計策略構建負樣本。
  • 模型參數設定 :在模型中,圖片目標框最大數量、Query文本最大長度等參數需要結合訓練數據的分佈來設計。
  • 排序結果後處理 :通過分析Query召回的圖片數據分佈特點,確定結果後處理策略。

常規的訓練數據生成策略為:對於每一個Batch的數據,按照1:1的比例選擇正負樣本。其中,正樣本為訓練集(Train)中的原始數據,負樣本通過替換正樣本中的Query字段產生,替換的Query是按照一定策略從訓練集(Train)中獲取。

為了提升模型學習效果,我們在構建負樣本的過程中進行了難例挖掘,在構造樣本時,通過使正負樣本的部分目標框包含同樣的類別標籤,從而構建一部分較為相似的正負樣本,以提高模型對於相似的正負樣本的區分度。

難例挖掘的過程如下圖5所示,左右兩側的相關樣本對都包含了“shoes”這一類別標籤,使用右側樣本對的Query替換左側圖片的Query,從而構建難例。通過學習這類樣本,能夠提高模型對於不同類型“shoes”描述的區分度。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 7

圖5 難例挖掘過程示意圖

具體而言,負樣本構建策略如表2所示:

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 8

表2 負樣本Query抽取策略

其次,通過對訓練數據中目標框的個數以及Query長度的分佈情況分析,確定模型的相關參數。圖片中目標框的最大個數設置為10,Query文本的最大單詞個數為20。後處理策略相關的內容,我們將會在4.3部分進行詳細的介紹。

4.2 模型構建與訓練

4.2.1 模型結構

基於上文中對多模態檢索領域現有方法的調研,在本次比賽中,我們分別從單流模型和雙流模型中各選擇了相應SOTA的算法,即ImageBERT和LXMERT。具體而言,針對比賽任務,兩種算法分別進行瞭如下改進:

LXMERT模型方面主要的改進包括:

  • 圖片特徵部分(Visual Feature)融入了目標框類別標籤所對應的文本特徵。
  • Text-Image Matching Task中使用兩層全連接網絡進行圖片和文本融合特徵的二分類,其中第一個全連接層之後使用GeLU [2] 進行激活,然後通過LayerNorm [1] 進行歸一化處理。
  • 在第二個全連接層之後採用Cross Entropy Loss訓練網絡。

改進後的模型結構如下圖6所示:

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 9

圖6 比賽中使用的LXMERT模型結構

特徵網絡的預訓練權重使用了LXMERT所提供權重文件,下載地址為:https://github.com/airsplay/lxmert

ImageBERT :本方案中一共用到了兩個版本的ImageBERT模型,分別記為ImageBERT A和ImageBERT B,下面會分別介紹改進點。

ImageBERT A :基於原始ImageBERT的改進有以下幾點。

  • 訓練任務 :不對圖片特徵和Query的部分單詞做掩碼,僅訓練相關性匹配任務,不進行MLM等其他任務的訓練。
  • 段嵌入 :將Segment Embedding統一編碼為0,不對圖片特徵和Query文本單獨進行編碼。
  • 損失函數 :在[CLS]位輸出Query與Image的匹配關係,通過Cross Entropy Loss計算損失。

依據上述策略,選用BERT-Base模型權重對變量初始化,在此基礎上進行FineTune。其模型結構如下圖7所示:

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 10

圖7 比賽中使用的ImageBert模型結構

ImageBERT B :和ImageBERT A的不同點是在Position Embedding和Segment Embedding的處理上。

  • 位置嵌入 :去掉了ImageBert中圖像目標框位置信息的Position Embedding結構。
  • 段嵌入 :文本的Segment Embedding編碼為0,圖片特徵的Segment Embedding編碼為1。

依據上述策略,同樣選用BERT-Base模型權重對變量初始化,在此基礎上進行FineTune。

三種模型構建中,共性的創新點在於,在模型的輸入中引入了圖片目標框的標籤信息。而這一思路同樣被應用在了微軟2020年5月份最新的論文Oscar [7] 中,但該文的特徵使用方式和損失函數設置與我們的方案不同。

4.2.2 模型訓練

使用節4.1的數據生成策略構建訓練數據,分別對上述三個模型進行訓練,訓練後的模型在驗證集(Val)上的效果如表3所示。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 11

表3 初步訓練後模型在驗證集(Val)上的效果

4.2.3 利用損失函數進行模型微調

完成初步的模型訓練後,接下來使用不同的損失函數對模型進行進一步的微調,主要有AMSoftmax Loss [5],多重相似性損失 [6]。

  • AMSoftmax Loss通過權值歸一化和特徵歸一化,在縮小類內距離的同時增大類間距離,從而提高了模型效果。
  • Multi-Similarity Loss將深度度量學習轉化為樣本對的加權問題,採用採樣和加權交替迭代的策略實現了自相似性,負相對相似性和正相對相似性三種,能夠促使模型學習得到更好的特徵。

在我們的方案中所採用的具體策略如下:

  • 對於LXMERT,在特徵網絡後加入Multi-Similarity Loss,與Cross Entropy Loss 組成多任務學習網絡,進行模型微調。
  • 對於ImageBERT A,使用AMSoftmax Loss代替Cross Entropy Loss。
  • 對於ImageBERT B,損失函數處理方式和LXMERT一致。

經過微調,各模型在驗證集(Val)上的效果如表4所示。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 12

表4 損失函數對模型微調–驗證集(Val)上的效果

4.2.4 通過數據過採樣進行模型微調

為了進一步提高模型效果,本方案根據訓練集(Train)中Query字段與測試集(testB)中的Query字段的相似程度,對訓練集(Test)進行了過採樣,採樣規則如下:

  • 對Query在測試集(testB)中出現的樣本,或與測試集(testB)中的Query存在包含關係的樣本,根據其在訓練集(Train)出現的次數,按照反比例進行過採樣。
  • 對Query未在測試集(testB)中出現的樣本,根據兩個數據集Query中重複詞的個數,對測試集(testB)每條Query抽取重複詞數目Top10的訓練集(Train)樣本,每條樣本過採樣50次。

數據過採樣後,分別對與上述的三個模型按照如下方案進行微調:

  • 對於LXMERT模型,使用過採樣得到的訓練樣本對LXMERT模型進行進一步微調。
  • 對於ImageBERT A模型,本方案從訓練集(Train)選出Query中單詞和測試集(Test)Query存在重合的樣本對模型進行進一步微調。
  • 對於ImageBERT B模型,考慮到訓練集(Train)中存在Query表達意思相同,但是單詞排列順序不同的情況,類似”sporty men’s high-top shoes”和”high-top sporty men’s shoes”,為了增強模型的魯棒性,以一定概率對Query的單詞(Word)進行隨機打亂,對ImageBERT B模型進行進一步微調。

訓練後各模型在驗證集(Val)上的效果如表5所示:

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 13

表5 過採樣後驗證集(Val)集上的效果

為了充分利用全部有標籤的數據,本方案進一步使用了驗證集(Val)對模型進行FineTune。為了避免過擬合,最終提交結果只對ImageBERT A模型進行了上述操作。

在Query-Image樣本對的相關性的預測階段,本方案對測試集(testB)Query所包含的短句進行統計,發現其中“sen department” 這一短句在測試集(testB)中大量出現,但在訓練集(Train)中從未出現,但出現過“forest style”這個短句。為了避免這組同義短句對模型預測帶來的影響,選擇將測試集(testB)中Query的“sen department”替換為“forest style”,並且利用ImageBERT A對替換後的測試集進行相關性預測,結果記為ImageBERT A’。

4.3 模型融合和後處理

經過上述的模型構建、訓練以及預測,本方案共得到了4個樣本對相關性得分的文件。接下來對預測結果進行Ensemble,並按照一定策略進行後處理,得到Query相應的Image候選排序集合,具體步驟如下:

(1)在Ensemble階段,本方案選擇對不同模型所得相關性分數進行加權求和,作為每一個樣本對的最終相關性得分,各模型按照LXMERT、ImageBERT A、ImageBERT B、ImageBERT A’的順序的權值為0.3:0.2:0.3:0.2,各模型的權重利用網格搜索的方式確定,通過遍歷4個模型的不同權重佔比,每個模型權重佔比從0到1,選取在valid集上效果最優的權重,進行歸一化,作為最終權重。

(2)在得到所有Query-Image樣本對的相關性得分之後,接下來對Query所對應的多張候選圖片進行排序。驗證集(Val)和測試集(testB)的數據中,部分Image出現在了多個Query的候選樣本中,本方案對這部分樣本做了進一步處理:

a.考慮到同一Image通常只對應一個Query,因此認為同一個Image只與相關性分數最高的Query相關。使用上述策略對ImageBERT B模型在驗證集(Val)上所得結果進行後處理,模型的[email protected] 分數從0.7098提升到了0.7486。

b.考慮到同一Image對應的多條Query往往差異較小,其語義也是比較接近的,這導致了訓練後的模型對這類樣本的區分度較差,較差區分度的相關性分數會一定程度上引起模型[email protected]的下降。針對這種情況我們採用瞭如下操作:

  • 如果同一Query的相關性分數中,Top1 Image和Top2 Image相關性分數之差大於一定閾值,計算[email protected]時則只保留Top 1所對應的Query-Image樣本對,刪除其他樣本對。
  • 相反的,如果Top1 Image和Top2 Image相關性分數之差小於或等於一定閾值,計算[email protected]時,刪除所有包含該Image的樣本對。

使用上述策略對ImageBERT B的驗證集(Val)結果進行後處理,當選定閾值為0.92時,模型的[email protected] 分數從0.7098提升到了0.8352。

可以看到,采用策略b处理后,模型性能得到了显著提升,因此,本方案在测试集(testB)上,对所有模型Ensemble后的相关性得分采用了策略b进行处理,得到了最终的相关性排序。

5. 多模態在美團搜索的應用

前面提到過,美團搜索是典型的多模態搜索場景,目前多模態能力在搜索的多個場景進行了落地。介紹具體的落地場景前,先簡單介紹下美團搜索的整體架構,美團整體搜索架構主要分為五層,分別為:數據層、召回層、精排層、小模型重排層以及最終的結果展示層,接下來按照搜索的五層架構詳細介紹下搜索場景中多模態的落地。

數據層

多模態表示 :基於美團海量的文本和圖像/視頻數據,構建平行語料,進行ImageBERT模型的預訓練,訓練模型用於提取文本和圖片/視頻向量化表徵,服務下游召回/排序任務。

多模態融合 :圖片/視頻數據的多分類任務中,引入相關聯的文本,用於提升分類標籤的準確率,服務下游的圖片/視頻標籤召回以及展示層按搜索Query出圖。

召回層

多模態表示&融合 :內容搜索、視頻搜索、全文檢索等多路召回場景中,引入圖片/視頻的分類標籤召回以及圖片/視頻向量化召回,豐富召回結果,提升召回結果相關性。

精排層&小模型重排

多模態表示&融合:排序模型中,引入圖片/視頻的向量化Embedding特徵,以及搜索Query和展示圖片/視頻的相關性特徵、搜索結果和展示圖片/視頻的相關性特徵,優化排序效果。

展示層

多模態融合:圖片/視頻優選階段,引入圖片/視頻和Query以及和搜索結果的相關性信息,做到按搜索Query出圖以及搜索結果出圖,優化用戶體驗。

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用 14

圖8 多模態在美團搜索的落地場景

6. 總結

在本次比賽中,我們構建了一種基於ImageBERT和LXMERT的多模態召回模型,並通過數據預處理、結果融合以及後處理策略來提升模型效果。該模型能夠細粒度的對用戶查詢Query的相關圖片進行打分排序,從而得到高質量的排序列表。通過本次比賽,我們對多模態檢索領域的算法和研究方向有了更深的認識,也藉此機會對前沿算法的工業落地能力進行了摸底測試,為後續進一步的算法研究和落地打下了基礎。此外,由於本次比賽的場景與美​​團搜索與NLP部的業務場景存在一定的相似性,因此該模型未來也能夠直接為我們的業務賦能。

目前,美團搜索與NLP團隊正在結合多模態信息,比如文本、圖像、OCR等,開展MT-BERT多模態預訓練工作,通過融合多模態特徵,學習更好的語義表達,同時也在嘗試落地更多的下游任務,比如圖文相關性、向量化召回、多模態特徵表示、基於多模態信息的標題生成等。

參考文獻

[1] Ba,JL,Kiros,JR和Hinton,GE層規範化。 arXiv預印本arXiv:1607.06450(2016)。

[2] Hendrycks,D.和Gimpel,K.高斯誤差線性單位(GeLU)。 arXiv預印本arXiv:1606.08415(2016)。

[3] Qi,D.,Su,L.,Song,J.,Cui,E.,Bharti,T.和Sacheti,A.Imagebert:使用大規模弱監督圖像文本數據進行的交叉模式預訓練。 arXiv預印本arXiv:2001.07966(2020)。

[4] Tan H.和Bansal M. LXMERT:從變壓器學習跨模式編碼器表示。 arXiv預印本arXiv:1908.07490(2019)。

[5] Wang,F.,Liu,W.,Liu H.,and Cheng,J.Additive Margin Softmax for Face Verification。 arXiv預印本arXiv:1801.05599(2018)。

[6] Wang X,Han,X.,Huang,W.,Dong,D.,and Scott,MR多相似度損失與通用對加權的深度度量學習。 在IEEE計算機視覺和模式識別會議(2019)的會議記錄中,第5022-5030頁。

[7] Li X,Yin X,Li C等。 奧斯卡:對象語義學針對視覺語言任務進行了預訓練[J]。 arXiv預印本arXiv:2004.06165,2020。

[8] Lu J,Batra D,Parikh D等。 Vilbert:針對視覺和語言任務的與任務無關的視覺語言表示的預訓練[C]//神經信息處理系統的進展。 2019:13-23。

[9] Li LH,Yatskar M,Yin D等。 Visualbert:視覺和語言的簡單而高效的基準[J]。 arXiv預印本arXiv:1908.03557,2019。

[10] Su W,Zhu X,Cao Y,et al。 Vl-bert:通用視覺語言表示的預訓練[J]。 arXiv預印本arXiv:1908.08530,2019。

[11] 楊揚、佳昊等. MT-BERT的探索和實踐

作者介紹

左凱,馬潮,東帥,曹佐,金剛,張弓等,均來自美團AI平台搜索與NLP部。

本文轉載自公眾號美團技術團隊(ID:meituantech)。

原文鏈接

KDD Cup 2020多模態召回比賽亞軍方案與搜索業務應用