文章:Ma X, Hovy E. End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF[J]. 2016. 发表在ACL2016上。我认为这是一篇写的非常清楚的文章,它要解决的是序列标注的问题。下面是我的阅读笔记。
1. Introduction
本文要解决的是序列标注的问题,可用于POS、NER等任务。
传统方法
大部分传统的高效模型是线性统计模型,包括HMM,CRF等。
存在问题:
- 非常依赖手工特征(hand-craft features)
- 任务相关的资源
这导致models difficult to adapt to new tasks or new domains.
近期方法
近些年有一些非线性神经网络模型用词向量(Word Embedding)作为输入,颇为成功。有前馈神经网络、循环神经网络(RNN)、长短期记忆模型(LSTM)、GRU,取得了很有竞争力的结果。
存在问题:
它们把词向量作为参数而不是取代手工特征,作者说如果仅依赖词向量,效果将变得很差。“Their performance drops rapidly when the models solely depend on neural embeddings.”我不明白作者说的solely depend on 说的是什么,没有参考文献。
本文贡献
- a novel neural network architecture for linguistic sequence labeling:
- empirical evaluations on benchmark data sets for two classic NLP tasks.
- state-of-the-art performance with truly end-to-end system.
作者强调 end-to-end 的价值:
- no task-specific resources,
- no feature engineering,
- no data pre-processing beyond pre-trained word embeddings on unlabeled corpora.
2. 本文方法
步骤一:用Character-level CNN获得词表示。
步骤二:把步骤一的词表示和事先训练好的词向量拼接起来,输入Bi-directional LSTM,得到每个状态的表示。注意,BLSTM的输入和输出都过了Dropout层(下图未画出)。
步骤三:用步骤二的输出输入CRF层,最终预测。
总体的流程图如下:
3. 模型训练
因为包含CNN的部分,GPU自然是要的,作者介绍使用了GeForce GTX TITAN X GPU,POS tagging用了12小时,NER用了8小时。在这一部分,作者介绍了各种参数的配置、优化算法,其中就有很多trick。这里的介绍将结合论文的第三模块模型训练和第四模块实验一起来看
参数配置
词向量
- Glove: 100-dimensional embeddings trained on 6 billion words from Wikipedia and web text (Pennington et al., 2014) http://nlp.stanford.edu/projects/glove/
- Senna: 50-dimensional embeddings trained on Wikipedia and Reuters RCV-1 corpus (Collobert et al.