本文的開(kāi)頭還是從最近爆火的世界杯開(kāi)始說(shuō)起,以當(dāng)下最火的“世界杯阿根廷戰(zhàn)勝墨西哥”來(lái)說(shuō)。如果我們一個(gè)字符一個(gè)字符的獲取到embedding,勢(shì)必NER的效果會(huì)很差,但是如果我們能夠讓模型知道,世界杯、阿根廷、墨西哥分別是三個(gè)實(shí)體的名字,尤其是在位置編碼中“暗示”給模型,會(huì)有很好的效果。
上次的分享,主要集中在詞語(yǔ)的Embedding方式,這種方式在工業(yè)界非常的好用,簡(jiǎn)單而且有效果。實(shí)際上對(duì)于算法工程師來(lái)說(shuō),處理好數(shù)據(jù)、特征,往往也是對(duì)自己能力的重大考驗(yàn)。接下來(lái)我們分析一下子NER知識(shí)融合的另一種方式,在模型中嵌入知識(shí)的表達(dá):
FLAT: Chinese NER Using Flat-Lattice Transformer | 復(fù)旦大學(xué)| ACL 2020
介紹
近年來(lái),漢字“格”結(jié)構(gòu)被證明是一種有效的中文命名實(shí)體識(shí)別方法,格子結(jié)構(gòu)被證明對(duì)利用詞信息和避免分詞的錯(cuò)誤傳播有很大的好處。那么接下來(lái)的問(wèn)題是,什么是漢字格子?Lattice這個(gè)單詞正是格子的意思,NER任務(wù)嘗試引入這種類(lèi)似“格子”的數(shù)據(jù)來(lái)增加NER詞匯的容量。
實(shí)際上在NER任務(wù)中,格是一個(gè)有向無(wú)環(huán)圖,其中每個(gè)節(jié)點(diǎn)都是一個(gè)字符或一個(gè)潛在的字,可以參考圖1a。格子包括句子中的一系列字符和可能的單詞。它們不是按順序排列的,單詞的第一個(gè)字符和最后一個(gè)字符決定了它的位置。漢字格中的一些詞可能對(duì)NER很重要。舉例來(lái)說(shuō),第一個(gè)格子就是“重慶”,也即是從“重”到“慶”。寫(xiě)到這里,讀者可能會(huì)問(wèn),為什么不直接弄成格子呢?例如一個(gè)n*n的矩陣?可以是可以的,但是勢(shì)必會(huì)增加內(nèi)存開(kāi)銷(xiāo),這點(diǎn)在GPU上的體現(xiàn)很明顯。

圖1:a 為格子的概念圖,b為模型Lattice LSTM的結(jié)構(gòu)圖,c為本文的模型圖
之前的論文,為了適應(yīng)格子結(jié)構(gòu),提出了Lattice LSTM,這種方式無(wú)疑會(huì)增加計(jì)算開(kāi)銷(xiāo),模型圖在圖1b。在本文中,我們提出了FLAT:用于中文的 Transformer。具體來(lái)講,本文只是將格子結(jié)構(gòu)變成了頭部位置和尾部位置兩種索引的方式。如圖1c,可以看出有數(shù)字的地方,就代表了字符的位置,那么詞語(yǔ)“重慶”下面跟著的就是1,2,意思是從第一個(gè)字符,到第二個(gè)字符,是第一個(gè)詞語(yǔ)“重慶”。同理還有后面的詞語(yǔ)“人和藥店”,和“藥店”。
有意思的地方在于,本文也是引入了多種實(shí)體匹配的情況,“藥店”這個(gè)實(shí)體就匹配到了“人和藥店”和“藥店”,這點(diǎn)在工業(yè)界很實(shí)用,因?yàn)橐痪湓?huà)中很可能包含了很多很多的詞語(yǔ),充分的利用到這部分信息,是我們需要做的事情。
模型部分
總的來(lái)說(shuō),本文的貢獻(xiàn)都集中于位置編碼的部分,所以我們著重看下位置編碼。在圖2的模型架構(gòu)圖中,我們看到位置編碼作為底層結(jié)構(gòu),輸入給Transformer,最終進(jìn)行輸出。那么位置編碼是如何計(jì)算的呢?創(chuàng)新性又在哪里?我們繼續(xù)介紹。

圖2:模型架構(gòu)圖
將“格子”轉(zhuǎn)化為扁平的方式
我們只需要知道這串序列的頭和尾,就可以復(fù)原這個(gè)詞語(yǔ),例如“重慶”是由“重”到“慶”組成的。這一步是不需要考慮梯度回傳的,為什么呢?因?yàn)檫@在數(shù)據(jù)處理層面,處理好之后才拿去給模型訓(xùn)練的。
相對(duì)位置編碼
平面網(wǎng)格結(jié)構(gòu)由不同長(zhǎng)度的跨度組成。為了對(duì)區(qū)間之間的相互作用進(jìn)行編碼,本文提出了區(qū)間的相對(duì)位置編碼。現(xiàn)在我們假設(shè)有兩條序列,分別是xi 和 xj,具體來(lái)說(shuō),是圖1中的“藥店”和“人和藥店”,這個(gè)例子,和明顯xi xj是相交的關(guān)系。可以參考圖2的模型圖。
對(duì)于格子中的兩個(gè)跨 xi 和 xj ,它們之間有三種關(guān)系:相交、包含和分離,由它們的首尾決定。接著就是來(lái)計(jì)算相對(duì)距離,那么相對(duì)距離有幾種呢?答案是四種,為什么會(huì)這樣?實(shí)際上是很簡(jiǎn)單的排列組合,2*2=4,2代表了開(kāi)頭或者結(jié)尾。使用 head[i] 和 tail[i] 表示跨度 xi 的頭和尾的位置。四種相對(duì)距離可以用來(lái)表示 xi 和 xj 之間的關(guān)系。它們可以被計(jì)算為:

跨度的最終相對(duì)位置編碼是四個(gè)距離的一個(gè)簡(jiǎn)單的非線(xiàn)性變換,見(jiàn)下面的公式。那么問(wèn)題來(lái)了,為什么是四個(gè)距離一起計(jì)算,而不是只計(jì)算一個(gè)呢?是因?yàn)樗膫€(gè)能夠完整的還原出原來(lái)的狀態(tài),而一個(gè)不可以。舉例來(lái)說(shuō),如果只有d(hh),代表了從字符串xi的開(kāi)頭,到字符串xj開(kāi)頭的距離,只有這一段距離,是無(wú)法復(fù)現(xiàn)出原本的xi xj相對(duì)位置。

公式也是很好理解的,ReLU為激活函數(shù),Wr是可學(xué)習(xí)的參數(shù)矩陣,四種距離,經(jīng)過(guò)P運(yùn)算之后疊加在一起作為輸入。那么P是什么運(yùn)算呢?作者在這里沿用了Transformer原本的距離編碼。這個(gè)公式很神奇,因?yàn)楹苌儆泄綍?huì)把很大的數(shù)字,一萬(wàn)放進(jìn)去,P的運(yùn)算在奇數(shù)位和偶數(shù)位的方式不同,2k代表偶數(shù)位,2k+1代表奇數(shù)位。在知乎上有很多對(duì)這種位置編碼的講解,感興趣的朋友可以自行瀏覽。

然后使用self-attention的一個(gè)變體來(lái)利用相對(duì)跨度位置編碼如下:

其中Rij是從上面的公式而來(lái),E是取Embedding,而W都代表了線(xiàn)性變化的矩陣。緊接著就是用這個(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ì)情況和之前船長(zhǎng)對(duì)于NER的分享很類(lèi)似,都是用了差不多的數(shù)據(jù)集。不進(jìn)行過(guò)多介紹了。

圖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)程依賴(lài)關(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并沒(méi)有引入詞語(yǔ)的建模。但是能夠方便的嵌入到BERT中,無(wú)疑會(huì)更利用在工業(yè)界的利用。
寫(xiě)在最后
本文介紹了一種FLAT的位置編碼方式,可以應(yīng)用在Transformer模型上面,并且很容易結(jié)合BERT等預(yù)訓(xùn)練模型。實(shí)驗(yàn)結(jié)果很優(yōu)秀,關(guān)鍵是推理速度很快,這點(diǎn)也讓方法很容易部署在線(xiàn)上,帶來(lái)很好的效果。
編輯:黃飛
-
NER
+關(guān)注
關(guān)注
0文章
7瀏覽量
6460 -
位置編碼器
+關(guān)注
關(guān)注
1文章
21瀏覽量
5794
原文標(biāo)題:NER無(wú)法識(shí)別“世界杯”怎么辦?融入詞庫(kù)的位置編碼方法介紹
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
世界杯融入詞庫(kù)的位置編碼方法介紹
評(píng)論