DataScience 板


LINE

1) 论文介绍 arXiv 连结: https://arxiv.org/abs/1706.03762 这篇是 Google 发表在 NIPS2017 上的 paper,其最大的亮点是提出一个新的 encoder-decoder 架构完全依赖於 Attention 机制而完全没用到 CNN 以及 RNN,这样 的好处是提高了训练时可平行化处理的部分 (RNN 依赖於序列处理,而 Attention 可以 是矩阵乘法运算) 并且让 input, output sequences 中的文字彼此之间跨越距离的障碍 能够找到有关联的字词。 在这篇论文之前,为了减少序列的计算量,被提出的方法有 ByteNet, ConvS2S 等网路架 构,都是用到了 CNN 来做 downsampling,但这样的方法仍然会遇到距离障碍的问题: 相 距越远的字词会越难找到彼此的资讯,其解决方法就是使用 self-attention 取代 encode, decode 阶段,让每一个词都去计算整个 sequence 的表示,此外其也能解决过 长的 RNN 架构可能会造成的梯度消失问题。 这篇提出的架构 Transformer 如下图: https://imgur.com/e5JWQNg 也是 encoder-decoder 的形式,只不过都换成了使用 attention + fully connected layers 来实现。 对於 input, output 序列每个字词过 Embedding 之後须加上 Positional Encoding 主 要是因为这个架构不像 RNN 是有序的,但是为了捕捉到字词前後的关系所以须加上基於 位置的 Embedding。 Encoder: 在 Encoder 中堆叠了六个相同的 layer,每个 layer 都包含两个 sublayer,分别是 multi-head self-attention 和 position-wise fully connected network,并且都是 以残差连接的方式,好处是能够加深网路,并且都过 layer normalization 加速收敛, 因此每一层 sublayer 都可以以 LayerNorm(x + SubLayer(x)) 来表示。 Decoder: Decoder 同样堆叠六层,但每一层包含了三个 sublayer,其同样有目标序列的 self-attention,再加上了 decoder 向 encoder 的 attention 机制,最後同样过全连 接层输出,多的 sublayer 就是在负责从 encoder 藉由 attention 抓取重要资讯来作为 输出参考,其中比较需要注意的是 decoder 的 self-attention 需要加上遮罩机制,也 就是让位置 t 的字词只能 attend 到自己以前的字词,不能向後偷看。 其用到的 Attention 计算公式为 Scaled Dot-Product Attention 流程如下图: https://imgur.com/15WtVKI 其中 Q 是 query (发起 attention 的 matrix) K, V 分别是 key, value (被 attention 的 matrix),在这篇论文中使用的 K, V 是相 同的,都是某时间点的 hidden state 写成公式如下: https://imgur.com/ju9EjgP 其实与 dot product attention 的计算方式几乎一样,使用 Q, K 进行点积得到 attention weight(知道对每个时间点的该注意的程度),再和 value 相乘得到加权结果 。 只差在 Q, K 进行点积之後除以一个 hidden dimension (d_k) 的根号,是为了避免点积 的结果太大影响训练稳定程度 ( 除以根号 d_k 之後可以让方差变成 1 ) https://imgur.com/QTzusmn Multi-Head Attention 其使用的 attention 计算公式为上述的 scaled dot-product attention,而其使用的机 制为 multi-head attention,概念是分别将 Q, K, V 经过线性转换(learnable的)成 h 个,再 h 个各自平行地去做 attention,最後再将 h 个结果 concatenate 在一起得到 最终的结果,通常会希望 concatenate 之後的维度与原来相同(d_k),因此在做线性转换 时通常会把 h 个转换出来的结果维度为 d_k / h 写成公式如下: https://imgur.com/Jqs3CYV Position-wise Feed Forward Networks 其实就是两层的 fully connected layers 搭配 Relu 总体架构来说,就是让源句子做 self-attention 以残差连接和 layer normalization, 接着丢去 feed forward 也以残差连接以及 layer normalization,这个动作重复 6 层 後当作 Encoder 输出,Decoder 阶段目标句子同样先做 self-attention (不过带有 mask) 後,对 Encoder 的输出做 attention 再丢进 feed forward,这三个步骤也都是 残差连接以及 layer normalization,并也做 6 层後经过一个线性转换以及 softmax 输 出预测句子。 Why Self-Attention? 作者们认为主要有三大好处: 1. 降低了每一层的计算复杂度:只要 sequence length 小於 hidden dimension 就会比 RNN 复杂度低 2. 增加了可平行化处理的程度:加快训练速度 3. 解决long-dependency的问题:字词相距很远难以关注到彼此的问题 Training 在训练过程中他们也使用了 learning rate 递减、dropout、label smoothing 等等 tips,在此不赘述。 Result https://imgur.com/2JJ5m4Z 当时在机器翻译资料集 WMT2014 取得了 state-of-the-art 的结果,值得注意的是 Transformer 的 Training Cost 是比其他模型少许多的。 这篇并没有详细提到 Positional Encoding 怎麽 init,因为本篇重点应该比较注重在 Attention,并且 Google 也在今年(2018)提出了一种新的将位置加入 Transformer 的 方法,详细可以参考 https://arxiv.org/abs/1803.02155 2) 个人心得 这篇应该算是 NLP 近年来最多人关注的 paper 之一,Google 也还在针对这个架构进行 研究发展新的 paper 来改善增进 Transformer 的问题与能力。举例来说目前 Transformer 的其中一个问题是无法像 RNN-based model 做 schedule sampling 的训 练,让模型在训练阶段都只能看 ground truth 而在测试阶段就要看自己前一个时间点的 输出结果。 底下附上我自己实作 Transformer 应用在 PTT Gossiping QA Dataset (https://github.com/zake7749/Gossiping-Chinese-Corpus ) 的一些结果: https://imgur.com/l0AsUa5 第一次写这类型的文章,若有理解错误或是表达的不精确请各位大大指正~谢谢 --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.218.53.138
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/DataScience/M.1533004952.A.244.html ※ 编辑: dav1a1223 (114.136.163.75), 07/31/2018 10:43:56
1F:推 yiefaung: 加快训练大概能加快多少? 07/31 10:52
2F:推 yiefaung: 另外这个QA有什麽衡量performance的方式吗 跟其他方法 07/31 10:55
3F:→ yiefaung: 比有没有明显差别 07/31 10:55
4F:→ dav1a1223: 以和rnn每一层的复杂度来比较的话,rnn是O(n*d^2)而se 07/31 10:57
5F:→ dav1a1223: lf-attn是O(n^2*d)其中n是序列长d是hidden dim 07/31 10:57
6F:→ dav1a1223: QA的部分我只是做好玩的并没有特别去算bleu之类的指标 07/31 11:04
7F:→ dav1a1223: ,肉眼看的话,我同时也实作gru encoder decoder with 07/31 11:04
8F:→ dav1a1223: attn,结果句子相较是不通顺许多 07/31 11:04
9F:推 sma1033: 在做inference的时候还是要照顺序生,所以还是有点慢 07/31 11:43
10F:推 daniel0523: 感谢分享! 12/17 03:35







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP