论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer

系列文章目录

提示:这是第一篇,以后再添加


FLAT: Chinese NER Using Flat-Lattice Transformer

  • 系列文章目录
  • 前言
  • 一、基础概念
  • 二、本文


前言

本论文相关工作被ACL2020会议接收。 近年来,将词典信息加入模型被证明对中文命名实体识别任务很有效。但是结合词典的方法通常会使输入变为一个动态的结构,模型需要在运行时动态改别结构来表征输入,导致无法有效利用GPU的并行计算,运行速度缓慢。因此提出了FLAT模型,在Transformer的基础上,采用一个特殊的位置编码表征输入结构,而不需要在运行时改变结构来表征输入。实验结果显示我们的模型在识别实体的正确率以及运行速度上均有良好的表现。

一、基础概念

命名实体识别 Named Entity Recognition (NER) :

  • 从句子中抽取出一些具有特定含义的实体:组织名,地名,人名等,给定正确的分类。
  • 目前NER一般被当作是一个序列标注任务:即在一个句子中的实体信息,会被转化成一个特定的标注序列
  • 序列标注问题的数据标注方式主要有:BIO和BIOES。
    其中:
    B,即Begin,表示开始
    I,即Intermediate,表示中间
    E,即End,表示结尾
    S,即Single,表示单个字符
    O,即Other,表示其他,用于标记无关字符
    如:小明在北京大学的燕园看了中国男篮的一场比赛
    [B-PER ,E-PER,O, B-ORG,I-ORG,I-ORG,E-ORG,O,B-LOC,E-LOC,O,O,B-ORG,I-ORG,I-ORG,E-ORG,O,O,O,O]
    模型训练完成后,模型根据输入的句子来输出对应的标签序列
    将标签序列转化为对应的实体信息,用于后续的性能测评与应用
  • NER是NLP中一个比较基础的上游任务,对很多任务来说都是很关键的:①提升信息检索的质量:在百度搜索“新垣结衣”,百度会将其识别为人名,从数据库中找出她的信息 ②帮助抽取知识图谱的三元组(两个实体以及他们之间的关系,如:我居住在厦门。我和厦门的关系就是居住)。过程是:先NER,找出其中含有的实体,关系抽取确定各个实体之间的关系
  • 深度学习框架下的NER模型
    标签解码器
    上下文编码器(建模词在句子中的语义)
    输入表示层(将构成句子的离散记号映射到一个连续空间里)
  • 常见的输入表示层
    Word Embedding:直接找到词的向量表示
    Glove/Word2Vec/Random Init
    Character Embedding:编码字符序列得到词在char-level表示
    RNN/CNN/Transformer based char-level representation
    Pretrained Contextual Embedding:预训练好的语言模型:生成的表示携带了上下文信息,能根据不同的语境为同一个词生成不同的表示,在一定程度上承担了上下文编码器的工作
  • 常见的上下文编码器模型:①RNN:循环神经网络,较好地建模词之间的依赖,且性能稳定,但由于其循环结构,导致运行速度慢 ②CNN:卷积神经网络,在句子级别上并行运行,速度快,但由于局部建模的特性,故难以建立长距离的依赖 ③Transformer Encoder:计算简单且并行,速度快,能直接建立长距离依赖,但由于本身的某些特性,在小数据集上表现差
  • 常用的标签解码器:①MLP + Softmax:在得到每个词的表示后,直接用一个线性层得到改词所对应的各个标签的分数 ②条件随机场:Conditional Random Field(CRF),可以建模标签序列内部的依赖,如B-PER后不能接I-ORG,从而避免发生错误转移
  • 中文NER: 由于中英文的不同特性:英文有空格,基本单元是词,中文的基本单元是字,意义更不明显,故在进行中文NER时,会先考虑怎么断句(怎么分词),再考虑句子的意思
  • 对一个没有提供额外分词信NER只能基于字符来做,但又会失去词的信息
  • 中文NER的关键问题:如何在不分词的情况下向字符级别的序列中加入词信息
  • 词典匹配:Lexicon matching,近年来中文NER paper大都采用词典匹配的方式向字符级别的句子中加入词信息:即将一个句子与一个词典进行匹配(词典是包含很多词的列表);每匹配到一个词就为这个词生成新结点;链接入边和出边;为每个词生成新的向量表示,将其和字向量一起送给上下文编码器

二、本文

  • 用Transformer来编码Lattice,优势:①能直接建模任意两个结点间的依赖,每个字/词都能接收到所有字/词的信息 ②计算过程是静态的,不论输入的lattice结构怎么变,我们的计算过程不变,使运行效率高
  • 之前的研究表明位置信息很重要
  • Transformer用123等数字序列来代表每个字在句子中的位置,这种用在序列上的位置编码方式很难直接迁移到lattice
  • 本文提出了一种新的lattice位置编码方式,①给每个字一个位置标签 ②给每个词两个位置标签,头是词的第一个字的位置标签,尾是词的最后一个字的位置标签
  • 整体构架:①用头尾信息计算每两个结点间的四个相对距离 ②用多层全连接对四个相对距离的表示进行融合 ③用相对位置编码的方式将融合后的信息给self-attention -->可以得到两个结点的相对位置关系
  • 论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer_第1张图片

论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer_第2张图片
在这里插入图片描述
在这里插入图片描述

  • 数据集
    论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer_第3张图片

  • 性能
    论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer_第4张图片

  • 速度
    论文阅读(中文命名实体识别)FLAT: Chinese NER Using Flat-Lattice Transformer_第5张图片
    基于图网络的模型跑得快
    FLAT跑得比其他结合词典的模型快
    FLAT从Batch并行化中获得的加速比高

  • 本文贡献:①基于Transformer设计了一种巧妙position encoding来融合Lattice结构,可以无损的引入词汇信息。②基于Transformer融合了词汇信息的动态结构,支持并行化计算,可以大幅提升推断速度。

参考:
知乎读论文
FLAT:中文NER屠榜之作!
论文下载

你可能感兴趣的:(NER)