溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

NER技術(shù)的探索與實(shí)踐是怎么樣的

發(fā)布時(shí)間:2021-12-27 15:33:24 來(lái)源:億速云 閱讀:157 作者:柒染 欄目:大數(shù)據(jù)

這篇文章將為大家詳細(xì)講解有關(guān)NER技術(shù)的探索與實(shí)踐是怎么樣的,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

1. 背景

命名實(shí)體識(shí)別(Named Entity Recognition,簡(jiǎn)稱(chēng)NER),又稱(chēng)作“專(zhuān)名識(shí)別”,是指識(shí)別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專(zhuān)有名詞等。NER是信息提取、問(wèn)答系統(tǒng)、句法分析、機(jī)器翻譯、面向Semantic Web的元數(shù)據(jù)標(biāo)注等應(yīng)用領(lǐng)域的重要基礎(chǔ)工具,在自然語(yǔ)言處理技術(shù)走向?qū)嵱没倪^(guò)程中占有重要的地位。在美團(tuán)搜索場(chǎng)景下,NER是深度查詢(xún)理解(Deep Query Understanding,簡(jiǎn)稱(chēng) DQU)的底層基礎(chǔ)信號(hào),主要應(yīng)用于搜索召回、用戶(hù)意圖識(shí)別、實(shí)體鏈接等環(huán)節(jié),NER信號(hào)的質(zhì)量,直接影響到用戶(hù)的搜索體驗(yàn)。

下面將簡(jiǎn)述一下實(shí)體識(shí)別在搜索召回中的應(yīng)用。在O2O搜索中,對(duì)商家POI的描述是商家名稱(chēng)、地址、品類(lèi)等多個(gè)互相之間相關(guān)性并不高的文本域。如果對(duì)O2O搜索引擎也采用全部文本域命中求交的方式,就可能會(huì)產(chǎn)生大量的誤召回。我們的解決方法如下圖1所示,讓特定的查詢(xún)只在特定的文本域做倒排檢索,我們稱(chēng)之為“結(jié)構(gòu)化召回”,可保證召回商家的強(qiáng)相關(guān)性。舉例來(lái)說(shuō),對(duì)于“海底撈”這樣的請(qǐng)求,有些商家地址會(huì)描述為“海底撈附近幾百米”,若采用全文本域檢索這些商家就會(huì)被召回,顯然這并不是用戶(hù)想要的。而結(jié)構(gòu)化召回基于NER將“海底撈”識(shí)別為商家,然后只在商家名相關(guān)文本域檢索,從而只召回海底撈品牌商家,精準(zhǔn)地滿(mǎn)足了用戶(hù)需求。

NER技術(shù)的探索與實(shí)踐是怎么樣的

有別于其他應(yīng)用場(chǎng)景,美團(tuán)搜索的NER任務(wù)具有以下特點(diǎn):

  • 新增實(shí)體數(shù)量龐大且增速較快:本地生活服務(wù)領(lǐng)域發(fā)展迅速,新店、新商品、新服務(wù)品類(lèi)層出不窮;用戶(hù)Query往往夾雜很多非標(biāo)準(zhǔn)化表達(dá)、簡(jiǎn)稱(chēng)和熱詞(如“牽腸掛肚”、“吸貓”等),這對(duì)實(shí)現(xiàn)高準(zhǔn)確率、高覆蓋率的NER造成了很大挑戰(zhàn)。

  • 領(lǐng)域相關(guān)性強(qiáng):搜索中的實(shí)體識(shí)別與業(yè)務(wù)供給高度相關(guān),除通用語(yǔ)義外需加入業(yè)務(wù)相關(guān)知識(shí)輔助判斷,比如“剪了個(gè)頭發(fā)”,通用理解是泛化描述實(shí)體,在搜索中卻是個(gè)商家實(shí)體。

  • 性能要求高:從用戶(hù)發(fā)起搜索到最終結(jié)果呈現(xiàn)給用戶(hù)時(shí)間很短,NER作為DQU的基礎(chǔ)模塊,需要在毫秒級(jí)的時(shí)間內(nèi)完成。近期,很多基于深度網(wǎng)絡(luò)的研究與實(shí)踐顯著提高了NER的效果,但這些模型往往計(jì)算量較大、預(yù)測(cè)耗時(shí)長(zhǎng),如何優(yōu)化模型性能,使之能滿(mǎn)足NER對(duì)計(jì)算時(shí)間的要求,也是NER實(shí)踐中的一大挑戰(zhàn)。

2. 技術(shù)選型

針對(duì)O2O領(lǐng)域NER 任務(wù)的特點(diǎn),我們整體的技術(shù)選型是“實(shí)體詞典匹配+模型預(yù)測(cè)”的框架,如圖下2所示。實(shí)體詞典匹配和模型預(yù)測(cè)兩者解決的問(wèn)題各有側(cè)重,在當(dāng)前階段缺一不可。下面通過(guò)對(duì)三個(gè)問(wèn)題的解答來(lái)說(shuō)明我們?yōu)槭裁催@么選。

為什么需要實(shí)體詞典匹配?

**答:**主要有以下四個(gè)原因:

一是搜索中用戶(hù)查詢(xún)的頭部流量通常較短、表達(dá)形式簡(jiǎn)單,且集中在商戶(hù)、品類(lèi)、地址等三類(lèi)實(shí)體搜索,實(shí)體詞典匹配雖簡(jiǎn)單但處理這類(lèi)查詢(xún)準(zhǔn)確率也可達(dá)到 90%以上。

二是NER領(lǐng)域相關(guān),通過(guò)挖掘業(yè)務(wù)數(shù)據(jù)資源獲取業(yè)務(wù)實(shí)體詞典,經(jīng)過(guò)在線(xiàn)詞典匹配后可保證識(shí)別結(jié)果是領(lǐng)域適配的。

三是新業(yè)務(wù)接入更加靈活,只需提供業(yè)務(wù)相關(guān)的實(shí)體詞表就可完成新業(yè)務(wù)場(chǎng)景下的實(shí)體識(shí)別。

四是NER下游使用方中有些對(duì)響應(yīng)時(shí)間要求極高,詞典匹配速度快,基本不存在性能問(wèn)題。

有了實(shí)體詞典匹配為什么還要模型預(yù)測(cè)?

**答:**有以下兩方面的原因:

一是隨著搜索體量的不斷增大,中長(zhǎng)尾搜索流量表述復(fù)雜,越來(lái)越多OOV(Out Of Vocabulary)問(wèn)題開(kāi)始出現(xiàn),實(shí)體詞典已經(jīng)無(wú)法滿(mǎn)足日益多樣化的用戶(hù)需求,模型預(yù)測(cè)具備泛化能力,可作為詞典匹配的有效補(bǔ)充。

二是實(shí)體詞典匹配無(wú)法解決歧義問(wèn)題,比如“黃鶴樓美食”,“黃鶴樓”在實(shí)體詞典中同時(shí)是武漢的景點(diǎn)、北京的商家、香煙產(chǎn)品,詞典匹配不具備消歧能力,這三種類(lèi)型都會(huì)輸出,而模型預(yù)測(cè)則可結(jié)合上下文,不會(huì)輸出“黃鶴樓”是香煙產(chǎn)品。

實(shí)體詞典匹配、模型預(yù)測(cè)兩路結(jié)果是怎么合并輸出的?

**答:**目前我們采用訓(xùn)練好的CRF權(quán)重網(wǎng)絡(luò)作為打分器,來(lái)對(duì)實(shí)體詞典匹配、模型預(yù)測(cè)兩路輸出的NER路徑進(jìn)行打分。在詞典匹配無(wú)結(jié)果或是其路徑打分值明顯低于模型預(yù)測(cè)時(shí),采用模型識(shí)別的結(jié)果,其他情況仍然采用詞典匹配結(jié)果。

在介紹完我們的技術(shù)選型后,接下來(lái)會(huì)展開(kāi)介紹下我們?cè)趯?shí)體詞典匹配、模型在線(xiàn)預(yù)測(cè)等兩方面的工作,希望能為大家在O2O NER領(lǐng)域的探索提供一些幫助。

NER技術(shù)的探索與實(shí)踐是怎么樣的

3. 實(shí)體詞典匹配

傳統(tǒng)的NER技術(shù)僅能處理通用領(lǐng)域既定、既有的實(shí)體,但無(wú)法應(yīng)對(duì)垂直領(lǐng)域所特有的實(shí)體類(lèi)型。在美團(tuán)搜索場(chǎng)景下,通過(guò)對(duì)POI結(jié)構(gòu)化信息、商戶(hù)評(píng)論數(shù)據(jù)、搜索日志等獨(dú)有數(shù)據(jù)進(jìn)行離線(xiàn)挖掘,可以很好地解決領(lǐng)域?qū)嶓w識(shí)別問(wèn)題。經(jīng)過(guò)離線(xiàn)實(shí)體庫(kù)不斷的豐富完善累積后,在線(xiàn)使用輕量級(jí)的詞庫(kù)匹配實(shí)體識(shí)別方式簡(jiǎn)單、高效、可控,且可以很好地覆蓋頭部和腰部流量。目前,基于實(shí)體庫(kù)的在線(xiàn)NER識(shí)別率可以達(dá)到92%。

3.1 離線(xiàn)挖掘

美團(tuán)具有豐富多樣的結(jié)構(gòu)化數(shù)據(jù),通過(guò)對(duì)領(lǐng)域內(nèi)結(jié)構(gòu)化數(shù)據(jù)的加工處理可以獲得高精度的初始實(shí)體庫(kù)。例如:從商戶(hù)基礎(chǔ)信息中,可以獲取商戶(hù)名、類(lèi)目、地址、售賣(mài)商品或服務(wù)等類(lèi)型實(shí)體。從貓眼文娛數(shù)據(jù)中,可以獲取電影、電視劇、藝人等類(lèi)型實(shí)體。然而,用戶(hù)搜索的實(shí)體名往往夾雜很多非標(biāo)準(zhǔn)化表達(dá),與業(yè)務(wù)定義的標(biāo)準(zhǔn)實(shí)體名之間存在差異,如何從非標(biāo)準(zhǔn)表達(dá)中挖掘領(lǐng)域?qū)嶓w變得尤為重要。

現(xiàn)有的新詞挖掘技術(shù)主要分為無(wú)監(jiān)督學(xué)習(xí)、有監(jiān)督學(xué)習(xí)和遠(yuǎn)程監(jiān)督學(xué)習(xí)。無(wú)監(jiān)督學(xué)習(xí)通過(guò)頻繁序列產(chǎn)生候選集,并通過(guò)計(jì)算緊密度和自由度指標(biāo)進(jìn)行篩選,這種方法雖然可以產(chǎn)生充分的候選集合,但僅通過(guò)特征閾值過(guò)濾無(wú)法有效地平衡精確率與召回率,現(xiàn)實(shí)應(yīng)用中通常挑選較高的閾值保證精度而犧牲召回。先進(jìn)的新詞挖掘算法大多為有監(jiān)督學(xué)習(xí),這類(lèi)算法通常涉及復(fù)雜的語(yǔ)法分析模型或深度網(wǎng)絡(luò)模型,且依賴(lài)領(lǐng)域?qū)<以O(shè)計(jì)繁多規(guī)則或大量的人工標(biāo)記數(shù)據(jù)。遠(yuǎn)程監(jiān)督學(xué)習(xí)通過(guò)開(kāi)源知識(shí)庫(kù)生成少量的標(biāo)記數(shù)據(jù),雖然一定程度上緩解了人力標(biāo)注成本高的問(wèn)題。然而小樣本量的標(biāo)記數(shù)據(jù)僅能學(xué)習(xí)簡(jiǎn)單的統(tǒng)計(jì)模型,無(wú)法訓(xùn)練具有高泛化能力的復(fù)雜模型。

我們的離線(xiàn)實(shí)體挖掘是多源多方法的,涉及到的數(shù)據(jù)源包括結(jié)構(gòu)化的商家信息庫(kù)、百科詞條,半結(jié)構(gòu)化的搜索日志,以及非結(jié)構(gòu)化的用戶(hù)評(píng)論(UGC)等。使用的挖掘方法也包含多種,包括規(guī)則、傳統(tǒng)機(jī)器學(xué)習(xí)模型、深度學(xué)習(xí)模型等。UGC作為一種非結(jié)構(gòu)化文本,蘊(yùn)含了大量非標(biāo)準(zhǔn)表達(dá)實(shí)體名。下面我們將詳細(xì)介紹一種針對(duì)UGC的垂直領(lǐng)域新詞自動(dòng)挖掘方法,該方法主要包含三個(gè)步驟,如下圖3所示:

NER技術(shù)的探索與實(shí)踐是怎么樣的

Step1:候選序列挖掘。頻繁連續(xù)出現(xiàn)的詞序列,是潛在新型詞匯的有效候選,我們采用頻繁序列產(chǎn)生充足候選集合。

Step2:基于遠(yuǎn)程監(jiān)督的大規(guī)模有標(biāo)記語(yǔ)料生成。頻繁序列隨著給定語(yǔ)料的變化而改變,因此人工標(biāo)記成本極高。我們利用領(lǐng)域已有累積的實(shí)體詞典作為遠(yuǎn)程監(jiān)督詞庫(kù),將Step1中候選序列與實(shí)體詞典的交集作為訓(xùn)練正例樣本。同時(shí),通過(guò)對(duì)候選序列分析發(fā)現(xiàn),在上百萬(wàn)的頻繁Ngram中僅約10%左右的候選是真正的高質(zhì)新型詞匯。因此,對(duì)于負(fù)例樣本,采用負(fù)采樣方式生產(chǎn)訓(xùn)練負(fù)例集[1]。針對(duì)海量UGC語(yǔ)料,我們?cè)O(shè)計(jì)并定義了四個(gè)維度的統(tǒng)計(jì)特征來(lái)衡量候選短語(yǔ)可用性:

  • 頻率:有意義的新詞在語(yǔ)料中應(yīng)當(dāng)滿(mǎn)足一定的頻率,該指標(biāo)由Step1計(jì)算得到。

  • 緊密度:主要用于評(píng)估新短語(yǔ)中連續(xù)元素的共現(xiàn)強(qiáng)度,包括T分布檢驗(yàn)、皮爾森卡方檢驗(yàn)、逐點(diǎn)互信息、似然比等指標(biāo)。

  • 信息度:新發(fā)現(xiàn)詞匯應(yīng)具有真實(shí)意義,指代某個(gè)新的實(shí)體或概念,該特征主要考慮了詞組在語(yǔ)料中的逆文檔頻率、詞性分布以及停用詞分布。

  • 完整性:新發(fā)現(xiàn)詞匯應(yīng)當(dāng)在給定的上下文環(huán)境中作為整體解釋存在,因此應(yīng)同時(shí)考慮詞組的子集短語(yǔ)以及超集短語(yǔ)的緊密度,從而衡量詞組的完整性。

在經(jīng)過(guò)小樣本標(biāo)記數(shù)據(jù)構(gòu)建和多維度統(tǒng)計(jì)特征提取后,訓(xùn)練二元分類(lèi)器來(lái)計(jì)算候選短語(yǔ)預(yù)估質(zhì)量。由于訓(xùn)練數(shù)據(jù)負(fù)例樣本采用了負(fù)采樣的方式,這部分?jǐn)?shù)據(jù)中混合了少量高質(zhì)量的短語(yǔ),為了減少負(fù)例噪聲對(duì)短語(yǔ)預(yù)估質(zhì)量分的影響,可以通過(guò)集成多個(gè)弱分類(lèi)器的方式減少誤差。對(duì)候選序列集合進(jìn)行模型預(yù)測(cè)后,將得分超過(guò)一定閾值的集合作為正例池,較低分?jǐn)?shù)的集合作為負(fù)例池。

Step3: 基于深度語(yǔ)義網(wǎng)絡(luò)的短語(yǔ)質(zhì)量評(píng)估。在有大量標(biāo)記數(shù)據(jù)的情況下,深度網(wǎng)絡(luò)模型可以自動(dòng)有效地學(xué)習(xí)語(yǔ)料特征,并產(chǎn)出具有泛化能力的高效模型。BERT通過(guò)海量自然語(yǔ)言文本和深度模型學(xué)習(xí)文本語(yǔ)義表征,并經(jīng)過(guò)簡(jiǎn)單微調(diào)在多個(gè)自然語(yǔ)言理解任務(wù)上刷新了記錄,因此我們基于BERT訓(xùn)練短語(yǔ)質(zhì)量打分器。為了更好地提升訓(xùn)練數(shù)據(jù)的質(zhì)量,我們利用搜索日志數(shù)據(jù)對(duì)Step2中生成的大規(guī)模正負(fù)例池?cái)?shù)據(jù)進(jìn)行遠(yuǎn)程指導(dǎo),將有大量搜索記錄的詞條作為有意義的關(guān)鍵詞。我們將正例池與搜索日志重合的部分作為模型正樣本,而將負(fù)例池減去搜索日志集合的部分作為模型負(fù)樣本,進(jìn)而提升訓(xùn)練數(shù)據(jù)的可靠性和多樣性。此外,我們采用Bootstrapping方式,在初次得到短語(yǔ)質(zhì)量分后,重新根據(jù)已有短語(yǔ)質(zhì)量分以及遠(yuǎn)程語(yǔ)料搜索日志更新訓(xùn)練樣本,迭代訓(xùn)練提升短語(yǔ)質(zhì)量打分器效果,有效減少了偽正例和偽負(fù)例。

在UGC語(yǔ)料中抽取出大量新詞或短語(yǔ)后,參考AutoNER[2]對(duì)新挖掘詞語(yǔ)進(jìn)行類(lèi)型預(yù)測(cè),從而擴(kuò)充離線(xiàn)的實(shí)體庫(kù)。

3.2 在線(xiàn)匹配

原始的在線(xiàn)NER詞典匹配方法直接針對(duì)Query做雙向最大匹配,從而獲得成分識(shí)別候選集合,再基于詞頻(這里指實(shí)體搜索量)篩選輸出最終結(jié)果。這種策略比較簡(jiǎn)陋,對(duì)詞庫(kù)準(zhǔn)確度和覆蓋度要求極高,所以存在以下幾個(gè)問(wèn)題:

  • 當(dāng)Query包含詞庫(kù)未覆蓋實(shí)體時(shí),基于字符的最大匹配算法易引起切分錯(cuò)誤。例如,搜索詞“海坨山谷”,詞庫(kù)僅能匹配到“海坨山”,因此出現(xiàn)“海坨山/谷”的錯(cuò)誤切分。

  • 粒度不可控。例如,搜索詞“星巴克咖啡”的切分結(jié)果,取決于詞庫(kù)對(duì)“星巴克”、“咖啡”以及“星巴克咖啡”的覆蓋。

  • 節(jié)點(diǎn)權(quán)重定義不合理。例如,直接基于實(shí)體搜索量作為實(shí)體節(jié)點(diǎn)權(quán)重,當(dāng)用戶(hù)搜索“信陽(yáng)菜館”時(shí),“信陽(yáng)菜/館”的得分大于“信陽(yáng)/菜館”。

為了解決以上問(wèn)題,在進(jìn)行實(shí)體字典匹配前引入了CRF分詞模型,針對(duì)垂直領(lǐng)域美團(tuán)搜索制定分詞準(zhǔn)則,人工標(biāo)注訓(xùn)練語(yǔ)料并訓(xùn)練CRF分詞模型。同時(shí),針對(duì)模型分詞錯(cuò)誤問(wèn)題,設(shè)計(jì)兩階段修復(fù)方式:

  1. 結(jié)合模型分詞Term和基于領(lǐng)域字典匹配Term,根據(jù)動(dòng)態(tài)規(guī)劃求解Term序列權(quán)重和的最優(yōu)解。

  2. 基于Pattern正則表達(dá)式的強(qiáng)修復(fù)規(guī)則。最后,輸出基于實(shí)體庫(kù)匹配的成分識(shí)別結(jié)果。

NER技術(shù)的探索與實(shí)踐是怎么樣的

4. 模型在線(xiàn)預(yù)測(cè)

對(duì)于長(zhǎng)尾、未登錄查詢(xún),我們使用模型進(jìn)行在線(xiàn)識(shí)別。 NER模型的演進(jìn)經(jīng)歷了如下圖5所示的幾個(gè)階段,目前線(xiàn)上使用的主模型是BERT[3]以及BERT+LR級(jí)聯(lián)模型,另外還有一些在探索中模型的離線(xiàn)效果也證實(shí)有效,后續(xù)我們會(huì)綜合考慮性能和收益逐步進(jìn)行上線(xiàn)。搜索中NER線(xiàn)上模型的構(gòu)建主要面臨三個(gè)問(wèn)題:

  1. 性能要求高:NER作為基礎(chǔ)模塊,模型預(yù)測(cè)需要在毫秒級(jí)時(shí)間內(nèi)完成,而目前基于深度學(xué)習(xí)的模型都有計(jì)算量大、預(yù)測(cè)時(shí)間較長(zhǎng)的問(wèn)題。

  2. 領(lǐng)域強(qiáng)相關(guān):搜索中的實(shí)體類(lèi)型與業(yè)務(wù)供給高度相關(guān),只考慮通用語(yǔ)義很難保證模型識(shí)別的準(zhǔn)確性。

  3. 標(biāo)注數(shù)據(jù)缺乏: NER標(biāo)注任務(wù)相對(duì)較難,需給出實(shí)體邊界切分、實(shí)體類(lèi)型信息,標(biāo)注過(guò)程費(fèi)時(shí)費(fèi)力,大規(guī)模標(biāo)注數(shù)據(jù)難以獲取。

針對(duì)性能要求高的問(wèn)題,我們的線(xiàn)上模型在升級(jí)為BERT時(shí)進(jìn)行了一系列的性能調(diào)優(yōu);針對(duì)NER領(lǐng)域相關(guān)問(wèn)題,我們提出了融合搜索日志特征、實(shí)體詞典信息的知識(shí)增強(qiáng)NER方法;針對(duì)訓(xùn)練數(shù)據(jù)難以獲取的問(wèn)題,我們提出一種弱監(jiān)督的NER方法。下面我們?cè)敿?xì)介紹下這些技術(shù)點(diǎn)。

NER技術(shù)的探索與實(shí)踐是怎么樣的

4.1 BERT模型

BERT是谷歌于2018年10月公開(kāi)的一種自然語(yǔ)言處理方法。該方法一經(jīng)發(fā)布,就引起了學(xué)術(shù)界以及工業(yè)界的廣泛關(guān)注。在效果方面,BERT刷新了11個(gè)NLP任務(wù)的當(dāng)前最優(yōu)效果,該方法也被評(píng)為2018年NLP的重大進(jìn)展以及NAACL 2019的best paper[4,5]。BERT和早前OpenAI發(fā)布的GPT方法技術(shù)路線(xiàn)基本一致,只是在技術(shù)細(xì)節(jié)上存在略微差異。兩個(gè)工作的主要貢獻(xiàn)在于使用預(yù)訓(xùn)練+微調(diào)的思路來(lái)解決自然語(yǔ)言處理問(wèn)題。以BERT為例,模型應(yīng)用包括2個(gè)環(huán)節(jié):

  • 預(yù)訓(xùn)練(Pre-training),該環(huán)節(jié)在大量通用語(yǔ)料上學(xué)習(xí)網(wǎng)絡(luò)參數(shù),通用語(yǔ)料包括Wikipedia、Book Corpus,這些語(yǔ)料包含了大量的文本,能夠提供豐富的語(yǔ)言相關(guān)現(xiàn)象。

  • 微調(diào)(Fine-tuning),該環(huán)節(jié)使用“任務(wù)相關(guān)”的標(biāo)注數(shù)據(jù)對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào),不需要再為目標(biāo)任務(wù)設(shè)計(jì)Task-specific網(wǎng)絡(luò)從頭訓(xùn)練。

將BERT應(yīng)用于實(shí)體識(shí)別線(xiàn)上預(yù)測(cè)時(shí)面臨一個(gè)挑戰(zhàn),即預(yù)測(cè)速度慢。我們從模型蒸餾、預(yù)測(cè)加速兩個(gè)方面進(jìn)行了探索,分階段上線(xiàn)了BERT蒸餾模型、BERT+Softmax、BERT+CRF模型。

4.1.1 模型蒸餾

我們嘗試了對(duì)BERT模型進(jìn)行剪裁和蒸餾兩種方式,結(jié)果證明,剪裁對(duì)于NER這種復(fù)雜NLP任務(wù)精度損失嚴(yán)重,而模型蒸餾是可行的。模型蒸餾是用簡(jiǎn)單模型來(lái)逼近復(fù)雜模型的輸出,目的是降低預(yù)測(cè)所需的計(jì)算量,同時(shí)保證預(yù)測(cè)效果。Hinton在2015年的論文中闡述了核心思想[6],復(fù)雜模型一般稱(chēng)作Teacher Model,蒸餾后的簡(jiǎn)單模型一般稱(chēng)作Student Model。Hinton的蒸餾方法使用偽標(biāo)注數(shù)據(jù)的概率分布來(lái)訓(xùn)練Student Model,而沒(méi)有使用偽標(biāo)注數(shù)據(jù)的標(biāo)簽來(lái)訓(xùn)練。作者的觀(guān)點(diǎn)是概率分布相比標(biāo)簽?zāi)軌蛱峁└嘈畔⒁约案鼜?qiáng)約束,能夠更好地保證Student Model與Teacher Model的預(yù)測(cè)效果達(dá)到一致。在2018年NeurIPS的Workshop上,[7]提出一種新的網(wǎng)絡(luò)結(jié)構(gòu)BlendCNN來(lái)逼近GPT的預(yù)測(cè)效果,本質(zhì)上也是模型蒸餾。BlendCNN預(yù)測(cè)速度相對(duì)原始GPT提升了300倍,另外在特定任務(wù)上,預(yù)測(cè)準(zhǔn)確率還略有提升。關(guān)于模型蒸餾,基本可以得到以下結(jié)論:

  • 模型蒸餾本質(zhì)是函數(shù)逼近。針對(duì)具體任務(wù),筆者認(rèn)為只要Student Model的復(fù)雜度能夠滿(mǎn)足問(wèn)題的復(fù)雜度,那么Student Model可以與Teacher Model完全不同,選擇Student Model的示例如下圖6所示。舉個(gè)例子,假設(shè)問(wèn)題中的樣本(x,y)從多項(xiàng)式函數(shù)中抽樣得到,最高指數(shù)次數(shù)d=2;可用的Teacher Model使用了更高指數(shù)次數(shù)(比如d=5),此時(shí),要選擇一個(gè)Student Model來(lái)進(jìn)行預(yù)測(cè),Student Model的模型復(fù)雜度不能低于問(wèn)題本身的復(fù)雜度,即對(duì)應(yīng)的指數(shù)次數(shù)至少達(dá)到d=2。

  • 根據(jù)無(wú)標(biāo)注數(shù)據(jù)的規(guī)模,蒸餾使用的約束可以不同。如圖7所示,如果無(wú)標(biāo)注數(shù)據(jù)規(guī)模小,可以采用值(logits)近似進(jìn)行學(xué)習(xí),施加強(qiáng)約束;如果無(wú)標(biāo)注數(shù)據(jù)規(guī)模中等,可以采用分布近似;如果無(wú)標(biāo)注數(shù)據(jù)規(guī)模很大,可以采用標(biāo)簽近似進(jìn)行學(xué)習(xí),即只使用Teacher Model的預(yù)測(cè)標(biāo)簽來(lái)指導(dǎo)模型學(xué)習(xí)。

NER技術(shù)的探索與實(shí)踐是怎么樣的

有了上面的結(jié)論,我們?nèi)绾卧谒阉鱊ER任務(wù)中應(yīng)用模型蒸餾呢? 首先先分析一下該任務(wù)。與文獻(xiàn)中的相關(guān)任務(wù)相比,搜索NER存在有一個(gè)顯著不同:作為線(xiàn)上應(yīng)用,搜索有大量無(wú)標(biāo)注數(shù)據(jù)。用戶(hù)查詢(xún)可以達(dá)到千萬(wàn)/天的量級(jí),數(shù)據(jù)規(guī)模上遠(yuǎn)超一些離線(xiàn)測(cè)評(píng)能夠提供的數(shù)據(jù)。據(jù)此,我們對(duì)蒸餾過(guò)程進(jìn)行簡(jiǎn)化:不限制Student Model的形式,選擇主流的推斷速度快的神經(jīng)網(wǎng)絡(luò)模型對(duì)BERT進(jìn)行近似;訓(xùn)練不使用值近似、分布近似作為學(xué)習(xí)目標(biāo),直接使用標(biāo)簽近似作為目標(biāo)來(lái)指導(dǎo)Student Model的學(xué)習(xí)。

我們使用IDCNN-CRF來(lái)近似BERT實(shí)體識(shí)別模型,IDCNN(Iterated Dilated CNN)是一種多層CNN網(wǎng)絡(luò),其中低層卷積使用普通卷積操作,通過(guò)滑動(dòng)窗口圈定的位置進(jìn)行加權(quán)求和得到卷積結(jié)果,此時(shí)滑動(dòng)窗口圈定的各個(gè)位置的距離間隔等于1。高層卷積使用膨脹卷積(Atrous Convolution)操作,滑動(dòng)窗口圈定的各個(gè)位置的距離間隔等于d(d>1)。通過(guò)在高層使用膨脹卷積可以減少卷積計(jì)算量,同時(shí)在序列依賴(lài)計(jì)算上也不會(huì)有損失。在文本挖掘中,IDCNN常用于對(duì)LSTM進(jìn)行替換。實(shí)驗(yàn)結(jié)果表明,相較于原始BERT模型,在沒(méi)有明顯精度損失的前提下,蒸餾模型的在線(xiàn)預(yù)測(cè)速度有數(shù)十倍的提升。

4.1.2 預(yù)測(cè)加速

BERT中大量小算子以及Attention計(jì)算量的問(wèn)題,使得其在實(shí)際線(xiàn)上應(yīng)用時(shí),預(yù)測(cè)時(shí)長(zhǎng)較高。我們主要使用以下三種方法加速模型預(yù)測(cè),同時(shí)對(duì)于搜索日志中的高頻Query,我們將預(yù)測(cè)結(jié)果以詞典方式上傳到緩存,進(jìn)一步減少模型在線(xiàn)預(yù)測(cè)的QPS壓力。下面介紹下模型預(yù)測(cè)加速的三種方法:

算子融合:通過(guò)降低Kernel Launch次數(shù)和提高小算子訪(fǎng)存效率來(lái)減少BERT中小算子的耗時(shí)開(kāi)銷(xiāo)。我們這里調(diào)研了Faster Transformer的實(shí)現(xiàn)。平均時(shí)延上,有1.4x~2x左右加速比;TP999上,有2.1x~3x左右的加速比。該方法適合標(biāo)準(zhǔn)的BERT模型。開(kāi)源版本的Faster Transformer工程質(zhì)量較低,易用性和穩(wěn)定性上存在較多問(wèn)題,無(wú)法直接應(yīng)用,我們基于NV開(kāi)源的Faster Transformer進(jìn)行了二次開(kāi)發(fā),主要在穩(wěn)定性和易用性進(jìn)行了改進(jìn):

  • 易用性:支持自動(dòng)轉(zhuǎn)換,支持Dynamic Batch,支持Auto Tuning。

  • 穩(wěn)定性:修復(fù)內(nèi)存泄漏和線(xiàn)程安全問(wèn)題。

Batching:Batching的原理主要是將多次請(qǐng)求合并到一個(gè)Batch進(jìn)行推理,降低Kernel Launch次數(shù)、充分利用多個(gè)GPU SM,從而提高整體吞吐。在max_batch_size設(shè)置為4的情況下,原生BERT模型,可以在將平均Latency控制在6ms以?xún)?nèi),最高吞吐可達(dá)1300 QPS。該方法十分適合美團(tuán)搜索場(chǎng)景下的BERT模型優(yōu)化,原因是搜索有明顯的高低峰期,可提升高峰期模型的吞吐量。

混合精度:混合精度指的是FP32和FP16混合的方式,使用混合精度可以加速BERT訓(xùn)練和預(yù)測(cè)過(guò)程并且減少顯存開(kāi)銷(xiāo),同時(shí)兼顧FP32的穩(wěn)定性和FP16的速度。在模型計(jì)算過(guò)程中使用FP16加速計(jì)算過(guò)程,模型訓(xùn)練過(guò)程中權(quán)重會(huì)存儲(chǔ)成FP32格式,參數(shù)更新時(shí)采用FP32類(lèi)型。利用FP32 Master-weights在FP32數(shù)據(jù)類(lèi)型下進(jìn)行參數(shù)更新,可有效避免溢出?;旌暇仍诨静挥绊懶Ч幕A(chǔ)上,模型訓(xùn)練和預(yù)測(cè)速度都有一定的提升。

4.2 知識(shí)增強(qiáng)的NER

如何將特定領(lǐng)域的外部知識(shí)作為輔助信息嵌入到語(yǔ)言模型中,一直是近些年的研究熱點(diǎn)。K-BERT[8]、ERNIE[9]等模型探索了知識(shí)圖譜與BERT的結(jié)合方法,為我們提供了很好的借鑒。美團(tuán)搜索中的NER是領(lǐng)域相關(guān)的,實(shí)體類(lèi)型的判定與業(yè)務(wù)供給高度相關(guān)。因此,我們也探索了如何將供給POI信息、用戶(hù)點(diǎn)擊、領(lǐng)域?qū)嶓w詞庫(kù)等外部知識(shí)融入到NER模型中。

4.2.1 融合搜索日志特征的Lattice-LSTM

在O2O垂直搜索領(lǐng)域,大量的實(shí)體由商家自定義(如商家名、團(tuán)單名等),實(shí)體信息隱藏在供給POI的屬性中,單使用傳統(tǒng)的語(yǔ)義方式識(shí)別效果差。Lattice-LSTM[10]針對(duì)中文實(shí)體識(shí)別,通過(guò)增加詞向量的輸入,豐富語(yǔ)義信息。我們借鑒這個(gè)思路,結(jié)合搜索用戶(hù)行為,挖掘Query 中潛在短語(yǔ),這些短語(yǔ)蘊(yùn)含了POI屬性信息,然后將這些隱藏的信息嵌入到模型中,在一定程度上解決領(lǐng)域新詞發(fā)現(xiàn)問(wèn)題。與原始Lattice-LSTM方法對(duì)比,識(shí)別準(zhǔn)確率千分位提升5個(gè)點(diǎn)。

NER技術(shù)的探索與實(shí)踐是怎么樣的

1) 短語(yǔ)挖掘及特征計(jì)算

該過(guò)程主要包括兩步:匹配位置計(jì)算、短語(yǔ)生成,下面詳細(xì)展開(kāi)介紹。

NER技術(shù)的探索與實(shí)踐是怎么樣的

Step1:匹配位置計(jì)算。對(duì)搜索日志進(jìn)行處理,重點(diǎn)計(jì)算查詢(xún)與文檔字段的詳細(xì)匹配情況以及計(jì)算文檔權(quán)重(比如點(diǎn)擊率)。如圖9所示,用戶(hù)輸入查詢(xún)是“手工編織”,對(duì)于文檔d1(搜索中就是POI),“手工”出現(xiàn)在字段“團(tuán)單”,“編織”出現(xiàn)在字段“地址”。對(duì)于文檔2,“手工編織”同時(shí)出現(xiàn)在“商家名”和“團(tuán)單”。匹配開(kāi)始位置、匹配結(jié)束位置分別對(duì)應(yīng)有匹配的查詢(xún)子串的開(kāi)始位置以及結(jié)束位置。

Step2:短語(yǔ)生成。以Step1的結(jié)果作為輸入,使用模型推斷候選短語(yǔ)??梢允褂枚鄠€(gè)模型,從而生成滿(mǎn)足多個(gè)假設(shè)的結(jié)果。我們將候選短語(yǔ)生成建模為整數(shù)線(xiàn)性規(guī)劃(Integer Linear Programmingm,ILP)問(wèn)題,并且定義了一個(gè)優(yōu)化框架,模型中的超參數(shù)可以根據(jù)業(yè)務(wù)需求進(jìn)行定制計(jì)算,從而獲得滿(mǎn)足不用假設(shè)的結(jié)果。對(duì)于一個(gè)具體查詢(xún)Q,每種切分結(jié)果都可以使用整數(shù)變量xij來(lái)表示:xij=1表示查詢(xún)i到j(luò)的位置構(gòu)成短語(yǔ),即Qij是一個(gè)短語(yǔ),xij=0表示查詢(xún)i到j(luò)的位置不構(gòu)成短語(yǔ)。優(yōu)化目標(biāo)可以形式化為:在給定不同切分xij的情況下,使收集到的匹配得分最大化。優(yōu)化目標(biāo)及約束函數(shù)如圖10所示,其中p:文檔,f:字段,w:文檔p的權(quán)重,wf:字段f的權(quán)重。xijpf:查詢(xún)子串Qij是否出現(xiàn)在文檔p的f字段,且最終切分方案會(huì)考慮該觀(guān)測(cè)證據(jù),Score(xijpf):最終切分方案考慮的觀(guān)測(cè)得分,w(xij):切分Qij對(duì)應(yīng)的權(quán)重,yijpf : 觀(guān)測(cè)到的匹配,查詢(xún)子串Qij出現(xiàn)在文檔p的f字段中。χmax:查詢(xún)包含的最大短語(yǔ)數(shù)。這里,χmax、wp、wf 、w(xij)是超參數(shù),在求解ILP問(wèn)題前需要完成設(shè)置,這些變量可以根據(jù)不同假設(shè)進(jìn)行設(shè)置:可以根據(jù)經(jīng)驗(yàn)人工設(shè)置,另外也可以基于其他信號(hào)來(lái)設(shè)置,設(shè)置可參考圖10給出的方法。最終短語(yǔ)的特征向量表征為在POI各屬性字段的點(diǎn)擊分布。

NER技術(shù)的探索與實(shí)踐是怎么樣的

2) 模型結(jié)構(gòu)

NER技術(shù)的探索與實(shí)踐是怎么樣的

模型結(jié)構(gòu)如圖11所示,藍(lán)色部分表示一層標(biāo)準(zhǔn)的LSTM網(wǎng)絡(luò)(可以單獨(dú)訓(xùn)練,也可以與其他模型組合),輸入為字向量,橙色部分表示當(dāng)前查詢(xún)中所有詞向量,紅色部分表示當(dāng)前查詢(xún)中的通過(guò)Step1計(jì)算得到的所有短語(yǔ)向量。對(duì)于LSTM的隱狀態(tài)輸入,主要由兩個(gè)層面的特征組成:當(dāng)前文本語(yǔ)義特征,包括當(dāng)前字向量輸入和前一時(shí)刻字向量隱層輸出;潛在的實(shí)體知識(shí)特征,包括當(dāng)前字的短語(yǔ)特征和詞特征。下面介紹當(dāng)前時(shí)刻潛在知識(shí)特征的計(jì)算以及特征組合的方法:(下列公式中,σ表示sigmoid函數(shù),⊙表示矩陣乘法)

NER技術(shù)的探索與實(shí)踐是怎么樣的

NER技術(shù)的探索與實(shí)踐是怎么樣的

4.2.2 融合實(shí)體詞典的兩階段NER

我們考慮將領(lǐng)域詞典知識(shí)融合到模型中,提出了兩階段的NER識(shí)別方法。該方法是將NER任務(wù)拆分成實(shí)體邊界識(shí)別和實(shí)體標(biāo)簽識(shí)別兩個(gè)子任務(wù)。相較于傳統(tǒng)的端到端的NER方法,這種方法的優(yōu)勢(shì)是實(shí)體切分可以跨領(lǐng)域復(fù)用。另外,在實(shí)體標(biāo)簽識(shí)別階段可以充分使用已積累的實(shí)體數(shù)據(jù)和實(shí)體鏈接等技術(shù)提高標(biāo)簽識(shí)別準(zhǔn)確率,缺點(diǎn)是會(huì)存在錯(cuò)誤傳播的問(wèn)題。

在第一階段,讓BERT模型專(zhuān)注于實(shí)體邊界的確定,而第二階段將實(shí)體詞典帶來(lái)的信息增益融入到實(shí)體分類(lèi)模型中。第二階段的實(shí)體分類(lèi)可以單獨(dú)對(duì)每個(gè)實(shí)體進(jìn)行預(yù)測(cè),但這種做法會(huì)丟失實(shí)體上下文信息,我們的處理方法是:將實(shí)體詞典用作訓(xùn)練數(shù)據(jù)訓(xùn)練一個(gè)IDCNN分類(lèi)模型,該模型對(duì)第一階段輸出的切分結(jié)果進(jìn)行編碼,并將編碼信息加入到第二階段的標(biāo)簽識(shí)別模型中,聯(lián)合上下文詞匯完成解碼?;贐enchmark標(biāo)注數(shù)據(jù)進(jìn)行評(píng)估,該模型相比于BERT-NER在Query粒度的準(zhǔn)確率上獲得了1%的提升。這里我們使用IDCNN主要是考慮到模型性能問(wèn)題,大家可視使用場(chǎng)景替換成BERT或其他分類(lèi)模型。

NER技術(shù)的探索與實(shí)踐是怎么樣的

4.3 弱監(jiān)督NER

NER技術(shù)的探索與實(shí)踐是怎么樣的

針對(duì)標(biāo)注數(shù)據(jù)難獲取問(wèn)題,我們提出了一種弱監(jiān)督方案,該方案包含兩個(gè)流程,分別是弱監(jiān)督標(biāo)注數(shù)據(jù)生成、模型訓(xùn)練。下面詳細(xì)描述下這兩個(gè)流程。

Step1:弱監(jiān)督標(biāo)注樣本生成

  1. 初版模型:利用已標(biāo)注的小批量數(shù)據(jù)集訓(xùn)練實(shí)體識(shí)別模型,這里使用的是最新的BERT模型,得到初版模型ModelA。

  2. 詞典數(shù)據(jù)預(yù)測(cè):實(shí)體識(shí)別模塊目前沉淀下百萬(wàn)量級(jí)的高質(zhì)量實(shí)體數(shù)據(jù)作為詞典,數(shù)據(jù)格式為實(shí)體文本、實(shí)體類(lèi)型、屬性信息。用上一步得到的ModelA預(yù)測(cè)改詞典數(shù)據(jù)輸出實(shí)體識(shí)別結(jié)果。

  3. 預(yù)測(cè)結(jié)果校正:實(shí)體詞典中實(shí)體精度較高,理論上來(lái)講模型預(yù)測(cè)的結(jié)果給出的實(shí)體類(lèi)型至少有一個(gè)應(yīng)該是實(shí)體詞典中給出的該實(shí)體類(lèi)型,否則說(shuō)明模型對(duì)于這類(lèi)輸入的識(shí)別效果并不好,需要針對(duì)性地補(bǔ)充樣本,我們對(duì)這類(lèi)輸入的模型結(jié)果進(jìn)行校正后得到標(biāo)注文本。校正方法我們嘗試了兩種,分別是整體校正和部分校正,整體校正是指整個(gè)輸入校正為詞典實(shí)體類(lèi)型,部分校正是指對(duì)模型切分出的單個(gè)Term 進(jìn)行類(lèi)型校正。舉個(gè)例子來(lái)說(shuō)明,“兄弟燒烤個(gè)性diy”詞典中給出的實(shí)體類(lèi)型為商家,模型預(yù)測(cè)結(jié)果為修飾詞+菜品+品類(lèi),沒(méi)有Term屬于商家類(lèi)型,模型預(yù)測(cè)結(jié)果和詞典有差異,這時(shí)候我們需要對(duì)模型輸出標(biāo)簽進(jìn)行校正。校正候選就是三種,分別是“商家+菜品+品類(lèi)”、“修飾詞+商家+品類(lèi)”、“修飾詞+菜品+商家”。我們選擇最接近于模型預(yù)測(cè)的一種,這樣選擇的理論意義在于模型已經(jīng)收斂到預(yù)測(cè)分布最接近于真實(shí)分布,我們只需要在預(yù)測(cè)分布上進(jìn)行微調(diào),而不是大幅度改變這個(gè)分布。那從校正候選中如何選出最接近于模型預(yù)測(cè)的一種呢?我們使用的方法是計(jì)算校正候選在該模型下的概率得分,然后與模型當(dāng)前預(yù)測(cè)結(jié)果(當(dāng)前模型認(rèn)為的最優(yōu)結(jié)果)計(jì)算概率比,概率比計(jì)算公式如公式2所示,概率比最大的那個(gè)就是最終得到的校正候選,也就是最終得到的弱監(jiān)督標(biāo)注樣本。在“兄弟燒烤個(gè)性diy”這個(gè)例子中,“商家+菜品+品類(lèi)”這個(gè)校正候選與模型輸出的“修飾詞+菜品+品類(lèi)”概率比最大,將得到“兄弟/商家 燒烤/菜品 個(gè)性diy/品類(lèi)”標(biāo)注數(shù)據(jù)。

NER技術(shù)的探索與實(shí)踐是怎么樣的

NER技術(shù)的探索與實(shí)踐是怎么樣的

Step2:弱監(jiān)督模型訓(xùn)練

弱監(jiān)督模型訓(xùn)練方法包括兩種:一是將生成的弱監(jiān)督樣本和標(biāo)注樣本進(jìn)行混合不區(qū)分重新進(jìn)行模型訓(xùn)練;二是在標(biāo)注樣本訓(xùn)練生成的ModelA基礎(chǔ)上,用弱監(jiān)督樣本進(jìn)行Fine-tuning訓(xùn)練。這兩種方式我們都進(jìn)行了嘗試。從實(shí)驗(yàn)結(jié)果來(lái)看,F(xiàn)ine-tuning效果更好。

關(guān)于NER技術(shù)的探索與實(shí)踐是怎么樣的就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

ner
AI