经典重温:《Attention Is All You Need》详解

关注公众号,发现CV技术之美

本文位52CV粉丝投稿。

原博客地址:https://blog.csdn.net/michaelshare/article/details/124178685

该篇文章由谷歌大脑团队在17年提出,目的是解决对于NLP中使用RNN不能并行计算(详情参考《【译】理解LSTM(通俗易懂版)》),从而导致算法效率低的问题。该篇文章中的模型就是近几年大家到处可以听到的Transformer模型。


      01      

算法介绍前的说明


由于该文章提出是解决NLP(Nature Language Processing)中的任务,例如文章实验是在翻译任务上做的。为了CV同学更好的理解,先简单介绍一下NLP任务的一个工作流程,来理解模型的输入和输出是什么。

1.1 CV模型的输入和输出

首先拿CV中的分类任务来说,训练前我们会有以下几个常见步骤:

  1. 获取图片

  2. 定义待分类的类别,用数字标签或者one-hot向量标签表示

  3. 对图片进行类别的标注

  4. 图片预处理(翻转、裁剪、缩放等)

  5. 将预处理后的图片输入到模型中

所以对于分类任务来说,模型的输入为预处理过的图片,输出为图片的类别(一般为预测的向量,然后求argmax获得类别)。

1.2 NLP模型的输入

在介绍NLP任务预处理流程前,先解释两个词,一个是tokenize,一个是embedding。

tokenize是把文本切分成一个字符串序列,可以暂且简单的理解为对输入的文本进行分词操作。对英文来说分词操作输出一个一个的单词,对中文来说分词操作输出一个一个的字。(实际的分词操作多有种方式,会复杂一点,这里说的只是一种分词方式,姑且这么定,方便下面的理解。)

embedding是可以简单理解为通过某种方式将词向量化,即输入一个词输出该词对应的一个向量。(embedding可以采用训练好的模型如GLOVE等进行处理,也可以直接利用深度学习模型直接学习一个embedding层,Transformer模型的embedding方式是第二种,即自己去学习的一个embedding层。)

在NLP中,拿翻译任务(英文翻译为中文)来说,训练模型前存在下面步骤:

  1. 获取英文中文对应的句子

  2. 定义英文词表(常用的英文单词作为一个类别)和中文词表(一个字为一个类别)

  3. 对中英文进行分词

  4. 将分好的词根据步骤2定义好的词表获得句子中每个词的one-hot向量

  5. 对每个词进行embedding(输入one-hot输出与该词对应的embedding向量)

  6. embedding向量输入到模型中去

所以对于翻译任务来说,翻译模型的输入为句子每个词的one-hot向量或者embedding后的向量(取决于embedding是否是翻译模型自己学习的,如果是则输入one-hot就可以了,如果不是那么输入就是通过别的模型获得的embedding向量)组成的序列,输出为当前预测词的类别(一般为词表大

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值