NLP.TM[31] | 2018年的一篇NER综述笔记

【NLP.TM】

本人有关自然语言处理和文本挖掘方面的学习和笔记,欢迎大家关注。

往期回顾:

上周推荐了一篇NER的论文,这周算是把这篇综述看完了,感觉自己的收获挺大的(老是感觉自己看过写过,但是又没找到),给大家介绍一下。

A Survey on Deep Learning for Named Entity Recognition.

总评

这篇综述让我感受到比较完整的NER世界观是啥样的,问题定义、问题拆解、常用方法及其评价、模型评估、拓展等,由于是综述,全面性满满,具体的方法可以在参考文献里面找,212篇文献可谓是诚意满满。

文章关键点笔记

1 introduction

命名实体识别的中的核心,命名实体(Named Entity)概念的出现其实并不久远,1996年。时至今日,处理NER问题的主要有四种:

  • 基于规则的方法。

  • 无监督学习方法。

  • 基于特征的机器学习方法。

  • 深度学习方法。

我们其实可以看到,得益于机器学习方法,NER问题被更好的解决。

2 background

本章主要是讨论了NER的一些背景问题,NER的问题定义(尤其是NE的定义)、数据集和工具、模型评估、传统方法之类的。

NER问题定义

首先是问题定义,主要是命名实体的定义,我直接用文章的原句吧:

A named entity is a word or a phrase that clearly identies one item from a set of other items that have similar attributes.

那么NER,其实就是去识别这个命名实体。

NER的模型评估

作者把评估方法分为了两块,精准匹配和软匹配(我翻译的,英文是relaxed-match)。

精确匹配有两个层面,一个是每个位点的预测准确情况(BIO或者BIEMO的情况),这个比较常见。

而软匹配上,其实由于他的复杂性和基于问题的特异性,没有被广泛使用。

传统NER方法

所谓的“传统”方法,作者认为是除了DL之外的方法都算吧。

基于规则的方法会依赖问题的背景,其实也有一些输出,作者角度看,如果资源足够时,其实就能够有很好的效果(这个和我的实践来看是一致的),高准确低召回低可迁移性是它的特点。

无监督方法

无监督方法也有一些,说白了就是聚类,利用的是关键词汇、种子词汇去进行扩增,从而完成无监督学习的任务,需要根据问题进行策略的调整,可迁移性较低。

基于特征的机器学习方法

常用的机器学习方法其实就是那些,隐马尔科夫、决策树、最大熵、支持向量机和条件随机场。

至于特征上,也给了大家一些提示,词性、句子成分、大小写等,另外还可以引入一些外部的知识信息,例如维基百科的地点词等。

3 NER中的深度学习技术

我们都知道,在nlp领域下,论准招等各种效果,深度学习具有很高的地位,因此作者也花了非常大的笔墨来讨论深度学习,首先就谈了深度学习的特点:

  • 非线性处理。

  • 自动化信息抽取,不用花费精力寻找和维护特征。

  • 直接端到端训练。

对于解决NER的深度学习方法,作者把整体架构划分为三个等级:

  • 分布式文本表示

  • 上下文编码

  • tag解码

分布式文本表示

分布式文本表示,说白了就是word2vector、glove之类的预训练方法。具体定义不赘述了哈哈哈。

word级别,其实就比较常见word2vector、glove、fasttet、senna等,当然也有一些简单预训练语言模型,例如结合CNN之类的。

而char级别(中文就是字级别)对未登录词的识别能力很高,其构建的主要方式主要有CNN-based和RNN-based。

当然,还有一些混合方法,会加入一些外部信息(词典信息、词汇相似度信息),这些方法对效果提升有用,但是可迁移性下降了。另外,作者把bert的方法也归于此处,主要原因是他在预训练的时候使用了大量外部语料信息。

上下文编码架构

上下文编码是文本表示之后的操作,作者分为了4种情况,CNN、RNNs、递归神经网络和transformer,另外还单独提到了神经网络语言模型。

CNN和RNNs的情况其实比较常规了,不做太多解释,文章中其实更多的也是论文的解释。

递归神经网络(Recurrent Neural Networks)其实我也只是听过,自己没有深入地了解,后续会排期学习。简单的用作者的话评价:

Recursive Neural Networks are non-linear adaptive mod- els that are able to learn deep structured information, by traversing a given structure in topological order.

也就是构建了一种特定的拓扑结构来表达内部的信息,这种信息大都和句子的语法结构相关。

神经语言模型是nlp里面最为基础的内容,NLP几次前进的里程碑都和神经语言模型的大跨步有关,word2vector、elmo、bert。

想提一个有意思的思路,他借助语言模型和NER多任务的模型来进行训练,这种方式能让模型学到更加针对领域的语言模型,同时也能满足NER的需求,作者的解释放这里:

Peters et al. [19] proposed TagLM, a language model augmented sequence tagger. This tagger considers both pre-trained word embeddings and bidirectional language model embeddings for every token in the input sequence for sequence labeling task. Figure 12 shows the architecture of LM-LSTM-CRF model [121], [122]. The language model and sequence tagging model share the same character-level layer in a multi-task learning manner. The vectors from character- level embeddings, pre-trained word embeddings, and lan- guage model representations, are concatenated and fed into the word-level LSTMs. Experimental results demonstrate that multi-task learning is an effective approach to guide the language model to learn task-specific knowledge.

transformer可以说是距离我们最近的一次里程碑跨越的代表了,一次技术的突破需要时间落到更多任务的实践中,NER也不例外,目前在transformer应用于NER的研究上,已经有不少人进行尝试,而且从效果来看,具有下面这些特点:

  • 上下文和位置信息的表征。

  • 微调方法为模型的通用性提供了保证,同时对特定问题也能进行特异性训练。

tag解码器

有关tag解码器,其实就有点像机器学习方法了,上游做好特征工程,然后下游接解码器预测每个位置的分类,常用的方法有:

  • MLP+softmax,简单,但是上下文信息捕获能力很差。

  • CRF,NER上比较重要的基本方法。、

  • RNN,训练速度比CRF稍快,但是个人感觉效果不如CRF强。

  • pointer networks。RNN的一种升级版,用来提取其中的chunk,内部其实有两个神经网络,一个用于分词,一个用于标记。

summary

作者花了很多的力气去对比各个模型的效果,经过作者的总结,有如下信息:

  • 文本表示效果对预测结果影响很大。

  • 噪音数据对效果影响较大。

外部信息,包括预训练语言模型,效果虽好,作者特别指出了里面的问题:

  • 外部信息依赖计算性能和标注性能。

  • 大部分情况不利于可迁移能力。

从效果来看transformer比lstm系列效果更好,可以成为lstm的替换方法。

rnn系列的缺点在于贪婪法,首先强烈依赖于上一步的结果,同时对速度有影响。

后续作者对任务下的方法进行总结,给出一些方法选择的建议:

For end users, what architecture to choose is data and domain task dependent. If data is abundant, training models with RNNs from scratch and fine-tuning contextualized language models could be considered. If data is scarce, adopting transfer strategies might be a better choice. For newswires domain, there are many pre-trained off-the-shelf models available. For specific domains (e.g., medical and social media), fine-tuning general-purpose contextualized language models with domain-specific data is often an effective way.

可惜的是作者这里只考虑了准招效果,而没有考虑参数量、复杂度、内存等其他因素,不过就准招而言,确实有借鉴意义。

深度学习在NER中的应用

这章更多的是谈一些使用深度学习解决NER的思路,这块涉及自己的盲点很多,但是这些东西都很值得学习,此处先列出,后续慢慢学习。

  • 深度多任务学习。

  • 深度迁移学习。

  • 深度主动学习。

  • 深度强化学习。

  • 深度对抗学习。

  • Attention机制。

NER的挑战和未来方向

看到类似的句子,说明综述到尾声了,总结了过去,肯定要展望未来,在挑战上,作者提出了两个关键点:

  • 数据标注问题,NER相比文本分类,其实更加需要数据,这个一直是一个老大难的问题,如何获取更多更准的标注样本,是一个技术活。

  • 非正式语言环境。在非正式的语境下,其实语法结构并不是那么完整(例如微博、朋友圈、用户query到等),这对准确性和鲁棒性要求就很高了。

而在方向上,有如下思路可供参考:

  • 细粒度的NER和边界问题。NER有时候也被叫做提槽,槽位的精准在现在问题下,其实多在于对边缘的准确划分。

  • 实体链接。即对NER问题有了更高级的需求,要求理解实体之间的关系,这个对知识图谱的构建非常重要。

  • 资源匮乏下NER的训练。

  • NER的可延展性,由于NER大都依赖rnn这种递归式,贪婪式的模型,所以耗时普遍较长,长句子的识别时间尤其可怕,因此这个问题需要被关注。

  • 迁移学习。说白了就是看看能不能白嫖或者是少花钱的方式完成一个ner任务。

  • NER下可用的深度学习工具。

评价

这篇综述其实谈到了很多NER我之前没有关注的点,几个重点我划一下,后续我也会持续去看:

  • 上下游编码结构和tagger两个模块的模型拓展。

  • 多任务、主动学习这两块有较大的挖掘空间。

另外我认为作者还有几个方向没有谈到但是大家应该关注:

  • nlp下的数据增强问题,可以从ner角度开始拓展,主要因为ner的标注数据具有的信息,比比他简单的文本分类问题的数据多,也比比他复杂的机器翻译、对话系统的数据信息更结构化,因此用ner进行数据增强具有很大价值。

  • 蒸馏。我们都知道上述模型耗时长、体积大,蒸馏是解决该问题的一个重要方法,但是相比CV领域,nlp领域的蒸馏还有很大潜力。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值