問題定義
由於詞級中文 NER 存在第三方解析器分割的邊界錯誤,因此考慮將字元級 NER
作為預設設定。
使用'BMES
'標記方案進行字元級NER,將標記表述為序列標記問題。即,對於句子\(s={c_1,...,c_n}\)中的每個字元\(c_i\),使用標籤集中的標籤進行標記\(L={B,M,E,S,O}\)。
- O:非實體元素
- B:實體起始token
- M:位於實體範圍內,且在實體起始token之後
- E:實體結束token
- S:獨立實體
模型框架
模型的處理過程從下至上
為:
- 首先,
BERT編碼器
接受原始中文句子作為輸入,並生成字元嵌入。 - 接著,這些字元嵌入與
POS嵌入
聯合,形成統一的輸入表示。 - 緊接著,透過
標籤感知的GCN編碼器
對字元級依賴結構及依賴標籤進行編碼,為每個字元提供具有語法感知的表示。 - 之後,
GAT編碼器
整合了由多粒度詞典輸入構成的異構圖
。 - 然後,
sememe組成層
將HowNet中的sememe表示融入每個節點,進一步豐富節點的上下文資訊。 - 最終,
CRF層
根據各節點的表示輸出實體及其型別。
BERT編碼器
BERT編碼器將原始中文句子作為輸入,併產生字元嵌入\(v_i\)。
POS嵌入
將單詞級別的標記擴充套件到字元級別的標記:
- 原始:武漢市/NR 長江/NR 大橋/NN 建成/LC 通向/VV 天河/NR 國際機場/NN
- 擴充套件:武/NR 漢/NR 市/NR 長/NR 江/NR 大/NN 橋/NN 建/LC 成/LC 通/VV 向/VV 天/NR 河/NR 國/NN 際/NN 機/NN 場/NN
每個標籤\(p_i\)透過查詢表由向量嵌入表示:
\[x_i^p = E_p()p_i
\]
然後,將 POS 標籤嵌入與每個字元的 BERT 表示連線起來:
\[x_i = [x_i^p; v_i]
\]
用於語法依賴的標籤感知 GCN
構建依賴標籤
- 輸入句子及其依賴結構:首先,給定一個包含依賴結構的輸入句子s,依賴結構包括邊(edges)和標籤(labels)。
- 鄰接矩陣定義:定義一個鄰接矩陣\(A\),這個矩陣用於表示每一對字元之間是否存在依賴邊。
- 依賴標籤矩陣:定義一個依賴標籤矩陣\(L\),其中每個元素\(L[i][j]\)表示字元\(i\)到字元\(j\)之間的依賴關係標籤\(l\)。
- 標籤擴充:除了在矩陣\(L\)中預定義的標籤外,額外新增了幾個特殊標籤:
- ‘self’標籤:表示字元自身的環
- ‘inner’標籤:表示同一詞內字元之間的連線
- ‘none’標籤:表示字元之間無連線
- 依賴標籤的向量嵌入:為矩陣\(L\)中的每一個依賴標籤維護一個向量嵌入\(x_{i,j}^r\)。
標籤感知 GCN (LGCN)
LGCN由 \(L\) 層組成,\(l\)層的隱藏表示為:
\[{x}^{(l)}_i = \text {ReLU}\left( \begin{matrix} \sum\limits _{j=1}^n \end{matrix} \gamma _{i,j}^{(l)} ( {W}_{a} \cdot {x}^{(l-1)}_j + {W}_{b} \cdot {x}^r_{i,j} + b ) \right)
\]
其中,\(\gamma _{i,j}^{(l)}\)是透過 SoftMax 函式計算的鄰居連線強度分佈:
\[\gamma _{i,j}^{(l)} = \frac{ b_{i,j} \cdot \exp {( {x}^{n}_i \cdot {x}^{n}_j )} }{ \sum _{j=1}^n b_{i,j} \cdot \exp {( {x}^{n}_i \cdot {x}^{n}_j )} }
\]
其中,\(x_i^n\)是\(x_i^{(l-1)}\)和\(x_{i,j}^r\)元素相加。
透過 GAT 整合異構詞典圖
(1)用字元、單詞和子詞擴充套件資訊的粒度,並構建多粒度詞彙資訊的異構圖。
(2)透過圖注意力神經網路(GAT)對它們進行編碼。
構建異構圖
- 每個字元節點\(c_i\),將 LGCN 輸出表示作為其嵌入。
- 對於單詞和子單詞,我們使用外部中文詞典\(D\),並查詢輸入句子中在詞典中共存的所有可能的單詞和子單詞。將單詞或子詞表示為\(w_j\),並透過可訓練的查詢表獲取其嵌入\(x_j^w = E_w(w_j)\)。
GAT編碼
- 輸入:GAT的輸入是一組節點表示:\({h_1,...,h_M}\),以及一個鄰接矩陣\(A\)。其中,\(M\)代表節點的數量。
- 輸出:GAT處理後的輸出是更新後的節點表示:\({h'_1,...,h'_M}\)。
- GAT透過\(P\)個獨立的注意力頭來執行計算。每個注意力頭基於節點間的相對重要性分配注意力係數\(\alpha _{ij}\):
\[\begin{aligned} \begin{aligned} {h}^{'}_{i}&=\left[ \sigma \left( \sum _{j\in M_i} \alpha ^{1}_{ij} {W}^1 {h}_{j}\right) ; \cdots ; \sigma \left( \sum _{j\in M_i} \alpha ^{P}_{ij} {W}^P {h}_{j}\right) \right] ,\\ \alpha ^{p}_{ij}&= \text {Softmax}( \text {LeakyReLU}( {a}^T [{W}^p {h}_{i} ; {W}^P {h}_{j} ]) ), \end{aligned} \end{aligned}
\]
- 使用非線性啟用函式\(\sigma\)進一步處理計算結果。:
\[\begin{aligned} {h}^{'}_{i} = \sigma \left( \frac{1}{P} \sum _{p=1}^P \sum _{j \in M_i} \alpha ^{1}_{ij} {W}^1 {h}_{j}\right) , \end{aligned}
\]
- 在實際應用中,通常使用多層GAT來充分傳播節點間的資訊,以獲取更加深入的圖結構理解。
- 異構圖的整合處理:
- 透過GAT獲取每種型別的圖中的節點表示:
\[G^* ( \in \{\text {Con},\text {Lat},\text {Trn}\})
\]
- 然後,使用融合層來整合由異構圖捕獲的不同知識:
\[\begin{aligned} {r}_{i} = \sigma ( {W}^{\text {Con}}{h}^{\text {Con}} + {W}^{\text {Lat}}{h}^{\text {Lat}} + {W}^{\text {Trn}}{h}^{\text {Trn}} + {W}{h} ) \,, \end{aligned}
\]
Sememe組成層
- 節點表示的獲取: GAT處理得到的
字元節點表示
\(r_i\)。 - 尋找相關詞及其sememe:給定字元的節點表示\(r_i\),首先找到它的所有
相關詞或子詞
,然後從知網中查閱其所有可能的sememe
。 - Sememe項的嵌入:將從知網中提取的每個sememe轉換為
分散式表示向量
。 - 語素注意表示的獲取: 得到sememe的分散式向量後,接下來使用
注意力機制
來計算每個sememe對於節點表示\(r_i\)的貢獻。 - 加權組合: 透過注意力權重調整後,各sememe的表示被
加權組合
,以生成最終的、增強的節點表示。
解碼和學習
最後,將CRF層整合為輸出序列標籤的編碼器。CRF的機率模型為:
\[\begin{aligned} p(y|{h}^s) = \frac{ \prod ^{n}_{i=1} \psi _{i} (y_{i-1}, y_{i}, {h}^s) }{\sum _{y^{'} \in Y ({h}^s)} \prod ^{n}_{i=1} \psi _{i} (y^{'}_{i-1}, y^{'}_{i}, {h}^s) } \,, \end{aligned}
\]
使用\(L_2\)正則化進行最小化:
\[\begin{aligned} \mathcal {L} = - \sum _{i=1}^N \mathrm{log}( P(y_i|s_i)) + \frac{\lambda }{2} ||\varTheta ||^2 , \end{aligned}
\]
資料集:
- **OntoNotes 4.0 **包含帶有各種註釋的多語言語料庫,該資料集總共包含 18 種型別的實體。
- MSRA是新聞領域的CNER資料集,其中有3種型別的實體。
- 微博由中國社交媒體新浪微博Footnote1中帶註釋的CNER標籤組成,其中涉及4個實體標籤。
- Resume包含8種中文文字的命名實體。
Nie, Y., Zhang, Y., Peng, Y. et al. Borrowing wisdom from world: modeling rich external knowledge for Chinese named entity recognition. Neural Comput & Applic 34, 4905–4922 (2022). https://doi.org/10.1007/s00521-021-06680-6