论文: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
因为chunks都是相连的,我们知道当前chunk的起始点就是上一个chunk的终结点的后一个字,因此只需要识别出当前chunk结束点在哪 -> 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长度大的时候,三个模型都明显表现不好