[ICLR2018]Deep Active Learning for Named Entity Recognition
目前神经网络在各领域很多任务上都取得了瞩目的成就,但是最大的缺陷就是需要大量的标注语料,成本较高,于是本文采用active learning 挑选一部分包含了更多信息的示例用于训练,得到了较好的性能.
Data Representation:
- 每个句子的句首和句尾都加上特殊符号, 句首加[BOS], 句尾加[EOS]
- 将句长相差不多的句子聚在一起,并pad到相同的长度,选用符号[PAD]补齐
标注的句子示例如下:
word的字符特征:
不同以往paper中的采用的Convolutional-Maxpooling方法,本文采用的是Convolutional-Convolutional-Maxpooling,用了两次的Convolutional,并且两次Convolutional中间用了一次ReLU非线性变换和dropout. 卷积时kernel=3, 架构如下:
sentence-level的encode:
对句子进行了两次Convolutional-Convolutional, 注意此框架没有用Max-pooling. 另外注意的生成, 在训练的时候对于训练集中的word unseen的处理技巧是以50%的概率替换为特殊符号[UNK]
The Decoder:
解码部分采用了了greedily decoding tag from left to right,并且性能由于chain CRF decoder
本文的重点是Active Learning:
active learning: 寻找未标注集中,最难判别类别的数据,也就是说现有的分类器没有足够的自信能将其正确分类,这样的数据应该被人工标注,因为含有的信息量很大
本文给出了三个方法:
Least Confidence(LC):
以公式3对所有句子进行计算,计算句子的标注花销,按照降序排列,这个方法倾向于挑选长句子,在后面的试验中,性能也略低于后两种方法
Maximum Normalized Log-Probability:
Bayesian Active by Disagreement(BALD):
标注句子代价计算公式:
关于active learning:
https://www.cnblogs.com/maybe2030/p/5515042.html
关于本篇文章解析比较好的notes:
https://zhuanlan.zhihu.com/p/36534616