自然语言处理N天-Transformer学习(从seq2seq到Attention01)

新建 Microsoft PowerPoint 演示文稿 (2).jpg

这个算是在课程学习之外的探索,不过希望能尽快用到项目实践中。在文章里会引用较多的博客,文末会进行reference。
搜索Transformer机制,会发现高分结果基本上都源于一篇论文Jay Alammar的《The Illustrated Transformer》(图解Transformer),提到最多的Attention是Google的《Attention Is All You Need》。

  • 对于Transformer的运行机制了解即可,所以会基于这篇论文来学习Transformer,结合《Sklearn+Tensorflow》中Attention注意力机制一章完成基本的概念学习;
  • 找一个基于Transformer的项目练手

1.从seq2seq到Attention

本节内容学习自《从Seq2seq到Attention模型到Self Attention》
上一节实现了一个打乱单词字母顺序的seq2seq,本节希望学习MT领域如何从Seq2seq演进至Attention model再至self attention,为之后Transformer的学习铺垫。

image.png

Seq2seq全名是Sequence-to-sequence,也就是从序列到序列的过程,是近年当红的模型之一。Seq2seq被广泛应用在机器翻译、聊天机器人甚至是图像生成文字等情境。Seq2seq常见情境为机器翻译,因此接下来的内容都会以情境进行说明。

从LSTM & GRU 到seq2seq

教程中分析了LSTM 、 GRU 、 seq2seq三个模型。

  • 最早的RNN是通过时序将上一阶段的hidden state(h_t)输出作为本次的输入,以此达到“记忆”的目的。这也就带来了梯度消失和梯度爆炸的问题。
  • 为了对应RNN的梯度爆炸/消失问题,引入了遗忘/输入/输出门(forget/input/output gate),隐藏状态(hidden state),记忆单元(cell memory)等概念。
  • 上一节已经提到,seq2seq包含两部分:Encoder和Decoder。一旦将句子输入至Encoder,即可从Decoder获得目标句。Encoder就是个单纯的RNN / LSTM。

Decoder的公式和RNN的差别在于Decoder多了一个C (context vector/thought vector)。
context vector可以看成是一个含有所有输入句信息的向量,也就是Encoder的最后一个hidden state。简单来说,Encoder将输入句压缩成固定长度的context vector,context vector即可完整表达输入句,再透过Decoder将context vector内的信息产生输出句。
但是问题来了,固定长度的context vector是否合适?就像上一节中包含有20个以上字符的单词,预测结果并不理想。
于是,注意力模型(attention model)被引入。

注意力模型(attention model)

1.如何计算context vector
attention model替输入句的每个文字都创造一个context vector,而非仅仅替输入句创造一个从最终的hidden state得来的context vector。
举例来说,如果一个输入句有N个文字,就会产生N个context vector,好处是,每个context vector能够被更有效的译码。
教程在这里很详细的讲了一下理论机制,我没看懂,有兴趣的可以看一下原帖,我们继续。
Attention score是attention model中提出一个很重要的概念,可以用来衡量输入句中的每个文字对目标句中的每个文字所带来重要性的程度。在Neural Machine Translation发表之后,接续的论文Effective approaches of the NMT、Show,Attend and Tell提出了global/local attention和soft/hard attention的概念。
softmax算出attention score,进一步attention score列为矩阵,透过此矩阵可看到输入端文字和输出端文字间的对应关系,也就是论文当中提出align的概念。

image.png

2.attention model中的encoder
attention model中的encoder用的是改良版RNN:双向RNN(Bi-directional RNN)。
以往单向RNN的问题在于t时刻时,只能透过之前的信息进行预测,但事实上,模型有时候可能也需要利用未来时刻的信息进行预测,其运作模式为,一个hidden layer用来由左到右,另一个由右到左,透过双向RNN,我们可以对词语进行更好的预测。
eg:”我喜欢苹果,因为它很好吃”?和”我喜欢苹果,因为他比安卓稳定”这两个句子当中,如果只看”我喜欢苹果”,你可能不知道苹果指的是水果还是手机,但如果可以根据后面那句得到信息,答案就很显而易见,这就是双向RNN运作的方式。

3.attention model的缺点
attention model解决了输入句仅有一个context vector的缺点,但依旧存在不少问题。

  • context vector计算的是输入句、目标句间的关联,却忽略了输入句中文字间的关联,和目标句中文字间的关联性。
  • 不管是Seq2seq或是Attention model,其中使用的都是RNN,RNN的缺点就是无法平行化处理,导致模型训练的时间很长,有些论文尝试用CNN去解决这样的问题,像是Facebook提出的Convolutional Seq2seq learning,但CNN实际上是透过大量的layer去解决局部信息的问题。

在2017年,Google提出了一种叫做”The transformer”的模型,透过self attention、multi-head的概念去解决上述缺点,完全舍弃了RNN、CNN的构架。Transformer终于登场了……

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,408评论 4 371
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,690评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,036评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,726评论 0 221
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,123评论 3 296
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,037评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,178评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,964评论 0 213
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,703评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,863评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,333评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,658评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,374评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,195评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,988评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,167评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,970评论 2 279

推荐阅读更多精彩内容