命名实体识别《Neural Architectures for Named Entity Recognition》
Motivation:
目前在命名实体识别任务上表现最好的模型都严重依赖于人工构造的特征(基于规则),因为关于NER任务的语料很少,通过神经网络难以训练一个合适的模型,所以很多人提出在使用监督+无监督的语料提升模型的表现。本文提出两种神经网络结构且仅仅使用有限的监督数据实现了state-of-the-art performance。
模型结构:
本文提出两种模型,LSTM-CRF和Stack LSTM:
- LSTM-CRF:源序列(一段文本)输入到BiLSTM中,然后输出一个单词的考虑到上下文的特征表示ht。然后ht输入到CRF中,因为CRF可以考虑全局依赖。以序列Mark Watney visited Mars为例,输出B-PER其中B代表一个实体的开始,PER代表实体类别(person)。
2. Stack LSTM:源序列(一段文本)输入到LSTM中,然后输出每个单词对于各种操作(SHIFT, REDUCE(y), OUT)的概率分布。通过贪心算法选择一个序列最有可能的操作,根据操作对源序列进行标注。例子同上:
模型的输入:
单词的特征表示对模型的表现有着非常重要的影响,本文使用词嵌入结合预训练的特征和基于字符的特征。
- 字符增强表达词嵌入,也就是说一些单词存在着前缀或者后缀,比如-ly这种后缀很可能是一个副词,这样我们就能够在字符水平上对词性进行进一步判断。
- 预训练的词嵌入,F1可以提高7.31。
单纯使用字符级别的特征表示和预训练的词嵌入没能提高模型整体表现效果,在使用dropout兼顾两种特征表示后能提高模型的准确率。
实验结果:
使用SGD更新参数,设置梯度裁剪参数为5。下表表明了不同变体对两个模型的贡献率。
Char:是否对一个单词的各个字符进行embedding,pretrain:是否使用预训练的词向量。可以发现使用pretrain对模型的表现贡献最大。
LSTM-CRF比S-LSTM效果好,S-LSTM更依赖于单词的字符特征。
启发:
- 对于序列标注任务,CRF能够考虑全局范围内的状态转移概率;
- 使用预训练的词向量能够显著提高模型效果;
- Dropout可以调节两种特征表示的比例。