0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

词汇知识融合可能是NLP任务的永恒话题

深度学习自然语言处理 来源:丁香园大数据 作者:丁香园大数据 2021-05-08 11:22 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

得益于BERT的加持,Encoder搭配CRF的结构在中文NER上通常都有不错的表现,而且BERT使用方便,可以迅速微调上线特定服务;在好的基准条件下,我们也能把精力放在更细节的问题中,本文并不以指标增长为目标,而是从先验知识融合与嵌套实体问题两方面讨论,希望可以从这两个方向的工作中获得解决其他问题的启发

融合词汇知识

Chinese NER Using Lattice LSTM

融合词汇知识的方法可能适用于NLP问题的每个子方向,也是近几年中文NER问题的大方向之一;因为中文分词的限制,加之有BERT的加成,如今基本默认基于字符比基于分词效果更好,这种情况下,引入词汇知识对模型学习实体边界和提升性能都有帮助,Lattice LSTM是这一方向的先行者

相比于char和word级的RNN,Lattice LSTM加入了针对词汇的cell,用以融合词汇信息;计算上比char-cell少一个output gate,此外完全一致,可以理解为在传统LSTM链路中插入了一组LSTMCell,具体可以对照原文公式10-15理解(下图公式11为LSTMCell,公式13为WordLSTMCell):

f8fff604-aeed-11eb-bf61-12bb97331649.png

FLAT: Chinese NER Using Flat-Lattice Transformer

Lattice LSTM验证了融合词汇信息提升中文NER任务的可行性,就是有点慢,每句话要加入的词汇不一样,无法直接batch并行,此外Lattice LSTM没法套BERT,现成的BERT不能用太不甘心;于是就有了同时弥补这两点的FLAT,并且其融合词汇的实现方式也简单的多:如图,FLAT融合词汇的方式就是拼接,词汇直接拼在输入里,此外只需改造Postion Embedding,将原始的位置编码改为起止位置编码

不过Postion Embedding的改造还不止于此,为了让模型学习到词汇span的交互信息,这里还引入了相对位置编码:如图,长度为N的输入会产生4个N * N的相对位置矩阵,分别由:head-head,head-tail,tail-head,tail-tail产生

f94fcb2a-aeed-11eb-bf61-12bb97331649.png

综上,基于Transformer的FLAT可batch并行,速度自然优于Lattice LSTM,同时又可以套用BERT,在常用中文NER数据集上都有非常出色的表现;FLAT的显存占用比较高,但用显存换来的推理时间减少肯定是值得的

Leverage Lexical Knowledge for Chinese Named Entity Recognition via Collaborative Graph Network

通过词汇增强模型识别边界的能力很重要,然而Lattice LSTM在这方面还存在信息损失,受限于构造方式,词汇表示只能加给最后一个字,这样有什么问题呢?以本文CGN中提到的“北京机场”为例,想要成功标出“北京机场”而非“北京”,需要模型将“机”识别为“I-LOC”,而非“O”或“B-LOC”,然而Lattice LSTM中的词汇并不影响“机”的encoding;此外,Lattice LSTM的融合方式说明词汇只对实体本身有帮助,然而正确识别实体可能也需要临近词汇的帮助,例如下图的“离开”表明“希尔顿”是人名而非酒店

f9587568-aeed-11eb-bf61-12bb97331649.png

复杂的字词关系无法通过RNN结构表示,选择Graph更为灵活,本文通过融合三种图结构学习复杂关系,利用GAN提取特征,获得倍数于Lattice LSTM的速度提升

f97d6e5e-aeed-11eb-bf61-12bb97331649.png

如图所示,在LSTM编码输入文本并传入词汇表示后,模型会经过三种策略的构图层:

Word-Character Containing graph(C-graph):负责学习自匹配特征和词汇边界信息

Word-Character Transition graph(T-graph):负责构造字词相互之间的上下文邻接关系

Word-Character Lattice graph(L-graph):负责捕捉自匹配特征和隐含的词汇邻接关系

图表示完成后,通过Fusion层的线性结构融合特征,再传给CRF做标签decoding即可;虽然流程上比FLAT复杂一些,但一方面其非batch并行版的速度更快(不知道算不算建图的时间),另外文中提供的各种词汇融合思路也值得学习借鉴,从词汇边界和覆盖本身考虑,上下文语义贡献的作用,已经图结构带来的额外特征或许可以作为特定任务的预训练过程拆解使用

嵌套实体问题

嵌套实体在标注应用场景下很少被顾及,一方面传统序列标注模型也只能选择一个,另外标注数据时我们就只根据语义选择其中一个;但嵌套实体本身是存在的,比如医疗场景下的疾病词常由身体部位和其他词构成,即便不作为NER任务本身看待,让模型能学习标识嵌套实体,对实际场景中的其他任务也大有益处

Pyramid: A Layered Model for Nested Named Entity Recognition

通过多层结构抽取嵌套实体是一种容易理解的模型,2007年就有工作通过堆叠传统NER层处理嵌套问题,不过之前的工作都无法处理嵌套实体重叠的情况,并且往往容易在错误的层级生成嵌套实体(即实体本身存在,但不该在当前层识别到,否则会影响后续层的识别,从而破坏整体模型效果);本文针对这两个问题提出的金字塔结构

f9b2aa9c-aeed-11eb-bf61-12bb97331649.png

金字塔结构的思想如图所示,最底层为最小的文本单元,每一层负责长度为L的实体的识别,通过CNN向上聚合,模型不会遗漏重叠实体span,同时由于L的限制,该结构不会在错误的层生成不对应的实体;作者还认为高层span的信息对底层也有帮助,所以还设计了逆向金字塔结构,具体实现如下

f9c4a1ac-aeed-11eb-bf61-12bb97331649.png

在经过LSTM编码后,自底向上的Decoding层为每一层预测对应标签,因为按长度区分,所以理论上只需要预测“B-”,但这样模型就必须堆叠N层才能覆盖全部span,不然就无法预测长度超过l的实体,所以作者设计了补救措施,在最高层同时预测“B-”和“I-”

f9e3f002-aeed-11eb-bf61-12bb97331649.png

Pyramid表现了处理嵌套问题的重要方向,即构造和编码潜在实体span,下面的工作也都遵循这一点设计实现各种模型结构

A Unified MRC Framework for Named Entity Recognition

本文彻底放弃了序列标注模型,用阅读理解的方法处理嵌套实体,即预测起止位置和实体分类;由起止位置标识的实体当然允许覆盖,自然就解决了嵌套问题;熟悉MRC的同学很快就会发现,通常的MRC只有一个答案span,然而一句话中可能存在多个实体span,怎么表示多个实体?因此本文修改了MRC的结构,首先起止位置预测:

fa12bd10-aeed-11eb-bf61-12bb97331649.png

预测P_end也是同样的结构,这里类似序列标注,表示每个char为起止位置的概率分布,这样就产生了a个起始位置和b个终止位置,理论上存在 a * b 个实体span;而后还需要一个模块计算a * b个匹配中有多少个真的是实体,即:

fa1d9668-aeed-11eb-bf61-12bb97331649.png

到此便解决了预测起止位置识别实体的问题,下面需要对每个实体span分类;通常的做法都是设计分类器,区别仅在于传入分类器的表示,本文的分类则十分新颖,也十分MRC,即:给输入文本拼接一个指向特定实体的问题,在这个问题下找出的span都属于这一类

本文思路新颖,实现简单且可套用BERT等不同Encoder,在传统NER和Nested-NER数据集上都有sota或接近的水准;唯一的遗憾是不适合多实体类别的应用服务,因为针对K个类别都要单独设计问题,所以相当于在预测时把每个问题都问一遍,时间开销或显存开销扩大K倍是无法避免的

TPLinker: Single-stage Joint Extraction of Entities and Relations Through Token Pair Linking

本文是实体关系联合抽取的工作,虽然思路上基本遵循实体识别-》关系分类的流程,但实现上于寻常工作有巨大差别;虽然并不是中文数据集上的工作,但在嵌套实体的处理思路上,本文与寻常工作也有巨大差别,很有借鉴意义;这里首先介绍对普通实体,头实体,尾实体的标识方法:

fa34180c-aeed-11eb-bf61-12bb97331649.png

如图所示,既然存在嵌套实体,那么不妨假设任意两个char都可能构成实体,这样就形成左图的N * N矩阵,模型通过二分类即可标识出存在的实体;不过文本是单向的,所以实体的start一定在end前面,这样就有了右图,即矩阵包括主对角线的下三角矩阵可以忽略,这样矩阵flat后的长度就从N * N减少到 (N + 1) * N / 2;因为是实体关系联合抽取,所以分别用三种颜色标识,紫色标记普通实体,红色标记同一关系下的头实体,蓝色标记尾实体,代码实现上对应三种分类器;另外由于一对实体可能存在多种关系,所以需要为每种关系准备一个分类器,如下图

fa46be6c-aeed-11eb-bf61-12bb97331649.png

笔者认为TPlinker处理嵌套问题的思路与MRC颇有几分相似,矩阵中每个元素都是一个span,既然存在嵌套,我们就不得不假设任意两个char都可能构成实体;此外,虽然最终要在 (N + 1) * N / 2长的序列上预测实体,但显存占用之类的问题并没有那么明显,因为这个平方级的序列是在Encoder输出后拼成的,我们还可以通过设置一些约束进一步减少长度;不过要注意,这个长序列的预测可能非常稀疏(一句话里的实体很少,按长度平方后0占比更大)

Span-based Joint Entity and Relation Extraction with Transformer Pre-training

本文同样是实体关系联合抽取,处理嵌套问题的思路与TPlinker类似,穷举出全部的潜在实体,然后用分类器识别;如下图所示

fa797f78-aeed-11eb-bf61-12bb97331649.png

与TPlinker类似,在输入文本经过BERT后,sequence_output被用来构造潜在实体,理论上所有的ngram都是潜在实体,所以这里需要拼出全部ngram再通过span分类器识别实体,过滤非实体;文中提到一个小trick,给span classifier传入的向量表示除了sequence_output[span]和[CLS]外,还包含一个width embeddings向量,因为某些长度的span不大可能的实体,希望模型可以学到这一点;那么对于TPlinker和spERT,我们也都可以通过长度约束减少span的个数,手工降低模型的计算开销;最后关系分类的做法很直观,融合各路语义向量表示,通过sigmoid生成对应K个关系的1维向量,每个维度通过阈值判定是否存在该类关系

总的来说,Pyramid、MRC、TPLinker、spERT处理嵌套问题的出发点基本一致,从传统的token级标注转变为对潜在实体span的标注;实现上各有特点,Pyramid设计了分层结构,TPlinker的矩阵构造非常灵性,不过平方级长度的序列太过稀疏;spERT虽然理论上也有平方级数量的span,但真实训练可以通过负采样降低训练压力;MRC做分类的想法很是独特,不过对于多类别场景可能计算压力过大,或许可以分离entity识别和分类,避免多次BERT计算的开销

总结

词汇知识融合可能是NLP任务的永恒话题,利用词汇知识增强NER模型的想法也非常自然,Lattice LSTM及其后续工作展开了一个很好的方向,引入词汇关联结构提升模型也许在其他任务上也有很大收益;嵌套实体问题在当前的实际应用场景也许重视度还不够,但问题本身切实存在,这方面的工作往往在潜在实体span的识别上有独特的创新点,通过拆解和重组传统的序列分类和标注模块,引入MRC机制等思路,为我们解决复杂NLP问题带来新的思路

原文标题:中文NER碎碎念—聊聊词汇增强与实体嵌套

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 深度学习
    +关注

    关注

    73

    文章

    5614

    浏览量

    124788
  • nlp
    nlp
    +关注

    关注

    1

    文章

    491

    浏览量

    23387

原文标题:中文NER碎碎念—聊聊词汇增强与实体嵌套

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    供电电压是5V供电 频率设置的是500K 问题可能是出现在了哪里?

    的时候,MAX1978无异常,一旦接入TEC之后,TEC+的电压会跳动一下,随后短路,; 我的供电电压是5V供电;频率设置的是500K; 想请教一下大家,问题可能是出现在了哪里? 原理图和PCB见附件,
    发表于 05-15 06:28

    国产化DevOps工具链实践:知识库与需求/任务/版本如何打通?

    在政务、金融、制造等强合规行业,研发团队普遍面临一套共性困境:需求、任务、版本、文档分属多系统,人工维护关联极易出错;海外工具数据出境与供应链风险不可控;信创环境适配成本高、集成链路长;知识沉淀靠
    的头像 发表于 05-13 09:41 253次阅读

    max9296 csi时钟没有输出可能是什么原因?

    max9296 csi时钟没有输出可能是什么原因?使用1080P相机虽然没有时钟但可以正常显示图像,4k分辨率的相机就出不了图了,怀疑时钟对不齐了,请问这块跟哪些配置有关系?有配置 0x0320 0x323 为0x2c、0x2F 都有试过,1080p的相机设置0x08是可以出图像的,但也没有clk信号
    发表于 05-13 06:31

    自动驾驶传感器前融合与后融合技术上有何区别?

    [首发于智驾最前沿微信公众号]在自动驾驶技术飞速发展的今天,如何让车辆像人类一样感知周围环境,一直是非常重要的话题。无论是摄像头、激光雷达还是毫米波雷达,都存在各自的物理局限性,因此多传感器融合技术
    的头像 发表于 05-10 09:09 222次阅读
    自动驾驶传感器前<b class='flag-5'>融合</b>与后<b class='flag-5'>融合</b>技术上有何区别?

    频繁重连的背后,可能是物理接口疲劳

    机箱、整理线缆或长时间运行后更频繁。 你检查了驱动、更换了端口、甚至重装系统, 但问题依旧。 频繁重连的背后,可能不是软件故障,而是DisplayPort物理接口正在经历“疲劳老化”——一种由反复插拔、材料蠕变与微动磨损引发的隐性失效。 接口疲劳:被
    的头像 发表于 03-19 17:44 1211次阅读

    风华功率电感出现异响,可能是哪些原因导致的?

    风华功率电感出现异响,可能由振动与共振、电感饱和、PCB布局与结构问题、设计参数不当、间歇工作模式、磁性体相互作用、漏磁通影响、电感品质或兼容性问题等多种因素导致,以下是具体分析: 1、振动与共
    的头像 发表于 03-18 16:38 272次阅读
    风华功率电感出现异响,<b class='flag-5'>可能是</b>哪些原因导致的?

    自然语言处理NLP的概念和工作原理

    自然语言处理 (NLP) 是人工智能 (AI) 的一个分支,它会教计算机如何理解口头和书面形式的人类语言。自然语言处理将计算语言学与机器学习和深度学习相结合来处理语音和文本数据,这些数据也可以与其他类型的数据一起用于开发智能工程系统。
    的头像 发表于 01-29 14:01 705次阅读
    自然语言处理<b class='flag-5'>NLP</b>的概念和工作原理

    合同邮件?企业链接?可能是木马的最佳伪装

    行业资讯
    江苏易安联
    发布于 :2026年01月22日 11:27:18

    IEEE 802.11af 与空白频谱无线技术的话题

    IEEE 802.11af 与空白频谱无线技术的话题
    的头像 发表于 12-14 15:12 2102次阅读

    RK3576驱动高端显控系统升级:多屏拼控与AI视觉融合解决方案

    下达任务指令,副屏监测 AI 分析结果,大屏实时展示各区域画面与运行状态,真正实现 “一屏决策,多屏联动”。 八路摄像头输入:实现多源视频融合与 AI 识别RK3576 原生支持八路摄像头输入
    发表于 11-21 17:51

    电机驱动emc整改:总不过关?可能是接地方式错了

    电机驱动emc整改:总不过关?可能是接地方式错了|深圳南柯电子
    的头像 发表于 10-14 15:44 1102次阅读

    国巨电容出现漏液现象,可能是哪些原因导致的?

    国巨电容出现漏液现象,可能是由密封结构失效、电化学腐蚀、机械损伤、材料老化、环境应力以及制造缺陷等多种因素导致的,以下是对这些原因的详细分析: 密封结构失效 焊接不良 :国巨电容的金属外壳与密封盖
    的头像 发表于 09-29 14:21 831次阅读
    国巨电容出现漏液现象,<b class='flag-5'>可能是</b>哪些原因导致的?

    Task任务:LuatOS实现“任务级并发”的核心引擎

    Task任务通过其强大的并发处理能力,使LuatOS能够在单线程环境中模拟多线程执行,通过协程的挂起与恢复机制,实现任务级的并行操作,显著提升系统效能。 sys核心库是LuatOS运行框架库,也是
    的头像 发表于 08-28 13:49 693次阅读
    Task<b class='flag-5'>任务</b>:LuatOS实现“<b class='flag-5'>任务</b>级并发”的核心引擎

    七百多页电机中英文词汇收藏分享

    本书共收录了50000余词条,除重点涵盖了发电机和电动机产品从设计、工艺、生产制造、试验到安装运行等方面的专业技术词汇外,还兼收了一些近年新涌现出来的新能源、新技术方面的词汇。此外,为满足读者翻译
    发表于 07-17 14:23

    软通动力携手华为云推出AI知识引擎与数据工程融合创新解决方案

    在华为开发者大会2025中,软通动力携手华为云以华为云昇腾AI、盘古大模型、ModelArts等为技术底座,全新升级数据治理基线解决方案,正式发布AI知识引擎与数据工程融合创新解决方案(包括软通动力
    的头像 发表于 06-28 17:07 1864次阅读