Bert学习-原理篇

BERT : Bidirectional Encoder Representations from Transformers

0 序

最近看了台大教授李宏毅的<Transformer>, <BERT>视频讲解,本篇文章大部分为课程笔记。

1 理论

Bert是Transformer的Encoder部分

Transformer是seq2seq的模型,seq2seq一般分为两个阶段,encoder和decoder,最初encoder和decoder分别由一个RNN组成。RNN有很多串联的子节点组成,前一个节点的输出会作为当前节点的输入。如下图,循环神经网络的当前状态At是根据前一个时刻的状态At-1和当前的输入Xt共同决定的,所以很难并行化

CNN是解决并行化的一个很好的思路,但是每一层的featuremap的节点都有自己的“感受野”,只有高层的featuremap才能才能考虑到长距的信息。

image.png

Transformer中的selfAttention layer层和RNN的作用相同,都是seq2seq的模型。而且解决了RNN和CNN的痛点,不仅可以并行化运行,而且每个输入的编码如y1,都有全局的信息。

image.png

在google的一篇blog中,可视化展示了selfAttention Layer中的注意力矩阵。

image.png

第一个句子:

"The animal didn't cross the street because it was too tired"。从图示中看到和it和animal的关联性比较强。

第二个句子:

"The animal didn't cross the street because it was too wide"。只改变了最后一个单词。it的注意力从animal转到了street。神不神奇,惊不精喜!

Transformer最初是在论文<Attention is all you need>中提出的。意思很明确,只需要Attention,什么RNN,CNN等等之辈皆不需~它是怎么做的呢?输入Xi乘以一个权重矩阵W,进行了embedding,表示为ai。之后丢到self attention layer。ai分别乘以三个矩阵Wq,Wk,Wv,转换为qi,ki,vi。

image.png

每个q会跟每个k做Attention。

如\alpha_{1j} 为 q_1和每个k_j做点乘计算的结果。j的取值为[1,4]
计算公式为:

image.png

其中d为矩阵q和k的维度数值,除以sqrt(d),是为了避免内积(对应位置数值累加之和)过大。

image.png

Attention的工作:吃(feed 或 input)两个向量,output一个分数,表示匹配度,称之为attention。

之后做softmax计算,把数值归一化到(0,1)之间。

image.png

\alpha_{1j}分别和v_j相乘后,累加之后的结果几位b_1

image.png

天涯若比邻:可以看到b1是看过了a1到a4产生的。如果b1只想关注a1,那么可设置a12, a13, a14为0. 如果考虑a4的输入信息,那么a14不为0即可。b2,b3,b3也可以采用同样的方式获取。并且b1,b2,b3,b4的计算过程是可并行的。

以上讲的为由输入{x1,x2, x3, x4}并行得到他们的特征{b1,b2,b3,b4}的计算过程。

image.png

再用矩阵演算一遍之前的过程:

image.png

输入{a1,a2,a3,a4}组成输入矩阵I。{a1,a2,a3,a4}分别乘以Wq得到{q1,q2,q3,q4}。{q1,q2,q3,q4}可表示为Q。同理{a1,a2,a3,a4}分别乘以Wk得到{k1,k2,k3,k4}。{k1,k2,k3,k4}可表示为K;

{a1,a2,a3,a4}分别乘以Wv得到{v1,v2,v3,v4}。{v1,v2,v3,v4}可表示为V。

image.png

q1需要分别和k1,k2,k3,k4做内积。那么{k1,k2,k3,k4}可以作为一个列向量。q1与此列向量KT相乘。

image.png

类似q1, q2,q3,q4也需要分别与KT进行内积。同样q1, q2,q3,q4也可以组成列向量Q。那么得到注意力矩阵A即为矩阵Q和矩阵KT内积运算的结果。

image.png

串联整个运算过程,从上图可看到,从输入向量I到输出向量O,中间的过程都可以用矩阵运算表示。而GPU由专门芯片设计做并发计算,适合海量数据的并行处理。矩阵乘法运算,可运行GPU并行运算加速

上述所罗列的是一次self-attention的过程,Transformer对其进行了扩充,可同时存在多个self-attention,各个O矩阵的contact作为最终结果。即每一组q,k,v做不同的事情,如下图第一张图每个单词更关注它周围的词的信息,而第二张图更复杂些,每个word关注更远矩阵的词信息。

image.png

多head可以理解为对每个q,k,v进行了多次裂变(如下图2个head,裂变了2次)。和上述运算过程相同。qi1只会和ki1,vi1......做运算,类似qi2只会和ki2,vi2......做运算。分别得到bi1和bi2。


image.png

image.png

如果想改变最终的输入维度,可以对{bi1,bi2}做一次矩阵变换。{bi1,bi2}变成bi。

image.png

I加上b作为最终self-layer层的输出。只能说resnet影响深远。哈哈。

以上所 讲的为Transformer的encoder的self-layer层,此外它还有一个前向运算(借了一个全连接层),然后selfattention-layer的输出和全连接层的输出做Add和LayerNorm的运算。至此,Bert部分完了。即Bert是Transformer的Encoder部分,Transformer除Encoder部分,还有Decoder部分,如下图阴影部分所示。

image.png

之前感觉维度变换很乱,分析了源码后,画了一张维度变化图:

image.png

2 应用

应用主要分为4大类:

应用1:文本分类


image.png

应用2:序列标注


image.png

应用3:句子关系判断(输入是2个句子)
image.png

应用4:生成式任务

image.png

3 关键技术总结

1 word embedding


image.png

2 Transformer Encoder部分应用


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

推荐阅读更多精彩内容