记录:读 Neural Architectures for Named Entity Recognition
Neural Architectures for Named Entity Recognition
作者:Lample G、Ballesteros M 、Subramanian S, et al. Proceedings of NAACL
目录
- Motivation
- Model
- Experiment
- Conclusion
-
Motivation
在此之前最优方法想要在小型监督语料库上得到一个较好的性能,都非常依赖人工的特征工程和特定领域的知识,所以本文作者提出了两种模型,除了使用小型监督训练数据和无标注语料外不在使用额外的针对特定语言的资源和特征以及一些知识库之类的,在此条件下,达到最优性能,即并没有手工加入手工加入前后缀信息以及使用一些如地名词典的额外标注数据。
-
Model
-
本文主要提出两个模型:Bi-LSTM+CRF Model、Transition-Based Chunking Model,这两个模型主要依赖两方面的词信息:基于字符的词表示(character-based 通过小型监督语料库学习得到)和无监督的词表示(通过无标注的语料库学习得到)。
-
双向LSTM-CRF模型
-
整个Bi-LSTM+CRF模型结构如下
-
分析
首先通过预训练等方式得到的词嵌入作为输入,经过双向LSTM隐层得到每个词有关上下文信息的表示,再经过一个全连接层(即文中作者提到的在ci 与 CRF层之间加的一层隐层 )进行lMarks和rMarks的拼接,输出维度控制为标签数(类别数),最后喂给CRF层--会利用临近标签信息预测当前测标签--输出每个词的标签。
-
补充
使用Bi-LSTM为了能够获取左右两侧的上下文信息,进而根据拼接的上下文向量信息重新获得对目标词的表示,使用CRF Tagging而不用纯softmax对词标签无依赖的预测原因在于判断当前词的标签需要考虑临近词的标签,softmax函数独立的考虑当前词标签对于如POS这类弱依赖可以,对于如NER强依赖不太行。
-
-
Transition-Based Chunking 模型
-
概述
作为Bi-LSTM-CRF模型的替代选择,基于转换的一种分块模型,不同于上一个模型,此模型直接构造一个多个单词的表示,如Mark Watney 被组成单个表示,此模型基于Stack-LSTM (Dyer et al.(2015) 此模型使得LSTM可以像堆栈一样工作)加上作者受transition-based所启发想出的一个算法,依赖栈数据结构递增的构建输入组块。大概意思是这样没太搞懂后面有机会再说吧!
-
模型描述
Chunking Algorithm: 作者设计了一个action的转换表如下图,大概是此算法有三种操作+两个栈一个缓冲区,action:shift变换、out变换、reduce(y)变换,栈out、stack。如下图:
-
-
Input Word Embeddings
-
主要改进
本文作者在原有的word-level词表示的基础上结合了character-level词表示(字符级的词表示),性能得到了提升
-
描述
对于输入词嵌入,简而言之为了取得更好的性能,采取三个步骤:基于单词的字符的词表示、在大型语料库中进行词向量化表示学习、加个失活层,基于字符模型为了捕获词的形态信息(可以作为判断是否是一个实体的依据),在大语料库的不同语境中可能有不同的词义,所以在大型语料库训练、加入Dropout层加强模型泛化能力。
-
Character-based models of words
使用当前词的字符产生关于这个词的词表示的整体结构如下图,同样使用Bi-LSTM,对单词Mars中每个字符训练。根据RNN特性,取最后的两个结果,rMars和lMars,再将他俩拼接形成一个character-level的词表示(拼接方式应该就是Collobert et al. (2011) 中将rMars、lMars两个列向量拼接成一个大的列向量),最后再与word-level的LTW表中查到的Mars的词表示即图中eMars,拼接形成一个新的词表示。
补充
本文一共两个look up table 表,一个是词级别的通过预训练得到(因为预训练得到的词表示准确一些),一个是字符级的嵌入表示(即每个字符有一个对应的向量表示,随机赋初值)
-
Pretrained embeddings
类似Collobert et al. (2011),通过预训练word embeddings初始化lookup table,使用skip-n-gram算法(word2vec变体 Ling et al. 2015)对词的表示预训练
-
Dropout training
本文作者观察到起初实验中对于character-level embeddings和pretrained word-level embeddings 联合训练效果不如意,因此在Bi-LSTM+CRF的整体架构(Figure 1)中的word embeddings 层加了个Dropout失活,使其能够更好的依赖这两种词表示。
-
-
-
-
实验
-
数据集:CoNLL-2002、CoNLL-2003: locations,persons,organizations,miscellaneous entities. 如下表1、2、3、4、5 .
-
-
总结(亮点)
本文作者的工作与之前大多数方法的一个重要的区别或者说改进就在于在原有词级别的词表示的基础上结合了基于字符的词向量表示(仍然是在词表示这块的改进)。
(当作是个记录吧,刚接触没多久可能有很多理解有误的地方,欢迎各位大佬指正!!!) -
参考
[1] Lample G, Ballesteros M, Subramanian S, et al. Neural Architectures for Named Entity Recognition. Proceedings of NAACL-HLT. 2016: 260-270.
[2] Neural Architectures for Named Entity Recognition - 知乎 (Chevalier). https://zhuanlan.zhihu.com/p/74915592
[3] 神经网络结构在命名实体识别(NER)中的应用.