BiLSTM+CRF 是命名實(shí)體識(shí)別中最為流行的模型,但是 LSTM 需要按順序處理輸入的序列,速度比較慢。而采用 CNN 可以更高效的處理輸入序列,本文介紹一種使用膨脹卷積進(jìn)行命名實(shí)體識(shí)別的方法 IDCNN,通過(guò)膨脹卷積可以使模型接收更長(zhǎng)的上下文信息。
1.膨脹卷積
膨脹卷積 (Dilated Convolution) 是指卷積核中存在空洞,下圖展示了膨脹卷積和傳統(tǒng)卷積的區(qū)別。之前的文章《膨脹卷積 dilated convolution》 有關(guān)于膨脹卷積的介紹,不熟悉的童鞋可以參考一下。

膨脹卷積和傳統(tǒng)卷積的區(qū)別
膨脹卷積通過(guò)在卷積核中增加空洞,可以擴(kuò)大模型的感受野 (即句子中的上下文),從下圖可以看到,同樣是尺寸為 3 的卷積核,同樣是兩層卷積層,膨脹卷積的上下文大小為 7,而傳統(tǒng)卷積上下文大小為 5。

膨脹卷積和傳統(tǒng)卷積上下文大小
卷積核的膨脹系數(shù) (即空洞的大小) 每一層是不同的,一般可以取 (1, 2, 4, 8, ...),即前一層的兩倍。
對(duì)于尺寸為 3 的傳統(tǒng)卷積核,第 L 層的上下文大小為 2L+1;而對(duì)于尺寸為 3 的膨脹卷積核,第 L 層上下文的大小是 2^(L+1) -1。因此膨脹卷積的上下文大小和層數(shù)是指數(shù)相關(guān)的,可以通過(guò)比較少的卷積層得到更大的上下文。
2.用膨脹卷積進(jìn)行命名實(shí)體識(shí)別
論文《Fast and Accurate Entity Recognition with Iterated Dilated Convolutions》中提出了一種使用膨脹卷積的方法進(jìn)行命名實(shí)體識(shí)別,IDCNN (Iterated Dilated Convolutions)。
作者認(rèn)為直接堆疊膨脹卷積層,可以獲得很長(zhǎng)距離的上下文信息,例如有 9 層膨脹卷積層,則上下文的寬度超過(guò) 1000。但是簡(jiǎn)單的堆疊多層膨脹卷積,容易導(dǎo)致過(guò)擬合。
為了避免過(guò)擬合,作者先構(gòu)造一個(gè)層數(shù)不多的膨脹 block,block 包含幾個(gè)膨脹卷積層,例如 4 個(gè)。然后把數(shù)據(jù)重復(fù)傳到同一個(gè) block 中,即 block 輸出的結(jié)果又重復(fù)傳入 block 中,作者稱為 Iterated Dilated Convolutions,IDCNN。通過(guò)重復(fù)使用相同的 block,可以讓模型接收更寬的上下文信息,同時(shí)有比較好的泛化能力。
IDCNN 的膨脹卷積 block 包含多個(gè)膨脹卷積層,用 D 表示膨脹卷積層,如下面公式所示:

膨脹卷積層表示
IDCNN 網(wǎng)絡(luò)的第一層對(duì)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換,使用標(biāo)準(zhǔn)的卷積:

IDCNN 第一層對(duì)輸入進(jìn)行轉(zhuǎn)換
后 IDCNN 會(huì)使用 Lc 個(gè)膨脹卷積層構(gòu)造出 block,block 用 B() 表示,block 包含的膨脹卷積如下:

block 中包含 Lc 個(gè)膨脹卷積
IDCNN 會(huì)重復(fù)使用 Lb 次相同的 block,對(duì)數(shù)據(jù)進(jìn)行處理,如下:

IDCNN 重復(fù)使用 Lb 次 block
最后一層的輸出再經(jīng)過(guò)線性變換,可以得到序列每一個(gè)時(shí)刻 t 屬于不同類別的分?jǐn)?shù):

最后一層輸出線性變換
3.IDCNN 訓(xùn)練
IDCNN 可以使用兩種訓(xùn)練方式,第一種是利用最后一次 block 的輸出,預(yù)測(cè)每一時(shí)刻的類別,如下:

IDCNN 用最后一層 block 輸出進(jìn)行預(yù)測(cè)
這種方法可以結(jié)合 CRF 進(jìn)行訓(xùn)練,類似 BiLSTM+CRF,因?yàn)?IDCNN 也可以輸出每一時(shí)刻屬于不同類別的概率。
第二種訓(xùn)練方法是對(duì)于每一次 block 的輸出都預(yù)測(cè)序列的類標(biāo),作者認(rèn)為這種方式可以起到類似 CRF 的效果,能夠把輸出結(jié)果之間的關(guān)系編碼到 IDCNN 中。例如假設(shè)執(zhí)行兩次 block,則第一次 block 可以預(yù)測(cè)每一時(shí)刻對(duì)應(yīng)不同類別的概率。而第二次 block 接收第一次 block 的輸出,可以預(yù)測(cè)每一時(shí)刻輸出之間的關(guān)系,類似 CRF。公式如下:

IDCNN 使用每一層 block 輸出進(jìn)行預(yù)測(cè)
4.參考文獻(xiàn)
Fast and Accurate Entity Recognition with Iterated Dilated Convolutions