多標準中文分詞:你需要的小trick
技術標籤:NLP
一、前言
作為NLP領域中經典任務之一,分詞幾乎是其他所有NLP任務的基礎,開展下游NLP任務之前,往往需要先對文字進行分詞。多標準分詞(Multi-criteria Chinese word segmentation, MCCWS)的任務目的,即是為了利用多種標準分詞結果的共性知識,來提升單一分詞標準的標註效果。本文提出的模型,可以根據分詞標準指示,基於單一模型,給出不同標準的分詞結果。
二、模型
2.1 模型細節
從現在這個時間點看,模型相對來看比較簡單(這也許是中了EMNLP Findings的原因吧...)。傳統基於多工學習的分詞框架如下:
在多個標註標準的框架下,對於有M個不同標註標準的資料集,會抽取出共享的知識,以及各單獨分詞標準的知識,在解碼階段,對每一個標註標準,設計一個對應的解碼器解碼即可。相對於傳統的多工學習的分詞框架,Paper提出的框架則在兩個地方進行了改進:
-
去掉Private Encoder,即把單一標註標準的知識直接融入了共享層中;
-
解碼階段,省去了為每一個標註標準,設計各自的解碼器,轉而設計一個共享的解碼器, 從所提出的框架圖中也可以看出:
實際上,上述兩點的改進,都是源於模型在encode階段加的trick(Criterion Embedding),即對於每一種標註標準,都加入其標註標準作為encoder的一部分:
那麼,就算有一百種的標註標準,只要有這個作為指示的embedding,模型都不會混淆。回過頭來,模型的embedding資訊除了剛講的標註Criterion Embedding,還有以下幾部分:
-
Bigram Embedding,這個trick現在看來也是非常常用的了,在分詞這個任務下也比較常用。除了編碼字embedding之外,還會把這個字bigram embedding給concat起來,作為單個字的embedding表示。
-
Position Embedding,這個和原生Transformer一樣;
Transformer這裡就不講了。那麼,到了這裡,對於一條標註標準為m的query,它的embedding就可以表示為:
其中,以開始指示的embedding,即為帶有bigram資訊的embedding:
以對應程式碼來更直觀認識這部分:
defforward(self,task,uni,bi1=None,bi2=None):
y_task=self.task_embed(task[:,0:1])
y=self.uni_embed(uni[:,1:])
ifbi1isnotNone:
assertself.bi_embedisnotNone
y=torch.cat([y,self.bi_embed(bi1),self.bi_embed(bi2)],dim=-1)
ifself.FisnotNone:
y=self.F(y)
y=torch.cat([y_task,y],dim=1)
returny*math.sqrt(self.d_model)
模型的Encoder沒啥好講的,就是平平無奇的Transformer了,而Decoder也是用的平平無奇的CRF,因為每條query都帶有標註標準指示,解碼時根據標註標準調整bies序列至對應query即可。
2.2 模型效果
作者在8個經典分詞資料集(5簡體,3繁體)上進行了實驗,並使用Transformer作為Encoder基於單一分詞標準進行了實驗,驗證了Transformer作為分詞Encoder的有效性;並基於多標準分詞(即本文研究內容),對所提出的模型進行了評估,結果如下:
實驗結果顯示,和當時最好的多標準CWS模型(Stacked BiLSTM)相比,作者所提出的多標準分詞模型具有絕對的優勢。除此之外,作者還進行了兩方面的分析,第一是對中文簡繁體協同訓練預測的研究(這塊我感覺並不是非常地convincing,就不展開說了),第二是對模型各模組的分析,並給出了模型各部分對最終效果的貢獻:
模型的結論,和在平時工作中的基本經驗一致,對於抽取能力強的Encoder而言(Transformer, BiLSTM),CRF確實比較雞肋,但論文所說的加了CRF後的耗時問題,則倒是不至於:解碼時CRF的複雜度不過是O(k*n*n),k是bies標籤數量,n為query長度,對於短query而言,耗時是可以接受的,考慮在搜尋這種準召、時效性要求都非常高的任務場景下,CNN作為抽取器,那必然是需要CRF來約束的。
三、總結
這篇Paper提出一個基於Transformer的多標準分詞模型,相對比較好理解,可以認為是Bert時代下,必然會出現的一篇Paper,所提出的Criterion Embedding很有意義,在一些語料匱乏的NLP任務場景下,是一個值得借鑑的有效思路。
四、參考文獻
[1]Qiu, Xipeng, et al. "Multi-Criteria Chinese Word Segmentation with Transformer." arXiv preprint arXiv:1906.12035 (2019).