論文:https://arxiv.org/pdf/1701.04027.pdf
亮點:以前都是給每個字標標簽(sequence labeling),這篇文章是給每個chunk標標簽(sequence chunking)
In this paper, we propose an alternative approach by investigating the use of DNN for sequence chunk- ing, and propose three neural models so that each chunk can be treated as a complete unit for labeling.
Introduction
IOB scheme 不好:1)IOB是間接地學習chunks的范圍,沒有充分利用訓練數據;2)一些神經網絡可以解碼出上下文信息但不能將每個chunk當作一個單元
Sequence chunking把原先的sequence labeling task分為兩個子任務:
- Segmentation. 識別chunks的范圍
- Labeling. 把識別出的每個chunk作為一個單元標label
這篇文章依賴于神經網絡結構取進行分段,用了兩個方法:1)IOB labels;2)pointer networks and three neural sequence chunking models。第二種方法結果好。
Proposed Models (3個)
-
Model 1
先對每個字分類,分成三類 { I, O, B };然后再對每個chunk(B+I)取平均后分類,分為chunk label。若有錯誤的,比如I在O的后面,就把第一個I當作B。
-
Model 2
encoder:BLSTM for segmentation with IOB labels,和model 1一樣。把頂層hidden作為句子表示特征 [hf_T, hb_1],用來初始化decoder LSTM。
decoder:LSTM for labeling. 由三部分組成輸入:1)以每個chunk作為單個輸入,用CNNMax提取chunk中單詞的重要特征。2)chunk的context word embeddings;3)把encoder BLSTM的hidden取平均。
缺點:IOB不能利用chunk-level特征,也不能直接比較不同的chunk。包括shift-reduce算法,都是將多分類任務轉為三分類任務。 -
Model 3
Model 3. 黑色向下小箭頭是起始點,紅色部分是終結點。decoder的輸入與model 2相同
因為chunks都是相連的,我們知道當前chunk的起始點就是上一個chunk的終結點的后一個字,因此只需要識別出當前chunk結束點在哪 -> pointer network
Pointer network learning objective
L = L_seg + L_label
Experiments
-
text chunking
CoNLL 2000: 8936 training and 893 test, 12 labels
只有model 3超過baseline(BLSTM) - **slot filling **
ATIS: 4978 training and 893 test, 84 labels
LARGE: (ATIS + MIT Restaurant + MIT Movie Corpus) 30229 training and 6810 test, 116 labels, 3 different domains.(提出者)
LARGE的詞匯量和chunk長度都比較大,當chunk長度大的時候,三個模型都明顯表現不好