基於上下文的序列標記(Contextual String Embedding)
Contextual String Embedding for Sequence Labeling
1. Introduction
序列標記問題作為NLP的基本問題,其結果好壞對與後續任務有著至關重要的影響。此外,自然語言處理中的許多任務也均能轉化為序列標記問題,如命名實體識別、分詞、詞性標註等。在傳統的機器學習方法中,最初使用隱馬模型實現sequence labeling,其主要思想是將標記序列作為隱狀態序列而將sentence作為觀察的顯示序列,通過定義5元組(隱狀態集合
在神經網路語言模型中最初詞向量的表示方法是One-hot的離散形式,此方法雖然簡潔但是卻存在辭彙鴻溝和維數災難的問題,後續又逐漸提出了詞袋模型(該詞在文檔中的出現次數)和TF-IDF(反映該詞在文檔中的佔比),然而也很難解決語義鴻溝的問題。基於分散式假設(在相同上下文中出現的詞頻傾向於具有相同的含義),Begio等人於2001年正式提出神經網路語言模型(Neural Network Language Model, NNLM)並創造了詞向量的概念,即以one-hot編碼為前驅查閱look-up表將詞編碼為稠密的向量,而look-up表的設計即由神經網路訓練所得。同時,根據輸入輸出的不同,詞向量網路由分為NNLM、C&W、CBOW和Skip-gram等模型(CBOW與Skip-gram與NNLM相比除去了隱層和詞序,使模型得到簡化)。此外,由於CBOW、Skip-gram等模型其Softmax的計算與參數的更新需要對整個詞表進行,因此其時間成本較高,對此又提出了Hierachical softmax,通過構建哈夫曼樹而每次只對少部分結點進行更新和計算以減少複雜度。對於一次多義的問題如「Bank」等,也有學者提出根據不同上下文對一個詞編碼多個詞向量,同時通過對上下文進行idf加權進行k-mean clustering最終確定詞向量。此外也有實驗表明將不同結構模型如RNN與CNN等學習而得的詞向量進行concatenate,對downstream task結果的提高也有幫助。
「Contextual String Embedding for Sequence Labeling」這篇文章對於序列標記任務最大的創新點是對傳統Embedding的改進,即基於上下文利用Bi-LSTM中的hidden state結合傳統Embedding編碼詞向量。同時與2017年Peters et al.提出的抽取hidden states 作為NLP tasks方法相比,該方法在速度上有明顯提高,同時再次刷新了CoNLL03的baseline,其F1值達到了93.09超過了Bert。
2. Model Structure
模型的主要結構如下圖所示:
從圖4可以看出論文提出的模型主要包括兩個部分,即Character Language Model和Sequence Labeling Model。其中Character Language Model即利用雙向LSTM中hidden state編碼詞向量,由於Bi-LSTM的使用使得該Embedding天生就融合了上下文的語義信息,因此能很好的解決一詞多義的問題。同時由pre-training得到的Character Language Model可以根據不同的輸入動態編碼詞向量,因此其能很好的嵌入至downstream任務中。Sequence Labeling Model即為傳統的BiLSTM+CRF的結構。有關LSTM的詳細介紹可以參考我的這篇筆記:
PoderLee:從RNN、LSTM到Encoder-Decoder框架、注意力機制、Transformer 圖5為Character Language Model的詳細結構,可以看出我們將每一個word的各個character作為單獨的輸入,同時對於每一個word,利用單詞第一個字母對應的forward hidden state
從圖6可以看出,對於不同含義的Washington,其能根據上下文語境很好的區分,而當上下文信息缺失或較少時,其也較難分辨。
CLM作為一個子網路可以單獨進行訓練,這裡定義character序列
而:
式(2)中各個character的概率分佈由Softmax函數確定。其中,
我們根據CLM的輸出概率分佈與語料庫中統計所得的概率分佈做cross entropy即可進行unsupervised pre-training。
3. Experiments
在實驗中作者分別探究了以下四種詞向量表示對結果的影響:
- Proposed:即根據圖5.方法得到word embedding;
- Proposed+word:在Proposed的基礎上拼接預訓練的GloVe詞向量(經典做法)
; - Proposed+char:即根據NER任務利用hierarchical BiLSTM-CRF訓練word vectors(與任務相關的embedding),同時與Proposed所得word vectors進行concatenate;
- Proposed+all:綜合上述三種詞向量表示,即Proposed+word+char。
實驗結果如下:
從上圖可以看出本文方法,即基於輸入文本的動態embedding與金典預訓練的embedding結合最有效,其相較於Proposed F1 91.97提升了1.1 pp。而char embedding對結果的影響較小。
從上圖可以明顯看出,該工作在眾多sequence labeling任務中均達到了state-of-the-art。
總的來說,目前對於word Embedding主要分為兩種方法:(1)利用更多的external information,如基於大量高質量數據預訓練的Berth,或針對其它特定數據集預訓練的word embedding;(2)利用神經網特徵表示和選擇的能力,根據hidden state表示word embedding,以及對各種embedding進行拼接。總之如何利用更多的外部信息以及更好的表示特徵是仍需研究的方向。
4. Reference
[1] 胡玥. 自然語言處理(08)神經網路語言模型&詞向量(slides). 中科院信息工程研究所第二研究室.
[2] Alan Akbik. Flair: State-of-the-Art Natural Language Processing (NLP). ZALANDO RESEARCH
[3] Edward Ma. Contextual Embeddings for NLP Sequence Labeling. Medium
推薦閱讀: