中文NLP的一个问题,就是中文的字除了句句之间有标点符号之外都是连在一起的,不像英文词语是单独分割的。中文NLP处理一般会有2种方式:

  1. 基于字的,char-level。现在比较常用的方法,但会缺少词组的语义信息。

  1. 基于词的,word-level。词组一般是切词来的,相比字有更多的信息。但切词会引入错误词组。同时会有OOV的问题。

这2者有各自的优点和缺点。那有没有办法将2者进行结合呢?

Lattice LSTM

《Chinese NER Using Lattice LSTM》 2018

  1. 基于char-level的BiLSTM-CRF模型如下:

  1. 基于word-leve的BiLSTM-CRF模型如下:

  1. Lattice LSTM是一个有向无环图(DAG),将序列中的词汇信息(word-level)融入到了字信息(char-level)中。具体做法是将词汇信息融入到该词汇最后一个字的信息中。比如,如下图所示,它会将“南京市”的word embedding融入到“市”的word embedding中。

对于每个字符来说,会融合以该字符结束的所有词汇word信息,如对于「桥」融合了「长江大桥」和「大桥」信息。这里,词汇word个数不定,并采用注意力机制的方式进行融合。

Lattice LSTM有效的在char-level的基础上,融入word-level信息,并且不过分依赖word-level信息,避免因切词错误带来的传播误差。但其也存在一些缺点,比如1)性能差,batch不能并行,因为每个字符融合的word个数不一致;2)每个字符只记忆以其结尾的word,对于之前的词汇并无记忆;3)只使用lstm,无法迁移到其他模型。

FLAT

《FLAT: Chinese NER Using Flat-Lattice Transformer》2020

Flat-Lattice (展平的Lattice结构),是Lattice LSTM网络的展平的版本。FLAT为lattice结构引入了position encoding,对一个token增加了head position和end position。

我们可以看下如下2张图,图1是Lattice LSTM结构,图2是FLAT Lattice结构。我们可以想象一下,将图2中首尾位置相同的(比如‘重’)取出形成一条链,然后将位置不同的(比如‘重庆’)根据首尾位置信息,通过连线形成相应的跳转路径,即可得到图1的结构。

图2的这种结构有个好处,可以将图结构转换成简单的线性结构形式,从而可以并行计算,提高计算的性能。

FLAT将潜在词和输入的句子进行了拼接,潜在词和潜在词之间有 重叠、包含、分离 三种关系(例如上图中 人和药店 和 人和),采用绝对位置已经无法满足,因此本文提出相对位置关系。

位置i和位置j的相对位置计算方式如下:

Rij=RELU(Wr(pdij(h,h)⊕pdij(t,h)⊕pdij(h,t)⊕pdij(t,t)))

其中dij(h,h),dij(h,t),dij(t,h),dij(t,t)分别描述了单词和单词之间的关系。

dij(h,h)=head[i]−head[j]

dij(h,t)=head[i]−tail[j]

dij(t,h)=tail[i]−head[j]

dij(t,t)=tail[i]−tail[j]

pdij(h,h)就是对两个单词head和head之间相对关系的编码。

pd2k=sin(d/100002k/dmodel)

pd2k+1=cos(d/100002k/dmodel)

FLAT模型的整体架构如下图所示:

FLAT:Flat-LAttice Transformer相关推荐

  1. FLAT:Chinese NER Using Flat-Lattice Transformer

    摘要 近年来,汉字lattice结构被证明是一种有效的中文命名实体识别方法.然而,由于网格结构的复杂性和动态性,现有的基于网格的模型难以充分利用gpu的并行计算能力,推理速度通常较低.在本文中,我们提 ...

  2. 论文阅读《FLAT:Chinese NER Using Flat-Lattice Transformer》

    总结 flat的源码你确定你能看懂??各种调库的操作对小白也太不友好了吧~ 本博客分成两部分,第一部分(part1)主要描述了一下复现flat可以参考的文档,数据集等:第二部分(part2)主要讲了论 ...

  3. FLAT:中文NER屠榜之作!

    文 | JayLou娄杰 编 | YY 近年来,引入词汇信息逐渐成为提升中文NER指标的重要手段.ACL2020中一篇来自复旦大学邱锡鹏老师团队的 FLAT: Chinese NER Using Fl ...

  4. 【论文解读系列】NER方向:FLAT (ACL 2020)

    更多.更及时内容欢迎留意微信公众号: 小窗幽记机器学习 文章目录 模型结构 将Lattice结构平铺 span的相对位置编码 FLAT(2020) FLAT 出自 ACL 2020 FLAT: Chi ...

  5. Agora Flat:在线教室的开源初体验

    开发者其实很多时候都非常向往开源,开源领域的大佬也特别多,我们谈不上有多资深,也是一边探索一边做.同时,也希望可以借这次机会把我们摸索到的一些经验分享给大家. 01 Flat 是什么 Flat 是一个 ...

  6. 张俊林:BERT和Transformer到底学到了什么 | AI ProCon 2019

    演讲嘉宾 | 张俊林(新浪微博机器学习团队AI Lab负责人) 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) [导读]BERT提出的这一年,也是NLP领域迅速发展的一年.学 ...

  7. 面经:什么是Transformer位置编码?

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈安东,中央民族大学,Datawhale成员 过去的几年里,Tra ...

  8. Google综述:细数Transformer模型的17大高效变种

    作者 | 黄浴 来源 | 知乎 在NLP领域transformer已经是成功地取代了RNN(LSTM/GRU),在CV领域也出现了应用,比如目标检测和图像加注,还有RL领域.这是一篇谷歌2020年9月 ...

  9. Paper:《Spatial Transformer Networks》的翻译与解读

    Paper:<Spatial Transformer Networks>的翻译与解读 目录 <Spatial Transformer Networks>的翻译与解读 Abstr ...

最新文章

  1. LeetCode实战:求众数
  2. pycharm 选择变量画图_pycharm画图并显示
  3. 有空时深入阅读这两篇文章
  4. 英语学习笔记2019-10-11
  5. Linux输入子系统:输入设备编程指南 -- input-programming.txt
  6. sql关系数据库计算机,关系数据库语言SQL - 淮阴工学院计算机工程实验中 ….ppt...
  7. ios信息交互 协议的使用
  8. MeteoInfo 生成等值面
  9. ILOM escalation mode下的管理命令用法几输出
  10. PS抠头发妙法(原创技巧)
  11. Mac 外接键盘Command键( Windows 徽标键)失效
  12. NASA准备在2021年推出最大望远镜!哈佛用棉花糖机造“肉”?
  13. CRF as RNN
  14. 基于UE -Traffic_ SINR – Statistics — 手机在线视频流量对业务速率、小区容量影响分析
  15. 【c#】键盘事件(keypress keydown keyup)
  16. arcgis图斑尖角检查_arcgis 定位图斑,并且高亮显示
  17. ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI
  18. 基于ectd实现go的服务注册
  19. 凸优化学习:PART3凸优化问题(持续更新)
  20. 遨博协作机器人ROS开发 - Intel RealSense深度相机ROS驱动

热门文章

  1. 毕业设计 单片机MP3音乐播放器 - 物联网 嵌入式
  2. 延长数据中心使用年限的低成本方法
  3. vba根据内容调整word表格_分析报告自动化——Excel与Word数据互通
  4. Python Tkinter详解 (一)窗体的创建
  5. Android系统默认打开开发者选项中的TP触摸开关
  6. matlab一般函数的绘制方法,基于MATLAB的函数图像绘制方法
  7. python中gevent模块使用及出现MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may
  8. 变电站运维云平台系统在台商大厦的设计与应用
  9. 晨曦记账本,使用项目图表统计收支账户
  10. 一篇文章读懂 React and redux 前端开发 -DvaJS, a lightweight and elm-style framework.