本文的開頭還是從最近爆火的世界杯開始說起,以當(dāng)下最火的“世界杯阿根廷戰(zhàn)勝墨西哥”來說。如果我們一個(gè)字符一個(gè)字符的獲取到embedding,勢必NER的效果會(huì)很差,但是如果我們能夠讓模型知道,世界杯、阿根廷、墨西哥分別是三個(gè)實(shí)體的名字,尤其是在位置編碼中“暗示”給模型,會(huì)有很好的效果。
上次的分享,主要集中在詞語的Embedding方式,這種方式在工業(yè)界非常的好用,簡單而且有效果。實(shí)際上對(duì)于算法工程師來說,處理好數(shù)據(jù)、特征,往往也是對(duì)自己能力的重大考驗(yàn)。接下來我們分析一下子NER知識(shí)融合的另一種方式,在模型中嵌入知識(shí)的表達(dá):
FLAT: Chinese NER Using Flat-Lattice Transformer | 復(fù)旦大學(xué)| ACL 2020
介紹
近年來,漢字“格”結(jié)構(gòu)被證明是一種有效的中文命名實(shí)體識(shí)別方法,格子結(jié)構(gòu)被證明對(duì)利用詞信息和避免分詞的錯(cuò)誤傳播有很大的好處。那么接下來的問題是,什么是漢字格子?Lattice這個(gè)單詞正是格子的意思,NER任務(wù)嘗試引入這種類似“格子”的數(shù)據(jù)來增加NER詞匯的容量。
實(shí)際上在NER任務(wù)中,格是一個(gè)有向無環(huán)圖,其中每個(gè)節(jié)點(diǎn)都是一個(gè)字符或一個(gè)潛在的字,可以參考圖1a。格子包括句子中的一系列字符和可能的單詞。它們不是按順序排列的,單詞的第一個(gè)字符和最后一個(gè)字符決定了它的位置。漢字格中的一些詞可能對(duì)NER很重要。舉例來說,第一個(gè)格子就是“重慶”,也即是從“重”到“慶”。寫到這里,讀者可能會(huì)問,為什么不直接弄成格子呢?例如一個(gè)n*n的矩陣?可以是可以的,但是勢必會(huì)增加內(nèi)存開銷,這點(diǎn)在GPU上的體現(xiàn)很明顯。
圖1:a 為格子的概念圖,b為模型Lattice LSTM的結(jié)構(gòu)圖,c為本文的模型圖
之前的論文,為了適應(yīng)格子結(jié)構(gòu),提出了Lattice LSTM,這種方式無疑會(huì)增加計(jì)算開銷,模型圖在圖1b。在本文中,我們提出了FLAT:用于中文的 Transformer。具體來講,本文只是將格子結(jié)構(gòu)變成了頭部位置和尾部位置兩種索引的方式。如圖1c,可以看出有數(shù)字的地方,就代表了字符的位置,那么詞語“重慶”下面跟著的就是1,2,意思是從第一個(gè)字符,到第二個(gè)字符,是第一個(gè)詞語“重慶”。同理還有后面的詞語“人和藥店”,和“藥店”。
有意思的地方在于,本文也是引入了多種實(shí)體匹配的情況,“藥店”這個(gè)實(shí)體就匹配到了“人和藥店”和“藥店”,這點(diǎn)在工業(yè)界很實(shí)用,因?yàn)橐痪湓捴泻芸赡馨撕芏嗪芏嗟脑~語,充分的利用到這部分信息,是我們需要做的事情。
模型部分
總的來說,本文的貢獻(xiàn)都集中于位置編碼的部分,所以我們著重看下位置編碼。在圖2的模型架構(gòu)圖中,我們看到位置編碼作為底層結(jié)構(gòu),輸入給Transformer,最終進(jìn)行輸出。那么位置編碼是如何計(jì)算的呢?創(chuàng)新性又在哪里?我們繼續(xù)介紹。
圖2:模型架構(gòu)圖
將“格子”轉(zhuǎn)化為扁平的方式
我們只需要知道這串序列的頭和尾,就可以復(fù)原這個(gè)詞語,例如“重慶”是由“重”到“慶”組成的。這一步是不需要考慮梯度回傳的,為什么呢?因?yàn)檫@在數(shù)據(jù)處理層面,處理好之后才拿去給模型訓(xùn)練的。
相對(duì)位置編碼
平面網(wǎng)格結(jié)構(gòu)由不同長度的跨度組成。為了對(duì)區(qū)間之間的相互作用進(jìn)行編碼,本文提出了區(qū)間的相對(duì)位置編碼?,F(xiàn)在我們假設(shè)有兩條序列,分別是xi 和 xj,具體來說,是圖1中的“藥店”和“人和藥店”,這個(gè)例子,和明顯xi xj是相交的關(guān)系。可以參考圖2的模型圖。
對(duì)于格子中的兩個(gè)跨 xi 和 xj ,它們之間有三種關(guān)系:相交、包含和分離,由它們的首尾決定。接著就是來計(jì)算相對(duì)距離,那么相對(duì)距離有幾種呢?答案是四種,為什么會(huì)這樣?實(shí)際上是很簡單的排列組合,2*2=4,2代表了開頭或者結(jié)尾。使用 head[i] 和 tail[i] 表示跨度 xi 的頭和尾的位置。四種相對(duì)距離可以用來表示 xi 和 xj 之間的關(guān)系。它們可以被計(jì)算為:
跨度的最終相對(duì)位置編碼是四個(gè)距離的一個(gè)簡單的非線性變換,見下面的公式。那么問題來了,為什么是四個(gè)距離一起計(jì)算,而不是只計(jì)算一個(gè)呢?是因?yàn)樗膫€(gè)能夠完整的還原出原來的狀態(tài),而一個(gè)不可以。舉例來說,如果只有d(hh),代表了從字符串xi的開頭,到字符串xj開頭的距離,只有這一段距離,是無法復(fù)現(xiàn)出原本的xi xj相對(duì)位置。
公式也是很好理解的,ReLU為激活函數(shù),Wr是可學(xué)習(xí)的參數(shù)矩陣,四種距離,經(jīng)過P運(yùn)算之后疊加在一起作為輸入。那么P是什么運(yùn)算呢?作者在這里沿用了Transformer原本的距離編碼。這個(gè)公式很神奇,因?yàn)楹苌儆泄綍?huì)把很大的數(shù)字,一萬放進(jìn)去,P的運(yùn)算在奇數(shù)位和偶數(shù)位的方式不同,2k代表偶數(shù)位,2k+1代表奇數(shù)位。在知乎上有很多對(duì)這種位置編碼的講解,感興趣的朋友可以自行瀏覽。
然后使用self-attention的一個(gè)變體來利用相對(duì)跨度位置編碼如下:
其中Rij是從上面的公式而來,E是取Embedding,而W都代表了線性變化的矩陣。緊接著就是用這個(gè)A*替換掉原本的A,在Transformer內(nèi)部進(jìn)行attention運(yùn)算的時(shí)候,如下的公式所示。之后的步驟就是沿著Transformer的內(nèi)部進(jìn)行計(jì)算即可。整個(gè)模型架構(gòu)我們介紹完畢了,本文的貢獻(xiàn)主要集中在位置編碼部分。
數(shù)據(jù)集介紹
數(shù)據(jù)集的詳細(xì)情況和之前船長對(duì)于NER的分享很類似,都是用了差不多的數(shù)據(jù)集。不進(jìn)行過多介紹了。
圖3:數(shù)據(jù)集介紹
結(jié)果
Flat的方式,相比于之前的方法,有著1~3個(gè)點(diǎn)的提升,不同的數(shù)據(jù)集提升效果不同。
圖4:結(jié)果介紹
全連通結(jié)構(gòu)的優(yōu)點(diǎn)
與lattice LSTM相比,注意機(jī)制有兩個(gè)優(yōu)點(diǎn):
所有字符都可以直接與它的自匹配詞進(jìn)行交互。
遠(yuǎn)程依賴關(guān)系可以完全建模。這點(diǎn)根本上是緣由于Transformer的attention機(jī)制,注意力的機(jī)制能夠讓遠(yuǎn)距離的文本不再變得遙遠(yuǎn)。
FLAT的計(jì)算效率
圖5:推理速度效果
不難看出,推理速度方面,F(xiàn)LAT完勝了之前的 LatticeLSTM方式,大概提升有8倍之多,其中黑桃、梅花代表實(shí)驗(yàn)是否訓(xùn)練以batch-parallel 的機(jī)制。
兼容BERT
圖6:兼容了BERT之后的結(jié)果,BERT是指BERT+MLP+CRF架構(gòu),BERT+FLAT是指使用BERT嵌入的FLAT
將FLAT機(jī)制引入到BERT之后,提升相對(duì)很大,因?yàn)閷?duì)預(yù)訓(xùn)練模型的提升本身就很難。但是此處直接和BERT進(jìn)行對(duì)比并不合適,因?yàn)锽ERT并沒有引入詞語的建模。但是能夠方便的嵌入到BERT中,無疑會(huì)更利用在工業(yè)界的利用。
寫在最后
本文介紹了一種FLAT的位置編碼方式,可以應(yīng)用在Transformer模型上面,并且很容易結(jié)合BERT等預(yù)訓(xùn)練模型。實(shí)驗(yàn)結(jié)果很優(yōu)秀,關(guān)鍵是推理速度很快,這點(diǎn)也讓方法很容易部署在線上,帶來很好的效果。
編輯:黃飛
-
NER
+關(guān)注
關(guān)注
0文章
7瀏覽量
6218 -
位置編碼器
+關(guān)注
關(guān)注
1文章
18瀏覽量
5585
原文標(biāo)題:NER無法識(shí)別“世界杯”怎么辦?融入詞庫的位置編碼方法介紹
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論