论文标题:

Neural Machine Translation without Embeddings

论文作者:

Uri Shaham,Omer Levy

论文链接:

https://arxiv.org/pdf/2008.09396.pdf

代码链接:

https://github.com/UriSha/EmbeddinglessNMT (待开源)


词向量

长期以来,词向量被认为是深度学习模型下不可缺少的一部分,从Word Embedding开始,词向量被普遍认为可以建模隐空间中的语言单元的语义。

但是,发展到如今基于Transformer模型的时代,词向量更多地是被默认当做模型输入和输出的一部分。它在当今模型下的作用似乎成为了业内普遍接受的规则。

词向量在当下的使用方法是将离散的语言单元映射为连续值的向量。比如字典大小为






,那么我们就需要








的一个矩阵




去表示词向量。

在输入和输出的时候,词向量矩阵用于离散单元和模型隐藏层的“过渡”,即表示为







,其中

















是长度为




的输入句子,用one-hot表示成一个矩阵,




是位置编码,在输出的时候,就是
















是模型的最后一层得到的向量。

现在的问题是,能不能去掉输入和输出的矩阵




?也就是能不能不要词向量,直接把one-hot送入到模型中。本文通过实验回答了这个问题。

本文使用字节(Byte)编码表示输入到模型的语言单元,并且丢掉了传统的词向量,在多个语言的机器翻译任务上进行了实验。

结果表明,基于Byte编码的无词向量模型和基于BPE编码、字编码和Byte编码的有词向量模型效果没有显著区别,甚至在一些任务上还要更优。

这启发我们进一步思考对于机器翻译而言,编码的作用为何,词向量的作用为何,我们需不需要打破现在默认的词向量用法?

用Byte编码丢掉词向量

简单来说,本文使用长度为256的one-hot编码表示一个UTF-8字节(因为一个字节有8位,一共会产生256个不同的字节),这样的一个好处是不会出现OOV。

由于使用的是UTF-8编码,所以不同的语言会有不同的长度,比如英文每个字就是一个字节,阿拉伯语每个字就是两个字节,而中文每个字用三个字节表示。

但是这并不影响我们进行编码,只是对于中文而言,得到的编码后的句子会更长一些。

下图是一个使用各编码方案的例子。使用BPE编码得到的句子最短,其次是使用字编码,最后使用Byte编码会更长,因为在阿拉伯语中,每个字需要两个Byte表示。

对于一个句子,在用Byte编码处理后,可以得到一个输入One-hot矩阵















,这里




是编码处理后的句子长度。

这时候,不再需要把它和词向量矩阵相乘,只需要再加上位置编码




(如果需要的话),然后再送入模型就行了。对于输出也是同样的操作,这可以总结为:

实验

本文在IWSLT上实验,选择了10个不同的语言,对每个语言




,测试它们和英语互译的效果,即






。数据预处理、基线模型、超参设置详见原文。下表是实验结果。

首先看同样是Byte编码的有词向量模型和无词向量模型。可以看到,无词向量模型都好于有词向量模型,和字编码(Char)相比,在大多数情况下Byte+Embed-less也都更好,这说明在编码粒度较细(Char和Byte)时,不加词向量效果会更好。

再来比较有词向量的Subword和无词向量的Byte。出乎意料的是,在






的10组实验里,有8组都是Byte更好。

但是在






的10组实验里,都是Subword更好,这似乎说明英语这种语言更适合使用Subword编码。这是一个非常有趣的现象。

小结

本文探究了基于Byte编码的无词向量机器翻译的效果,实验表明,使用Byte编码时,丢掉输入和输出的词向量层都结果没有太大的影响。

实验还发现,不同的语言对编码似乎非常敏感,尤其是英语比其他语言更加适合subword编码。未来可以进一步研究不同语言的编码偏好,以及词向量在现代深度模型下的作用。

????

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

关于PaperWeekly

PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。

机器翻译中丢掉词向量层会怎样?相关推荐

  1. BERT中的词向量指南

    2019-11-19 20:50:57 作者:Chris McCormick 编译:ronghuaiyang 导读 在本文中,我将深入研究谷歌的BERT生成的word embeddings,并向你展示 ...

  2. bert获得词向量_NLP中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

    作者:JayLou,NLP算法工程师 知乎专栏:高能NLP之路 https://zhuanlan.zhihu.com/p/56382372 本文以QA形式对自然语言处理中的词向量进行总结:包含word ...

  3. 词向量与词向量拼接_nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

    本文以QA形式对自然语言处理中的词向量进行总结:包含word2vec/glove/fastText/elmo/bert. 2020年更新:NLP预训练模型的全面总结JayLou娄杰:史上最全!PTMs ...

  4. bert获得词向量_BERT中的词向量指南

    作者:Chris McCormick 编译:ronghuaiyang 导读 在本文中,我将深入研究谷歌的BERT生成的word embeddings,并向你展示如何通过BERT生成自己的word em ...

  5. nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

    本文以QA形式对自然语言处理中的词向量进行总结:包含word2vec/glove/fastText/elmo/bert. 目录 一.文本表示和各词向量间的对比  1.文本表示哪些方法? 2.怎么从语言 ...

  6. 机器翻译第一步--词向量的生成与保存

    最近在看斯坦福大学机器翻译的开源代码,琢磨着把代码稍微改动一下,做成中文到英文的翻译.机器翻译的第一步是将词转化成词向量.斯坦福大学没有做中文的转化,我只好自己想办法. 我用的是斯坦福大学的nmt-m ...

  7. NLP中的词向量及其应用

    https://www.toutiao.com/a6643219722961682947/ 2019-01-06 11:25:24 词向量基本上是一种单词表示形式,它将人类对语言的理解与机器的理解连接 ...

  8. NLP中的词向量总结与实战:从one-hot到bert

    写在前面 之前写的关于NLP基础词向量的笔记,这次更新一下.从最简单的one-hot到目前效果惊人的BERT进行整理对比,加深对基础的理解.词向量的表示方法由低级至高级可以分为以下几个部分: Bag ...

  9. 自然语言处理︱简述四大类文本分析中的“词向量”(文本词特征提取)

    笔者在看各种NLP的论文.文献.博客之中发现在应用过程中,有种类繁多的词向量的表达.笔者举例所看到的词向量有哪些. 词向量一般被看做是文档的特征,不同词向量有不同的用法,本文介绍了四类词向量: Has ...

最新文章

  1. mysql-cluster 安装配置
  2. oracle mysql事物隔离级别_Oracle数据库事物隔离级别
  3. 马斯克炮轰元宇宙与Web3.0:“我不觉得有人会成天把屏幕绑在脑袋上”
  4. 存储过程如何处理异常
  5. 打印对象和toString方法
  6. Python: 绝对导入 Absolute Imports
  7. php gif上传后不动,GIF图片上传后不动的解决办法
  8. JAVA进阶教学之(String类的常用方法)
  9. 【Android开发坑系列】之PopupWindow
  10. React中refs的理解
  11. cuda 图片拆分_急需,PDF怎么拆分啊?
  12. android 监听fling,[安卓]Android Recycler Fling解析
  13. (转)MTK_面试的几个主要问题 必看
  14. BOM,DOM, JS,JQ
  15. 算法竞赛入门经典训练指南 pdf
  16. 人大金仓数据库Docker部署
  17. Android中JNI调用过程简述
  18. 如何用word制作英语答题卡_初中英语考试答题卡可编辑WORD版
  19. 解决C语言运行窗口一闪而过问题
  20. 医院信息化建设历程(4)面向管理的全院级应用阶段

热门文章

  1. java8 lambda 视频_一文搞懂Java8 Lambda表达式(附带视频教程)
  2. db2去除字段内容空格_Vue CLI3.x 配置指南生产环境去除console
  3. linux 清空catalina.out日志 不需要重启tomcat(五种方法)【转】
  4. The 2016 ACM-ICPC Asia China-Final Contest Promblem D
  5. GitHub网站使用的基础入门
  6. iOS并发编程指南之同步
  7. 写程序过程中写程序的注意事项
  8. Silverlight中调用WebService-发送邮件测试实例
  9. Fast Realtime Subsurface Scattering Skin Rendering
  10. Web服务初探:用Demo学Web服务系列(7)——XML的相关知识