BERT模型在京東零售業務的應用實踐

京东發表於2019-03-30

背景

京東零售是全球最大零售商之一,涵蓋線上、線下的實體、虛擬等多元化交易場景。目前每日有效商品數量約30億,產生相關日誌和內容已經達到PB級。在這些海量資料中,有諸多涉及自然語言處理計算機視覺的應用場合,透過演算法和資料的驅動,給多場景的使用者體驗和交易提升帶來巨大改善,由於BERT在文字處理任務上的優異表現,我們也將BERT模型在電商文字分類、商品標題的序列標註等任務進行探索,並將相關實踐經驗進行總結。

BERT模型簡介

BERT[1] (Bidirectional Encoder Representation from Transformers) 是Google在2018年10月底公佈的基於變換器(Transformer)[2]的深度雙向編碼文字表示模型,透過模型預訓練+任務微調整的方式,在11項NLP基礎任務中展現出了卓越的效能,故成為NLP領域大火、整個ML界略有耳聞的模型。BERT的出現,徹底改變了預訓練詞向量模型框架和下游具體NLP任務的關係,將下游NLP任務重心轉移到上游的文字動態表示,透過進一步增加詞向量模型泛化能力和動態表達能力,以達到充分描述字元級、詞級、句子級甚至句間關係特徵的目的。

BERT的整體框架如圖1所示:模型架構基於多層雙向變換器編碼而非Bi-LSTM ,這樣可使得模型擁有更深的層數、具有更好並行性。在預訓練方法上,選擇了Masked LM和Next Sentence Prediction兩種損失函式分別捕捉詞語和句子級別的語義和句法等特徵。

BERT模型在京東零售業務的應用實踐

BERT的輸入部分是一個線性序列(如圖2所示),兩個句子之間透過分隔符(SEP)分割,最前面和最後增加兩個識別符號(CLS)。每個詞語有三個Embedding:

① 詞語Embedding:詞語本身的Embedding;

② 句子Embedding: 由於訓練資料都是由句子構成的,那麼每個句子對應的句子Embedding給到該句中每個詞;

③ 位置Embedding:每個詞在該篇語料中對應的位置資訊。

將語料中對應的上述三種Embedding疊加,即形成了BERT的輸入。

BERT模型在京東零售業務的應用實踐

圖 2 BERT的輸入序列

BERT相較於之前相關模型,其創新之處在於採取了新的預訓練的目標函式增加句子級別的任務。前者中,利用隨機遮蔽輸入中的一些tokens,然後在預訓練中透過對它們進行預測,可以讓模型融合前後兩個方向上的上下文來輸出特徵,在ELMO[3]的基礎上,解決了由於模型層數的加深帶來的“目標洩露”,或者叫 “自己預測自己”(“see itself”)的問題;後者中,由於句子與句子之間本不是孤立存在的,以及現存QA和NLI任務都需要對兩個句子之間關係進行理解,這種理解方式超越了傳統的語言模型。為了理解句子關係,透過預訓練了一個“下一句預測”(“Next Sentence Prediction”)任務,也即隨機替換一些句子,然後利用上一句進行IsNext/NotNext的預測以達到提取該類句子關係特徵。

專業使用者獨享

本文為機器之心深度精選內容,專業認證後即可閱讀全文
開啟專業認證

相關文章