当前位置:网站首页>NER(命名体识别)之 FLAT模型
NER(命名体识别)之 FLAT模型
2022-08-02 14:07:00 【lq_fly_pig】
目录
近两年的顶会paper,适用于NER场景,bert模型的性能提升
FLAT(FLAT: Chinese NER Using Flat-Lattice Transformer)是ACL2020的一篇论文,来自于复旦大学邱锡鹏老师团队,FLAT的基本思想来源于Lattice-LSTM
二、Lattice-LSTM简要介绍
Lattice-LSTM 是中文NER 引入外部知识的开篇之作,具体的操作如下:
首先是通过词典进行匹配,找出query中的词汇,“重庆人和药店”,匹配的词汇,重庆、药店、人和药店

词汇信息融合到LSTM的模型中如下:

Lattice是一个有向无环图(DAG),Lattice LSTM则将序列中的词汇信息(word-level)融入到了字信息(char-level)中,Lattice LSTM会将“重庆”的word embedding融入到对应序列中的“庆”的word embedding中,会将“人和药店”的 word embedding和药店的 word embedding 融入到 店的 embedding中,即词语的信息会融入到该词语对应的最后一个字的序列信息中。
Lattice LSTM引入了一个word cell结构,对于当前字符,融合以该字符结束的所有word信息
对于每一个字符,L attice LSTM 采取注意力机制融合个数可变word cell单元。
若当前字符没有词汇引入时,则采取原生的LSTM进行计算。当有词汇信息时,Lattice LSTM并没有利用前一时刻的记忆向量 ,即不保留对词汇信息的持续记忆。
核心就是采用了两个LSTM模型结构对char-level的字信息和word-level的词信息分别进行编码,然后将词语信息融入到每个词语中最后一个字的编码信息中
注意一点:
(1) .当前字符没有其他word单词embed输入,则直接使用原始的LSTM的机制进行信息传
(2).当前字符有 word级别的单词信息输入,使用论文中使用的计算公式,且没有使用上一个时刻的记忆向量,即不保留对词汇的持续记忆
总结:
1. lattice-lstm首次使用外部词汇信息,但是存在一定的局限性,迁移复制较难,只是使用于LSTM模型
2.计算性能低下,不能batch并行化。主要是每个字符之间的增加word cell(看作节点)数目不一致,中间的word cell的个数不确定,没办法做到batch化
3.信息丢失,每个字符只能获取以它为结尾的词汇信息,对于其之前的词汇信息也没有持续记忆
三、FLAT模型介绍
主要是讲解Bert-flat论文:《https://arxiv.org/pdf/2004.11795.pdf》

Motivation:
1.优雅的引入外部知识
2.解决lattice- LSTM的问题(上文已经提到)
3.利用transform长距离依赖的优势,以及预训练模型的优势,提升NER的性能
4.为lattice结构设计了一个巧妙的位置编码,使用相对位置编码
具体的操作:
1.每一个token和词汇都是具有head和tail的位置信息,如上图中的例子:
重 (token)-> head = 1, tail = 1
庆 (token)-> head = 2, tail = 2
重庆(词汇)-> head = 1, tail = 2
人和药店 (词汇)-> head = 3, tail = 6
通过以下四种相对距离来表示
和
之间的关系

得到四种距离表达矩阵,
,
,
,
,例如
表示
的头部到
头部的距离。其他类似,得到的相对位置encoding编码为

表示的是学习参数,
表示的是Transformer中的绝对位置编码,如下:

然后作者采用了Transformer-XL (ACL 2019)中提出的基于相对位置编码的self-attention,(改进后的self-attention)

边栏推荐
猜你喜欢
随机推荐
C语言日记 3 常量
LLVM系列第二十六章:理解LLVMContext
Visual studio代码中有红色波浪线解决办法
MySQL知识总结 (三) 索引
Spark_DSL
MapReduce流程
无人驾驶综述:摘要
可以拖拽的ViewGroup,仿微信拖拽缩放关闭
MySQL知识总结 (二) 存储引擎
关于spark
5.使用RecyclerView优雅的实现瀑布流效果
spark写sql的方式
关于UDF
LLVM系列第二十一章:写一个简单的Loop Pass
数据的表示方法和转换(二进制、八进制、十进制、十六进制)
PHP版本切换:5.x到7.3
C语言初级—判断一个数是不是素数(函数封装)
浏览器报错数字代表的大概意思
VS Code远程开发及免密配置
LLVM系列第二十三章:写一个简单的运行时函数调用统计器(Pass)




![[VCU] Detailed S19 file (S-record)](/img/00/ccff024d919398230f9b876c60acf6.png)




