©作者 | 陈萍、杜伟

来源 | 机器之心

在提交给 ACL 的一篇匿名论文中,研究者用潜在 n-gram 来增强 Transformer。

Transformer 模型已成为自然语言处理任务的基础模型之一,最近研究者开始把注意力转移到对这些模型的扩展上。然而,这些大型 Transformer 语言模型的训练和推理成本高昂,令人望而却步,因此我们需要更多变体来消除这些不利因素。

近日,一篇匿名提交给自然语言处理顶会 ACL 的论文《 N-grammer: Augmenting Transformers with latent n-grams 》中,研究者受到统计语言建模的启发,通过从文本序列的离散潜在表示构建 n-gram 来增强模型,进而对 Transformer 架构进行了一个简单而有效的修改,称为 N-grammer。

具体地,N-grammer 层通过在训练期间将潜在 n-gram 表示合并到模型中来提高语言模型的效率。由于 N-grammer 层仅在训练和推理期间涉及稀疏操作,研究者发现具有潜在 N-grammer 层的 Transformer 模型可以匹配更大的 Transformer,同时推理速度明显更快。在 C4 数据集上对语言建模的 N-grammer 进行评估表明,本文提出的方法优于 Transformer 和 Primer 等基准。

论文地址:

https://openreview.net/pdf?id=GxjCYmQAody

N-grammer 层

在网络高层次上,该研究引入了一个简单的层,该层基于潜在 n-gram 用更多的内存来增强 Transformer 架构。一般来说,N-grammer 层对于任意 N-gram 来说已经足够了,该研究仅限于使用 bi-gram,以后将会研究高阶 n-gram。这个简单的层由以下几个核心操作组成:

  • 给定文本的 uni-gram 嵌入序列,通过 PQ (Product Quantization)推导出离散潜在表示序列;

  • 推导潜在序列 bi-gram 表示;

  • 通过哈希到 bi-gram 词汇表中查找可训练的 bi-gram 嵌入;

  • 将 bi-gram 嵌入与输入 uni-gram 嵌入相结合。

此外,当提到一组离散项时,该研究使用符号 [m] 表示集合{0,1,···,m−1}。

序列的离散潜在表示

第一步,N-grammer 层从给定的输入嵌入序列学习 Codebook,获得具有乘积量化(Product Quantization,PQ)(Jegou 等人,2011 年)的离散潜在表示的并行序列。输入嵌入是一个 uni-gram 嵌入序列 x ϵ R^( l×h×d ),其中 l 是序列长度,h 是头数量,d 是每个头嵌入维度。该研究在 R^ k×h×d 中学习了一个 Codebook c,通过相同的步骤,该研究选取距离输入嵌入最小的 code book ID,形成序列 x 的离散潜在表示 z ϵ[k]^l×h 的并行序列:

离散潜在表示 Bi-gram ID

第二步是将离散潜在表示 z 转换为 bi-gram ID b ϵ [k^2 ]^( l×h )。它们通过组合来自前一个位置的 uni-gram 潜在 ID z,然后在当前位置形成潜在 bi-gram ID:

其中 k 是 codebook 大小,这直接将离散潜在序列从词汇空间[k] 映射到潜在 bi-gram 词汇空间 [k^2 ] 。

构建 bi-gram 表示

第三步是构建序列 bi-gram 潜在表示 b。考虑所有的 k^2 bi-gram,并通过对每个这样的 bi-gram 嵌入来增强模型。在实践中,对于 uni-gram 词汇为 32,000 的机器翻译模型压缩,在不牺牲质量的情况下,需要将 187 个 token 聚类为 k = 212 个 cluster。在这种情况下,需要考虑所有的 bi-gram,涉及构建一个包含 1600 万行的嵌入表。由于所构建的表仍然很大,该研究通过对每个头使用单独的哈希函数,将潜在 bi-gram ID 映射到大小为 v 的较小的 bi-gram 词汇表。

更准确地讲,该研究有一个潜在 bi-gram 嵌入表 B ϵ R^v×h×d_b,其中 v 为 bi- gram 词汇,d_b 为 bi-gram 嵌入维度。然后将文本序列 bi-gram 嵌入构建为:

与嵌入进行结合

最后一步是将 uni-gram 嵌入 x ϵ R^(l×h×d)与潜在 bi-gram 嵌入 y∈R^(l×h×db)相结合,形成文本序列新表示。bi-gram 嵌入和 uni-gram 嵌入都是独立的层归一化(LN),然后沿着嵌入维度连接两者以产生 w = [LN(x), LN(y)] ϵ R^l×h×(d+db) ,并将其作为输入传递给 Transformer 网络的其余部分。

实验结果

该研究在 C4 数据集上将 N-grammer 模型与 Transformer 架构(Vaswani 等人,2017 年)以及最近提出的 Primer 架构(So 等人,2021 年)进行了比较。其中,该研究使用 Adam 优化器,所有模型的学习率为 10^-3,而对于 n-gram 嵌入表,学习率为 10^-2。

下表 1 比较了 N-grammer、Primer 和 Transformer 模型,其中基线 Transformer 模型有 16 层和 8 个头,模型维度为 1024。研究者在 TPU v3 上以 256 的批大小和 1024 的序列长度训练所有模型。研究者对 N-grammer 模型进行了消融研究,bi-gram 嵌入维度大小从 128 到 512 不等。由于添加 n-gram 嵌入增加了可训练参数的数量,该研究还在表 1 中训练了两个大基线(Transformer-L 和 Primer-L),它们的参数顺序与 N-grammer 模型相同。然而,与较大的 Transformer 模型不同,N-grammer 的训练和推理成本与嵌入层中的参数数量不成比例,因为它们依赖于稀疏操作。

该研究还测试了一个简单版本的 N-grammer,研究者直接从 uni-gram 词汇表(3.3 节中的)而不是从潜在表示中计算 n-gram(3.1 节的)。由表 1 可知,它对应于在 clusters 列中没有条目的 N- grammer。

特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

引入N-gram改进Transformer架构,ACL匿名论文超越Primer等基准相关推荐

  1. 完全基于Transformer的目标检测器,ICLR匿名论文实现视觉、检测统一

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨机器之心 编辑丨极市平台 导读 一种新的集成视觉和检测 Tra ...

  2. Transformer架构:位置编码

    2017年,Google的Vaswani 等人提出了一种新颖的纯注意力序列到序列架构,闻名学术界与工业界的 Transformer 架构横空出世.它的可并行化训练能力和优越的性能使其成为自然语言处理领 ...

  3. 【读点论文】EfficientFormer: Vision Transformers at MobileNet Speed,运用纯transformer架构对比卷积模型在终端上部署的推理速度

    EfficientFormer: Vision Transformers at MobileNet Speed Abstract 视觉transformer(ViT)在计算机视觉任务中取得了快速的进展 ...

  4. Transformer 架构逐层功能介绍和详细解释

    来源:Deephub Imba 本文共2700字,建议阅读5分钟 本文能让你对Transformer的整体架构有所了解. 多年来,深度学习一直在不断发展.深度学习实践高度强调使用大量参数来提取有关我们 ...

  5. 谷歌将AutoML应用于Transformer架构,翻译结果飙升,已开源!

    来源:新智元 本文约1600字,建议阅读8分钟. Evolved Transformer不仅实现了最先进的翻译结果,与原始的Transformer相比,它还展示了语言建模的改进性能. [ 导读 ]为了 ...

  6. 微软发布史上最大NLG模型:基于Transformer架构,170亿参数加持

    2020-02-11 18:50 导语:史上最大! 近年来,BERT.GPT-2等深度学习语言模型,极大地提高了问答.摘要.人机对话等下游自然语言处理任务的性能. 而今天,微软研究院重磅发布了有史以来 ...

  7. 谷歌将AutoML应用于Transformer架构,翻译结果飙升,已开源

    https://www.toutiao.com/a6702613730661761548/ 2019-06-15 12:44:29 [新智元导读]为了探索AutoML在序列域中的应用是否能够取得的成功 ...

  8. 已开源!谷歌将AutoML应用到Transformer架构,实现机器翻译最佳性能

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI AutoML在NLP领域中的应用又多了新资源. 谷歌最新博客表示,此前在语言建模和翻译等序列任务中,Transformer架构已经展现出了极 ...

  9. 谷歌大改Transformer注意力,速度、内存利用率都提上去了-新的 Transformer 架构——Performer

    原文地址:https://www.jiqizhixin.com/articles/2020-10-28-10 Transformer 有着巨大的内存和算力需求,因为它构造了一个注意力矩阵,需求与输入呈 ...

最新文章

  1. js 设计模式与继承学习
  2. C#百度OCR-本地和网络图片识别文字
  3. 我国科学家首次揭示“时空”记忆在猕猴大脑中表征的几何结构
  4. 洪小文: 今天的AI只是一个黑盒,仍需与HI密切配合
  5. 又拍云上传文件后,如何访问?
  6. 蓝桥杯java最小公倍数_蓝桥杯算法训练 最大最小公倍数
  7. S/4HANA Adapt UI按钮的实现逻辑
  8. 我做的百度飞桨PaddleOCR .NET调用库
  9. 怎样把php网站转为h5,【php】php如何把网页中的一部分生成.jpg
  10. Hibernate多列作为联合主键(六)
  11. 4 数据操作+数据预处理
  12. 《CSS权威指南(第3版)》要点摘记
  13. 最强面试题整理第三弹:Python 后台开发面试题(附答案)
  14. 农历24节气日期计算公式
  15. 计算机搜索功能在分区里失灵,DiskGenius搜索已丢失分区(重建分区表)
  16. Gitee 多人协作开发教程
  17. 好评率过低的店铺在以后将越来越难以生存
  18. 2022年终总结与展望
  19. 服务器光信号灯亮红灯,路由器光信号闪红灯是怎么回事
  20. docker下安装kong和konga

热门文章

  1. 连招 横版 flash 游戏_街机游戏中的无限连究竟有多变态?有种对决叫作没开始就结束了!...
  2. app vue 真机运行_uni-app黑魔法:小程序自定义组件运行到H5平台
  3. php 笔试 龙腾简合_记录面试龙腾简合-java开发工程师经历
  4. js取对象属性需注意
  5. linux虚拟文件系统vfs
  6. 由我妈买菜,联想到了数据挖掘
  7. [Jmeter]通过批处理调用java,java从CSV动态读取登录的用户名和密码,并将其作为参数组合成字符串,写入外部.bat文件,然后通过Java执行这个外部批处理文件...
  8. svn里ignore不需要提交的用户文档
  9. C#开发XML WebService接口(SOAP)
  10. day10 in india