谈到Transformer,你或许会想起《变形金刚》里随意切换形态的炫酷汽车人。
其实,人工智能领域也有著名的Transformer,它在机器翻译任务上的表现异常出色。
2017年谷歌在arxiv发表了论文- 《Attention Is All You Need》,摒弃RNN和CNN等网络结构,而仅仅使用Attention机制来处理序列模型相关的问题,比如机器翻译。基于Attention的Transformer模型不但提高了翻译性能也提升了效率。因此,注意力机制和Transformer模型成为了大家近期的研究热点。
Attention机制和Transformer模型的优越性到底表现在哪里?
微软智汇学院将在本文带你认识这位有超强“战斗力“的”“变形金刚”,看看它是如何高效处理NLP(Natural Language Processing)领域的任务。
Transformer是什么?
一句话来讲,就是完全利用Attention机制来解决自然语言翻译问题。
当然这说了跟没说一样,Attention机制也许大家知道,但Attention何德何能,能干掉良好运行多年的RNN/LSTM呢?也许我们可以通过内窥Transformer的架构来解释这个问题。
1. Transformer的结构
先来看结构,Transformer总体分为encoder和decoder部分,每块各有多个层。
encoder里的每层有self attention和feed forward两层。其中encoder输入是n个词向量,n是输入最长的句子里单词数量。
decoder的输出则是类似传统的seq2seq结构,是一个一个目标语言的单词。
2. Self Attention
Self Attention究竟什么意思?很简单,Self Attention假设:一个句子中每个单词的含义,都部分取决于该句子里其他词。
这听着像是废话,但如果我们想用词向量来表示一个词,那很直观我们可以得出,一个句子中的一个词向量,他的计算是依赖于该句子的其他词向量的。
那具体怎么计算每个词向量呢?这个计算过程就是Self Attention Encoding的目的,即,将句子中每个原始词向量按照Attention加权相加,求出新的词向量。
3. Attention加权相加
Attention加权相加又是什么意思?句子里每个词(包括目标词自己)都对目标词有一个Attention(这是个标量,即权重a),同时每个词都有自己的一个词向量表示(这个向量我们用V表示)。
每个V是靠着这个简单的word embedding过程得来的。那么每个a怎么来的?
因为这个a是表示当前Attention的词对目标词权重,那很直观的,这个a值应该只凭当前词和目标词关系算出来。
怎么算呢?我们假设目标词本身有个向量(即下图中的q),而句子中每个词有个专门用来算别的词的向量(即下图中的k),这俩都是word embedding得到的。
它俩(q和k)一乘,就得到当前词对目标词的权重a(即下图中的q x k,它是一个向量,不同的值对应不同颜色的竖线,蓝色表示整数,蓝色越深则值越大,橘色表示复数,颜色越深则值越小)。
得到了所有词对目标词的权重之后,还有个问题,这些权重加起来应该等于1。于是我们在权重计算之后套一个softmax,解决问题。
4. Multi-heading
那什么是multi-heading?multi-heading就是同样这个取新词向量Z的事儿,咱们干8遍,得到Z1 ~ Z8。
得到这8个值之后,将每个词的所有Z连在一起,粘成一个巨大的词向量。这个词向量作为后续feed forward层的输入。可以说是相当简单粗暴了。
5. Position Encoding
咱们刚才聊了这么多,有个问题一直忽略了——这个模型只知道词和词之间的影响力,但它根本没考虑这些词的顺序。顺序多么重要,怎么可能不在考虑范围内!
Transformer解决的方法也是很直白,你不是不知道位置信息吗?好,我给你每个词都加上一个位置信息。这就是Position Encoding!
注意,这个加是在原有词向量上叠加一个同维度表示位置的向量,不是粘在后边。
这个位置向量怎么生成?论文里写了算法,这里不展开,感兴趣同学可以去看。关于这个方法的直观理解是什么呢?文章里这句话有意思了,大家仔细读读:
The intuition here is that adding these values to the embeddings provides meaningful distances between the embedding vectors once they’re projected into Q/K/V vectors and during dot-product attention.
什么意思呢?就是说原本在高维空间里,词向量之间都是以原点为起点的向量,现在通过这种方法,让词向量之间产生了距离。
也就是,一句话里的各个词向量通过这种方法,实际上组成了一个高维的像蛇一样的线段,而这条高维空间的“蛇”就表示这句话本身。
-
全球最新:中国化学己二腈项目投产 突破产业链关键核心技术我国首台套采用自有技术的丁二烯法己二腈工业化生产项目——中国化学天辰齐翔尼龙新材料产业基地一期关键装置近日顺利打通全...
-
每日焦点!【新华财经调查】甲醇汽车10年推广进展缓慢 吉利坐拥近九成市场吉利汽车相关负责人表示,在工信部为期近5年的五省市甲醇汽车试点项目中,吉利是甲醇汽车试点运行投放车辆最多的汽车生产企业...
-
环球热头条丨多只基金提高净值精度 应对大额赎回影响临近7月末的一周已有多只基金发布了提高基金份额净值精度的公告,涉及汇添富、海富通、泰达宏利、恒生前海等多家公司旗下基金...
-
天天快资讯:【环球财经】俄歌手Timati宣布收购星巴克在俄所有资产俄罗斯说唱歌手兼商人铁木尔·尤努索夫(Timati)30日在其社交媒体上发文说,他与俄罗斯餐饮界商人安东·平斯基已全面收购美...
-
今日快讯:【新华财经调查】上半年净利预增超335% 大全能源持续扩产行业高速发展大全能源CFO杨明伦在接受新华财经记者专访时表示,公司正积极推进技术创新,加速扩产以满足下游需求。目前,公司已完成定增募...
-
全球最新:中国化学己二腈项目投产 突破产业链关键核心技术
2022-07-31 16:25:41
-
每日焦点!【新华财经调查】甲醇汽车10年推广进展缓慢 吉利坐拥近九成市场
2022-07-31 15:35:28
-
环球热头条丨多只基金提高净值精度 应对大额赎回影响
2022-07-31 15:33:35
-
天天快资讯:【环球财经】俄歌手Timati宣布收购星巴克在俄所有资产
2022-07-31 15:24:35
-
今日快讯:【新华财经调查】上半年净利预增超335% 大全能源持续扩产行业高速发展
2022-07-30 17:37:16