1. 首页
  2. 教育
  3. 深度学习

NER中的深度学习技术

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

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

ASurveyonDeepLearningforNamedEntityRecognition.

总评

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

文章关键点笔记

1introduction

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

基于规则的方法。

无监督学习方法。

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

深度学习方法。

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

2background

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

NER问题定义

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

Anamedentityisawordoraphrasethatclearlyidentiesoneitemfromasetofotheritemsthathavesimilarattributes.

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

NER的模型评估

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

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

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

传统NER方法

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

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

无监督方法

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

基于特征的机器学习方法

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

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

3NER中的深度学习技术

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

非线性处理。

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

直接端到端训练。

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

NER中的深度学习技术

分布式文本表示

上下文编码

tag解码

分布式文本表示

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

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

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

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

上下文编码架构

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

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

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

RecursiveNeuralNetworksarenon-linearadaptivemod-elsthatareabletolearndeepstructuredinformation,bytraversingagivenstructureintopologicalorder.

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

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

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

Petersetal.[19]proposedTagLM,alanguagemodelaugmentedsequencetagger.Thistaggerconsidersbothpre-trainedwordembeddingsandbidirectionallanguagemodelembeddingsforeverytokenintheinputsequenceforsequencelabelingtask.Figure12showsthearchitectureofLM-LSTM-CRFmodel[121],[122].Thelanguagemodelandsequencetaggingmodelsharethesamecharacter-levellayerinamulti-tasklearningmanner.Thevectorsfromcharacter-levelembeddings,pre-trainedwordembeddings,andlan-guagemodelrepresentations,areconcatenatedandfedintotheword-levelLSTMs.Experimentalresultsdemonstratethatmulti-tasklearningisaneffectiveapproachtoguidethelanguagemodeltolearntask-specificknowledge.

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

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

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

tag解码器

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

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

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

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

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

summary

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

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

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

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

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

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

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

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

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

Forendusers,whatarchitecturetochooseisdataanddomaintaskdependent.Ifdataisabundant,trainingmodelswithRNNsfromscratchandfine-tuningcontextualizedlanguagemodelscouldbeconsidered.Ifdataisscarce,adoptingtransferstrategiesmightbeabetterchoice.Fornewswiresdomain,therearemanypre-trainedoff-the-shelfmodelsavailable.Forspecificdomains(e.g.,medicalandsocialmedia),fine-tuninggeneral-purposecontextualizedlanguagemodelswithdomain-specificdataisoftenaneffectiveway.

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

深度学习在NER中的应用

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

深度多任务学习。

深度迁移学习。

深度主动学习。

深度强化学习。

深度对抗学习。

Attention机制。

NER的挑战和未来方向

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

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

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

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

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

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

资源匮乏下NER的训练。

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

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

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

评价

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

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

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

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

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

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

责任编辑:lq

免责声明:本站旨在传递信息,不代表有传资讯的观点和立场。本站遵循行业规范,如转载您的文章未标注版权,请联系我们(QQ:78799268)改正。本站的原创文章,如若转载,请注明出处:http://www.ainoline.cn/jiaoyu/shenduxuexi/16951.html

发表评论

邮箱地址不会被公开。 必填项已用*标注

联系我们

在线咨询:点击这里给我发消息

邮件:78799268@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code