ACM SIGKDD(ACM SIGKDD Conference on Knowledge Discovery and Data Mining)是世界數據挖掘領域的頂級國際會議。KDD Cup比賽由ACM SIGKDD舉辦,從1997年開始每一年舉辦一次,也是數據挖掘領域最有影響力的賽事之一。該比賽同時面向企業界和學術界,雲集了世界數據挖掘界的頂尖專家、學者、工程師、學生等參加,經過競賽,爲數據挖掘從業者們提供了一個學術交流和研究成果展現的理想場所。今年,KDD Cup共設置四個賽道共五道賽題,涉及數據誤差問題(Debiasing)、多模態召回(Multimodalities Recall)、自動化圖學習(AutoGraph)、對抗學習問題和強化學習問題。html
美團搜索廣告算法團隊最終在Debiasing賽道中得到冠軍(1/1895),在AutoGraph賽道中也得到了冠軍(1/149)。在Multimodalities Recall賽道中,亞軍被美團搜索與NLP團隊摘得(2/1433),美團搜索廣告算法團隊得到了第三名(3/1433)。git
跟其它電商公司同樣,美團業務場景中除了文本,還存在圖片、動圖、視頻等多種模態信息。同時,美團搜索是典型的多模態搜索引擎,召回和排序列表中存在POI、圖片、文本、視頻等多種模態結果,如何保證Query和多模態搜索結果的相關性面臨着很大的挑戰。鑑於多模態召回賽題(Multimodalities Recall)和美團搜索業務的挑戰比較相似,本着磨鍊算法基本功和沉澱相關技術能力的目的,美團搜索與NLP組建團隊參與了該項賽事,最終提出的「基於ImageBERT和LXMERT融合的多模態召回解決方案」最終得到了第二名(2/1433)(KDD Cup2020 Recall榜單)。本文將介紹多模態召回賽題的技術方案,以及多模態技術在美團搜索場景中的落地應用。github
相關代碼已經在GitHub上開源:https://github.com/zuokai/KDDCUP_2020_MultimodalitiesRecall_2nd_Place。算法
2019年,全球零售電子商務銷售額達3.53萬億美圓,預計到2022年,電子零售收入將增加至6.54萬億美圓。如此快速增加的業務規模代表了電子商務行業的廣闊發展前景,但與此同時,這也意味着日益複雜的市場和用戶需求。隨着電子商務行業規模的不斷增加,與之相關的各個模態數據也在不斷增多,包括各式各樣的帶貨直播視頻、以圖片或視頻形式展現的生活故事等等。新的業務和數據都爲電子商務平臺的發展帶來了新的挑戰。微信
目前,絕大多數的電子商務和零售公司都採用了各類數據分析和挖掘算法來加強其搜索和推薦系統的性能。在這一過程當中,多模態的語義理解是極爲重要的。高質量的語義理解模型可以幫助平臺更好的理解消費者的需求,返回與用戶請求更爲相關的商品,可以顯著的提升平臺的服務質量和用戶體驗。網絡
在此背景下,今年的KDD Cup舉辦了多媒體召回任務(Modern E-Commerce Platform: Multimodalities Recall),任務要求參賽者根據用戶的查詢Query,對候選集合中的全部商品圖片進行相關性排序,並找出最相關的5個商品圖片。舉例說明以下:架構
如圖2所示,用戶輸入的Query爲:ide
leopard-print women's shoes
根據其語義信息,左側圖片與查詢Query是相關的,而右側的圖片與查詢Query是不相關的。函數
從示例能夠看出,該任務是典型的多模態召回任務,能夠轉化爲Text-Image Matching問題,經過訓練多模態召回模型,對Query-Image樣本對進行相關性打分,而後對相關性分數進行排序,肯定最後的召回列表。性能
本次比賽的數據來自淘寶平臺真實場景下用戶Query以及商品數據,包含三部分:訓練集(Train)、驗證集(Val)和測試集(Test)。根據比賽階段的不一樣,測試集又分爲testA和testB兩個部分。數據集的規模、包含的字段以及數據樣例如表1所示。真實樣本數據不包含可視化圖片,示例圖是爲了閱讀和理解的便利。
在數據方面,須要注意的點有:
本次比賽採用召回Top 5結果的歸一化折損累計增益(Normalized Discounted Cumulative Gain,NDCG@5)來做爲相關結果排序的評價指標。
本次比賽須要解決的問題能夠轉化爲Text-Image Matching任務,即對每個Query-Image 樣本對進行類似性打分,進而對每一個Query的候選圖片進行相關度排序,獲得最終結果。多模態匹配問題一般有兩種解決思路:
通常而言,同等條件下,因爲圖文特徵組合後能夠爲模型隱層提供更多的交叉特徵信息,於是左側的模型效果要優於右側的模型,因此在後續的算法設計中,咱們都是圍繞圖3左側的解決思路展開的。
隨着Goolge BERT模型在天然語言處理領域的巨大成功,在多模態領域也有愈來愈多的研究人員開始借鑑BERT的預訓練方法,發展出融合圖片/視頻(Image/Video)等其餘模態的BERT模型,併成功應用與多模態檢索、VQA、Image Caption等任務中。所以,考慮使用BERT相關的多模態預訓練模型(Vision-Language Pre-training, VLP),並將圖文相關性計算的下游任務轉化爲圖文是否匹配的二分類問題,進行模型學習。
目前,基於Transformer模型的多模態VLP算法主要分爲兩個流派:
本次比賽中,在算法方面,咱們選用了領域最新的基於Transformer的VLP算法構建模型主體,並加入了Text-Image Matching做爲下游任務。除了構建模型之外,咱們經過數據分析來肯定模型參數,構建訓練數據。在完成模型訓練後,經過結果後處理策略來進一步提高算法效果。整個算法的流程以下圖4所示:
接下來對算法中的每一個環節進行詳細說明。
數據分析和處理主要基於如下三個方面考慮:
常規的訓練數據生成策略爲:對於每個Batch的數據,按照1:1的比例選擇正負樣本。其中,正樣本爲訓練集(Train)中的原始數據,負樣本經過替換正樣本中的Query字段產生,替換的Query是按照必定策略從訓練集(Train)中獲取。
爲了提高模型學習效果,咱們在構建負樣本的過程當中進行了難例挖掘,在構造樣本時,經過使正負樣本的部分目標框包含一樣的類別標籤,從而構建一部分較爲類似的正負樣本,以提升模型對於類似的正負樣本的區分度。
難例挖掘的過程以下圖5所示,左右兩側的相關樣本對都包含了「shoes」這一類別標籤,使用右側樣本對的Query替換左側圖片的Query,從而構建難例。經過學習這類樣本,可以提升模型對於不一樣類型「shoes」描述的區分度。
具體而言,負樣本構建策略如表2所示:
其次,經過對訓練數據中目標框的個數以及Query長度的分佈狀況分析,肯定模型的相關參數。圖片中目標框的最大個數設置爲10,Query文本的最大單詞個數爲20。後處理策略相關的內容,咱們將會在4.3部分進行詳細的介紹。
4.2.1 模型結構
基於上文中對多模態檢索領域現有方法的調研,在本次比賽中,咱們分別從單流模型和雙流模型中各選擇了相應SOTA的算法,即ImageBERT和LXMERT。具體而言,針對比賽任務,兩種算法分別進行了以下改進:
LXMERT模型方面主要的改進包括:
改進後的模型結構以下圖6所示:
特徵網絡的預訓練權重使用了LXMERT所提供權重文件,下載地址爲:https://github.com/airsplay/lxmert。
ImageBERT:本方案中一共用到了兩個版本的 ImageBERT模型,分別記爲ImageBERT A和ImageBERT B,下面會分別介紹改進點。
ImageBERT A:基於原始ImageBERT的改進有如下幾點。
依據上述策略,選用BERT-Base模型權重對變量初始化,在此基礎上進行FineTune。其模型結構以下圖7所示:
ImageBERT B:和ImageBERT A的不一樣點是在Position Embedding和Segment Embedding的處理上。
依據上述策略,一樣選用BERT-Base模型權重對變量初始化,在此基礎上進行FineTune。
三種模型構建中,共性的創新點在於,在模型的輸入中引入了圖片目標框的標籤信息。而這一思路一樣被應用在了微軟2020年5月份最新的論文Oscar [7] 中,但該文的特徵使用方式和損失函數設置與咱們的方案不一樣。
4.2.2 模型訓練
使用節4.1的數據生成策略構建訓練數據,分別對上述三個模型進行訓練,訓練後的模型在驗證集(Val)上的效果如表3所示。
4.2.3 利用損失函數進行模型微調
完成初步的模型訓練後,接下來使用不一樣的損失函數對模型進行進一步的微調,主要有AMSoftmax Loss [5]、Multi-Similarity Loss [6]。
在咱們的方案中所採用的具體策略以下:
通過微調,各模型在驗證集(Val)上的效果如表4所示。
4.2.4 經過數據過採樣進行模型微調
爲了進一步提升模型效果,本方案根據訓練集(Train)中Query字段與測試集(testB)中的Query字段的類似程度,對訓練集(Test)進行了過採樣,採樣規則以下:
數據過採樣後,分別對與上述的三個模型按照以下方案進行微調:
訓練後各模型在驗證集(Val)上的效果如表5所示:
爲了充分利用所有有標籤的數據,本方案進一步使用了驗證集(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個樣本對相關性得分的文件。接下來對預測結果進行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)上所得結果進行後處理,模型的NDCG@5 分數從0.7098提高到了0.7486。
b.考慮到同一Image對應的多條Query每每差別較小,其語義也是比較接近的,這致使了訓練後的模型對這類樣本的區分度較差,較差區分度的相關性分數會必定程度上引發模型NDCG@5的降低。針對這種狀況咱們採用了以下操做:
使用上述策略對ImageBERT B的驗證集(Val)結果進行後處理,當選定閾值爲0.92時,模型的NDCG@5 分數從0.7098提高到了0.8352。
能夠看到,採用策略b處理後,模型性能獲得了顯著提高,所以,本方案在測試集(testB)上,對全部模型Ensemble後的相關性得分採用了策略b進行處理,獲得了最終的相關性排序。
前面提到過,美團搜索是典型的多模態搜索場景,目前多模態能力在搜索的多個場景進行了落地。介紹具體的落地場景前,先簡單介紹下美團搜索的總體架構,美團總體搜索架構主要分爲五層,分別爲:數據層、召回層、精排層、小模型重排層以及最終的結果展現層,接下來按照搜索的五層架構詳細介紹下搜索場景中多模態的落地。
多模態表示:基於美團海量的文本和圖像/視頻數據,構建平行語料,進行ImageBERT模型的預訓練,訓練模型用於提取文本和圖片/視頻向量化表徵,服務下游召回/排序任務。
多模態融合:圖片/視頻數據的多分類任務中,引入相關聯的文本,用於提高分類標籤的準確率,服務下游的圖片/視頻標籤召回以及展現層按搜索Query出圖。
多模態表示&融合:內容搜索、視頻搜索、全文檢索等多路召回場景中,引入圖片/視頻的分類標籤召回以及圖片/視頻向量化召回,豐富召回結果,提高召回結果相關性。
多模態表示&融合:排序模型中,引入圖片/視頻的向量化Embedding特徵,以及搜索Query和展現圖片/視頻的相關性特徵、搜索結果和展現圖片/視頻的相關性特徵,優化排序效果。
多模態融合:圖片/視頻優選階段,引入圖片/視頻和Query以及和搜索結果的相關性信息,作到按搜索Query出圖以及搜索結果出圖,優化用戶體驗。
在本次比賽中,咱們構建了一種基於ImageBERT和LXMERT的多模態召回模型,並經過數據預處理、結果融合以及後處理策略來提高模型效果。該模型可以細粒度的對用戶查詢Query的相關圖片進行打分排序,從而獲得高質量的排序列表。經過本次比賽,咱們對多模態檢索領域的算法和研究方向有了更深的認識,也藉此機會對前沿算法的工業落地能力進行了摸底測試,爲後續進一步的算法研究和落地打下了基礎。此外,因爲本次比賽的場景與美團搜索與NLP部的業務場景存在必定的類似性,所以該模型將來也可以直接爲咱們的業務賦能。
目前,美團搜索與NLP團隊正在結合多模態信息,好比文本、圖像、OCR等,開展MT-BERT多模態預訓練工做,經過融合多模態特徵,學習更好的語義表達,同時也在嘗試落地更多的下游任務,好比圖文相關性、向量化召回、多模態特徵表示、基於多模態信息的標題生成等。
左凱,馬潮,東帥,曹佐,金剛,張弓等,均來自美團AI平臺搜索與NLP部。
美團搜索與NLP部,長期招聘搜索、推薦、NLP算法工程師,座標北京/上海。歡迎感興趣的同窗發送簡歷至:tech@meituan.com(郵件註明:搜索與NLP部)
閱讀更多技術文章,請掃碼關注微信公衆號-美團技術團隊!