背景
隨著 Web 技術發展,互聯網上包含大量的多模態信息(包括文本,圖像,語音,視頻等)。從海量多模態信息搜索出重要信息一直是學術界研究重點。多模態匹配核心就是圖文匹配技術 (Text and Image Matching),這也是一項基礎研究,在非常多的領域有很多應用,例如圖文檢索 (Cross-modality IR),圖像標題生成 (Image Caption),圖像問答系統 (Vision Question Answering), 圖像知識推理 (Visual Commonsense Reasoning)。但是目前學術界研究重點放在通用領域的多模態研究,針對電商領域的多模態研究相對較少,然而電商領域也非常需要多模態匹配模型,應用場景特別多。本文重點關注電商領域圖文多模態技術研究。
多模態匹配研究簡史
跨模態研究核心重點在於如何將多模態數據匹配上,即如何將多模態信息映射到統一的表徵空間。早期研究主要分成兩條主線:Canonical Correlation Analysis (CCA) 和Visual Semantic Embedding (VSE)。
CCA 系列方法
主要是通過分析圖像和文本的 correlation,然後將圖像和文本到同一空間。這一系列的問題論文完美,但是效果相對深度學習方法還是有待提高的。雖然後期也有基於深度學習的方案 (DCCA),但是對比後面的 VSE 方法還有一定差距。
VSE 系統方法
將圖像和文本分別表示成 Latent Embedding,然後將多模態 Latent Embedding 擬合到同一空間。VSE 方法又延伸出來非常多的方法例如 SCAN,PFAN。這些方法在通用圖文匹配上已經拿到不錯效果。
隨著 pre-training 和 self-supervised 技術在 CV 和 NLP 領域的應用。2019 年開始,有學者開始嘗試基於大規模數據,使用預訓練的 BERT 模型將圖文信息擬合同一空間。這些方法在通用領域取得很好的效果,這一系列的方法可以參看 VLBERT 這篇 Paper。
基於 BERT 的預訓練圖文模型的主要流程:
1)利用圖像目標檢測技術先識別圖像中的 Region of Interests(RoIs)。
2)把 ROI 當做圖像的 token,和文本 token 做 BERT 多模態融合,這裡面有兩個方案:
- Single-stream:以 VLBERT 為代表,直接將圖像 token 和文本 token 放入到 BERT 做多模態融合。
- Cross-stream:以 ViLBERT 為代表,將圖像 token 和文本 token 先做初步的交互,然後在放入到 BERT。
我們嘗試了 ViLBERT 方法,發現在通用領域效果確實不錯。但是在電商領域,由於提取的 ROI 並不理想,導致效果低於預期。主要原因在於:
1)電商圖像 ROI 太少
電商圖像產品單一,背景簡單提取 ROI 很少,如圖 1(c)。統計來看,通用領域 MsCoCo 數據,每張圖像可以提取 19.8 個 ROI,但是電商只能提取 6.4 個 ROI。當然我們可以強制提取最小的 ROI,比如 ViLBERT 要求在 10~36 個,VLBERT 要求 100 個。但是當設定最小提取的 ROI 後,又提取了太多了重複的 ROI,可以看圖 1(e)。
2)電商 ROI 不夠 fine-grained
電商圖像單一,提取的 RoIs 主要是 object-level 的產品 (例如,整體連衣裙,T-shirt 等) 。相對文本來說,不夠細粒度 fine-grain,比如文本里面可以描述主體非常細節屬性 (如,圓領,九分褲,七分褲等等)。這就導致圖像 ROI 不足以和文本 token 匹配,大家可以對比一下電商領域的圖 1(c) 和圖 1(d)。再看下通用領域的圖 1(a) 和圖 1(b),你會發現通用領域簡單一些,只要能將圖像中的主體和文本 token alignment 到一起,基本不會太差。
3)電商圖像 ROI 噪音太大
如圖 1(f) 中提取的模特頭,頭髮,手指,對於商品匹配來說用處不大。
這也就解釋了,電商領域也採用現有的 ROI 方式,並不能得到非常理想的結果。如果說,針對電商領域重新訓練一個電商領域的 ROI 提取模型,需要大量的數據標註工作。那麼有沒有簡單易行的方法做圖文匹配擬合。
圖1: 電商領域 ROI 問題
FashionBERT 圖文匹配模型
本文我們提出了 FashionBERT 圖文匹配模型,核心問題是如何解決電商領域圖像特徵的提取或者表達。Google 在 2019 年年中發表了一篇文章圖像自監督學習模型 selfie,主要思路是將圖像分割成子圖,然後預測子圖位置信息。從而使模型達到理解圖像特徵的目的,這個工作對我們啟發很大。我們直接將圖像 split 相同大小的 Patch,然後將 Patch 作為圖像的 token,和文本進行擬合,如圖二所示。使用 Patch 的好處:
- 圖像 Patch 包含了所有圖像的細節信息。
- 圖像 Patch 不會出現重複的 ROI 或者太多無用的 ROI。
- 圖像 Patch 是天然包含順序的,所以解決 BERT 的 sequence 問題。
FashionBERT 整體結構如圖 2,主要包括 Text Embedding, Patch Embedding, Cross-modality FashionBERT,以及 Pretrain Tasks。
Text Embedding
和原始 BERT 一樣,先將句子分成 Token,然後我們採用 Whole Word Masking 技術將整個 Token 進行 masking。Masking 的策略和原始的 BERT 保持一致。
Patch Embedding
和 Text Embedding 類似,這裡我們將圖片平均分成 8*8 個 patch。每個 Patch 經過 ResNet 提取 patch 的圖像特徵,我們提取 2048 維圖像特徵。Patch mask 策略,我們隨機 masked 10% 的 patch,masked 的 patch 用 0 代替。同時在 Segment 字段我們分別用 "T" 和 "I" 區分文 本token 輸入和圖像 patch 輸入。
Cross-modality FashionBERT
採用預訓練的 BERT 為網絡,這樣語言模型天然包含在 FashionBERT 中。模型可以更加關注圖文匹配融合。
圖2: FashionBERT 主要框架
FashionBERT 模型在 pretrain 階段,總共包含了三個任務:
1 Masked Language Modeling (MLM)
預測 Masked Text Token,這個任務訓練和參數我們保持和原始的 BERT 一致。
2 Masked Patch Modeling (MPM)
預測 Masked Patch,這個任務和 MLM 類似。但是由於圖像中沒有 id 化的 token。這裡我們用 patch 作為目標,希望 BERT 可以重構 patch 信息,這裡我們選用了 KLD 作為 loss 函數。
3 Text and Image Alignment
和 Next Sentence Prediction 任務類似,預測圖文是否匹配。正樣本是產品標題和圖片,負樣本我們隨機採樣同類目下其他產品的圖片作為負樣本。
這是一個多任務學習問題,如何平衡這些任務的學習權重呢?另外,還有一個問題,目前很多實驗指出 BERT 中 NSP 的效果並不一定非常有效,對最終的結果的影響不是特別明朗。但是對於圖文匹配來說,Text and Image Alignment 這個 loss 是至關重要的。那麼如何平衡這幾個任務的學習呢?這裡我們提出 adaptive loss 算法,我們將學習任務的權重看做是一個新的優化問題,如圖 3 所示。FashionBERT 的 loss 是整體 loss 的加和,由於只有三個任務,其實我們可以直接得到任務權重 W 的解析解(具體的求解過程可以參考我們論文,這裡不再贅述)。
圖3: Adaptive Loss
整個 w 的學習過程可以看做是一個學生想學習三門功課,w 的作用是控制學習的關注度,一方面控制別偏科,一方面總成績要達到最高。具體 adaptive loss 算法,可以參看論文。從實際的效果來看 w,隨著訓練的迭代關注不同的任務,達到對任務做平衡的目的。
業務應用
目前 FashionBERT 已經開始在 Alibaba 搜索多模態向量檢索上應用,對於搜索多模態向量檢索來說,匹配任務可以看成是一個文文圖匹配任務,即 User Query (Text)-Product Title (Text) - Product Image (Image) 三元匹配關係。FashionBERT 從上面的模型可以看到是一個基礎的圖文匹配模型,因此我們做了 Continue Pretrain 工作,同時加入 Query,Title,Image Segment 區分,如圖四所示。和 FashionBERT 最大的區別在於我們引入三個 segment 類型,“Q”,“T”,“I” 分別代表 Query,Title,Image。
圖4: FashionBERT Continue Pretrain
Continue Pretrain 之後的模型可以在非常小的 finetune 數據上就快速拿到非常不錯的效果。目前我們向量檢索模型如下圖 5:
圖5: 向量檢索 3.0 多模態強交互匹配模型
上圖中我們採用雙塔模型 (塔之間參數共享),這樣可以方便在線 Query 向量生成和離線的產品向量生成。另外在 Query 側,我們用共現的 Query 輔助 Query 的特徵表達,在產品側,我們用擴展信息擴大產品語義表達。
實驗效果
公開數據集
我們採用 FashionGen 數據集,對比了主流圖文匹配技術,以及最新的 ViLBERT 和 VLBERT,在圖文匹配和 Cross-modality Retrieval 效果如下,FashionBERT 取得非常明顯的提升。
ICBU 數據上
對比 BERT 模型,效果提升也非常明顯。同時由於線上預測性能問題,finetune 模型做了模型約減,我們只用了 FashionBERT 前兩層,同時引入緩存,動態可變長度 Variable Sequence Length (VSL) 策略,這樣大大提升了 FashionBERT 線上服務性能。如下表所示。
目前論文已經被信息檢索領域國際頂級會議 SIGIR20 Industry Track 中接收。預印版本見這裡:https://arxiv.org/abs/2005.09801。感興趣的同學後續可以看我們的論文,有更加詳細的對比。
後續規劃
圖文匹配方向雖然已經有很長的研究歷史了,但是基於 pretrain BERT 的方式還方興未艾。後續我們計劃在四個方面進行進一步優化:
- 圖像多尺度變化:多圖像做多尺度變化,獲取不同尺度下圖像細粒度特徵。
- 文本 & 圖像對齊:引入其他信息或者其他方式,在預訓練過程中對文本 token 和圖像區域做一定的對齊。
- 行業知識引入:引入行業知識,學習不同行業下圖文匹配模型。
- 視頻理解:做文本,圖像,視頻多模態理解。
相信基於 BERT 的強大擬合能力,多模態信息的匹配融合會越來越智能。
最後想說的是,我們招人!我所在的部門是新零售技術事業群,主要負責 alibaba.com 網站和 APP 的搜索、推薦、商品等領域相關的算法工作。非常期待具備機器學習 / 自然語言處理 / 圖像處理 / 數據挖掘背景的同學加入。有意向的同學可以把簡歷發到我的郵箱中 [email protected]。
賈揚清直播分享 | 人工智能算法和系統的進化
賈揚清,曾任 Facebook AI 架構部門總監、Google Brain 研究科學家,Caffe 之父,TensorFlow 的作者之一,加州大學伯克利分校計算機科學博士學位,通過本次分享,介紹人工智能在近幾年當中的算法和相應系統的進化過程,同時從技術角度闡述產品形態和用戶場景。
識別下方二維碼或點擊文末“閱讀原文”立馬觀看: