论文“Neural Architectures for Named Entity Recognition”阅读体会

老师让看一下lstm+crf的命名体识别模型有关论文,在网上查阅找到一篇含lstm+crf的论文:Neural Architectures for Named Entity Recognition,这篇论文介绍了两种命名体识别方法,我以lstm+crf为主要内容来解读我的理解。

文中提到之前的命名体识别语言模型过于依赖手工标注的特征。问题是有标注的语料数据很少,并且手工标记有问题,它依赖于特定语言和知识,当语言或知识更换后,就需要返工。因此作者提出了一种使用小数据量的监督数据结合大量无标注语料的训练模式,使用biLSTM+crf的模型进行训练。本文中的单词表示结合了两种方法。一种是基于字向量的表示法,一种是基于分布式的表示法。

句子通常以 IOB 格式(Inside, Outside, Beginning)表示,如果词条是一个命名实体的开始那么就标记其为 B 标签,同理 I 标签指词条在一个命名实体的内部,而 O 标签指词条在一个命名实体的外部。然而在这里我们使用的是命名实体识别更常用的 IOBES(INSIDE,OUTSIDE,BEGIN,END,SINGLE) 词性标注方案,它是 IOB 的一种变体,用 S 标签表示单个字符,E 标签标记词条是一个命名实体的结束。使用这种办法能够以高置信度将标注为 I 标签的词的后续单词的词性选项缩小为 I 标签或者是 E 标签,而 IOB 方案仅仅能够确定后续单词是不是在命名实体内部。

为什么要使用LSTM和CRF?

普通RNN不善于处理有长时间依赖效应的数据。当前的NEURAL很大程度上只收其相邻NEURAL单元的影响,这就导致了梯度消失问题:反向传播时,若句子很长,则后面的单词对前面单词的影响几乎消失。

LSTM(LONG SHORT TERM MEMORY)使用记忆细胞取代RNN的普通NEURAL单元,实验结果表明LSTM在处理长时间依赖效应问题上表现不错。

memory-cell由遗忘门更新门和输出门三个门组成。遗忘门表明要忘掉多少,输入门表示更新多少,输出门负责输出。

为了正确获得一个词的表示,我们要有效利用上下文信息。使用两个LSTM网络,首先将句子中单词输入第一个网络,然后再将输出与句子单词反向输入第二个网络,即双向LSTM,两个网络不同,参数不同。

crf-tagging模型

简单有效的tagging模型在独立预测表现很好,但是当tag之间存在强烈的依赖关系时它的效率就会下降。NER任务中语法规则,就限制了单词之间tagging是不能独立预测的。比如B-LOC后是不能接I-PER的,以位置开头的词后面接人名的后半部分可不行。

使用条件随机场CRF可解决这个问题。对每种生成的tag序列,我们采用打分的方式代表该序列的好坏,分数越高代表当前生成的tag序列表现效果越好。

定义y矩阵的打分函数为:

论文“Neural Architectures for Named Entity Recognition”阅读体会

式中有两部分,P是biLSTM网络生成的分数矩阵,Pi,j代表第i个单词对应第j个tag的分数。A是一个转换分数的矩阵,使得 Ai,j 表示为从标签 i 到标签 j 转换的分数。y0 和 yn 是一个句子的起始标签与尾标签,我们将它们添加到一个可能标签的集合里。然后,然后一个softmax计算所有可能的标注的概率:

论文“Neural Architectures for Named Entity Recognition”阅读体会
训练时采用极大似然估计作为损失函数,对数似然函数如下:
论文“Neural Architectures for Named Entity Recognition”阅读体会
其中,Yx表示句子X所有可能的标注序列。 预测输出序列时通过以下公式的最大得分得到: 论文“Neural Architectures for Named Entity Recognition”阅读体会

最后的打分是BILSTM的输出(每个词的向量)和类似于二元语法的转移分数结合计算出来的。

整个网络的结构如下:

论文“Neural Architectures for Named Entity Recognition”阅读体会

其中最下面的圆代表输入lstm的词向量。li代表单词i考虑左侧上下文,ri代表单词i考虑右侧上下文。ci代表单词i考虑左右两侧上下文之后的结果。双圈代表预测tag。

整个模型的参数是二元转移打分矩阵A中的各分数和BILSTM中用于计算矩阵P的参数和BILSTM的输入词向量。

网络没有使用softmax的直接输出而是使用crf层作输出以满足之前提到的"语法"要求。
    为了改善结果,作者还在ci层和CRF层添加了一个隐层。以上所有的参数优化的目标都是最大化对数似然函数。

词表示方面,作者使用了字向量结合预先训练的嵌入向量(skip-gram)结合的方式。在使用正则化后,效果有很大改观。

论文“Neural Architectures for Named Entity Recognition”阅读体会

训练时作者使用SGD(随机梯度下降法)以0.01的学习率优化参数,以5.0作为梯度的阈值。 LSTM-CRF模型用前向和后向LSTM各一个独立层,维度为100,并加入了剔除率为0.5的dropout。