美團BERT的探索和實踐

美團技術團隊發表於2022-12-05

他山之石,可以攻玉。美團點評NLP團隊一直緊跟業界前沿技術,開展了基於美團點評業務資料的預訓練研究工作,訓練了更適配美團點評業務場景的MT-BERT模型,透過微調將MT-BERT落地到多個業務場景中,並取得了不錯的業務效果。

背景

2018年,自然語言處理(Natural Language Processing,NLP)領域最激動人心的進展莫過於預訓練語言模型,包括基於RNN的ELMo[1]和ULMFiT[2],基於Transformer[3]的OpenAI GPT[4]及Google BERT[5]等。下圖1回顧了近年來預訓練語言模型的發展史以及最新的進展。預訓練語言模型的成功,證明了我們可以從海量的無標註文字中學到潛在的語義資訊,而無需為每一項下游NLP任務單獨標註大量訓練資料。此外,預訓練語言模型的成功也開創了NLP研究的新正規化[6],即首先使用大量無監督語料進行語言模型預訓練(Pre-training),再使用少量標註語料進行微調(Fine-tuning)來完成具體NLP任務(分類、序列標註、句間關係判斷和機器閱讀理解等)。

美團BERT的探索和實踐

所謂的“預訓練”,其實並不是什麼新概念,這種“Pre-training and Fine-tuning”的方法在影像領域早有應用。2009年,鄧嘉、李飛飛等人在CVPR 2009釋出了ImageNet資料集[7],其中120萬張影像分為1000個類別。基於ImageNet,以影像分類為目標使用深度卷積神經網路(如常見的ResNet、VCG、Inception等)進行預訓練,得到的模型稱為預訓練模型。針對目標檢測或者語義分割等任務,基於這些預訓練模型,透過一組新的全連線層與預訓練模型進行拼接,利用少量標註資料進行微調,將預訓練模型學習到的影像分類能力遷移到新的目標任務。預訓練的方式在影像領域取得了廣泛的成功,比如有學者將ImageNet上學習得到的特徵表示用於PSACAL VOC上的物體檢測,將檢測率提高了20%[8]。

他山之石,可以攻玉。影像領域預訓練的成功也啟發了NLP領域研究,深度學習時代廣泛使用的詞向量(即詞嵌入,Word Embedding)即屬於NLP預訓練工作。使用深度神經網路進行NLP模型訓練時,首先需要將待處理文字轉為詞向量作為神經網路輸入,詞向量的效果會影響到最後模型效果。詞向量的效果主要取決於訓練語料的大小,很多NLP任務中有限的標註語料不足以訓練出足夠好的詞向量,通常使用跟當前任務無關的大規模未標註語料進行詞向量預訓練,因此預訓練的另一個好處是能增強模型的泛化能力。目前,大部分NLP深度學習任務中都會使用預訓練好的詞向量(如Word2Vec[9]和GloVe[10]等)進行網路初始化(而非隨機初始化),從而加快網路的收斂速度。

預訓練詞向量通常只編碼詞彙間的關係,對上下文資訊考慮不足,且無法處理一詞多義問題。如“bank”一詞,根據上下文語境不同,可能表示“銀行”,也可能表示“岸邊”,卻對應相同的詞向量,這樣顯然是不合理的。為了更好的考慮單詞的上下文資訊,Context2Vec[11]使用兩個雙向長短時記憶網路(Long Short Term Memory,LSTM)[12]來分別編碼每個單詞左到右(Left-to-Right)和右到左(Right-to-Left)的上下文資訊。類似地,ELMo也是基於大量文字訓練深層雙向LSTM網路結構的語言模型。ELMo在詞向量的學習中考慮深層網路不同層的資訊,並加入到單詞的最終Embedding表示中,在多個NLP任務中取得了提升。ELMo這種使用預訓練語言模型的詞向量作為特徵輸入到下游目標任務中,被稱為Feature-based方法。

另一種方法是微調(Fine-tuning)。GPT、BERT和後續的預訓練工作都屬於這一範疇,直接在深層Transformer網路上進行語言模型訓練,收斂後針對下游目標任務進行微調,不需要再為目標任務設計Task-specific網路從頭訓練。關於NLP領域的預訓練發展史,張俊林博士寫過一篇很詳實的介紹[13],本文不再贅述。

Google AI團隊提出的預訓練語言模型BERT(Bidirectional Encoder Representations from Transformers),在11項自然語言理解任務上重新整理了最好指標,可以說是近年來NLP領域取得的最重大的進展之一。BERT論文也斬獲NLP領域頂會NAACL 2019的最佳論文獎,BERT的成功也啟發了大量的後續工作,不斷重新整理了NLP領域各個任務的最佳水平。有NLP學者宣稱,屬於NLP的ImageNet時代已經來臨[14]。

美團點評作為中國領先的生活服務電子商務平臺,涵蓋搜尋、推薦、廣告、配送等多種業務場景,幾乎涉及到各種型別的自然語言處理任務。在我們的平臺上,迄今為止積累了近40億條使用者公開評價(UGC),如何高效而準確地完成對海量UGC的自然語言理解和處理是美團點評技術團隊面臨的挑戰之一。美團NLP中心一直緊跟業界前沿技術,開展了基於美團點評業務資料的預訓練研究工作,訓練了更適配美團點評業務場景的MT-BERT模型,透過微調將MT-BERT落地到多個業務場景中,並取得了不錯的業務效果。

BERT模型介紹

BERT是基於Transformer的深度雙向語言表徵模型,基本結構如圖2所示,本質上是利用Transformer結構構造了一個多層雙向的Encoder網路。Transformer是Google在2017年提出的基於自注意力機制(Self-attention)的深層模型,在包括機器翻譯在內的多項NLP任務上效果顯著,超過RNN且訓練速度更快。不到一年時間內,Transformer已經取代RNN成為神經網路機器翻譯的State-Of-The-Art(SOTA)模型,包括谷歌、微軟、百度、阿里、騰訊等公司的線上機器翻譯模型都已替換為Transformer模型。關於Transformer的詳細介紹可以參考Google論文《Attention is all you need》[3]。

美團BERT的探索和實踐

模型結構

如表1所示,根據引數設定的不同,Google 論文中提出了Base和Large兩種BERT模型。

美團BERT的探索和實踐

輸入表示

針對不同的任務,BERT模型的輸入可以是單句或者句對。對於每一個輸入的Token,它的表徵由其對應的詞表徵(Token Embedding)、段表徵(Segment Embedding)和位置表徵(Position Embedding)相加產生,如圖3所示:

美團BERT的探索和實踐

圖3 BERT模型的輸入表示

  • 對於英文模型,使用了Wordpiece模型來產生Subword從而減小詞表規模;對於中文模型,直接訓練基於字的模型。

  • 模型輸入需要附加一個起始Token,記為[CLS],對應最終的Hidden State(即Transformer的輸出)可以用來表徵整個句子,用於下游的分類任務。

  • 模型能夠處理句間關係。為區別兩個句子,用一個特殊標記符[SEP]進行分隔,另外針對不同的句子,將學習到的Segment Embeddings 加到每個Token的Embedding上。

  • 對於單句輸入,只有一種Segment Embedding;對於句對輸入,會有兩種Segment Embedding。

預訓練目標

BERT預訓練過程包含兩個不同的預訓練任務,分別是Masked Language Model和Next Sentence Prediction任務。

Masked Language Model(MLM)

透過隨機掩蓋一些詞(替換為統一標記符[MASK]),然後預測這些被遮蓋的詞來訓練雙向語言模型,並且使每個詞的表徵參考上下文資訊。

這樣做會產生兩個缺點:(1)會造成預訓練和微調時的不一致,因為在微調時[MASK]總是不可見的;(2)由於每個Batch中只有15%的詞會被預測,因此模型的收斂速度比起單向的語言模型會慢,訓練花費的時間會更長。對於第一個缺點的解決辦法是,把80%需要被替換成[MASK]的詞進行替換,10%的隨機替換為其他詞,10%保留原詞。由於Transformer Encoder並不知道哪個詞需要被預測,哪個詞是被隨機替換的,這樣就強迫每個詞的表達需要參照上下文資訊。對於第二個缺點目前沒有有效的解決辦法,但是從提升收益的角度來看,付出的代價是值得的。

Next Sentence Prediction(NSP)

為了訓練一個理解句子間關係的模型,引入一個下一句預測任務。這一任務的訓練語料可以從語料庫中抽取句子對包括兩個句子A和B來進行生成,其中50%的機率B是A的下一個句子,50%的機率B是語料中的一個隨機句子。NSP任務預測B是否是A的下一句。NSP的目的是獲取句子間的資訊,這點是語言模型無法直接捕捉的。

Google的論文結果表明,這個簡單的任務對問答和自然語言推理任務十分有益,但是後續一些新的研究[15]發現,去掉NSP任務之後模型效果沒有下降甚至還有提升。我們在預訓練過程中也發現NSP任務的準確率經過1-2個Epoch訓練後就能達到98%-99%,去掉NSP任務之後對模型效果並不會有太大的影響。

資料&算力

Google釋出的英文BERT模型使用了BooksCorpus(800M詞彙量)和英文Wikipedia(2500M詞彙量)進行預訓練,所需的計算量非常龐大。BERT論文中指出,Google AI團隊使用了算力強大的Cloud TPU進行BERT的訓練,BERT Base和Large模型分別使用4臺Cloud TPU(16張TPU)和16臺Cloud TPU(64張TPU)訓練了4天(100萬步迭代,40個Epoch)。但是,當前國內網際網路公司主要使用Nvidia的GPU進行深度學習模型訓練,因此BERT的預訓練對於GPU資源提出了很高的要求。

MT-BERT實踐

美團BERT(MT-BERT)的探索分為四個階段:

(1)開啟混合精度實現訓練加速。

(2)在通用中文語料基礎上加入大量美團點評業務語料進行模型預訓練,完成領域遷移。

(3)預訓練過程中嘗試融入知識圖譜中的實體資訊。

(4)透過在業務資料上進行微調,支援不同型別的業務需求。


MT-BERT整體技術框架如圖4所示:
美團BERT的探索和實踐

基於美團點評AFO平臺的分散式訓練

正如前文所述,BERT預訓練對於算力有著極大要求,我們使用的是美團內部開發的AFO[16](AI Framework On Yarn)框架進行MT-BERT預訓練。AFO框架基於YARN實現數千張GPU卡的靈活排程,同時提供基於Horovod的分散式訓練方案,以及作業彈性伸縮與容錯等能力。Horovod是Uber開源的深度學習工具[17],它的發展吸取了Facebook《一小時訓練ImageNet》論文[18]與百度Ring Allreduce[19]的優點,可為使用者實現分散式訓練提供幫助。根據Uber官方分別使用標準分散式TensorFlow和Horovod兩種方案,分散式訓練Inception V3和ResNet-101 TensorFlow模型的實驗驗證顯示,隨著GPU的數量增大,Horovod效能損失遠小於TensorFlow,且訓練速度可達到標準分散式TensorFlow的近兩倍。相比於Tensorflow分散式框架,Horovod在數百張卡的規模上依然可以保證穩定的加速比,具備非常好的擴充套件性。

Horovod框架的平行計算主要用到了兩種分散式計算技術:控制層的Open MPI和資料層的Nvidia NCCL。控制層面的主要作用是同步各個Rank(節點),因為每個節點的運算速度不一樣,運算完每一個Step的時間也不一樣。如果沒有一個同步機制,就不可能對所有的節點進行梯度平均。Horovod在控制層面上設計了一個主從模式,Rank 0為Master節點,Rank1-n為Worker節點,每個Worker節點上都有一個訊息佇列,而在Master節點上除了一個訊息佇列,還有一個訊息Map。每當計算框架發來通訊請求時,比如要執行Allreduce,Horovod並不直接執行MPI,而是封裝了這個訊息並推入自己的訊息佇列,交給後臺執行緒去處理。後臺執行緒採用定時輪詢的方式訪問自己的訊息佇列,如果非空,Woker會將自己收到的所有Tensor通訊請求都發給Master。因為是同步MPI,所以每個節點會阻塞等待MPI完成。Master收到Worker的訊息後,會記錄到自己的訊息Map中。如果一個Tensor的通訊請求出現了n次,也就意味著,所有的節點都已經發出了對該Tensor的通訊請求,那麼這個Tensor就需要且能夠進行通訊。Master節點會挑選出所有符合要求的Tensor進行MPI通訊。不符合要求的Tensor繼續留在訊息Map中,等待條件滿足。決定了Tensor以後,Master又會將可以進行通訊的Tensor名字和順序發還給各個節點,通知各個節點可以進行Allreduce運算。

混合精度加速

當前深度學習模型訓練過程基本採用單精度(Float 32)和雙精度(Double)資料型別,受限於視訊記憶體大小,當網路規模很大時Batch Size就會很小。Batch Size過小一方面容易導致網路學習過程不穩定而影響模型最終效果,另一方面也降低了資料吞吐效率,影響訓練速度。為了加速訓練及減少視訊記憶體開銷,Baidu Research和Nvidia在ICLR 2018論文中[20]合作提出了一種Float32(FP32)和Float16(FP16)混合精度訓練的方法,並且在影像分類和檢測、語音識別和語言模型任務上進行了有效驗證。Nvidia的Pascal和Volta系列顯示卡除了支援標準的單精度計算外,也支援了低精度的計算,比如最新的Tesla V100硬體支援了FP16的計算加速,P4和P40支援INT8的計算加速,而且低精度計算的峰值要遠高於單精浮點的計算峰值。

為了進一步加快MT-BERT預訓練和推理速度, 我們實驗了混合精度訓練方式。混合精度訓練指的是FP32和FP16混合的訓練方式,使用混合精度訓練可以加速訓練過程並且減少視訊記憶體開銷,同時兼顧FP32的穩定性和FP16的速度。在模型計算過程中使用FP16加速計算過程,模型訓練過程中權重會儲存成FP32格式(FP32 Master-weights),引數更新時採用FP32型別。利用FP32 Master-weights在FP32資料型別下進行引數更新可有效避免溢位。此外,一些網路的梯度大部分在FP16的表示範圍之外,需要對梯度進行放大使其可以在FP16的表示範圍內,因此進一步採用Loss Scaling策略透過對Loss進行放縮,使得在反向傳播過程中梯度在FP16的表示範圍內。

為了提高預訓練效率,我們在MT-BERT預訓練中採用了混合精度訓練方式。

加速效果

美團BERT的探索和實踐

如圖5所示,開啟混合精度的訓練方式在單機單卡和多機多卡環境下顯著提升了訓練速度。為了驗證混合精度模型會不會影響最終效果,我們分別在美團點評業務和通用Benchmark資料集上進行了微調實驗,結果見表2和表3。

美團BERT的探索和實踐表2 開啟混合精度訓練的MT-BERT模型在美團點評業務Benchmark上效果對比

美團BERT的探索和實踐表3 開啟混合精度訓練的MT-BERT模型在中文通用Benchmark上效果對比

透過表2和表3結果可以發現,開啟混合精度訓練的MT-BERT模型並沒有影響效果,反而訓練速度提升了2倍多。

領域自適應

Google釋出的中文BERT模型是基於中文維基百科資料訓練得到,屬於通用領域預訓練語言模型。由於美團點評積累了大量業務語料,比如使用者撰寫的UGC評論和商家商品的文字描述資料,為了充分發揮領域資料的優勢,我們考慮在Google中文BERT模型上加入領域資料繼續訓練進行領域自適應(Domain Adaptation),使得模型更加匹配我們的業務場景。實踐證明,這種Domain-aware Continual Training方式,有效地改進了BERT模型在下游任務中的表現。由於Google未釋出中文BERT Large模型,我們也從頭預訓練了中文MT-BERT Large模型。

我們選擇了5箇中文Benchmark任務以及3個美團點評業務Benchmark在內的8個資料集對模型效果進行驗證。實驗結果如表4所示,MT-BERT在通用Benchmark和美團點評業務Benchmark上都取得了更好的效果。

美團BERT的探索和實踐表4 MT-BERT模型和Google BERT模型在8個Benchmark上的效果對比

知識融入

BERT在自然語言理解任務上取得了巨大的成功,但也存在著一些不足。其一是常識(Common Sense)的缺失。人類日常活動需要大量的常識背景知識支援,BERT學習到的是樣本空間的特徵、表徵,可以看作是大型的文字匹配模型,而大量的背景常識是隱式且模糊的,很難在預訓練資料中進行體現。其二是缺乏對語義的理解。模型並未理解資料中蘊含的語義知識,缺乏推理能力。在美團點評搜尋場景中,需要首先對使用者輸入的Query進行意圖識別,以確保召回結果的準確性。比如,對於“宮保雞丁”和“宮保雞丁醬料”兩個Query,二者的BERT語義表徵非常接近,但是蘊含的搜尋意圖卻截然不同。前者是菜品意圖,即使用者想去飯店消費,而後者則是商品意圖,即使用者想要從超市購買醬料。在這種場景下,BERT模型很難像正常人一樣做出正確的推理判斷。

為了處理上述情況,我們嘗試在MT-BERT預訓練過程中融入知識圖譜資訊。知識圖譜可以組織現實世界中的知識,描述客觀概念、實體、關係。這種基於符號語義的計算模型,可以為BERT提供先驗知識,使其具備一定的常識和推理能力。在我們團隊之前的技術文章[21]中,介紹了NLP中心構建的大規模的餐飲娛樂知識圖譜——美團大腦。我們透過Knowledge-aware Masking方法將“美團大腦”的實體知識融入到MT-BERT預訓練中。

BERT在進行語義建模時,主要聚焦最原始的單字資訊,卻很少對實體進行建模。具體地,BERT為了訓練深層雙向的語言表徵,採用了Masked LM(MLM)訓練策略。該策略類似於傳統的完形填空任務,即在輸入端,隨機地“遮蔽”掉部分單字,在輸出端,讓模型預測出這些被“遮蔽”的單字。模型在最初並不知道要預測哪些單字,因此它輸出的每個單字的嵌入表示,都涵蓋了上下文的語義資訊,以便把被“掩蓋”的單字準確的預測出來。

圖6左側展示了BERT模型的MLM任務。輸入句子是“全聚德做的烤鴨久負盛名”。其中,“聚”,“的”,“久”3個字在輸入時被隨機遮蔽,模型預訓練過程中需要對這3個遮蔽位做出預測。

美團BERT的探索和實踐

BERT模型透過字的搭配(比如“全X德”),很容易推測出被“掩蓋”字資訊(“德”),但這種做法只學習到了實體內單字之間共現關係,並沒有學習到實體的整體語義表示。因此,我們使用Knowledge-aware Masking的方法來預訓練MT-BERT。具體的做法是,輸入仍然是字,但在隨機"遮蔽"時,不再選擇遮蔽單字,而是選擇“遮蔽”實體對應的詞。這需要我們在預訓練之前,對語料做分詞,並將分詞結果和圖譜實體對齊。圖6右側展示了Knowledge-aware Masking策略,“全聚德”被隨機“遮蔽”。MT-BERT需要根據“烤鴨”,“久負盛名”等資訊,準確的預測出“全聚德”。透過這種方式,MT-BERT可以學到“全聚德”這個實體的語義表示,以及它跟上下文其他實體之間的關聯,增強了模型語義表徵能力。基於美團大腦中已有實體資訊,我們在MT-BERT訓練中使用了Knowledge-aware Masking策略,實驗證明在細粒度情感分析任務上取得了顯著提升。

美團BERT的探索和實踐表5 MT-BERT在細粒度情感分析資料集上效果


模型輕量化


BERT模型效果拔群,在多項自然語言理解任務上實現了最佳效果,但是由於其深層的網路結構和龐大的引數量,如果要部署上線,還面臨很大挑戰。以Query意圖分類為例,我們基於MT-BERT模型微調了意圖分類模型,協調工程團隊進行了1000QPS壓測實驗,部署30張GPU線上卡參與運算,線上服務的TP999高達50ms之多,難以滿足上線要求。

為了減少模型響應時間,滿足上線要求,業內主要有三種模型輕量化方案。

  • 低精度量化。在模型訓練和推理中使用低精度(FP16甚至INT8、二值網路)表示取代原有精度(FP32)表示。

  • 模型裁剪和剪枝。減少模型層數和引數規模。

  • 模型蒸餾。透過知識蒸餾方法[22]基於原始BERT模型蒸餾出符合上線要求的小模型。

在美團點評搜尋Query意圖分類任務中,我們優先嚐試了模型裁剪的方案。由於搜尋Query長度較短(通常不超過16個漢字),整個Sequence包含的語義資訊有限,裁剪掉幾層Transformer結構對模型的語義表徵能力不會有太大影響,同時又能大幅減少模型引數量和推理時間。經過實驗驗證,在微調過程中,我們將MT-BERT模型裁剪為4層Transfomer結構(MT-BERT-MINI,MBM),實驗效果如圖7所示。可以發現,Query分類場景下,裁剪後的MBM沒有產生較大影響。由於減少了一些不必要的引數運算,在美食和酒店兩個場景下,效果還有小幅的提升。

美團BERT的探索和實踐

MBM在同等壓測條件下,壓測服務的TP999達到了12-14ms,滿足搜尋上線要求。除了模型裁剪,為了支援更多線上需求,我們還在進行模型蒸餾實驗,蒸餾後的6層MT-BERT模型在大多數下游任務中都沒有顯著的效果損失。值得一提的是,BERT模型輕量化是BERT相關研究的重要方向,最近Google公佈了最新ALBERT模型(A Lite BERT)[23],在減少模型引數量的同時在自然語言理解資料集GLUE上重新整理了SOTA。

在美團點評業務中的應用

圖8展示了基於BERT模型微調可以支援的任務型別,包括句對分類、單句分類、問答(機器閱讀理解)和序列標註任務。

  1. 句對分類任務和單句分類任務是句子級別的任務。預訓練中的NSP任務使得BERT中的“[CLS]”位置的輸出包含了整個句子對(句子)的資訊,我們利用其在有標註的資料上微調模型,給出預測結果。

  2. 問答和序列標註任務都屬於詞級別的任務。預訓練中的MLM任務使得每個Token位置的輸出都包含了豐富的上下文語境以及Token本身的資訊,我們對BERT的每個Token的輸出都做一次分類,在有標註的資料上微調模型並給出預測。

美團BERT的探索和實踐

基於MT-BERT的微調,我們支援了美團搜尋和點評搜尋的多個下游任務,包括單句分類任務、句間關係任務和序列標註任務等等。

單句分類

細粒度情感分析

美團點評作為生活服務平臺,積累了大量真實使用者評論。對使用者評論的細粒度情感分析在深刻理解商家和使用者、挖掘使用者情感等方面有至關重要的價值,並且在網際網路行業已有廣泛應用,如個性化推薦、智慧搜尋、產品反饋、業務安全等領域。為了更全面更真實的描述商家各屬性情況,細粒度情感分析需要判斷評論文字在各個屬性上的情感傾向(即正面、負面、中立)。為了最佳化美團點評業務場景下的細粒度情感分析效果,NLP中心標註了包含6大類20個細粒度要素的高質量資料集,標註過程中採用嚴格的多人標註機制保證標註質量,並在AI Challenger 2018細粒度情感分析比賽中作為比賽資料集驗證了效果,吸引了學術界和工業屆大量隊伍參賽。

針對細粒度情感分析任務,我們設計了基於MT-BERT的多工分類模型,模型結構如圖9所示。模型架構整體分為兩部分:一部分是各情感維度的引數共享層(Share Layers),另一部分為各情感維度的引數獨享層(Task-specific Layers)。其中引數共享層採用了MT-BERT預訓練語言模型得到文字的上下文表徵。MT-BERT依賴其深層網路結構以及海量資料預訓練,可以更好的表徵上下文資訊,尤其擅長提取深層次的語義資訊。引數獨享層採用多路並行的Attention+Softmax組合結構,對文字在各個屬性上的情感傾向進行分類預測。透過MT-BERT最佳化後的細粒度情感分析模型在Macro-F1上取得了顯著提升。

美團BERT的探索和實踐

細粒度情感分析的重要應用場景之一是大眾點評的精選點評模組,如圖10所示。精選點評模組作為點評App使用者檢視高質量評論的入口,其中精選點評標籤承載著結構化內容聚合的作用,支撐著使用者高效查詢目標UGC內容的需求。細粒度情感分析能夠從不同的維度去挖掘評論的情感傾向。基於細粒度情感分析的情感標籤能夠較好地幫助使用者篩選檢視,同時外露更多的POI資訊,幫助使用者高效的從評論中獲取消費指南。

美團BERT的探索和實踐

Query意圖分類

在美團點評的搜尋架構中,Deep Query Understanding(DQU)都是重要的前置模組之一。對於使用者Query,需要首先對使用者搜尋意圖進行識別,如美食、酒店、演出等等。我們跟內部的團隊合作,嘗試了直接使用MT-BERT作為Query意圖分類模型。為了保證模型線上Inference時間,我們使用裁剪後的4層MT-BERT模型(MT-BERT-MINI,MBM模型)上線進行Query意圖的線上意圖識別,取得的業務效果如圖11所示:

美團BERT的探索和實踐

同時對於搜尋日誌中的高頻Query,我們將預測結果以詞典方式上傳到快取,進一步減少模型線上預測的QPS壓力。MBM累計支援了美團點評搜尋17個業務頻道的Query意圖識別模型,相比原有模型,均有顯著的提升,每個頻道的識別精確度都達到95%以上。MBM模型上線後,提升了搜尋針對Query文字的意圖識別能力,為下游的搜尋的召回、排序及展示、頻道流量報表、使用者認知報表、Bad Case歸因等系統提供了更好的支援。

推薦理由場景化分類

推薦理由是點評搜尋智慧中心資料探勘團隊基於大眾點評UGC為每個POI生產的自然語言可解釋性理由。對於搜尋以及推薦列表展示出來的每一個商家,我們會用一句自然語言文字來突出商家的特色和賣點,從而讓使用者能夠對展示結果有所感知,“知其然,更知其所以然”。近年來,可解釋的搜尋系統越來越受到關注,給使用者展示商品或內容的同時透出解釋性理由,正在成為業界通行做法,這樣不僅能提升系統的透明度,還能提高使用者對平臺的信任和接受程度,進而提升使用者體驗效果。在美團點評的搜尋推薦場景中,推薦理由有著廣泛的應用場景,起到解釋展示、亮點推薦、場景化承載和個性化體現的重要作用,目前已經有46個業務方接入了推薦理由服務。

對於不同的業務場景,對推薦理由會有不同的要求。在外賣搜尋場景下,使用者可能更為關注菜品和配送速度,不太關注餐館的就餐環境和空間,這種情況下只保留符合外賣場景的推薦理由進行展示。同樣地,在酒店搜尋場景下,使用者可能更為關注酒店特色相關的推薦理由(如交通是否方便,酒店是否近海近景區等)。

我們透過內部合作,為業務方提供符合不同場景需求的推薦理由服務。推薦理由場景化分類,即給定不同業務場景定義,為每個場景標註少量資料,我們可以基於MT-BERT進行單句分類微調,微調方式如圖8(b)所示。

美團BERT的探索和實踐

句間關係

句間關係任務是對兩個短語或者句子之間的關係進行分類,常見句間關係任務如自然語言推理(Natural Language Inference, NLI)、語義相似度判斷(Semantic Textual Similarity,STS)等。

Query改寫是在搜尋引擎中對使用者搜尋Query進行同義改寫,改善搜尋召回結果的一種方法。在美團和點評搜尋場景中,通常一個商戶或者菜品會有不同的表達方式,例如“火鍋”也稱為“涮鍋”。有時不同的詞語表述相同的使用者意圖,例如“婚紗攝影”和“婚紗照”,“配眼鏡”和“眼鏡店”。Query改寫可以在不改變使用者意圖的情況下,儘可能多的召回滿足使用者意圖的搜尋結果,提升使用者的搜尋體驗。為了減少誤改寫,增加準確率,需要對改寫後Query和原Query做語義一致性判斷,只有語義一致的Query改寫對才能上線生效。Query語義一致性檢測屬於STS任務。我們透過MT-BERT微調任務來判斷改寫後Query語義是否發生漂移,微調方式如圖8(a)所示,把原始Query和改寫Query構成句子對,即“[CLS] text_a [SEP] text_b [SEP]”的形式,送入到MT-BERT中,透過“[CLS]”判斷兩個Query之間關係。實驗證明,基於MT-BERT微調的方案在Benchmark上準確率和召回率都超過原先的XGBoost分類模型。

序列標註

序列標註是NLP基礎任務之一,給定一個序列,對序列中的每個元素做一個標記,或者說給每一個元素打一個標籤,如中文命名實體識別、中文分詞和詞性標註等任務都屬於序列標註的範疇。命名實體識別(Named Entity Recognition,NER),是指識別文字中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等,以及時間、數量、貨幣、比例數值等文字。

在美團點評業務場景下,NER主要需求包括搜尋Query成分分析,UGC文字中的特定實體(標籤)識別/抽取,以及客服對話中的槽位識別等。NLP中心和酒店搜尋演算法團隊合作,基於MT-BERT微調來最佳化酒店搜尋Query成分分析任務。酒店Query成分分析任務中,需要識別出Query中城市、地標、商圈、品牌等不同成分,用於確定後續的召回策略。

在酒店搜尋Query成分分析中,我們對標籤採用“BME”編碼格式,即對一個實體,第一個字需要預測成實體的開始B,最後一個字需要預測成實體的結束E,中間部分則為M。以圖13中酒店搜尋Query成分分析為例,對於Query “北京昆泰酒店”,成分分析模型需要將“北京”識別成地點,而“昆泰酒店”識別成POI。MT-BERT預測高頻酒店Query成分後透過快取提供線上服務,結合後續召回策略,顯著提升了酒店搜尋的訂單轉化率。

美團BERT的探索和實踐

未來展望

1. 一站式MT-BERT訓練和推理平臺建設

為了降低業務方演算法同學使用MT-BERT門檻,我們開發了MT-BERT一站式訓練和推理平臺,一期支援短文字分類和句間關係分類兩種任務,目前已在美團內部開放試用。

基於一站式平臺,業務方演算法同學上傳業務訓練資料和選擇初始MT-BERT模型之後,可以提交微調任務,微調任務會自動分配到AFO叢集空閒GPU卡上自動執行和進行效果驗證,訓練好的模型可以匯出進行部署上線。

2. 融入知識圖譜的MT-BERT預訓練

正如前文所述,儘管在海量無監督語料上進行預訓練語言模型取得了很大的成功,但其也存在著一定的不足。BERT模型透過在大量語料的訓練可以判斷一句話是否通順,但是卻不理解這句話的語義,透過將美團大腦等知識圖譜中的一些結構化先驗知識融入到MT-BERT中,使其更好地對生活服務場景進行語義建模,是需要進一步探索的方向。

3. MT-BERT模型的輕量化和小型化

MT-BERT模型在各個NLU任務上取得了驚人的效果,由於其複雜的網路結構和龐大的引數量,在真實工業場景下上線面臨很大的挑戰。如何在保持模型效果的前提下,精簡模型結構和引數已經成為當前熱門研究方向。我們團隊在低精度量化、模型裁剪和知識蒸餾上已經做了初步嘗試,但是如何針對不同的任務型別選擇最合適的模型輕量化方案,還需要進一步的研究和探索。

參考文獻

[1] Peters, Matthew E., et al. "Deep contextualized word representations." arXiv preprint arXiv:1802.05365 (2018).

[2] Howard, Jeremy, and Sebastian Ruder. "Universal language model fine-tuning for text classification." arXiv preprint arXiv:1801.06146 (2018).

[3] Vaswani, Ashish, et al. "Attention is all you need." Advances in neural information processing systems. 2017.

[4] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving Language Understanding by Generative Pre-Training. Technical report, OpenAI.

[5] Devlin, Jacob, et al. "Bert: Pre-training of deep bidirectional transformers for language understanding." arXiv preprint arXiv:1810.04805 (2018).

[6] Ming Zhou. "The Bright Future of ACL/NLP." Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. (2019).

[7] Deng, Jia, et al. "Imagenet: A large-scale hierarchical image database." 2009 IEEE conference on computer vision and pattern recognition. Ieee, (2009).

[8] Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.

[9] Mikolov, Tomas, et al. "Distributed representations of words and phrases and their compositionality." Advances in neural information processing systems. 2013.

[10] Jeffrey Pennington, Richard Socher, and Christopher D. Manning. 2014. Glove: Global vectors for word representation. In EMNLP.

[11] Oren Melamud, Jacob Goldberger, and Ido Dagan.2016. context2vec: Learning generic context embedding with bidirectional lstm. In CoNLL.

[12] Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9.8 (1997): 1735-1780.

[13] 張俊林. 從Word Embedding到BERT模型—自然語言處理中的預訓練技術發展史.

[14] Sebastion Ruder. "NLP's ImageNet moment has arrived." http://ruder.io/nlp-imagenet/. (2019)

[15] Liu, Yinhan, et al. "Roberta: A robustly optimized BERT pretraining approach." arXiv preprint arXiv:1907.11692 (2019).

[16] 鄭坤. 使用TensorFlow訓練WDL模型效能問題定位與調優.

[17] Uber. "Meet Horovod: Uber’s Open Source Distributed Deep Learning Framework for TensorFlow".

[18] Goyal, Priya, et al. "Accurate, large minibatch sgd: Training imagenet in 1 hour." arXiv preprint arXiv:1706.02677 (2017).

[19] Baidu.

[20] Micikevicius, Paulius, et al. "Mixed precision training." arXiv preprint arXiv:1710.03740 (2017).

[21] 仲遠,富崢等. 美團餐飲娛樂知識圖譜——美團大腦揭秘.

[22] Hinton, Geoffrey, Oriol Vinyals, and Jeff Dean. "Distilling the knowledge in a neural network." arXiv preprint arXiv:1503.02531 (2015).

[23] Google. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations. (2019)

作者簡介

楊揚,佳昊,禮斌,任磊,峻辰,玉昆,張歡,金剛,王超,王珺,富崢,仲遠,都來自美團搜尋與NLP部。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559353/viewspace-2664676/,如需轉載,請註明出處,否則將追究法律責任。

相關文章