FLAT:中文NER屠榜之作

本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

文 | JayLou娄杰

编 | YY


近年来,引入词汇信息逐渐成为提升中文NER指标的重要手段。ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: Chinese NER Using Flat-Lattice Transformer 刷新了中文NER任务的新SOTA。

如上图所示,在MSRA-NER任务中,FLAT+BERT登顶榜首;而单独的FLAT(1层TransFormer)也超越了预训练模型ERNIE。相比于之前引入词汇信息的中文NER工作,FLAT主要创新点在于:

  • 基于Transformer设计了一种巧妙position encoding来融合Lattice结构,可以无损的引入词汇信息。

  • 基于Transformer融合了词汇信息的动态结构,支持并行化计算,可以大幅提升推断速度。

下面让我们看看FLAT是如何登顶榜首的~

论文链接
https://arxiv.org/pdf/2004.11795.pdf

开源代码
https://github.com/LeeSureman/Flat-Lattice-Transformer

Arxiv访问慢的小伙伴也可以在【夕小瑶的卖萌屋】订阅号后台回复关键词【0907】下载论文PDF~

背景

中文NER为什么要引入词汇信息?

不同于英文NER,中文NER通常以字符为单位进行序列标注建模。这主要是由于中文分词存在误差,导致 基于字符 通常要好于 基于词汇 (经过分词)的序列标注建模方法。

那中文NER是不是就不需要词汇信息呢?答案当然是否定的。引入词汇信息的好处在于:

  1. 引入词汇信息往往可以强化实体边界,特别是对于span较长的实体边界更加有效。

  2. 引入词汇信息也是一种增强方式。对于NLP分类任务增益明显的数据增强方法,往往不能直接应用于NER任务,并且指标增益也极为有限。相反,引入词汇信息的增强方式对于小样本下的中文NER增益明显。

下文将引入词汇信息增强中文NER性能的方法称为 词汇增强

词汇增强的方式有哪些?

  1. 词向量&词汇列表:利用一个具备良好分词结果的词向量;亦或者不再利用词向量,仅利用词汇或者实体边界信息,通常可通过图网络提取相关信息。这种增强方式,主要有2大范式:

  • Dynamic Architecture:设计一个动态抽取框架,能够兼容词汇输入;本文所介绍的FLAT就属于这一范式。

  • Adaptive Embedding:基于词汇信息,构建自适应Embedding;与模型框架无关。ACL2020中的 Simplify the Usage of Lexicon in Chinese NER[1] 就属于这一范式,仅仅在embedding层融合词汇信息,对于词汇信息的引入更加简单有效,采取静态加权的方法可以提前离线计算。

  • 分词器:单一的分词器会造成边界错误,可以引入多源分词器并pooling不同分词结果。ACL2020中有篇处理中文预训练的文章[2]就将多种分词结果中词汇信息pooling对齐到字符编码中。

如何在中文NER模型中引入词汇信息,是近年来中文NER的一个研究重点。下图展示了各大顶会中词汇增强NER的主要进展:

由于篇幅所限,本文将包含FLAT在内多种词汇增强方式进行了对比,感兴趣的同学可以进一步阅读有关文献。

Lattice LSTM

要想更系统的理解FLAT,就必须掌握Lattice LSTM[3]这篇论文,这是针对中文NER任务引入词汇信息的开篇之作。文中提出了一种Lattice LSTM用于融合词汇信息。如下图所示,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。

Lattice是一个有向无环图,词汇的开始和结束字符决定了格子位置。Lattice LSTM结构则融合了词汇信息到原生的LSTM中:

如上图所示,Lattice LSTM引入了word cell结构,对于当前的字符,融合以该字符结束的所有word信息,如「店」融合了「人和药店」和「药店」的信息。对于每一个字符,Lattice LSTM采取注意力机制去融合个数可变的word cell单元,其主要的数学形式化表达为:

本文不再堆砌繁杂的数学公式,具体看参考原论文。需要指出的是,当前字符有词汇融入时,则采取上述公式进行计算;如当前字符没有词汇时,则采取原生的LSTM进行计算。虽然Lattice LSTM有效提升了NER性能,但也存在一些缺点:

  • 信息损失

    • 每个字符只能获取以它为结尾的词汇信息。如对于「药」,并无法获得‘inside’的「人和药店」信息。

    • 由于RNN特性,采取BiLSTM时其前向和后向的词汇信息不能共享。

    • Lattice LSTM并没有利用前一时刻的记忆向量  ,即不保留对词汇信息的持续记忆。

  • 计算性能低下,不能batch并行化:究其原因主要是每个字符之间的增加word cell(看作节点)数目不一致;不过,后续也有工作[4] 将Lattice LSTM进行batch化。

  • 可迁移性差:只适配于LSTM,不具备向其他网络迁移的特性。

FLAT

由上文分析,Lattice-LSTM采取的RNN结构无法捕捉长距离依赖,同时引入词汇信息是有损的,同时动态的Lattice结构也不能充分进行GPU并行。

此外,有一类图网络(如CGN[5] 和LGN[6])通过采取图网络来引入词汇信息,虽然可以捕捉对于NER任务至关重要的顺序结构,但它们通常需要RNN作为底层编码器来捕捉顺序性,模型结构更为复杂。

为解决计算效率低下、引入词汇信息有损的这两个问题,FLAT基于Transformer结构进行了两大改进:

改进1:Flat-Lattice Transformer,无损引入词汇信息

众所周知,Transformer采取全连接的自注意力机制可以很好捕捉长距离依赖,由于自注意力机制对位置是无偏的,因此Transformer引入位置向量来保持位置信息。

受到位置向量表征的启发,FLAT设计了一种巧妙position encoding来融合Lattice 结构,具体地情况如上图所示,对于每一个字符和词汇都构建两个head position encoding 和tail position encoding,这种方式可以重构原有的Lattice结构。

也正是如此,FLAT可以直接建模字符与所有匹配的词汇信息间的交互,例如,字符[药]可以匹配词汇[人和药店]和[药店]。

因此,我们可以将Lattice结构展平,将其从一个有向无环图展平为一个平面的Flat-Lattice Transformer结构,由多个span构成:每个字符的head和tail是相同的,每个词汇的head和tail是skipped的,如下图所示:

改进2:相对位置编码,让Transformer适用NER任务

FLAT使用了两个位置编码(head position encoding 和 tail position encoding),那么是否可以采用绝对位置编码呢?同样来自邱锡鹏老师组的论文TENER: Adapting Transformer Encoder for Named Entity Recognition [7]给出答案:原生Transformer中的绝对位置编码并不直接适用于NER任务

TENER论文发现:对于NER任务来说,位置和方向信息是十分重要的。 如上图所示,在「Inc.」前的单词更可能的实体类型是「ORG」,在「in」后的单词更可能为时间或地点。而对于方向性的感知会帮助单词识别其邻居是否构成一个连续的实体Span。可见,对于「距离」和「方向性」的感知对于Transformer适用于NER任务至关重要。

但是,原生Transformer的绝对位置编码本身缺乏方向性,虽然具备距离感知,但还是被self-attention机制打破了

仔细分析,BiLSTM在NER任务上的成功,一个关键就是BiLSTM能够区分其上下文信息的方向性,来自左边还是右边。而对于Transformer,其区分上下文信息的方向性是困难的。因此,要想解决Transformer对于NER任务表现不佳的问题,必须提升Transformer的位置感知和方向感知。

因此,FLAT这篇论文采取XLNet论文中提出相对位置编码计算attention score:

(向右滑动查看完整公式)

论文提出四种相对距离表示和  之间的关系,同时也包含字符和词汇之间的关系:

表示  的head到  的head距离,其余类似。相对位置encoding表达式为:

(向右滑动查看完整公式)

的计算方式与vanilla Transformer相同:

实验结果

上图给出了论文的实验结果,具体地讲:

  1. 引入词汇信息的方法,都相较于baseline模型biLSTM+CRF有较大提升。可见引入词汇信息可以有效提升中文NER性能。

  2. 采用相同词表(词向量)时,FLAT好于其他词汇增强方法;

  3. FLAT如果mask字符与词汇间的attention,性能下降明显,这表明FLAT有利于捕捉长距离依赖。

  4. FLAT结合BERT效果会更佳。

如上图所示,在推断速度方面,FLAT论文也与其他方法进行了对比,FLAT仅仅采用1层Transformer,在指标领先的同时、推断速度也明显优于其他方法。

总结

近年来,针对中文NER如何更好地引入词汇信息,无论是Dynamic Architecture还是Adaptive Embedding,这些方法的出发点无外于两个关键点:

  1. 如何更充分的利用词汇信息、最大程度避免词汇信息损失;

  2. 如何设计更为兼容词汇的Architecture,加快推断速度;

FLAT就是对上述两个关键点的集中体现:FLAT不去设计或改变原生编码结构,设计巧妙的位置向量就融合了词汇信息,既做到了信息无损,也大大加快了推断速度。

本文介绍的词汇增强方式不仅应用于中文NER任务,也可进一步探索其在关系抽取、事件抽取中的有效性。


本文转载自公众号夕小瑶的卖萌屋,专业带逛互联网算法圈的神操作

-----》我是传送门

关注后,回复以下口令:

回复【789】 :领取深度学习全栈手册(含NLP、CV海量综述、必刷论文解读)

回复【入群】:加入卖萌屋深度学习/NLP/CV/搜广推等方向的技术交流与内推社群(大V、顶会审稿人云集)

回复【0511】:领取算法岗面试手册(刷offer神器)

回复【0424】:领取刷论文神器(挖掘每日、每月必刷重磅论文)

文末福利
后台回复关键词【入群
加入卖萌屋NLP/IR/Rec与求职讨论群
有顶会审稿人、大厂研究员、知乎大V和妹纸
等你来撩哦~

参考文献

[1] Simplify the Usage of Lexicon in Chinese NER:
https://arxiv.org/abs/1908.05969
[2] Enhancing Pre-trained Chinese Character Representation with Word-aligned Attention:
https://arxiv.org/abs/1911.02821
[3] Chinese NER Using Lattice LSTM:
https://arxiv.org/pdf/1805.02023.pdf
[4] Batch_Parallel_LatticeLSTM:
https://github.com/LeeSureman/Batch_Parallel_LatticeLSTM
[5] Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network:
https://www.aclweb.org/anthology/D19-1396.pdf
[6] A Lexicon-Based Graph Neural Network for Chinese NER:
https://www.aclweb.org/anthology/D19-1096.pdf
[7] TENER: Adapting Transformer Encoder for Named Entity Recognition:
https://arxiv.org/abs/1911.04474

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tensorflow实现LSTM详解

关于什么是 LSTM 我就不详细阐述了,吴恩达老师视频课里面讲的很好,我大概记录了课上的内容在吴恩达《序列模型》笔记一,网上也有很多写的好的解释,比如:LSTM入门、理解LSTM网络 然而,理解挺简单&#xff0…

论文浅尝 | 一个模型解决所有问题:实体和事件的神经联合模型

笔记整理:康矫健,浙江大学计算机科学与技术系,硕士研究生。论文链接:https://arxiv.org/pdf/1812.00195.pdf发表会议:AAAI 2019摘要 近来,针对事件抽取的工作大都集中在预测事件的triggers和arguments r…

AutoPep8-----Pycharm自动排版工具

查找pycharm中的external tool的步骤: https://jingyan.baidu.com/article/84b4f565bd39a060f6da3211.html 今天从 PyCharm 入手,写一些可以明显改善开发效率的使用技巧,一旦学会,受用一生。以下代码演示是在 Mac 环境下&#xf…

阿里P8架构师谈:java架构师面试技能24全点

1,JAVA基础扎实,理解io、多线程、集合等基础框架,对JVM原理有一定的了解,熟悉常见类库,常见java api不仅会用更能知其所以然; 2,对Spring,MyBatis/Hibernate,Struts2,SpringMVC等开源框架熟悉并且了解到它的基本原理和…

百度自然语言处理部招人啦!正式、实习都要!研究、落地都有!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术2010年,百度自然语言处理部正式成立。十年来,百度NLP聚集了一大批兼具扎实技术实力和实践经验的AI人才,获得数十项国内外权威奖项,申请专利上千件,发…

我与导师的聊天记录

虽然导师远在马来西亚,但是每次都是很耐心的回答我的问题,真的是非常感激啦! 我就想记录下来,自己提出的问题,老师给我的解答,算是我研究生生涯的很大一部分生活了吧! 噢~ 还有就是,…

论文浅尝 | 面向知识图谱补全的共享嵌入神经网络模型

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为跨语言知识图谱问答。来源:CIKM’2018链接:http://delivery.acm.org/10.1145/3280000/3271704/p247-guan.pdf?ip121.249.15.96&id3271704&accACTIVE%20SERVICE…

PyTorch常用代码段合集

文 | Jack Stark知乎编 | 极市平台来源 | https://zhuanlan.zhihu.com/p/104019160导读本文是PyTorch常用代码段合集,涵盖基本配置、张量处理、模型定义与操作、数据处理、模型训练与测试等5个方面,还给出了多个值得注意的Tips,内容非常全面。…

想成长为一名实战型架构师?7大实战技能经验分享

很多同学想成为一名架构师,但是对于其中的技能掌握程度,以及编程功底的要求?设计能力的要求有哪些? 我简要从以下7点经验来谈,从技能的角度抛砖引玉。 编程基本功:数据结构和算法 1.数据结构相关的哈希表、链表、二叉…

LeetCode 70. 爬楼梯(动态规划)

题目链接:https://leetcode-cn.com/problems/climbing-stairs/ 之前在递归中讲过这个问题,现在用动态规划求解。 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意&…

技术动态 | 藏经阁计划发布一年,阿里知识引擎有哪些技术突破?

本文转载自公众号:阿里技术。导读:2018年4月阿里巴巴业务平台事业部——知识图谱团队联合清华大学、浙江大学、中科院自动化所、中科院软件所、苏州大学等五家机构,联合发布藏经阁(知识引擎)研究计划。藏经阁计划依赖阿…

python中模块、函数与各个模块之间的调用

1 针对一个模块的函数调用 a : import 模块名 模块名.函数名 b: from 模块名 import 函数名 (as 别名) python调用另一个.py文件中的类和函数 同一文件夹下的调用 1.调用函数 A.py文件如下: def add(x,y): print(‘和…

模拟退火算法求解TSP问题

前言:模拟退火(simulated annealing)技术,在每一步都以一定的概率接受比当前结果更差的结果,从而有助于“跳出”局部极小。在每次迭代过程中,接受“次优解”的概率要随着时间的推移而逐渐降低,从…

一篇文章彻底搞懂“分布式事务”

在如今的分布式盛行的时代,分布式事务永远都是绕不开的一个话题,今天就谈谈分布式事务相关的一致性与实战解决方案。 01 为什么需要分布式事务 由于近十年互联网的发展非常迅速,很多网站的访问越来越大,集中式环境已经不能满足业…

C++很难学?这个ACM金牌大佬可不这么认为!

C作为一门底层可操作性很强的语言,广泛应用于游戏开发、工业和追求性能、速度的应用。比如腾讯,无论游戏,还是微信,整个鹅厂后台几乎都是 C 开发,对 C 开发者的需求非常大。但问题是C入门和精通都比较困难,…

数据结构--位图 BitMap

文章目录1. 位图2. 位图代码3. 布隆过滤器 Bloom Filter4. 总结1. 位图 我们有1千万个整数,整数的范围在1到1亿之间。如何快速查找某个整数是否在这1千万个整数中呢? 当然,这个问题可以用散列表来解决。可以使用一种特殊的散列表&#xff0…

领域应用 | 企业效益最大化的秘密:知识图谱

本文转载自公众号:TigerGraph。凡是有关系的地方都可以用知识图谱。知识图谱知识图谱是用节点和关系所组成的图谱,为真实世界的各个场景直观地建模,运用“图”这种基础性、通用性的“语言”,“高保真”地表达这个多姿多彩世界的各…

国家一级职业资格证书 计算机类有哪些

当前bai,计算机证书考试多种du多样,水平参差不齐。比较正规且得到社会zhi认可的dao计算机证书考试有以下几种:全国计算机应用软件人员水平考试、计算机等级考试、计算机及信息高新技术考试、计算机应用水平测试和各种国外著名大计算机公司组织…

阿里P8架构师谈:分布式系统全局唯一ID简介、特点、5种生成方式

什么是分布式系统唯一ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。 如在金融、电商、支付、等产品的系统中,数据日渐增长,对数据分库分表后需要有一个唯一ID来标识一条数据或消息,数据库的自增ID显然不能满足…

朴素贝叶斯算法--过滤垃圾短信

文章目录1. 基于黑名单过滤2. 基于规则过滤3. 基于概率统计过滤4. 总结上一节我们讲到,如何用位图、布隆过滤器,来 过滤重复数据。今天,我们再讲一个跟过滤相关的问题,如何过滤垃圾短信?1. 基于黑名单过滤 可以维护一…