美團搜索中NER技術的探索與實踐

1. 背景

命名實體識別(Named Entity Recognition,簡稱NER),又稱做「專名識別」,是指識別文本中具備特定意義的實體,主要包括人名、地名、機構名、專有名詞等。NER是信息提取、問答系統、句法分析、機器翻譯、面向Semantic Web的元數據標註等應用領域的重要基礎工具,在天然語言處理技術走向實用化的過程當中佔有重要的地位。在美團搜索場景下,NER是深度查詢理解(Deep Query Understanding,簡稱 DQU)的底層基礎信號,主要應用於搜索召回、用戶意圖識別、實體連接等環節,NER信號的質量,直接影響到用戶的搜索體驗。git

下面將簡述一下實體識別在搜索召回中的應用。在O2O搜索中,對商家POI的描述是商家名稱、地址、品類等多個互相之間相關性並不高的文本域。若是對O2O搜索引擎也採用所有文本域命中求交的方式,就可能會產生大量的誤召回。咱們的解決方法以下圖1所示,讓特定的查詢只在特定的文本域作倒排檢索,咱們稱之爲「結構化召回」,可保證召回商家的強相關性。舉例來講,對於「海底撈」這樣的請求,有些商家地址會描述爲「海底撈附近幾百米」,若採用全文本域檢索這些商家就會被召回,顯然這並非用戶想要的。而結構化召回基於NER將「海底撈」識別爲商家,而後只在商家名相關文本域檢索,從而只召回海底撈品牌商家,精準地知足了用戶需求。 正則表達式

圖1 實體識別與召回策略

有別於其餘應用場景,美團搜索的NER任務具備如下特色:算法

  • 新增實體數量龐大且增速較快:本地生活服務領域發展迅速,新店、新商品、新服務品類層出不窮;用戶Query每每夾雜不少非標準化表達、簡稱和熱詞(如「朝思暮想」、「吸貓」等),這對實現高準確率、高覆蓋率的NER形成了很大挑戰。
  • 領域相關性強:搜索中的實體識別與業務供給高度相關,除通用語義外需加入業務相關知識輔助判斷,好比「剪了個頭發」,通用理解是泛化描述實體,在搜索中倒是個商家實體。
  • 性能要求高:從用戶發起搜索到最終結果呈現給用戶時間很短,NER做爲DQU的基礎模塊,須要在毫秒級的時間內完成。近期,不少基於深度網絡的研究與實踐顯著提升了NER的效果,但這些模型每每計算量較大、預測耗時長,如何優化模型性能,使之能知足NER對計算時間的要求,也是NER實踐中的一大挑戰。

2. 技術選型

針對O2O領域NER 任務的特色,咱們總體的技術選型是「實體詞典匹配+模型預測」的框架,如圖下2所示。實體詞典匹配和模型預測二者解決的問題各有側重,在當前階段缺一不可。下面經過對三個問題的解答來講明咱們爲何這麼選。緩存

爲何須要實體詞典匹配?安全

答:主要有如下四個緣由:微信

一是搜索中用戶查詢的頭部流量一般較短、表達形式簡單,且集中在商戶、品類、地址等三類實體搜索,實體詞典匹配雖簡單但處理這類查詢準確率也可達到 90%以上。網絡

二是NER領域相關,經過挖掘業務數據資源獲取業務實體詞典,通過在線詞典匹配後可保證識別結果是領域適配的。架構

三是新業務接入更加靈活,只需提供業務相關的實體詞表就可完成新業務場景下的實體識別。app

四是NER下游使用方中有些對響應時間要求極高,詞典匹配速度快,基本不存在性能問題。框架

有了實體詞典匹配爲何還要模型預測?

答:有如下兩方面的緣由:

一是隨着搜索體量的不斷增大,中長尾搜索流量表述複雜,愈來愈多OOV(Out Of Vocabulary)問題開始出現,實體詞典已經沒法知足日益多樣化的用戶需求,模型預測具有泛化能力,可做爲詞典匹配的有效補充。

二是實體詞典匹配沒法解決歧義問題,好比「黃鶴樓美食」,「黃鶴樓」在實體詞典中同時是武漢的景點、北京的商家、香菸產品,詞典匹配不具有消歧能力,這三種類型都會輸出,而模型預測則可結合上下文,不會輸出「黃鶴樓」是香菸產品。

實體詞典匹配、模型預測兩路結果是怎麼合併輸出的?

答:目前咱們採用訓練好的CRF權重網絡做爲打分器,來對實體詞典匹配、模型預測兩路輸出的NER路徑進行打分。在詞典匹配無結果或是其路徑打分值明顯低於模型預測時,採用模型識別的結果,其餘狀況仍然採用詞典匹配結果。

在介紹完咱們的技術選型後,接下來會展開介紹下咱們在實體詞典匹配、模型在線預測等兩方面的工做,但願能爲你們在O2O NER領域的探索提供一些幫助。

圖2 實體識別總體架構

3. 實體詞典匹配

傳統的NER技術僅能處理通用領域既定、既有的實體,但沒法應對垂直領域所特有的實體類型。在美團搜索場景下,經過對POI結構化信息、商戶評論數據、搜索日誌等獨有數據進行離線挖掘,能夠很好地解決領域實體識別問題。通過離線實體庫不斷的豐富完善累積後,在線使用輕量級的詞庫匹配實體識別方式簡單、高效、可控,且能夠很好地覆蓋頭部和腰部流量。目前,基於實體庫的在線NER識別率能夠達到92%。

3.1 離線挖掘

美團具備豐富多樣的結構化數據,經過對領域內結構化數據的加工處理能夠得到高精度的初始實體庫。例如:從商戶基礎信息中,能夠獲取商戶名、類目、地址、售賣商品或服務等類型實體。從貓眼文娛數據中,能夠獲取電影、電視劇、藝人等類型實體。然而,用戶搜索的實體名每每夾雜不少非標準化表達,與業務定義的標準實體名之間存在差別,如何從非標準表達中挖掘領域實體變得尤其重要。

現有的新詞挖掘技術主要分爲無監督學習、有監督學習和遠程監督學習。無監督學習經過頻繁序列產生候選集,並經過計算緊密度和自由度指標進行篩選,這種方法雖然能夠產生充分的候選集合,但僅經過特徵閾值過濾沒法有效地平衡精確率與召回率,現實應用中一般挑選較高的閾值保證精度而犧牲召回。先進的新詞挖掘算法大多爲有監督學習,這類算法一般涉及複雜的語法分析模型或深度網絡模型,且依賴領域專家設計繁多規則或大量的人工標記數據。遠程監督學習經過開源知識庫生成少許的標記數據,雖然必定程度上緩解了人力標註成本高的問題。然而小樣本量的標記數據僅能學習簡單的統計模型,沒法訓練具備高泛化能力的複雜模型。

咱們的離線實體挖掘是多源多方法的,涉及到的數據源包括結構化的商家信息庫、百科詞條,半結構化的搜索日誌,以及非結構化的用戶評論(UGC)等。使用的挖掘方法也包含多種,包括規則、傳統機器學習模型、深度學習模型等。UGC做爲一種非結構化文本,蘊含了大量非標準表達實體名。下面咱們將詳細介紹一種針對UGC的垂直領域新詞自動挖掘方法,該方法主要包含三個步驟,以下圖3所示:

圖3 一種適用於垂直領域的新詞自動挖掘方法

Step1:候選序列挖掘。頻繁連續出現的詞序列,是潛在新型詞彙的有效候選,咱們採用頻繁序列產生充足候選集合。

Step2:基於遠程監督的大規模有標記語料生成。頻繁序列隨着給定語料的變化而改變,所以人工標記成本極高。咱們利用領域已有累積的實體詞典做爲遠程監督詞庫,將Step1中候選序列與實體詞典的交集做爲訓練正例樣本。同時,經過對候選序列分析發現,在上百萬的頻繁Ngram中僅約10%左右的候選是真正的高質新型詞彙。所以,對於負例樣本,採用負採樣方式生產訓練負例集[1]。針對海量UGC語料,咱們設計並定義了四個維度的統計特徵來衡量候選短語可用性:

  • 頻率:有意義的新詞在語料中應當知足必定的頻率,該指標由Step1計算獲得。
  • 緊密度:主要用於評估新短語中連續元素的共現強度,包括T分佈檢驗、皮爾森卡方檢驗、逐點互信息、似然比等指標。
  • 信息度:新發現詞彙應具備真實意義,指代某個新的實體或概念,該特徵主要考慮了詞組在語料中的逆文檔頻率、詞性分佈以及停用詞分佈。
  • 完整性:新發現詞彙應當在給定的上下文環境中做爲總體解釋存在,所以應同時考慮詞組的子集短語以及超集短語的緊密度,從而衡量詞組的完整性。

在通過小樣本標記數據構建和多維度統計特徵提取後,訓練二元分類器來計算候選短語預估質量。因爲訓練數據負例樣本採用了負採樣的方式,這部分數據中混合了少許高質量的短語,爲了減小負例噪聲對短語預估質量分的影響,能夠經過集成多個弱分類器的方式減小偏差。對候選序列集合進行模型預測後,將得分超過必定閾值的集合做爲正例池,較低分數的集合做爲負例池。

Step3: 基於深度語義網絡的短語質量評估。在有大量標記數據的狀況下,深度網絡模型能夠自動有效地學習語料特徵,併產出具備泛化能力的高效模型。BERT經過海量天然語言文本和深度模型學習文本語義表徵,並通過簡單微調在多個天然語言理解任務上刷新了記錄,所以咱們基於BERT訓練短語質量打分器。爲了更好地提高訓練數據的質量,咱們利用搜索日誌數據對Step2中生成的大規模正負例池數據進行遠程指導,將有大量搜索記錄的詞條做爲有意義的關鍵詞。咱們將正例池與搜索日誌重合的部分做爲模型正樣本,而將負例池減去搜索日誌集合的部分做爲模型負樣本,進而提高訓練數據的可靠性和多樣性。此外,咱們採用Bootstrapping方式,在初次獲得短語質量分後,從新根據已有短語質量分以及遠程語料搜索日誌更新訓練樣本,迭代訓練提高短語質量打分器效果,有效減小了僞正例和僞負例。

在UGC語料中抽取出大量新詞或短語後,參考AutoNER[2]對新挖掘詞語進行類型預測,從而擴充離線的實體庫。

3.2 在線匹配

原始的在線NER詞典匹配方法直接針對Query作雙向最大匹配,從而得到成分識別候選集合,再基於詞頻(這裏指實體搜索量)篩選輸出最終結果。這種策略比較簡陋,對詞庫準確度和覆蓋度要求極高,因此存在如下幾個問題:

  • 當Query包含詞庫未覆蓋實體時,基於字符的最大匹配算法易引發切分錯誤。例如,搜索詞「海坨山谷」,詞庫僅能匹配到「海坨山」,所以出現「海坨山/谷」的錯誤切分。
  • 粒度不可控。例如,搜索詞「星巴克咖啡」的切分結果,取決於詞庫對「星巴克」、「咖啡」以及「星巴克咖啡」的覆蓋。
  • 節點權重定義不合理。例如,直接基於實體搜索量做爲實體節點權重,當用戶搜索「信陽菜館」時,「信陽菜/館」的得分大於「信陽/菜館」。

爲了解決以上問題,在進行實體字典匹配前引入了CRF分詞模型,針對垂直領域美團搜索制定分詞準則,人工標註訓練語料並訓練CRF分詞模型。同時,針對模型分詞錯誤問題,設計兩階段修復方式:

  1. 結合模型分詞Term和基於領域字典匹配Term,根據動態規劃求解Term序列權重和的最優解。
  2. 基於Pattern正則表達式的強修復規則。最後,輸出基於實體庫匹配的成分識別結果。

圖4 實體在線匹配

4. 模型在線預測

對於長尾、未登陸查詢,咱們使用模型進行在線識別。 NER模型的演進經歷了以下圖5所示的幾個階段,目前線上使用的主模型是BERT[3]以及BERT+LR級聯模型,另外還有一些在探索中模型的離線效果也證明有效,後續咱們會綜合考慮性能和收益逐步進行上線。搜索中NER線上模型的構建主要面臨三個問題:

  1. 性能要求高:NER做爲基礎模塊,模型預測須要在毫秒級時間內完成,而目前基於深度學習的模型都有計算量大、預測時間較長的問題。
  2. 領域強相關:搜索中的實體類型與業務供給高度相關,只考慮通用語義很難保證模型識別的準確性。
  3. 標註數據缺少: NER標註任務相對較難,需給出實體邊界切分、實體類型信息,標註過程費時費力,大規模標註數據難以獲取。

針對性能要求高的問題,咱們的線上模型在升級爲BERT時進行了一系列的性能調優;針對NER領域相關問題,咱們提出了融合搜索日誌特徵、實體詞典信息的知識加強NER方法;針對訓練數據難以獲取的問題,咱們提出一種弱監督的NER方法。下面咱們詳細介紹下這些技術點。

圖5 NER模型演進

4.1 BERT模型

BERT是谷歌於2018年10月公開的一種天然語言處理方法。該方法一經發布,就引發了學術界以及工業界的普遍關注。在效果方面,BERT刷新了11個NLP任務的當前最優效果,該方法也被評爲2018年NLP的重大進展以及NAACL 2019的best paper[4,5]。BERT和早前OpenAI發佈的GPT方法技術路線基本一致,只是在技術細節上存在略微差別。兩個工做的主要貢獻在於使用預訓練+微調的思路來解決天然語言處理問題。以BERT爲例,模型應用包括2個環節:

  • 預訓練(Pre-training),該環節在大量通用語料上學習網絡參數,通用語料包括Wikipedia、Book Corpus,這些語料包含了大量的文本,可以提供豐富的語言相關現象。
  • 微調(Fine-tuning),該環節使用「任務相關」的標註數據對網絡參數進行微調,不須要再爲目標任務設計Task-specific網絡從頭訓練。

將BERT應用於實體識別線上預測時面臨一個挑戰,即預測速度慢。咱們從模型蒸餾、預測加速兩個方面進行了探索,分階段上線了BERT蒸餾模型、BERT+Softmax、BERT+CRF模型。

4.1.1 模型蒸餾

咱們嘗試了對BERT模型進行剪裁和蒸餾兩種方式,結果證實,剪裁對於NER這種複雜NLP任務精度損失嚴重,而模型蒸餾是可行的。模型蒸餾是用簡單模型來逼近複雜模型的輸出,目的是下降預測所需的計算量,同時保證預測效果。Hinton在2015年的論文中闡述了核心思想[6],複雜模型通常稱做Teacher Model,蒸餾後的簡單模型通常稱做Student Model。Hinton的蒸餾方法使用僞標註數據的機率分佈來訓練Student Model,而沒有使用僞標註數據的標籤來訓練。做者的觀點是機率分佈相比標籤可以提供更多信息以及更強約束,可以更好地保證Student Model與Teacher Model的預測效果達到一致。在2018年NeurIPS的Workshop上,[7]提出一種新的網絡結構BlendCNN來逼近GPT的預測效果,本質上也是模型蒸餾。BlendCNN預測速度相對原始GPT提高了300倍,另外在特定任務上,預測準確率還略有提高。關於模型蒸餾,基本能夠獲得如下結論:

  • 模型蒸餾本質是函數逼近。針對具體任務,筆者認爲只要Student Model的複雜度可以知足問題的複雜度,那麼Student Model能夠與Teacher Model徹底不一樣,選擇Student Model的示例以下圖6所示。舉個例子,假設問題中的樣本(x,y)從多項式函數中抽樣獲得,最高指數次數d=2;可用的Teacher Model使用了更高指數次數(好比d=5),此時,要選擇一個Student Model來進行預測,Student Model的模型複雜度不能低於問題自己的複雜度,即對應的指數次數至少達到d=2。
  • 根據無標註數據的規模,蒸餾使用的約束能夠不一樣。如圖7所示,若是無標註數據規模小,能夠採用值(logits)近似進行學習,施增強約束;若是無標註數據規模中等,能夠採用分佈近似;若是無標註數據規模很大,能夠採用標籤近似進行學習,即只使用Teacher Model的預測標籤來指導模型學習。

有了上面的結論,咱們如何在搜索NER任務中應用模型蒸餾呢? 首先先分析一下該任務。與文獻中的相關任務相比,搜索NER存在有一個顯著不一樣:做爲線上應用,搜索有大量無標註數據。用戶查詢能夠達到千萬/天的量級,數據規模上遠超一些離線測評可以提供的數據。據此,咱們對蒸餾過程進行簡化:不限制Student Model的形式,選擇主流的推斷速度快的神經網絡模型對BERT進行近似;訓練不使用值近似、分佈近似做爲學習目標,直接使用標籤近似做爲目標來指導Student Model的學習。

咱們使用IDCNN-CRF來近似BERT實體識別模型,IDCNN(Iterated Dilated CNN)是一種多層CNN網絡,其中低層卷積使用普通卷積操做,經過滑動窗口圈定的位置進行加權求和獲得卷積結果,此時滑動窗口圈定的各個位置的距離間隔等於1。高層卷積使用膨脹卷積(Atrous Convolution)操做,滑動窗口圈定的各個位置的距離間隔等於d(d>1)。經過在高層使用膨脹卷積能夠減小卷積計算量,同時在序列依賴計算上也不會有損失。在文本挖掘中,IDCNN經常使用於對LSTM進行替換。實驗結果代表,相較於原始BERT模型,在沒有明顯精度損失的前提下,蒸餾模型的在線預測速度有數十倍的提高。

4.1.2 預測加速

BERT中大量小算子以及Attention計算量的問題,使得其在實際線上應用時,預測時長較高。咱們主要使用如下三種方法加速模型預測,同時對於搜索日誌中的高頻Query,咱們將預測結果以詞典方式上傳到緩存,進一步減小模型在線預測的QPS壓力。下面介紹下模型預測加速的三種方法:

算子融合:經過下降Kernel Launch次數和提升小算子訪存效率來減小BERT中小算子的耗時開銷。咱們這裏調研了Faster Transformer的實現。平均時延上,有1.4x~2x左右加速比;TP999上,有2.1x~3x左右的加速比。該方法適合標準的BERT模型。開源版本的Faster Transformer工程質量較低,易用性和穩定性上存在較多問題,沒法直接應用,咱們基於NV開源的Faster Transformer進行了二次開發,主要在穩定性和易用性進行了改進:

  • 易用性:支持自動轉換,支持Dynamic Batch,支持Auto Tuning。
  • 穩定性:修復內存泄漏和線程安全問題。

Batching:Batching的原理主要是將屢次請求合併到一個Batch進行推理,下降Kernel Launch次數、充分利用多個GPU SM,從而提升總體吞吐。在max_batch_size設置爲4的狀況下,原生BERT模型,能夠在將平均Latency控制在6ms之內,最高吞吐可達1300 QPS。該方法十分適合美團搜索場景下的BERT模型優化,緣由是搜索有明顯的高低峯期,可提高高峯期模型的吞吐量。

混合精度:混合精度指的是FP32和FP16混合的方式,使用混合精度能夠加速BERT訓練和預測過程而且減小顯存開銷,同時兼顧FP32的穩定性和FP16的速度。在模型計算過程當中使用FP16加速計算過程,模型訓練過程當中權重會存儲成FP32格式,參數更新時採用FP32類型。利用FP32 Master-weights在FP32數據類型下進行參數更新,可有效避免溢出。混合精度在基本不影響效果的基礎上,模型訓練和預測速度都有必定的提高。

4.2 知識加強的NER

如何將特定領域的外部知識做爲輔助信息嵌入到語言模型中,一直是近些年的研究熱點。K-BERT[8]、ERNIE[9]等模型探索了知識圖譜與BERT的結合方法,爲咱們提供了很好的借鑑。美團搜索中的NER是領域相關的,實體類型的斷定與業務供給高度相關。所以,咱們也探索瞭如何將供給POI信息、用戶點擊、領域實體詞庫等外部知識融入到NER模型中。

4.2.1 融合搜索日誌特徵的Lattice-LSTM

在O2O垂直搜索領域,大量的實體由商家自定義(如商家名、團單名等),實體信息隱藏在供給POI的屬性中,單使用傳統的語義方式識別效果差。Lattice-LSTM[10]針對中文實體識別,經過增長詞向量的輸入,豐富語義信息。咱們借鑑這個思路,結合搜索用戶行爲,挖掘Query 中潛在短語,這些短語蘊含了POI屬性信息,而後將這些隱藏的信息嵌入到模型中,在必定程度上解決領域新詞發現問題。與原始Lattice-LSTM方法對比,識別準確率千分位提高5個點。

圖8  融合搜索日誌特徵的Lattice-LSTM構建流程

1) 短語挖掘及特徵計算

該過程主要包括兩步:匹配位置計算、短語生成,下面詳細展開介紹。

圖 9 短語挖掘及特徵計算

Step1:匹配位置計算。對搜索日誌進行處理,重點計算查詢與文檔字段的詳細匹配狀況以及計算文檔權重(好比點擊率)。如圖9所示,用戶輸入查詢是「手工編織」,對於文檔d1(搜索中就是POI),「手工」出如今字段「團單」,「編織」出如今字段「地址」。對於文檔2,「手工編織」同時出如今「商家名」和「團單」。匹配開始位置、匹配結束位置分別對應有匹配的查詢子串的開始位置以及結束位置。

Step2:短語生成。以Step1的結果做爲輸入,使用模型推斷候選短語。可使用多個模型,從而生成知足多個假設的結果。咱們將候選短語生成建模爲整數線性規劃(Integer Linear Programmingm,ILP)問題,而且定義了一個優化框架,模型中的超參數能夠根據業務需求進行定製計算,從而得到知足不用假設的結果。對於一個具體查詢Q,每種切分結果均可以使用整數變量xij來表示:xij=1表示查詢i到j的位置構成短語,即Qij是一個短語,xij=0表示查詢i到j的位置不構成短語。優化目標能夠形式化爲:在給定不一樣切分xij的狀況下,使收集到的匹配得分最大化。優化目標及約束函數如圖10所示,其中p:文檔,f:字段,w:文檔p的權重,wf:字段f的權重。xijpf:查詢子串Qij是否出如今文檔p的f字段,且最終切分方案會考慮該觀測證據,Score(xijpf):最終切分方案考慮的觀測得分,w(xij):切分Qij對應的權重,yijpf : 觀測到的匹配,查詢子串Qij出如今文檔p的f字段中。χmax:查詢包含的最大短語數。這裏,χmax、wp、wf 、w(xij)是超參數,在求解ILP問題前須要完成設置,這些變量能夠根據不一樣假設進行設置:能夠根據經驗人工設置,另外也能夠基於其餘信號來設置,設置可參考圖10給出的方法。最終短語的特徵向量表徵爲在POI各屬性字段的點擊分佈。

圖10 短語生成問題抽象以及參數設置方法

2) 模型結構

圖11 融合搜索日誌特徵的Lattice-LSTM模型結構

模型結構如圖11所示,藍色部分表示一層標準的LSTM網絡(能夠單獨訓練,也能夠與其餘模型組合),輸入爲字向量,橙色部分表示當前查詢中全部詞向量,紅色部分表示當前查詢中的經過Step1計算獲得的全部短語向量。對於LSTM的隱狀態輸入,主要由兩個層面的特徵組成:當前文本語義特徵,包括當前字向量輸入和前一時刻字向量隱層輸出;潛在的實體知識特徵,包括當前字的短語特徵和詞特徵。下面介紹當前時刻潛在知識特徵的計算以及特徵組合的方法:(下列公式中,σ表示sigmoid函數,⊙表示矩陣乘法)

4.2.2 融合實體詞典的兩階段NER

咱們考慮將領域詞典知識融合到模型中,提出了兩階段的NER識別方法。該方法是將NER任務拆分紅實體邊界識別和實體標籤識別兩個子任務。相較於傳統的端到端的NER方法,這種方法的優點是實體切分能夠跨領域複用。另外,在實體標籤識別階段能夠充分使用已積累的實體數據和實體連接等技術提升標籤識別準確率,缺點是會存在錯誤傳播的問題。

在第一階段,讓BERT模型專一於實體邊界的肯定,而第二階段將實體詞典帶來的信息增益融入到實體分類模型中。第二階段的實體分類能夠單獨對每一個實體進行預測,但這種作法會丟失實體上下文信息,咱們的處理方法是:將實體詞典用做訓練數據訓練一個IDCNN分類模型,該模型對第一階段輸出的切分結果進行編碼,並將編碼信息加入到第二階段的標籤識別模型中,聯合上下文詞彙完成解碼。基於Benchmark標註數據進行評估,該模型相比於BERT-NER在Query粒度的準確率上得到了1%的提高。這裏咱們使用IDCNN主要是考慮到模型性能問題,你們可視使用場景替換成BERT或其餘分類模型。

圖12 融合實體詞典的兩階段NER

4.3 弱監督NER

13 弱監督標註數據生成流程

針對標註數據難獲取問題,咱們提出了一種弱監督方案,該方案包含兩個流程,分別是弱監督標註數據生成、模型訓練。下面詳細描述下這兩個流程。

Step1:弱監督標註樣本生成

1) 第一版模型:利用已標註的小批量數據集訓練實體識別模型,這裏使用的是最新的BERT模型,獲得第一版模型ModelA。

2) 詞典數據預測:實體識別模塊目前沉澱下百萬量級的高質量實體數據做爲詞典,數據格式爲實體文本、實體類型、屬性信息。用上一步獲得的ModelA預測改詞典數據輸出實體識別結果。

3) 預測結果校訂:實體詞典中實體精度較高,理論上來說模型預測的結果給出的實體類型至少有一個應該是實體詞典中給出的該實體類型,不然說明模型對於這類輸入的識別效果並很差,須要針對性地補充樣本,咱們對這類輸入的模型結果進行校訂後獲得標註文本。校訂方法咱們嘗試了兩種,分別是總體校訂和部分校訂,總體校訂是指整個輸入校訂爲詞典實體類型,部分校訂是指對模型切分出的單個Term 進行類型校訂。舉個例子來講明,「兄弟燒烤個性diy」詞典中給出的實體類型爲商家,模型預測結果爲修飾詞+菜品+品類,沒有Term屬於商家類型,模型預測結果和詞典有差別,這時候咱們須要對模型輸出標籤進行校訂。校訂候選就是三種,分別是「商家+菜品+品類」、「修飾詞+商家+品類」、「修飾詞+菜品+商家」。咱們選擇最接近於模型預測的一種,這樣選擇的理論意義在於模型已經收斂到預測分佈最接近於真實分佈,咱們只須要在預測分佈上進行微調,而不是大幅度改變這個分佈。那從校訂候選中如何選出最接近於模型預測的一種呢?咱們使用的方法是計算校訂候選在該模型下的機率得分,而後與模型當前預測結果(當前模型認爲的最優結果)計算機率比,機率比計算公式如公式2所示,機率比最大的那個就是最終獲得的校訂候選,也就是最終獲得的弱監督標註樣本。在「兄弟燒烤個性diy」這個例子中,「商家+菜品+品類」這個校訂候選與模型輸出的「修飾詞+菜品+品類」機率比最大,將獲得「兄弟/商家 燒烤/菜品 個性diy/品類」標註數據。

圖 14 標籤校訂

公式 2 機率比計算

Step2:弱監督模型訓練

弱監督模型訓練方法包括兩種:一是將生成的弱監督樣本和標註樣本進行混合不區分從新進行模型訓練;二是在標註樣本訓練生成的ModelA基礎上,用弱監督樣本進行Fine-tuning訓練。這兩種方式咱們都進行了嘗試。從實驗結果來看,Fine-tuning效果更好。

5. 總結和展望

本文介紹了O2O搜索場景下NER任務的特色及技術選型,詳述了在實體詞典匹配和模型構建方面的探索與實踐。

實體詞典匹配針對線上頭腰部流量,離線對POI結構化信息、商戶評論數據、搜索日誌等獨有數據進行挖掘,能夠很好的解決領域實體識別問題,在這一部分咱們介紹了一種適用於垂直領域的新詞自動挖掘方法。除此以外,咱們也積累了其餘可處理多源數據的挖掘技術,若有須要能夠進行約線下進行技術交流。

模型方面,咱們圍繞搜索中NER模型的構建的三個核心問題(性能要求高、領域強相關、標註數據缺少)進行了探索。針對性能要求高採用了模型蒸餾,預測加速的方法, 使得NER 線上主模型順利升級爲效果更好的BERT。在解決領域相關問題上,分別提出了融合搜索日誌、實體詞典領域知識的方法,實驗結果代表這兩種方法可必定程度提高預測準確率。針對標註數據難獲取問題,咱們提出了一種弱監督方案,必定程度緩解了標註數據少模型預測效果差的問題。

將來,咱們會在解決NER未登陸識別、歧義多義、領域相關問題上繼續深刻研究,歡迎業界同行一塊兒交流。

6. 參考資料

[1] Automated Phrase Mining from Massive Text Corpora. 2018.

[2] Learning Named Entity Tagger using Domain-Specific Dictionary. 2018.

[3] Bidirectional Encoder Representations from Transformers. 2018

[4] https://www.jiqizhixin.com/ar...

[5] https://naacl2019.org/blog/be...

[6] Hinton et al.Distilling the Knowledge in a Neural Network. 2015.

[7] Yew Ken Chia et al. Transformer to CNN: Label-scarce distillation for efficient text classification. 2018.

[8] K-BERT:Enabling Language Representation with Knowledge Graph. 2019.

[9] Enhanced Language Representation with Informative Entities. 2019.

[10] Chinese NER Using Lattice LSTM. 2018.

7. 做者簡介

麗紅,星池,燕華,馬璐,廖羣,志安,劉亮,李超,張弓,雲森,永超等,均來自美團搜索與NLP部。

招聘信息

美團搜索部,長期招聘搜索、推薦、NLP算法工程師,座標北京。歡迎感興趣的同窗發送簡歷至:tech@meituan.com(郵件標題註明:搜索與NLP部)

閱讀更多技術文章,請掃碼關注微信公衆號-美團技術團隊!

相關文章
相關標籤/搜索