來自ACL2020複旦大學邱錫鵬老師團隊的NER領域又一力作
- 論文:FLAT: Chinese NER Using Flat-Lattice Transformer
- 源碼:https://github.com/LeeSureman/Flat-Lattice-Transformer
- Arxiv通路不友善的同學可以背景回複『0032』便捷擷取論文喔
「Key insight」: 本文在Lattice LSTM(ACL 2018)[1]的基礎上作出了兩方面的改進:
- 作者提出了一種将Lattice圖結構無損轉換為扁平的Flat結構的方法,并将LSTM替換為了更先進的Transformer Encoder,該方法不僅彌補了Lattice LSTM無法「并行計算」(batchsize=1)的缺陷,而且更好地模組化了序列的「長期依賴關系」;
- 作者提出了一種針對Flat結構的「相對位置編碼機制」,使得字元與詞彙得到了更充分更直接的資訊互動,在基于詞典的中文NER模型中取得了SOTA。
寫在前面
由于中文詞彙的稀疏性和模糊性,基于字元的序列标注模型往往比基于詞彙的序列标注模型表現更好,但在基于字元的模型中引入分詞資訊往往能夠帶來性能的提升,尤其是對于NER任務來說,詞彙能夠提供豐富的實體邊界資訊。
Lattice LSTM[2]首次提出使用Lattice結構在NER任務中融入詞彙資訊,如圖(a)所示,一個句子的Lattice結構是一個有向無環圖,每個節點是一個字或者一個詞。
近幾年有不少論文圍繞着中文NER中的詞彙增強進行了不少工作,一種方式是在字向量中嵌入詞級資訊(ACL 2020: Simplify the Usage of Lexicon in Chinese NER[3]),另一種方式是利用Lattice結構設計模型,這種方式又可以分為下面兩類:
1. 設計适應Lattice結構的模型
- Lattice LSTM (ACL 2018)[4]: 将詞彙資訊引入中文NER的開篇之作,作者将詞節點編碼為向量,并在位元組點以注意力的方式融合詞向量。
- Lexicon Rethink CNN(IJCAI 2019)[5]: 作者提出了含有rethink機制的CNN網絡解決Lattice LSTM的詞彙沖突問題。
「Drawback:」
- 由于Lattice結構的動态性,Lattice LSTM無法在GPU上并行訓練;
- RNN和CNN難以模組化長距離的依賴關系,且在Lattice LSTM中的字元隻能擷取前向資訊,沒有和詞彙進行足夠充分的全局互動。
2. 采用GNN對Lattice結構編碼:
- Lexicon-based Graph Network (EMNLP 2019)[6]
- Collaborative Graph Network (EMNLP 2019)[7]
「Drawback:」
GNN将NER任務轉化為節點分類任務,可以捕捉到Lattice的有向無環結構,但是這些模型都需要LSTM作為底層編碼器來編碼序列的歸納偏置,這導緻模型結構的複雜度較高。
FLAT
從Transformer的position representation得到啟發,作者給每一個token/span(字、詞)增加了兩個位置編碼,分别表示該span在sentence中開始(head)和結束(tail)的位置,對于字來說,head position和tail position是相同的。
值得注意的是,我們可以從這樣的标簽序列中無損地重建Lattice結構。同時,這樣扁平的結構允許我們使用Transformer Encoder,其中的self-attention機制允許任何字元和詞彙進行直接的互動。
模型
Muiti-head self-attention
有了位置編碼,容易想到可以像原始Transformer那樣将字向量直接和兩個位置向量相加,然後參與後續的self-attention:
\begin{aligned}
\mathrm{Attn}(\bf{A}, \bf{V})&=\mathrm{softmax}(\mathbf{A})\mathbf{V};\\\mathbf{A}_{ij}&=\left(\frac{\mathbf{Q}_i\mathbf{K}_j^\intercal}{\sqrt{d_{\mathrm{head}}}}\right);\\\left[\mathbf{Q, K, V}\right]&=E_x\left[\mathbf{W}_q, \mathbf{W}_k, \mathbf{W}_v\right]
\end{aligned}
不過這樣做肯定不算是有效編碼了位置資訊,這也是原始Transformer在NER任務上的性能比不過BiLSTM的原因之一。有效的位置編碼一直是改進Transformer的重要方向,「針對本文提出的Flat結構,作者借鑒并優化了Transformer-XL (ACL 2019)[8]中的相對位置編碼方法,有效地刻畫了span之間的相對位置資訊。」
Relative Position Encoding of Spans
span是字元和詞彙的總稱,span之間存在三種關系:交叉、包含、分離,然而作者沒有直接編碼這些位置關系,而是将其表示為一個稠密向量。作者用
head[i]
和
tail[i]
表示span的頭尾位置坐标,并從四個不同的角度來計算
x_i
和
x_j
的距離:
\begin{aligned}
d_{ij}^{(hh)}&=head[i]-head[j]\\
d_{ij}^{(ht)}&=head[i]-tail[j]\\
d_{ij}^{(th)}&=tail[i]-head[j]\\
d_{ij}^{(tt)}&=tail[i]-tail[j]\\
\end{aligned}
如圖2所示,這會得到四個相對距離矩陣:
d^{(hh)}, d^{(ht)}, d^{(th)}, d^{(tt)}
,其中
d_{ij}^{(hh)}
表示
x_i
的開始位置和
x_j
的開始位置的距離。然後将這四個距離拼接後作一個非線性變換,得到
x_i
和
x_j
的位置編碼向量
R_{ij}
:
R_{ij}=\mathrm{ReLU}(W_r(\mathbf{p}_{d_{ij}^{(hh)}}\oplus \mathbf{p}_{d_{ij}^{(th)}}\oplus \mathbf{p}_{d_{ij}^{(ht)}}\oplus \mathbf{p}_{d_{ij}^{(tt)}}))
其中
\mathbf{p}_d
是Transformer采用的絕對位置編碼:
\begin{aligned}
\mathbf{p}_d^{(2k)}&=\sin\left(d/10000^{2k/d_{model}}\right)\\
\mathbf{p}_d^{(2k+1)}&=\cos\left(d/10000^{2k/d_{model}}\right)
\end{aligned}
這樣,每一個span都可以與任意span進行充分且直接的互動,然後作者采用了Transformer-XL (ACL 2019)[9]中提出的基于相對位置編碼的self-attention:
\begin{align*}
\mathbf{A}_{i,j}^*&=\mathbf{W}_q^\intercal\mathbf{E}_{x_i}^\intercal\mathbf{E}_{x_j}\mathbf{W}_{k, E}+\mathbf{W}_q^\intercal\mathbf{E}_{x_i}^\intercal\mathbf{R}_{ij}\mathbf{W}_{k, R}\\
&+\mathbf{u}^\intercal\mathbf{E}_{x_j}\mathbf{W}_{k, E}+\mathbf{v}^\intercal\mathbf{R}_{ij}\mathbf{W}_{k, R}
\end{align*}
可以直覺地将前兩項分别看作是兩個span之間的内容互動和位置互動,後兩項為全局内容和位置bias,在Transformer-XL中
\mathbf{R}
是根據絕對位置編碼直接計算得出的,而這裡的
\mathbf{R}
經過了非線性變換的處理。最後,用
\mathbf{A}^*
替換式(1)中的
\mathbf{A}
,取出字的編碼表示,将其送入CRF層進行解碼得到預測的标簽序列。
實驗
作者在Ontonotes 4.0, MSRA, Resume, Weibo四個NER資料集上測試了具有單層Transformer的FLAT模型,給出了
F_1
分數。
Performance
由于模型隻使用單層的Transformer,是以可以嘗試mask部分字元之間的互動。上表的
msm
表示mask具有包含關系的span之間的注意力,
mld
表示mask距離過長(>10)的注意力。可以發現
msm
會導緻模型性能大幅下降,
mld
會導緻性能小幅下降,可見字元與包含它的詞彙之間的充分互動是很重要的。
Efficiency
由于FLAT模型沒有RNN結構,是以可以充分利用GPU的并行計算能力,大幅提升推斷速度。
加上BERT呢?
BERT預訓練模型的引入可以提高詞向量的表示品質,在越大的資料集上,引入BERT帶來的效果提升就越顯著。
總結
FLAT模型實際上繼承了作者之前的工作TENER: Adapting Transformer Encoder for Named Entity Recognition[10],與TENER相比,FLAT引入了詞彙資源和更好的相對位置編碼方式,為了對比這兩處改進所帶來的性能提升,作者給出了兩個評估名額:「Span F」和「Type Acc」,Span F隻考慮實體邊界的正确性,而Type Acc表示模型給出的預測中,邊界和類型完全正确的實體在僅考慮邊界正确的實體中的占比。
表3給出了三類模型的表現,與TENER相比,FLAT在兩個名額上的提升都很明顯,這表明詞彙資訊的引入不僅增強了模型對實體邊界的模組化,還給實體分類帶來了提升,而後者主要來自于優質詞向量的引入,而FLAT
_{head}
在Span F上相比FLAT有明顯的下降,這表明作者對相對位置編碼做出的改進也有一定的效果。
本文參考資料
[1]
Lattice LSTM(ACL 2018): https://arxiv.org/abs/1805.02023
[2]
Lattice LSTM: https://arxiv.org/abs/1805.02023
[3]
ACL 2020: Simplify the Usage of Lexicon in Chinese NER: https://arxiv.org/abs/1908.05969
[4]
Lattice LSTM (ACL 2018): https://arxiv.org/abs/1805.02023
[5]
Lexicon Rethink CNN(IJCAI 2019): https://www.ijcai.org/Proceedings/2019/0692.pdf
[6]
Lexicon-based Graph Network (EMNLP 2019): https://www.aclweb.org/anthology/D19-1096/
[7]
Collaborative Graph Network (EMNLP 2019): https://www.aclweb.org/anthology/D19-1396/
[8]
Transformer-XL (ACL 2019): https://arxiv.org/abs/1901.02860
[9]
Transformer-XL (ACL 2019): https://arxiv.org/abs/1901.02860
[10]
TENER: Adapting Transformer Encoder for Named Entity Recognition: https://arxiv.org/abs/1911.04474