学术君作者

解构BERT:从1亿个参数中提取6种模式

谷歌的BERT算法已经成为一种“统治它们的一种模式。”BERT建立在两个关键概念的基础上,NLP的许多最新进展使用了这两个概念:(1)transformer 架构(2)无监督预训练。

2018年标志着自然语言处理领域的转折点,一系列深度学习模型在NLP任务中实现了最先进的结果,从问答到情感分类。最近,谷歌的BERT算法已经成为一种“统治所有人的一种模式”,基于其在各种任务中的卓越性能。

BERT建立在两个关键概念的基础上,NLP的许多最新进展使用了这两个概念:

(1)transformer 架构

(2)无人监督预训练

该transformer是完全基于注意力的方法,放弃了RNN的顺序结构,比如经典的序列模型。

BERT也经过预先训练; 通过两个无监督的任务预先学习它的权重:蒙面语言建模(预测给定左右上下文的缺失单词)和下一个句子预测(预测一个句子是否跟随另一个句子)。因此,对于每个新任务,BERT不需要从头开始训练; 相反,它的重量是微调的。

有关BERT的更多详细信息,请查看  The Illustrated Bert:https://jalammar.github.io/illustrated-bert/

BERT是一个(多头)野兽

Bert不像传统的注意力模型那样在RNN的隐藏状态上使用平坦的注意力结构。相反,BERT使用多层注意力(12或24取决于模型),并且还在每层(12或16)中包含多个注意力“头”。由于模型权重不在层之间共享,因此单个BERT模型有效地具有多达24 x 16 = 384种不同的注意机制。

可视化BERT

由于BERT的复杂性,可能难以直观了解其学习权重的含义。一般而言,深度学习模型是众所周知的不透明的,并且已经开发了各种可视化工具来帮助理解它们。

但是,作者没有找到一个可以阐明BERT正在学习的注意模式。幸运的是,Tensor2Tensor在编码器 - 解码器变换器模型中具有可视化注意力的优秀工具,因此作者使用BERT的PyTorch实现对其进行了修改以使用BERT的架构,改编的界面如下所示。你可以在Github(https://github.com/jessevig/bertviz)上找到它。

该工具将注意力视为连接正在更新的位置(左)与正在关注的位置(右)的线。颜色识别相应的注意头,而线条厚度反映注意力得分。在工具的顶部,用户可以选择模型层,以及一个或多个注意头(通过单击顶部的色块,代表12个头)。

BERT实际上学到了什么?

作者使用该工具探索预训练BERT模型(BERT-Base,无套装版本)的各个层/头的注意模式,尝试了不同的输入值,但出于演示目的,只使用以下输入:

句子A: I went to the store.

句子B: At the store, I bought fresh strawberries.

BERT使用WordPiece标记化并插入特殊分类器([CLS ])和分隔符([SEP])标记,因此实际输入序列为:

  [CLS] i went to the store . [SEP] at the store , i bought fresh straw ##berries . [SEP]

作者发现了一些相当独特且令人惊讶的直观注意模式。下面确定了六个关键模式,每个关键模式都显示了展示模式的特定图层/头部的可视化。

模式1:注意下一个词

在这种模式中,特定位置的大部分注意力都指向序列中的下一个标记。下面我们看到第2层头部0的示例。(所选头部由顶部颜色条中突出显示的方块表示。)左边的图显示所有标记的注意力,而右侧显示一个选定标记(“i”)的注意力。在这个例子中,几乎所有的注意力都集中在“去”,即序列中的下一个标记。

左:所有代币的注意力。 右:选定标记的注意权重(“i”)

在左侧,我们可以看到  [SEP]  令牌破坏了下一个令牌注意模式,因为[SEP]的大多数注意力都是针对  [CLS]  而不是下一个令牌。因此,这种模式似乎主要在每个句子中运作。

该模式与后向RNN有关,其中状态更新从右到左依次进行。模式1出现在模型的多个层上,在某种意义上模拟了RNN的周期性更新。

模式2:注意前一个词

在这种模式中,大部分注意力都集中在句子中的前一个标记上。例如,“go”的大部分注意力都指向下图中的前一个单词“i”。这种模式与最后一种模式不同; 一些注意力也分散到其他令牌,尤其是[SEP]令牌。与模式1一样,这与顺序RNN松散相关,在这种情况下是前向RNN。

左:所有代币的注意力。右:所选令牌的注意力(“went”)

模式3:注意相同/相关的单词

在这种模式中,注意相同或相关的单词,包括源词本身。在下面的例子中,第一次出现的“store”的大部分注意力都集中在它自身和第二次出现的“store”上。这种模式并不像其他一些模式那样明显,注意力分散在许多不同的词语上。

左:所有代币的注意力。 右:所选令牌的注意权重(“商店”)

模式4:注意其他句子中相同/相关的单词 

在这种模式中,注意另一句中相同或相关的单词。例如,第二句中“store”的大部分注意力都集中在第一句中的“store”。可以想象这对于下一句话预测任务(BERT预训练的一部分)特别有用,因为它有助于识别句子之间的关系  。

左:所有代币的注意力。 右:所选令牌的注意权重(“store”)

模式5:注意预测单词的其他单词

在这种模式中,注意力似乎是针对可预测源词的其他词,不包括源词本身。在下面的例子中,“straw” 的大部分注意力都集中在“##berries” 上,“##berries” 的大部分注意力都集中在“straw” 上。

左:所有代币的注意力。 右:所选标记的注意力(“## berries”)

这种模式并不像其他一些模式那样明显。例如,大部分注意力都集中在分隔符令牌([CLS])上,这是下一个讨论的模式6的定义特征。

模式6:注意分隔符令牌

在这种模式中,大部分注意力都集中在分隔符令牌上,即  [CLS]  令牌或  [SEP]  令牌。在下面的示例中,大部分注意力都集中在两个  [SEP]  令牌上。这可能是模型将句子级状态传播到单个标记的一种方式。

左:所有代币的注意力。 右:所选令牌的注意权重(“store”)

笔记

有人说  ,数据可视化有点像罗夏测验:我们的解释可能会被我们自己的信念和期望所染色。虽然上面的一些模式非常明显,但其他模式有点主观,所以这些解释只应作为初步观察。

此外,上述6种模式描述了BERT的粗略注意结构,并不试图描述注意力可能捕获的语言模式。例如,模式3和模式4中可以表现出许多不同类型的“相关性”,如同义词,共同参照等。看看不同的注意力是否专注于不同类型的语义和句法关系会很有趣。

信息来源:https://www.kdnuggets.com/2019/02/deconstructing-bert-distilling-patterns-100-million-parameters.html

AMiner学术头条
AMiner学术头条

AMiner平台由清华大学计算机系研发,拥有我国完全自主知识产权。系统2006年上线,吸引了全球220个国家/地区800多万独立IP访问,数据下载量230万次,年度访问量1000万,成为学术搜索和社会网络挖掘研究的重要数据和实验平台。

https://www.aminer.cn/
专栏二维码
理论Transformer谷歌BERT
2
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

基于Transformer 的双向编码器表征技术

BERT是谷歌发布的基于双向 Transformer的大规模预训练语言模型,该预训练模型能高效抽取文本信息并应用于各种NLP任务,并刷新了 11 项 NLP 任务的当前最优性能记录。BERT的全称是基于Transformer的双向编码器表征,其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部分信息。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推荐文章
暂无评论
暂无评论~