张书晨 Design Challenges and Misconception in Neural Sequence Labeling
新闻来源:IR实验室       发布时间:2019/3/28 13:27:08

一、介绍

本文发表于COLING2018。论文基于PyTorch代码框架 NCRF++ 也收录于 ACL 2018 的 Demo Paper。作者先简述传统工作使用统计方法:隐含马尔可夫模型、条件随机场。

许多现有的最先进的神经序列标注模型利用LSTM结构来表示全局序列信息,并利用CRF层来捕获相邻标签之间的依赖性。作为替代方案,CNN也因其并行计算的能力被使用,用于有效的训练和解码过程。

作者认为尽管代码可用于开源,再现神经模型的公布结果也具有挑战性。接着举了几个例子:Reimers and Gurevych使用Ma and Hovy的代码进行大量实验,但无法获得论文里报道的结果。刘等人报告了当复现Lample等人的结构时,NER的F值比较低。大多数文献通过直接引用得分将结果与其他文献进行比较,而没有在相同的设置下重新实验,从而减少了对其模型优势的说服力。由于对实验设置的敏感性,不同深度神经模型之间的比较具有挑战性。作者总结并列出了几种不一样的配置,然后对其进行了分析。

首先是数据集,大多数的工作报告的是conll2003英语ner和ptb pos数据集。大多数工作用开发集来选择超参数。典型的数据预处理步骤是规范数字字符,Reimers and Gurevych为了低频词 使用细粒度表示,还有人不使用预处理。特征方面有人应用单词拼写特征,有人整合上下文特征,还有用神经特征来表示外部地名词典信息。一些文献里用的是不同随机种子下的平均值和标准差的结果,其他用的是最好的结果,无法直接比较硬件环境也会影响系统精度,刘等人观察到:与使用CPU相比,使用GPU训练系统在ner任务上提供更好的准确性。此外,运行速度受硬件环境的影响很大。

为了处理上述问题,作者系统地用3个基准分析了神经序列标注模型。

CoNLL 2003 NER

CoNLL 2000 chunking

PTB POS tagging

一、方法模型框架 NCRF++

Figure 1: Neural sequence labeling architecture for sentence “COLING is held in New Mexico”. Green, red, yellow and blue circles represent character embeddings, word embeddings, character sequence representations and word sequence representations, respectively.   

作者指出在用LSTM和CNN给字符序列信息建模的过程中,字符信息已被证明对序列标注任务至关重要。前缀,后缀大小写等字符特征可以通过基于特征的查找表或不使用人工定义特征的神经网络来表示。在本文中 ,作者专注于没有人工设计神经特征。

在本文实验中,采用了和Ma and Hovy相同的CNN结构,使用具有maxpooling的一层CNN结构来提取字符级表示。

为了给单词Mexico的全局字符序列信息建模,作者在每个单词的字符序列上使用了双向LSTM,连接从左到右的最终状态F和从右到左的最终状态B。也有人选择对一个句子应用双向LSTM用于字符序列,但因他的字符LSTM可以并行计算,使系统更加有效。

与单词中的字符序列类似,我们可以通过LSTM或CNN对词序列信息进行建模。序列标注中运用的比较广泛的是LSTM。CNN比LSTM快得多,因为在输入序列上的卷积计算可以是平行的。

图显示了词序列上的多层CNN,单词由embedding表示。如果使用了字符序列表示层,则将word embedding和字符序列表示连接用于词表示。对于每个CNN层大小为3的窗口沿着序列滑动,提取输入的单词的局部特征。

推理层将提取的单词序列表示作为特征,并将标签分配给单词序列。这项工作中,作者将SoftMax和CRF都用作推理层在三个任务基准中检测了一遍。

二、实验

ner数据集已在 Tjong Kim Sang and De Meulder (2003)进行标准化分,包括四个实体。

分块任务使用华尔街日报的15-18节作为训练集19作为开发集20作为测试集。

词性标注使用peen tree bank中wsj部分。

作者使用衰减学习速率的随机梯度下降来更新参数,对于ner和分块,使用了BIOES标签方案。

标准精度p、召回率r、F1值用作ner和分块的评估指标。

精确度用于评估词性标注标签的性能。

为了降低系统的波动性,作者在不同的随机种子下每个实验做5次,报告每种模型的最大值、平均值和标准偏差。

大多数ner工作侧重于具有不同字符序列表示的WLSTM+CRF的结构,作者提出他们的复制型号表现略胜一筹。在nochar中比不过原型,因为没有人工标注的特征。

对于ner和分块任务的所有配置下,具有CRF推理层的模型优于SoftMax层的模型,标签之间的依赖关系可能更容易被 CRF 所建模。

 

基于词的LSTM在大多数情况下比基于单词的CNN效果显著,这说明全局单词上下文信息对于序列标记是必要的。

2018-12-20_215720

图(a)中显示ner测试集上两个最佳模型的F1值,其中包括两个不同的预训练嵌入,以及随即初始化。与随即初始化相比,使用预训练嵌入的模型得到显著改善。

图(b)作者研究了两种不同的标签方案:BIO和BIOES,实验中使用BIOES的模型优于BIO。

作者使用NVIDIA gtx1080gpu测试ner数据集上12个模型的解码过程。

图6显示了10000个ner语句的解码时间,CRF推理层严重限制了从左到右推理过程的解码速度。

字符LSTM减慢了系统的速度。

三、结论

字符信息有助于提升模型性能,尤其是消除生词的歧义。

字符LSTM和字符CNN提供了可比较的改进,后者更有效。

在大多数情况下,有词级别的LSTM的模型优于WCNN的模型,代价是更长的解码时间。

CRF对NER和分块任务比较有效,在pos标注方面没有优势。

四、总结

本文用一个统一的序列标注框架实现了不同模型架构在 NER, Chunking, POS Tagging 数据集上的表现,并对已有工作的一些不一致的结论进行了检验,发现了新的结论。所有的神经模型结构都可以用配置文件来设置。

使用NCRF++的神经序列标记模型的设计可以通过配置文件完全配置,不需要任何代码工作。用户可以通过设计自己的模块来扩展每一层(例如,他们可能想要设计自己的神经结构,而不是CNN/LSTM/GRU)

手工制作的feature已经被证明在顺序标记任务中很重要。NCRF++允许用户设计自己的feature,如大写、POS或任何其他特性(上图中的灰色圆圈)。用户可以通过配置文件配置自定义特性。

传统的CRF结构只能解码一个具有最大概率的标签序列(即1-best output)。而NCRF++可以提供一个large choice,它可以解码n个标签序列 with the top n probabilities(即n-best output)。在作者的实现中,当nbest=10时,在NCRF++中构建的CharCNN+WordLSTM+CRF模型可以在CoNLL 2003 NER任务上给出97.47% oracle F1-value(当nbest=1时F1 = 91.35%)。

是非常实用的一个框架。