梁帅龙作者

COLING 2018 最佳论文解读:序列标注经典模型复现

本期推荐的论文笔记来自 PaperWeekly 社区用户 @handsome这篇论文是 COLING 2018 的 Most reproducible Paper。作者用 PyTorch 实现了一个统一的序列标注框架,重现了 CoNLL 2003 English NER、CoNLL 2000 Chunking 和 PTB POS tagging 这三个数据集上不同模型的的表现。值得一提的是,基于这个统一的框架,作者对一些已有工作的一些不一致的结论进行了反驳,提出了一些新的看法。对于实践者而言,这篇论文还是很有借鉴意义的。

关于作者:梁帅龙,新加坡科技设计大学博士生,研究方向为自然语言处理

■ 论文 | Design Challenges and Misconceptions in Neural Sequence Labeling

■ 链接 | https://www.paperweekly.site/papers/2061

■ 源码 | https://github.com/jiesutd/NCRFpp

引言

这篇论文是 COLING 2018 的 Best Paper 之一 “Most Reproducible Paper”,论文基于的 PyTorch 代码框架 NCRF++ 也收录于 ACL 2018 的 Demo Paper。

作者用一个统一的序列标注框架实现了不同模型架构在 NER, Chunking, POS Tagging 数据集上的表现,并对已有工作的一些不一致的结论进行了检验,发现了新的结论。代码在 Github 上已经开源,使用文档也非常详尽,做序列标注的童鞋们又多了一把利器可以使用

任务

  • CoNLL 2003 英文的命名实体识别 (NER) 

  • CoNLL 2000 Chunking 

  • PTB POS Tagging

模型

字符序列表示

在词的表示方面,本文摒弃了基于传统的特征的方法,直接使用词本身的信息进行编码。除了词向量以外,为了更好地对那些不常见的词编码,文章使用 LSTM 或者 CNN 对构成词语的字符进行编码。

词序列表示

在整个句子级别,文章同样使用 LSTM / CNN 对构成句子的词语的表示进行上下文的编码。

预测层 

获取了每个词的上下文表示之后,在最后的预测层,文章使用了基于 Softmax 的和基于 CRF 的结构。和 Softmax 相比, CRF 往往更能有效地结合上下文的标签的依赖关系进行预测。

实验结果

NER的实验结果

Chunking的实验结果

POS Tagging的实验结果

从以上结果来看,字符序列的表示方面,CNN 和 LSTM 的结果差别不大;词序列的表示方面,LSTM 的结果比 CNN 的稍好一些,说明全局信息的有效性;预测层方面,POS Tagging 任务的 CRF 和 Softmax 表现相当,但是 NER、Chunking 的 CRF 的结果要比 Softmax 好一些。相比 POS 的tags,BIE 标签之间的依赖关系可能更容易被 CRF 所建模。

其他

这篇文章也检验了预训练的词向量的不同(GloVe/SENNA),标注体系的不同 (BIO/BIOES),运行环境的不同(CPU/GPU),以及优化器的不同 (SGD/Adagrad/Adadelta/RMSProp/Adam)对结果的影响。感兴趣的同学可以查看论文原文。 

最后

本文代码已开源,使用非常方便,也可以加自定义的 feature,几乎不用自己写代码就可以使用了。

PaperWeekly
PaperWeekly

推荐、解读、讨论和报道人工智能前沿论文成果的学术平台。

入门序列标注COLING 2018
1
相关数据
GloVe技术

Stanford开发的用于词向量表示的一个库/工具

命名实体识别技术

命名实体识别(NER)是信息提取(Information Extraction)的一个子任务,主要涉及如何从文本中提取命名实体并将其分类至事先划定好的类别,如在招聘信息中提取具体招聘公司、岗位和工作地点的信息,并将其分别归纳至公司、岗位和地点的类别下。命名实体识别往往先将整句拆解为词语并对每个词语进行此行标注,根据习得的规则对词语进行判别。这项任务的关键在于对未知实体的识别。基于此,命名实体识别的主要思想在于根据现有实例的特征总结识别和分类规则。这些方法可以被分为有监督(supervised)、半监督(semi-supervised)和无监督(unsupervised)三类。有监督学习包括隐形马科夫模型(HMM)、决策树、最大熵模型(ME)、支持向量机(SVM)和条件随机场(CRF)。这些方法主要是读取注释语料库,记忆实例并进行学习,根据这些例子的特征生成针对某一种实例的识别规则。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

优化器技术

优化器基类提供了计算梯度loss的方法,并可以将梯度应用于变量。优化器里包含了实现了经典的优化算法,如梯度下降和Adagrad。 优化器是提供了一个可以使用各种优化算法的接口,可以让用户直接调用一些经典的优化算法,如梯度下降法等等。优化器(optimizers)类的基类。这个类定义了在训练模型的时候添加一个操作的API。用户基本上不会直接使用这个类,但是你会用到他的子类比如GradientDescentOptimizer, AdagradOptimizer, MomentumOptimizer(tensorflow下的优化器包)等等这些算法。

推荐文章
暂无评论
暂无评论~