0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詞匯知識融合可能是NLP任務(wù)的永恒話題

深度學(xué)習(xí)自然語言處理 ? 來源:丁香園大數(shù)據(jù) ? 作者:丁香園大數(shù)據(jù) ? 2021-05-08 11:22 ? 次閱讀

得益于BERT的加持,Encoder搭配CRF的結(jié)構(gòu)在中文NER上通常都有不錯的表現(xiàn),而且BERT使用方便,可以迅速微調(diào)上線特定服務(wù);在好的基準(zhǔn)條件下,我們也能把精力放在更細(xì)節(jié)的問題中,本文并不以指標(biāo)增長為目標(biāo),而是從先驗(yàn)知識融合與嵌套實(shí)體問題兩方面討論,希望可以從這兩個方向的工作中獲得解決其他問題的啟發(fā)

融合詞匯知識

Chinese NER Using Lattice LSTM

融合詞匯知識的方法可能適用于NLP問題的每個子方向,也是近幾年中文NER問題的大方向之一;因?yàn)橹形姆衷~的限制,加之有BERT的加成,如今基本默認(rèn)基于字符比基于分詞效果更好,這種情況下,引入詞匯知識對模型學(xué)習(xí)實(shí)體邊界和提升性能都有幫助,Lattice LSTM是這一方向的先行者

相比于char和word級的RNN,Lattice LSTM加入了針對詞匯的cell,用以融合詞匯信息;計算上比char-cell少一個output gate,此外完全一致,可以理解為在傳統(tǒng)LSTM鏈路中插入了一組LSTMCell,具體可以對照原文公式10-15理解(下圖公式11為LSTMCell,公式13為WordLSTMCell):

f8fff604-aeed-11eb-bf61-12bb97331649.png

FLAT: Chinese NER Using Flat-Lattice Transformer

Lattice LSTM驗(yàn)證了融合詞匯信息提升中文NER任務(wù)的可行性,就是有點(diǎn)慢,每句話要加入的詞匯不一樣,無法直接batch并行,此外Lattice LSTM沒法套BERT,現(xiàn)成的BERT不能用太不甘心;于是就有了同時彌補(bǔ)這兩點(diǎn)的FLAT,并且其融合詞匯的實(shí)現(xiàn)方式也簡單的多:如圖,F(xiàn)LAT融合詞匯的方式就是拼接,詞匯直接拼在輸入里,此外只需改造Postion Embedding,將原始的位置編碼改為起止位置編碼

不過Postion Embedding的改造還不止于此,為了讓模型學(xué)習(xí)到詞匯span的交互信息,這里還引入了相對位置編碼:如圖,長度為N的輸入會產(chǎn)生4個N * N的相對位置矩陣,分別由:head-head,head-tail,tail-head,tail-tail產(chǎn)生

f94fcb2a-aeed-11eb-bf61-12bb97331649.png

綜上,基于Transformer的FLAT可batch并行,速度自然優(yōu)于Lattice LSTM,同時又可以套用BERT,在常用中文NER數(shù)據(jù)集上都有非常出色的表現(xiàn);FLAT的顯存占用比較高,但用顯存換來的推理時間減少肯定是值得的

Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network

通過詞匯增強(qiáng)模型識別邊界的能力很重要,然而Lattice LSTM在這方面還存在信息損失,受限于構(gòu)造方式,詞匯表示只能加給最后一個字,這樣有什么問題呢?以本文CGN中提到的“北京機(jī)場”為例,想要成功標(biāo)出“北京機(jī)場”而非“北京”,需要模型將“機(jī)”識別為“I-LOC”,而非“O”或“B-LOC”,然而Lattice LSTM中的詞匯并不影響“機(jī)”的encoding;此外,Lattice LSTM的融合方式說明詞匯只對實(shí)體本身有幫助,然而正確識別實(shí)體可能也需要臨近詞匯的幫助,例如下圖的“離開”表明“希爾頓”是人名而非酒店

f9587568-aeed-11eb-bf61-12bb97331649.png

復(fù)雜的字詞關(guān)系無法通過RNN結(jié)構(gòu)表示,選擇Graph更為靈活,本文通過融合三種圖結(jié)構(gòu)學(xué)習(xí)復(fù)雜關(guān)系,利用GAN提取特征,獲得倍數(shù)于Lattice LSTM的速度提升

f97d6e5e-aeed-11eb-bf61-12bb97331649.png

如圖所示,在LSTM編碼輸入文本并傳入詞匯表示后,模型會經(jīng)過三種策略的構(gòu)圖層:

Word-Character Containing graph(C-graph):負(fù)責(zé)學(xué)習(xí)自匹配特征和詞匯邊界信息

Word-Character Transition graph(T-graph):負(fù)責(zé)構(gòu)造字詞相互之間的上下文鄰接關(guān)系

Word-Character Lattice graph(L-graph):負(fù)責(zé)捕捉自匹配特征和隱含的詞匯鄰接關(guān)系

圖表示完成后,通過Fusion層的線性結(jié)構(gòu)融合特征,再傳給CRF做標(biāo)簽decoding即可;雖然流程上比FLAT復(fù)雜一些,但一方面其非batch并行版的速度更快(不知道算不算建圖的時間),另外文中提供的各種詞匯融合思路也值得學(xué)習(xí)借鑒,從詞匯邊界和覆蓋本身考慮,上下文語義貢獻(xiàn)的作用,已經(jīng)圖結(jié)構(gòu)帶來的額外特征或許可以作為特定任務(wù)的預(yù)訓(xùn)練過程拆解使用

嵌套實(shí)體問題

嵌套實(shí)體在標(biāo)注應(yīng)用場景下很少被顧及,一方面?zhèn)鹘y(tǒng)序列標(biāo)注模型也只能選擇一個,另外標(biāo)注數(shù)據(jù)時我們就只根據(jù)語義選擇其中一個;但嵌套實(shí)體本身是存在的,比如醫(yī)療場景下的疾病詞常由身體部位和其他詞構(gòu)成,即便不作為NER任務(wù)本身看待,讓模型能學(xué)習(xí)標(biāo)識嵌套實(shí)體,對實(shí)際場景中的其他任務(wù)也大有益處

Pyramid: A Layered Model for Nested Named Entity Recognition

通過多層結(jié)構(gòu)抽取嵌套實(shí)體是一種容易理解的模型,2007年就有工作通過堆疊傳統(tǒng)NER層處理嵌套問題,不過之前的工作都無法處理嵌套實(shí)體重疊的情況,并且往往容易在錯誤的層級生成嵌套實(shí)體(即實(shí)體本身存在,但不該在當(dāng)前層識別到,否則會影響后續(xù)層的識別,從而破壞整體模型效果);本文針對這兩個問題提出的金字塔結(jié)構(gòu)

f9b2aa9c-aeed-11eb-bf61-12bb97331649.png

金字塔結(jié)構(gòu)的思想如圖所示,最底層為最小的文本單元,每一層負(fù)責(zé)長度為L的實(shí)體的識別,通過CNN向上聚合,模型不會遺漏重疊實(shí)體span,同時由于L的限制,該結(jié)構(gòu)不會在錯誤的層生成不對應(yīng)的實(shí)體;作者還認(rèn)為高層span的信息對底層也有幫助,所以還設(shè)計了逆向金字塔結(jié)構(gòu),具體實(shí)現(xiàn)如下

f9c4a1ac-aeed-11eb-bf61-12bb97331649.png

在經(jīng)過LSTM編碼后,自底向上的Decoding層為每一層預(yù)測對應(yīng)標(biāo)簽,因?yàn)榘撮L度區(qū)分,所以理論上只需要預(yù)測“B-”,但這樣模型就必須堆疊N層才能覆蓋全部span,不然就無法預(yù)測長度超過l的實(shí)體,所以作者設(shè)計了補(bǔ)救措施,在最高層同時預(yù)測“B-”和“I-”

f9e3f002-aeed-11eb-bf61-12bb97331649.png

Pyramid表現(xiàn)了處理嵌套問題的重要方向,即構(gòu)造和編碼潛在實(shí)體span,下面的工作也都遵循這一點(diǎn)設(shè)計實(shí)現(xiàn)各種模型結(jié)構(gòu)

A Unified MRC Framework for Named Entity Recognition

本文徹底放棄了序列標(biāo)注模型,用閱讀理解的方法處理嵌套實(shí)體,即預(yù)測起止位置和實(shí)體分類;由起止位置標(biāo)識的實(shí)體當(dāng)然允許覆蓋,自然就解決了嵌套問題;熟悉MRC的同學(xué)很快就會發(fā)現(xiàn),通常的MRC只有一個答案span,然而一句話中可能存在多個實(shí)體span,怎么表示多個實(shí)體?因此本文修改了MRC的結(jié)構(gòu),首先起止位置預(yù)測:

fa12bd10-aeed-11eb-bf61-12bb97331649.png

預(yù)測P_end也是同樣的結(jié)構(gòu),這里類似序列標(biāo)注,表示每個char為起止位置的概率分布,這樣就產(chǎn)生了a個起始位置和b個終止位置,理論上存在 a * b 個實(shí)體span;而后還需要一個模塊計算a * b個匹配中有多少個真的是實(shí)體,即:

fa1d9668-aeed-11eb-bf61-12bb97331649.png

到此便解決了預(yù)測起止位置識別實(shí)體的問題,下面需要對每個實(shí)體span分類;通常的做法都是設(shè)計分類器,區(qū)別僅在于傳入分類器的表示,本文的分類則十分新穎,也十分MRC,即:給輸入文本拼接一個指向特定實(shí)體的問題,在這個問題下找出的span都屬于這一類

本文思路新穎,實(shí)現(xiàn)簡單且可套用BERT等不同Encoder,在傳統(tǒng)NER和Nested-NER數(shù)據(jù)集上都有sota或接近的水準(zhǔn);唯一的遺憾是不適合多實(shí)體類別的應(yīng)用服務(wù),因?yàn)獒槍個類別都要單獨(dú)設(shè)計問題,所以相當(dāng)于在預(yù)測時把每個問題都問一遍,時間開銷或顯存開銷擴(kuò)大K倍是無法避免的

TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking

本文是實(shí)體關(guān)系聯(lián)合抽取的工作,雖然思路上基本遵循實(shí)體識別-》關(guān)系分類的流程,但實(shí)現(xiàn)上于尋常工作有巨大差別;雖然并不是中文數(shù)據(jù)集上的工作,但在嵌套實(shí)體的處理思路上,本文與尋常工作也有巨大差別,很有借鑒意義;這里首先介紹對普通實(shí)體,頭實(shí)體,尾實(shí)體的標(biāo)識方法:

fa34180c-aeed-11eb-bf61-12bb97331649.png

如圖所示,既然存在嵌套實(shí)體,那么不妨假設(shè)任意兩個char都可能構(gòu)成實(shí)體,這樣就形成左圖的N * N矩陣,模型通過二分類即可標(biāo)識出存在的實(shí)體;不過文本是單向的,所以實(shí)體的start一定在end前面,這樣就有了右圖,即矩陣包括主對角線的下三角矩陣可以忽略,這樣矩陣flat后的長度就從N * N減少到 (N + 1) * N / 2;因?yàn)槭菍?shí)體關(guān)系聯(lián)合抽取,所以分別用三種顏色標(biāo)識,紫色標(biāo)記普通實(shí)體,紅色標(biāo)記同一關(guān)系下的頭實(shí)體,藍(lán)色標(biāo)記尾實(shí)體,代碼實(shí)現(xiàn)上對應(yīng)三種分類器;另外由于一對實(shí)體可能存在多種關(guān)系,所以需要為每種關(guān)系準(zhǔn)備一個分類器,如下圖

fa46be6c-aeed-11eb-bf61-12bb97331649.png

筆者認(rèn)為TPlinker處理嵌套問題的思路與MRC頗有幾分相似,矩陣中每個元素都是一個span,既然存在嵌套,我們就不得不假設(shè)任意兩個char都可能構(gòu)成實(shí)體;此外,雖然最終要在 (N + 1) * N / 2長的序列上預(yù)測實(shí)體,但顯存占用之類的問題并沒有那么明顯,因?yàn)檫@個平方級的序列是在Encoder輸出后拼成的,我們還可以通過設(shè)置一些約束進(jìn)一步減少長度;不過要注意,這個長序列的預(yù)測可能非常稀疏(一句話里的實(shí)體很少,按長度平方后0占比更大)

Span-based Joint Entity and Relation Extraction with Transformer Pre-training

本文同樣是實(shí)體關(guān)系聯(lián)合抽取,處理嵌套問題的思路與TPlinker類似,窮舉出全部的潛在實(shí)體,然后用分類器識別;如下圖所示

fa797f78-aeed-11eb-bf61-12bb97331649.png

與TPlinker類似,在輸入文本經(jīng)過BERT后,sequence_output被用來構(gòu)造潛在實(shí)體,理論上所有的ngram都是潛在實(shí)體,所以這里需要拼出全部ngram再通過span分類器識別實(shí)體,過濾非實(shí)體;文中提到一個小trick,給span classifier傳入的向量表示除了sequence_output[span]和[CLS]外,還包含一個width embeddings向量,因?yàn)槟承╅L度的span不大可能的實(shí)體,希望模型可以學(xué)到這一點(diǎn);那么對于TPlinker和spERT,我們也都可以通過長度約束減少span的個數(shù),手工降低模型的計算開銷;最后關(guān)系分類的做法很直觀,融合各路語義向量表示,通過sigmoid生成對應(yīng)K個關(guān)系的1維向量,每個維度通過閾值判定是否存在該類關(guān)系

總的來說,Pyramid、MRC、TPLinker、spERT處理嵌套問題的出發(fā)點(diǎn)基本一致,從傳統(tǒng)的token級標(biāo)注轉(zhuǎn)變?yōu)閷撛趯?shí)體span的標(biāo)注;實(shí)現(xiàn)上各有特點(diǎn),Pyramid設(shè)計了分層結(jié)構(gòu),TPlinker的矩陣構(gòu)造非常靈性,不過平方級長度的序列太過稀疏;spERT雖然理論上也有平方級數(shù)量的span,但真實(shí)訓(xùn)練可以通過負(fù)采樣降低訓(xùn)練壓力;MRC做分類的想法很是獨(dú)特,不過對于多類別場景可能計算壓力過大,或許可以分離entity識別和分類,避免多次BERT計算的開銷

總結(jié)

詞匯知識融合可能是NLP任務(wù)的永恒話題,利用詞匯知識增強(qiáng)NER模型的想法也非常自然,Lattice LSTM及其后續(xù)工作展開了一個很好的方向,引入詞匯關(guān)聯(lián)結(jié)構(gòu)提升模型也許在其他任務(wù)上也有很大收益;嵌套實(shí)體問題在當(dāng)前的實(shí)際應(yīng)用場景也許重視度還不夠,但問題本身切實(shí)存在,這方面的工作往往在潛在實(shí)體span的識別上有獨(dú)特的創(chuàng)新點(diǎn),通過拆解和重組傳統(tǒng)的序列分類和標(biāo)注模塊,引入MRC機(jī)制等思路,為我們解決復(fù)雜NLP問題帶來新的思路

原文標(biāo)題:中文NER碎碎念—聊聊詞匯增強(qiáng)與實(shí)體嵌套

文章出處:【微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5442

    瀏覽量

    120798
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    483

    瀏覽量

    21976

原文標(biāo)題:中文NER碎碎念—聊聊詞匯增強(qiáng)與實(shí)體嵌套

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    AI如何對產(chǎn)品設(shè)計帶來更多的可能性?

    的設(shè)計概念。這些概念可能源于對大量設(shè)計案例的學(xué)習(xí)和分析,也可能是通過算法的創(chuàng)新性組合產(chǎn)生的。AI的創(chuàng)意生成能力可以極大地拓展設(shè)計師的思維邊界,為他們提供新的靈感和創(chuàng)意方向, 跨界融合:AI擅長整合不同領(lǐng)域的
    的頭像 發(fā)表于 10-15 11:29 ?133次閱讀

    nlp邏輯層次模型的特點(diǎn)

    NLP(自然語言處理)邏輯層次模型是一種用于理解和生成自然語言文本的計算模型。它將自然語言文本分解為不同的層次,以便于計算機(jī)更好地處理和理解。以下是對NLP邏輯層次模型特點(diǎn)的分析: 詞匯層次
    的頭像 發(fā)表于 07-09 10:39 ?259次閱讀

    nlp神經(jīng)語言和NLP自然語言的區(qū)別和聯(lián)系

    神經(jīng)語言(Neuro-Linguistic Programming,NLP) 神經(jīng)語言是一種心理學(xué)方法,它研究人類思維、語言和行為之間的關(guān)系。NLP的核心理念是,我們可以通過改變我們的思維方式和語言
    的頭像 發(fā)表于 07-09 10:35 ?641次閱讀

    nlp自然語言處理基本概念及關(guān)鍵技術(shù)

    、問答系統(tǒng)、文本摘要等眾多領(lǐng)域有著廣泛的應(yīng)用。 1. NLP的基本概念 1.1 語言模型 語言模型是NLP的基礎(chǔ),它用于描述一個句子在自然語言中出現(xiàn)的概率。語言模型通常用于文本生成、機(jī)器翻譯、語音識別等領(lǐng)域。 1.2 詞向量 詞向量是將自然語言中的
    的頭像 發(fā)表于 07-09 10:32 ?372次閱讀

    nlp自然語言處理的主要任務(wù)及技術(shù)方法

    的應(yīng)用,如搜索引擎、機(jī)器翻譯、語音識別、情感分析等。 NLP的主要任務(wù) NLP的主要任務(wù)可以分為以下幾個方面: 1.1 詞法分析(Lexical Analysis) 詞法分析是
    的頭像 發(fā)表于 07-09 10:26 ?619次閱讀

    nlp自然語言處理模型有哪些

    自然語言處理(Natural Language Processing,NLP)是計算機(jī)科學(xué)和人工智能領(lǐng)域的一個重要分支,旨在使計算機(jī)能夠理解、解釋和生成人類語言。以下是對NLP領(lǐng)域一些模型的介紹
    的頭像 發(fā)表于 07-05 09:57 ?534次閱讀

    NLP模型中RNN與CNN的選擇

    在自然語言處理(NLP)領(lǐng)域,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)與卷積神經(jīng)網(wǎng)絡(luò)(CNN)是兩種極為重要且廣泛應(yīng)用的網(wǎng)絡(luò)結(jié)構(gòu)。它們各自具有獨(dú)特的優(yōu)勢,適用于處理不同類型的NLP任務(wù)。本文旨在深入探討RNN與CNN
    的頭像 發(fā)表于 07-03 15:59 ?327次閱讀

    使用6路PWM控制無刷電機(jī),低速時候電機(jī)有嘯聲,可能是什么原因?

    我使用6路PWM控制無刷電機(jī),低速時候電機(jī)有嘯聲,可能是什么原因,應(yīng)該往哪方面考慮
    發(fā)表于 04-28 06:34

    NLP領(lǐng)域的語言偏置問題分析

    摘要進(jìn)行全面的統(tǒng)計分析,發(fā)現(xiàn)不同語言背景的作者在寫作中的詞匯、形態(tài)、句法和連貫性方面有明顯的差異,這表明NLP領(lǐng)域存在語言偏置的可能性。因此,我們提出了一系列建議,以幫助學(xué)術(shù)期刊和會議的出版社改進(jìn)他們對論文作者的指南和資源,以增
    的頭像 發(fā)表于 01-03 11:00 ?395次閱讀
    <b class='flag-5'>NLP</b>領(lǐng)域的語言偏置問題分析

    PLC指示燈異常閃爍可能是哪些原因造成的?

    PLC指示燈異常閃爍可能是由多種原因造成的。以下是一些常見的可能原因
    的頭像 發(fā)表于 12-05 09:03 ?1.3w次閱讀

    AD7656輸入偏置為0可能是什么原因?

    AD7656輸入管腳有-1.7V左右的偏置(前級電路已經(jīng)完全斷開),AD7656的VDD與AVCC共電壓為4.98V,VSS為-4.98V。請教:1.VDD/VSS沒有達(dá)到±5V是否有影響 2.輸入偏置為0可能是什么原因?
    發(fā)表于 12-01 07:23

    變壓器溫度過高可能是由于什么原因?qū)е碌模?/a>

    變壓器溫度過高可能是由于什么原因?qū)е碌模?變壓器溫度過高可能有多種原因?qū)е?,下面將詳?xì)介紹這些原因。 首先,變壓器溫度過高可能是由于負(fù)載過重引起的。當(dāng)負(fù)載超過變壓器額定功率時,變壓器會過載運(yùn)行,導(dǎo)致
    的頭像 發(fā)表于 11-20 14:55 ?2564次閱讀

    三相自動交流穩(wěn)壓器沒有輸出電壓?出現(xiàn)這種情況可能是什么原因呢?

    三相自動交流穩(wěn)壓器沒有輸出電壓?出現(xiàn)這種情況可能是什么原因呢? 三相自動交流穩(wěn)壓器沒有輸出電壓可能是由于以下原因: 1. 電源故障:首先要排查電源是否正常工作。可能是電源線路接觸不良、電源開關(guān)損壞
    的頭像 發(fā)表于 11-20 14:27 ?2269次閱讀

    伺服電機(jī)異響可能是哪方面的原因?

    伺服電機(jī)異響可能是哪方面的原因?
    發(fā)表于 11-15 07:02

    NeurlPS&apos;23開源 | 首個!開放詞匯3D實(shí)例分割!

    我們介紹了開放詞匯3D實(shí)例分割的任務(wù)。當(dāng)前的3D實(shí)例分割方法通常只能從訓(xùn)練數(shù)據(jù)集中標(biāo)注的預(yù)定義的封閉類集中識別對象類別。這給現(xiàn)實(shí)世界的應(yīng)用程序帶來了很大的限制,在現(xiàn)實(shí)世界的應(yīng)用程序中,人們可能需要執(zhí)行由與各種各樣的對象相關(guān)的新穎
    的頭像 發(fā)表于 11-14 15:53 ?519次閱讀
    NeurlPS&apos;23開源 | 首個!開放<b class='flag-5'>詞匯</b>3D實(shí)例分割!