Motivation
Transformer最大的问题在于没有办法建模超过最大长度的序列,例如base bert其支持的序列最大长度是512,超过了该长度的序列需要进行截取,再把截取后的片段分别用bert进行编码,该方法虽然可行,但是存在上下文碎片化的问题,也就是说每个片段是单独建模的,互相之间没有上下文信息,并且,不同的片段位置编码都是从0开始,明显是有问题的。

可见Transformer对于较长的序列建模能力有限,如何解决该弊端就该Transformer-XL大显身手了。

Transformer-XL
Transformer-XL主要提出了两个优化点

·Segment-Level Recurrence Mechanism 段级递归
·Relative Positional Encodings 相对位置编码
接下来我们分别看下两个优化点是如何做的

1、Segment-Level Recurrence Mechanism
在讲解第一个优化点之前,我们简单回顾下vanilla transformer,在训练阶段如果要对多个片段编码,其训练过程如下图,可以看到,两个片段没有相互依赖,上下文信息会丢失,不同的片段位置编码一样,因此也不准确。

为了解决固定长度的限制,Transformer-XL提出了一种递归机制,如下图,第一个segment计算完成后,把计算的结果保存下来,在计算第二个片段的时候,把第一个片段的hidden state和第二个片段的hidden state拼接在一起,再进行后续的计算。

其中h表示的是hidden state,τ 表示第τ 个segment,SG函数表示的是不更新梯度,[]表示的是向量的拼接,第一个公式的意思即:第τ + 1 \tau +1τ+1个segment第n-1层的hidden state 等于第τ \tauτ个segment第n-1层的hidden state拼接上第τ + 1 \tau +1τ+1个segment第n-1层的hidden state,后续两个公式和vanilla版本类似,但要注意,q是未拼接的hidden state,k、v是拼接过后的,因为q表示的是当前的segment,所以不需要拼接。

Transformer-XL 2相关推荐

  1. transformer xl在文本生成上面的应用

    Transformer_xl相关介绍:https://zhuanlan.zhihu.com/p/84159401 从文本生成看Seq2Seq模型:https://zhuanlan.zhihu.com/ ...

  2. transformer xl 用于文本生成

    本文尝试用transformer xl做中文文本续写,基于论文为:<Transformer-XL: Attentive Language Models Beyond a Fixed-Length ...

  3. Transformer的前世今生

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来自 | 炼丹笔记干货   作者 | Lilian Transfor ...

  4. 命名实体识别新SOTA:改进Transformer模型

    2019-11-27 05:02:16 作者 | 刘旺旺 编辑 | 唐里 TENER: Adapting Transformer Encoder for Name Entity Recognition ...

  5. 【NLP】Transformer大家庭简介!

    炼丹笔记干货 作者:Lilian Transformer Family 01 准备 02 Attention 以及 Self-Attention 1.Attention 是神经网络中的一种机制:模型可 ...

  6. 非常详细的transformer笔记,包括XLNet, MT-DNN, ERNIE, ERNIE2, RoBERTa

    华校专老师更新了个人笔记,增加了 Transformer笔记,包含XLNet, MT-DNN, ERNIE, ERNIE2, RoBERTa 等内容,内容十分详细,非常值得学习,特此推荐. 作者华校专 ...

  7. 超全!一文看懂 9 种Transformer结构!

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者丨Lilian 来源丨炼丹笔记 AI博士笔记系列推荐 周 ...

  8. 不得不看!降低Transformer复杂度的方法

    作者 | Chilia 整理 | NewBeeNLP 首先来看一下原始Transformer的复杂度 self-attention复杂度 记:序列长度为n,一个位置的embedding大小为d.例如( ...

  9. TENER: Adapting Transformer Encoder for Name Entity Recognition

    TENER: Adapting Transformer Encoder for Name Entity Recognition 来源:arxiv 链接:https://arxiv.org/pdf/19 ...

  10. 这六大方法,如何让 Transformer 轻松应对高难度长文本序列?

    2020-06-08 05:24:09 编译 | Mr Bear 编辑 | 丛末 众所周知,多头注意力机制 (Multi-Head Self-Attention) 的计算开销很大.在处理长度为 n 的 ...

最新文章

  1. 更加安全的存取账户密码
  2. 文件 IO 中如何保证掉电不丢失数据?
  3. 无线分类新写法,是不是很吊@!
  4. php接口图片转二进制,怎么在php项目中对图片进行二进制转换
  5. 全球及中国仪器润滑剂行业十四五竞争形势与投资战略咨询报告2021-2027年版
  6. iphone储存空间系统怎么清理_教你快速清理 iPhone 系统缓存垃圾,拒绝卡顿!
  7. resnet结构_来聊聊ResNet及其变种
  8. python实现查询mac号对应的OUI厂商信息
  9. 12届毕业生回顾我的2012年,给2013届同学一点启迪
  10. ali arthas 火焰图_阿里巴巴 Arthas 3.1.5版本支持火焰图,快速定位应用热点
  11. P1279 字串距离 (动态规划)
  12. NoWritableEnvsDirError: No writeable envs directories configured.
  13. Why School Essay 写作指南
  14. 机器学习入门好文,强烈推荐
  15. 清理了一毒窝,基本上能中的全中了
  16. 元宇宙持续升温,金蝶推出数字员工破圈而来
  17. HIT-SC-Lab1 Convex Hull的算法实现(JAVA)
  18. JavaScript 常用数组方法及使用技巧「数组的力量隐藏在数组方法中,必收藏」
  19. 目前国内可用的前端库及Zdir自建前端库
  20. 精华【分布式微服务云架构dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!

热门文章

  1. 元素可视区client系列(附实例)
  2. 用自定义IHttpModule实现URL重写 1
  3. [POI2007]ODW-Weights(贪心)
  4. 【读书笔记《Bootstrap 实战》】6.单页营销网站
  5. Tiny服务的开发配套的工具来了
  6. arcgis中给属性文件加x y坐标
  7. PHP 遍历文件夹及文件类及处理类
  8. 让SQL2000的查询分析器能够直接编辑SQL2005的视图或存储过程
  9. 如何参加GoToMeeting在线会议
  10. (转自珊珊博客)甜甜蜜蜜走台湾 Day3