您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關NER技術的探索與實踐是怎么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
命名實體識別(Named Entity Recognition,簡稱NER),又稱作“專名識別”,是指識別文本中具有特定意義的實體,主要包括人名、地名、機構名、專有名詞等。NER是信息提取、問答系統、句法分析、機器翻譯、面向Semantic Web的元數據標注等應用領域的重要基礎工具,在自然語言處理技術走向實用化的過程中占有重要的地位。在美團搜索場景下,NER是深度查詢理解(Deep Query Understanding,簡稱 DQU)的底層基礎信號,主要應用于搜索召回、用戶意圖識別、實體鏈接等環節,NER信號的質量,直接影響到用戶的搜索體驗。
下面將簡述一下實體識別在搜索召回中的應用。在O2O搜索中,對商家POI的描述是商家名稱、地址、品類等多個互相之間相關性并不高的文本域。如果對O2O搜索引擎也采用全部文本域命中求交的方式,就可能會產生大量的誤召回。我們的解決方法如下圖1所示,讓特定的查詢只在特定的文本域做倒排檢索,我們稱之為“結構化召回”,可保證召回商家的強相關性。舉例來說,對于“海底撈”這樣的請求,有些商家地址會描述為“海底撈附近幾百米”,若采用全文本域檢索這些商家就會被召回,顯然這并不是用戶想要的。而結構化召回基于NER將“海底撈”識別為商家,然后只在商家名相關文本域檢索,從而只召回海底撈品牌商家,精準地滿足了用戶需求。
有別于其他應用場景,美團搜索的NER任務具有以下特點:
新增實體數量龐大且增速較快:本地生活服務領域發展迅速,新店、新商品、新服務品類層出不窮;用戶Query往往夾雜很多非標準化表達、簡稱和熱詞(如“牽腸掛肚”、“吸貓”等),這對實現高準確率、高覆蓋率的NER造成了很大挑戰。
領域相關性強:搜索中的實體識別與業務供給高度相關,除通用語義外需加入業務相關知識輔助判斷,比如“剪了個頭發”,通用理解是泛化描述實體,在搜索中卻是個商家實體。
性能要求高:從用戶發起搜索到最終結果呈現給用戶時間很短,NER作為DQU的基礎模塊,需要在毫秒級的時間內完成。近期,很多基于深度網絡的研究與實踐顯著提高了NER的效果,但這些模型往往計算量較大、預測耗時長,如何優化模型性能,使之能滿足NER對計算時間的要求,也是NER實踐中的一大挑戰。
針對O2O領域NER 任務的特點,我們整體的技術選型是“實體詞典匹配+模型預測”的框架,如圖下2所示。實體詞典匹配和模型預測兩者解決的問題各有側重,在當前階段缺一不可。下面通過對三個問題的解答來說明我們為什么這么選。
為什么需要實體詞典匹配?
**答:**主要有以下四個原因:
一是搜索中用戶查詢的頭部流量通常較短、表達形式簡單,且集中在商戶、品類、地址等三類實體搜索,實體詞典匹配雖簡單但處理這類查詢準確率也可達到 90%以上。
二是NER領域相關,通過挖掘業務數據資源獲取業務實體詞典,經過在線詞典匹配后可保證識別結果是領域適配的。
三是新業務接入更加靈活,只需提供業務相關的實體詞表就可完成新業務場景下的實體識別。
四是NER下游使用方中有些對響應時間要求極高,詞典匹配速度快,基本不存在性能問題。
有了實體詞典匹配為什么還要模型預測?
**答:**有以下兩方面的原因:
一是隨著搜索體量的不斷增大,中長尾搜索流量表述復雜,越來越多OOV(Out Of Vocabulary)問題開始出現,實體詞典已經無法滿足日益多樣化的用戶需求,模型預測具備泛化能力,可作為詞典匹配的有效補充。
二是實體詞典匹配無法解決歧義問題,比如“黃鶴樓美食”,“黃鶴樓”在實體詞典中同時是武漢的景點、北京的商家、香煙產品,詞典匹配不具備消歧能力,這三種類型都會輸出,而模型預測則可結合上下文,不會輸出“黃鶴樓”是香煙產品。
實體詞典匹配、模型預測兩路結果是怎么合并輸出的?
**答:**目前我們采用訓練好的CRF權重網絡作為打分器,來對實體詞典匹配、模型預測兩路輸出的NER路徑進行打分。在詞典匹配無結果或是其路徑打分值明顯低于模型預測時,采用模型識別的結果,其他情況仍然采用詞典匹配結果。
在介紹完我們的技術選型后,接下來會展開介紹下我們在實體詞典匹配、模型在線預測等兩方面的工作,希望能為大家在O2O NER領域的探索提供一些幫助。
傳統的NER技術僅能處理通用領域既定、既有的實體,但無法應對垂直領域所特有的實體類型。在美團搜索場景下,通過對POI結構化信息、商戶評論數據、搜索日志等獨有數據進行離線挖掘,可以很好地解決領域實體識別問題。經過離線實體庫不斷的豐富完善累積后,在線使用輕量級的詞庫匹配實體識別方式簡單、高效、可控,且可以很好地覆蓋頭部和腰部流量。目前,基于實體庫的在線NER識別率可以達到92%。
美團具有豐富多樣的結構化數據,通過對領域內結構化數據的加工處理可以獲得高精度的初始實體庫。例如:從商戶基礎信息中,可以獲取商戶名、類目、地址、售賣商品或服務等類型實體。從貓眼文娛數據中,可以獲取電影、電視劇、藝人等類型實體。然而,用戶搜索的實體名往往夾雜很多非標準化表達,與業務定義的標準實體名之間存在差異,如何從非標準表達中挖掘領域實體變得尤為重要。
現有的新詞挖掘技術主要分為無監督學習、有監督學習和遠程監督學習。無監督學習通過頻繁序列產生候選集,并通過計算緊密度和自由度指標進行篩選,這種方法雖然可以產生充分的候選集合,但僅通過特征閾值過濾無法有效地平衡精確率與召回率,現實應用中通常挑選較高的閾值保證精度而犧牲召回。先進的新詞挖掘算法大多為有監督學習,這類算法通常涉及復雜的語法分析模型或深度網絡模型,且依賴領域專家設計繁多規則或大量的人工標記數據。遠程監督學習通過開源知識庫生成少量的標記數據,雖然一定程度上緩解了人力標注成本高的問題。然而小樣本量的標記數據僅能學習簡單的統計模型,無法訓練具有高泛化能力的復雜模型。
我們的離線實體挖掘是多源多方法的,涉及到的數據源包括結構化的商家信息庫、百科詞條,半結構化的搜索日志,以及非結構化的用戶評論(UGC)等。使用的挖掘方法也包含多種,包括規則、傳統機器學習模型、深度學習模型等。UGC作為一種非結構化文本,蘊含了大量非標準表達實體名。下面我們將詳細介紹一種針對UGC的垂直領域新詞自動挖掘方法,該方法主要包含三個步驟,如下圖3所示:
Step1:候選序列挖掘。頻繁連續出現的詞序列,是潛在新型詞匯的有效候選,我們采用頻繁序列產生充足候選集合。
Step2:基于遠程監督的大規模有標記語料生成。頻繁序列隨著給定語料的變化而改變,因此人工標記成本極高。我們利用領域已有累積的實體詞典作為遠程監督詞庫,將Step1中候選序列與實體詞典的交集作為訓練正例樣本。同時,通過對候選序列分析發現,在上百萬的頻繁Ngram中僅約10%左右的候選是真正的高質新型詞匯。因此,對于負例樣本,采用負采樣方式生產訓練負例集[1]。針對海量UGC語料,我們設計并定義了四個維度的統計特征來衡量候選短語可用性:
頻率:有意義的新詞在語料中應當滿足一定的頻率,該指標由Step1計算得到。
緊密度:主要用于評估新短語中連續元素的共現強度,包括T分布檢驗、皮爾森卡方檢驗、逐點互信息、似然比等指標。
信息度:新發現詞匯應具有真實意義,指代某個新的實體或概念,該特征主要考慮了詞組在語料中的逆文檔頻率、詞性分布以及停用詞分布。
完整性:新發現詞匯應當在給定的上下文環境中作為整體解釋存在,因此應同時考慮詞組的子集短語以及超集短語的緊密度,從而衡量詞組的完整性。
在經過小樣本標記數據構建和多維度統計特征提取后,訓練二元分類器來計算候選短語預估質量。由于訓練數據負例樣本采用了負采樣的方式,這部分數據中混合了少量高質量的短語,為了減少負例噪聲對短語預估質量分的影響,可以通過集成多個弱分類器的方式減少誤差。對候選序列集合進行模型預測后,將得分超過一定閾值的集合作為正例池,較低分數的集合作為負例池。
Step3: 基于深度語義網絡的短語質量評估。在有大量標記數據的情況下,深度網絡模型可以自動有效地學習語料特征,并產出具有泛化能力的高效模型。BERT通過海量自然語言文本和深度模型學習文本語義表征,并經過簡單微調在多個自然語言理解任務上刷新了記錄,因此我們基于BERT訓練短語質量打分器。為了更好地提升訓練數據的質量,我們利用搜索日志數據對Step2中生成的大規模正負例池數據進行遠程指導,將有大量搜索記錄的詞條作為有意義的關鍵詞。我們將正例池與搜索日志重合的部分作為模型正樣本,而將負例池減去搜索日志集合的部分作為模型負樣本,進而提升訓練數據的可靠性和多樣性。此外,我們采用Bootstrapping方式,在初次得到短語質量分后,重新根據已有短語質量分以及遠程語料搜索日志更新訓練樣本,迭代訓練提升短語質量打分器效果,有效減少了偽正例和偽負例。
在UGC語料中抽取出大量新詞或短語后,參考AutoNER[2]對新挖掘詞語進行類型預測,從而擴充離線的實體庫。
原始的在線NER詞典匹配方法直接針對Query做雙向最大匹配,從而獲得成分識別候選集合,再基于詞頻(這里指實體搜索量)篩選輸出最終結果。這種策略比較簡陋,對詞庫準確度和覆蓋度要求極高,所以存在以下幾個問題:
當Query包含詞庫未覆蓋實體時,基于字符的最大匹配算法易引起切分錯誤。例如,搜索詞“海坨山谷”,詞庫僅能匹配到“海坨山”,因此出現“海坨山/谷”的錯誤切分。
粒度不可控。例如,搜索詞“星巴克咖啡”的切分結果,取決于詞庫對“星巴克”、“咖啡”以及“星巴克咖啡”的覆蓋。
節點權重定義不合理。例如,直接基于實體搜索量作為實體節點權重,當用戶搜索“信陽菜館”時,“信陽菜/館”的得分大于“信陽/菜館”。
為了解決以上問題,在進行實體字典匹配前引入了CRF分詞模型,針對垂直領域美團搜索制定分詞準則,人工標注訓練語料并訓練CRF分詞模型。同時,針對模型分詞錯誤問題,設計兩階段修復方式:
結合模型分詞Term和基于領域字典匹配Term,根據動態規劃求解Term序列權重和的最優解。
基于Pattern正則表達式的強修復規則。最后,輸出基于實體庫匹配的成分識別結果。
對于長尾、未登錄查詢,我們使用模型進行在線識別。 NER模型的演進經歷了如下圖5所示的幾個階段,目前線上使用的主模型是BERT[3]以及BERT+LR級聯模型,另外還有一些在探索中模型的離線效果也證實有效,后續我們會綜合考慮性能和收益逐步進行上線。搜索中NER線上模型的構建主要面臨三個問題:
性能要求高:NER作為基礎模塊,模型預測需要在毫秒級時間內完成,而目前基于深度學習的模型都有計算量大、預測時間較長的問題。
領域強相關:搜索中的實體類型與業務供給高度相關,只考慮通用語義很難保證模型識別的準確性。
標注數據缺乏: NER標注任務相對較難,需給出實體邊界切分、實體類型信息,標注過程費時費力,大規模標注數據難以獲取。
針對性能要求高的問題,我們的線上模型在升級為BERT時進行了一系列的性能調優;針對NER領域相關問題,我們提出了融合搜索日志特征、實體詞典信息的知識增強NER方法;針對訓練數據難以獲取的問題,我們提出一種弱監督的NER方法。下面我們詳細介紹下這些技術點。
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數據類型下進行參數更新,可有效避免溢出。混合精度在基本不影響效果的基礎上,模型訓練和預測速度都有一定的提升。
如何將特定領域的外部知識作為輔助信息嵌入到語言模型中,一直是近些年的研究熱點。K-BERT[8]、ERNIE[9]等模型探索了知識圖譜與BERT的結合方法,為我們提供了很好的借鑒。美團搜索中的NER是領域相關的,實體類型的判定與業務供給高度相關。因此,我們也探索了如何將供給POI信息、用戶點擊、領域實體詞庫等外部知識融入到NER模型中。
4.2.1 融合搜索日志特征的Lattice-LSTM
在O2O垂直搜索領域,大量的實體由商家自定義(如商家名、團單名等),實體信息隱藏在供給POI的屬性中,單使用傳統的語義方式識別效果差。Lattice-LSTM[10]針對中文實體識別,通過增加詞向量的輸入,豐富語義信息。我們借鑒這個思路,結合搜索用戶行為,挖掘Query 中潛在短語,這些短語蘊含了POI屬性信息,然后將這些隱藏的信息嵌入到模型中,在一定程度上解決領域新詞發現問題。與原始Lattice-LSTM方法對比,識別準確率千分位提升5個點。
1) 短語挖掘及特征計算
該過程主要包括兩步:匹配位置計算、短語生成,下面詳細展開介紹。
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各屬性字段的點擊分布。
2) 模型結構
模型結構如圖11所示,藍色部分表示一層標準的LSTM網絡(可以單獨訓練,也可以與其他模型組合),輸入為字向量,橙色部分表示當前查詢中所有詞向量,紅色部分表示當前查詢中的通過Step1計算得到的所有短語向量。對于LSTM的隱狀態輸入,主要由兩個層面的特征組成:當前文本語義特征,包括當前字向量輸入和前一時刻字向量隱層輸出;潛在的實體知識特征,包括當前字的短語特征和詞特征。下面介紹當前時刻潛在知識特征的計算以及特征組合的方法:(下列公式中,σ表示sigmoid函數,⊙表示矩陣乘法)
4.2.2 融合實體詞典的兩階段NER
我們考慮將領域詞典知識融合到模型中,提出了兩階段的NER識別方法。該方法是將NER任務拆分成實體邊界識別和實體標簽識別兩個子任務。相較于傳統的端到端的NER方法,這種方法的優勢是實體切分可以跨領域復用。另外,在實體標簽識別階段可以充分使用已積累的實體數據和實體鏈接等技術提高標簽識別準確率,缺點是會存在錯誤傳播的問題。
在第一階段,讓BERT模型專注于實體邊界的確定,而第二階段將實體詞典帶來的信息增益融入到實體分類模型中。第二階段的實體分類可以單獨對每個實體進行預測,但這種做法會丟失實體上下文信息,我們的處理方法是:將實體詞典用作訓練數據訓練一個IDCNN分類模型,該模型對第一階段輸出的切分結果進行編碼,并將編碼信息加入到第二階段的標簽識別模型中,聯合上下文詞匯完成解碼。基于Benchmark標注數據進行評估,該模型相比于BERT-NER在Query粒度的準確率上獲得了1%的提升。這里我們使用IDCNN主要是考慮到模型性能問題,大家可視使用場景替換成BERT或其他分類模型。
針對標注數據難獲取問題,我們提出了一種弱監督方案,該方案包含兩個流程,分別是弱監督標注數據生成、模型訓練。下面詳細描述下這兩個流程。
Step1:弱監督標注樣本生成
初版模型:利用已標注的小批量數據集訓練實體識別模型,這里使用的是最新的BERT模型,得到初版模型ModelA。
詞典數據預測:實體識別模塊目前沉淀下百萬量級的高質量實體數據作為詞典,數據格式為實體文本、實體類型、屬性信息。用上一步得到的ModelA預測改詞典數據輸出實體識別結果。
預測結果校正:實體詞典中實體精度較高,理論上來講模型預測的結果給出的實體類型至少有一個應該是實體詞典中給出的該實體類型,否則說明模型對于這類輸入的識別效果并不好,需要針對性地補充樣本,我們對這類輸入的模型結果進行校正后得到標注文本。校正方法我們嘗試了兩種,分別是整體校正和部分校正,整體校正是指整個輸入校正為詞典實體類型,部分校正是指對模型切分出的單個Term 進行類型校正。舉個例子來說明,“兄弟燒烤個性diy”詞典中給出的實體類型為商家,模型預測結果為修飾詞+菜品+品類,沒有Term屬于商家類型,模型預測結果和詞典有差異,這時候我們需要對模型輸出標簽進行校正。校正候選就是三種,分別是“商家+菜品+品類”、“修飾詞+商家+品類”、“修飾詞+菜品+商家”。我們選擇最接近于模型預測的一種,這樣選擇的理論意義在于模型已經收斂到預測分布最接近于真實分布,我們只需要在預測分布上進行微調,而不是大幅度改變這個分布。那從校正候選中如何選出最接近于模型預測的一種呢?我們使用的方法是計算校正候選在該模型下的概率得分,然后與模型當前預測結果(當前模型認為的最優結果)計算概率比,概率比計算公式如公式2所示,概率比最大的那個就是最終得到的校正候選,也就是最終得到的弱監督標注樣本。在“兄弟燒烤個性diy”這個例子中,“商家+菜品+品類”這個校正候選與模型輸出的“修飾詞+菜品+品類”概率比最大,將得到“兄弟/商家 燒烤/菜品 個性diy/品類”標注數據。
Step2:弱監督模型訓練
弱監督模型訓練方法包括兩種:一是將生成的弱監督樣本和標注樣本進行混合不區分重新進行模型訓練;二是在標注樣本訓練生成的ModelA基礎上,用弱監督樣本進行Fine-tuning訓練。這兩種方式我們都進行了嘗試。從實驗結果來看,Fine-tuning效果更好。
關于NER技術的探索與實踐是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。