论文解读系列| 04:【NER】FLAT模型详解

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: FLAT也是一种将词汇信息融入character-based模型的解决方案。有2个创新点(1)将lattice结构转为由spans组成的平铺结构,每个span可以是字符或者词及其在原始lattice结构中的位置;(2)基于Transformer设计了一种巧妙position encoding来充分利用lattice结构信息,从而无损地引入词汇信息。

基本信息

FLAT(2020)
FLAT 出自 ACL 2020 FLAT: Chinese NER Using Flat-Lattice Transformer。

论文地址:https://arxiv.org/abs/2004.11795

论文代码:Flat Lattice

更多、更及时内容欢迎留意微信公众号小窗幽记机器学习

中文NER通常以字符为单位进行序列标注建模,即一般使用character-based模型。这主要是由于中文分词存在误差,会带来错误传导,所以一般character-based的中文NER模型通常要优于 基于word-based(经过分词)的序列标注建模方法。而在character-based模型中引入词汇信息可以显著提升中文NER效果已经得到多方验证。FLAT也是一种将词汇信息融入character-based模型的解决方案。此前通过 lattice 结构融入词汇信息的方式存在一些不足,比如Lattice LSTM存在以下缺点

  • 信息损失

    • 每个字符只取以它为结尾的词汇信息。如对于Figure 1中的示例,对于「药」,并无法获得inside的「人和药店」信息。而「人和药店」有助于区分示例中的地址实体重庆组织实体重庆人
    • 由于RNN特性,采取BiLSTM时其前向和后向的词汇信息不能共享。
    • Lattice LSTM并没有利用前一时刻的记忆向量,即不保留对词汇信息的持续记忆。
  • 计算性能低,不能batch并行化:究其原因主要是每个字符之间需要attend的word cell(看作节点)数目不一致;可以视为动态结构。不过,后续也有工作将Lattice LSTM进行batch化。

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

为此,FALT提出以下2个创新点:

  • 将lattice结构转为由spans组成的平铺结构,每个span可以是字符或者词及其在原始lattice结构中的位置。
  • 基于Transformer设计了一种巧妙position encoding来充分利用lattice结构信息,从而无损地引入词汇信息

FLAT刚出炉之际,在MSRA-NER任务中,FLAT+BERT登顶榜首;而单独的FLAT(1层TransFormer)也超越了预训练模型ERNIE。

模型结构

由之前的分析可知,Lattice-LSTM采取的RNN结构难以捕捉长距离依赖,同时引入词汇信息是有损的,同时动态的Lattice结构也不支持GPU并行。

使用lattice引入词汇信息有2种:

  • 设计特定模型以兼容lattice输入,比如 lattice LSTM和 LR-CNN。比如lattice LSTM需要额外的word cell以编码潜在的word信息,在每个节点以注意力机制动态融入数量可变的节点信息,如Figure 1(b)所示。LR-CNN使用CNN的不同尺寸的Window来对潜在的词汇信息编码。但是,CNN和RNN都难以建模长程依赖关系,而这在NER中很重要。此外,像lattice LSTM这种动态结构难以GPU并行。
  • 将 lattice 转为图结构,再使用图神经网络将词汇信息进行encode,比如CGN和LGN。图结构虽然是通用结构,但是对于NER任务来说顺序结构至关重要,两者间的差距不容忽视。基于图结构的方法通常需要使用LSTM作为底层encoder来捕捉顺序性,这使得模型结构更为复杂。

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

改进1:Flat-Lattice Transformer,无损引入词汇信息
改进2:相对位置编码,让Transformer适用NER任务

将Lattice结构平铺

文章将Lattice结构平铺为一序列的span,这些span有3种类型:token、head和tail。一个token可以是字也可以词,如Figure 1(c)所示。head和tail分别表示token在原始句子中的起始和终止索引位置。对于字符token,head和tail值相同。通过这种方式可以记录token在lattice结构中的位置,且易于重建回原始的lattice结构,因此这种平铺的结构能够完全保留原始lattice结构信息。正因为如此,FLAT可以直接建模字符与所有匹配的词汇信息间的交互,例如,字符[药]可以匹配词汇[人和药店][药店]

image.png

span的相对位置编码

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

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

image.png

但是,原生Transformer的绝对位置编码本身缺乏方向性。向量点积(inner dot)的交换性使得self-attention在方向性上有信息损失,因此文章使用相对位置编码。

为encoder不同span之间的交互,文章对span使用相对位置编码。2个span $x_i$和$x_j$之间3种关系:相交、包含、独立。这些关系取决于heads和tails值。文章中使用dense vector来对他们之间的关系进行建模。头部和尾部信息不仅可以表示两个token的关系,还能够表示一些更详细的信息,例如一个字符和一个单词之间的距离。
假定$head[i]$和$tail[i]$表示spand $x_i$的头部和尾部位置,spand $x_i$和spand $x_j$之间有4种距离:

$$ \begin{aligned} d_{i j}^{(h h)} &=h e a d[i]-h e a d[j], \\ d_{i j}^{(h t)} &=h e a d[i]-\operatorname{tail}[j] \\ d_{i j}^{(t h)} &=\operatorname{tail}[i]-h e a d[j] \\ d_{i j}^{(t t)} &=\operatorname{tail}[i]-\operatorname{tail}[j] \end{aligned} $$
其中 $d_{i j}^{(h h)}$ 表示head $x_i$ 和 tail $x_j$之间的距离,$d_{i j}^{(h t)}, d_{i j}^{(t h)}, d_{i j}^{(t t)}$同理。 这两个spand最终的相对位置编码是上述4个距离的简单非线性变换:

$$ R_{i j}=\operatorname{ReLU}\left(W_r\left(\mathbf{p}_{d_{i j}^{(h h)}} \oplus \mathbf{p}_{d_{i j}^{(t h)}} \oplus \mathbf{p}_{d_{i j}^{(h t)}} \oplus \mathbf{p}_{d_{i j}^{(t t)}}\right)\right), $$

其中 $W_r$ 是待学习的参数, $\oplus$表示拼接操作, $\mathbf{p}_d$与原生的Transformer相同:

$$ \begin{array}{r} \mathbf{p}_d^{(2 k)}=\sin \left(d / 10000^{2 k / d_{\text {model }}}\right) \\ \mathbf{p}_d^{(2 k+1)}=\cos \left(d / 10000^{2 k / d_{\text {model }}}\right) \end{array} $$
其中 $d$ 表示 $d_{i j}^{(h h)}, d_{i i}^{(h t)}, d_{i j}^{(t h)}$ 或 $d_{i j}^{(t t)}$,$k$表示位置编码各个维度的索引。再使用XLNet中的的自注意力机制使用span相对位置编码:

$$ \begin{aligned} \mathbf{A}_{i, j}^* &=\mathbf{W}_q^{\top} \mathbf{E}_{x_i}^{\top} \mathbf{E}_{x_j} \mathbf{W}_{k, E}+\mathbf{W}_q^{\top} \mathbf{E}_{x_i}^{\top} \mathbf{R}_{i j} \mathbf{W}_{k, R} \\ &+\mathbf{u}^{\top} \mathbf{E}_{x_j} \mathbf{W}_{k, E}+\mathbf{v}^{\top} \mathbf{R}_{i j} \mathbf{W}_{k, R}, \end{aligned} $$

其中 $\mathbf{W}_q, \mathbf{W}_{k, R}, \mathbf{W}_{k, E} \in \mathbb{R}^{d_{\text {model }} \times d_{\text {head }}}$,$\mathbf{u}, \mathbf{v} \in \mathbb{R}^{d_{\text {head }}}$是待学习的参数。

image.png

相关文章
|
机器学习/深度学习 编解码 自然语言处理
Vision Transformer 必读系列之图像分类综述(二): Attention-based(上)
Transformer 结构是 Google 在 2017 年为解决机器翻译任务(例如英文翻译为中文)而提出,从题目中可以看出主要是靠 Attention 注意力机制,其最大特点是抛弃了传统的 CNN 和 RNN,整个网络结构完全是由 Attention 机制组成。为此需要先解释何为注意力机制,然后再分析模型结构。
831 0
Vision Transformer 必读系列之图像分类综述(二): Attention-based(上)
|
存储 机器学习/深度学习 算法
语义检索系统排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练单塔模型
语义检索系统排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练单塔模型
语义检索系统排序模块:基于ERNIE-Gram的Pair-wise和基于RocketQA的CrossEncoder训练单塔模型
|
机器学习/深度学习 算法 数据可视化
深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
 过去几年,在经典数据集PASCAL上,物体检测的效果已经达到 一个稳定水平。效果最好的方法是融合了多种低维图像特征和高维上 下文环境的复杂集成系统。在这篇论文里,我们提出了一种简单并且 可扩展的检测算法,可以在VOC2012最好结果的基础上将mAP值提 高30%以上——达到了53.3%。
166 0
深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
|
人工智能 自然语言处理 PyTorch
NLP文本匹配任务Text Matching [有监督训练]:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践
NLP文本匹配任务Text Matching [有监督训练]:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践
NLP文本匹配任务Text Matching [有监督训练]:PointWise(单塔)、DSSM(双塔)、Sentence BERT(双塔)项目实践
|
人工智能 JSON 缓存
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度
MiniRBT中文小型预训练模型:结合了全词掩码(Whole Word Masking)技术和两段式知识蒸馏(Knowledge Distillation)技术,加快推理速度
|
自然语言处理 算法 搜索推荐
基于Milvus+ERNIE+SimCSE+In-batch Negatives样本策略的学术文献语义检索系统
基于Milvus+ERNIE+SimCSE+In-batch Negatives样本策略的学术文献语义检索系统
基于Milvus+ERNIE+SimCSE+In-batch Negatives样本策略的学术文献语义检索系统
|
机器学习/深度学习 资源调度 自然语言处理
|
机器学习/深度学习 数据挖掘 API
【OpenVI—论文解读系列】细粒度分类SoftTriple Loss ICCV高引论文深入解读
SoftTriple Loss论文是在图像细粒度分类领域提出了新型度量学习方法,该方法可以被广泛应用于各种搜索、识别等领域中,目前谷歌学术引用240+,相对高引。相比原始论文文档,本文将介绍更多研究过程中遇到的问题点以及相应创新方法的演进历史。
6383 1
|
机器学习/深度学习 自然语言处理 算法
论文解读系列| 05:【NER】SoftLexicon模型详解
SoftLexicon是一种简单而有效的将词汇信息纳入字符表示的方法。这种方法避免设计复杂的序列建模结构,并且对于任何NER模型,它只需要细微地调整字符表示层来引入词典信息。在4个中文NER基准数据集上的实验结果表明,该方法的推理速度比现有SOTA方法快6.15倍,性能更好。
|
机器学习/深度学习 自然语言处理 资源调度
论文解读系列| 06:【NER】LatticeLSTM模型详解
Lattice LSTM模型是基于词汇增强方法的中文NER的开篇之作。在该模型中,使用了字符信息和所有词序列信息,具体地,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。这种方式可以避免因分词错误导致实体识别错误,在中文NER任务上有显著效果。