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

栏目: 编程工具 · 发布时间: 7年前

内容简介:BERT建立在两个关键概念的基础上,NLP的许多最新进展使用了这两个概念:(1)transformer 架构

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

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) 上找到它。

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

该工具将注意力视为连接正在更新的位置(左)与正在关注的位置(右)的线。颜色识别相应的注意头,而线条厚度反映注意力得分。在工具的顶部,用户可以选择模型层,以及一个或多个注意头(通过单击顶部的色块,代表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”)的注意力。在这个例子中,几乎所有的注意力都集中在“去”,即序列中的下一个标记。

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

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

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

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

模式2:注意前一个词

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

解构BERT:从1亿个参数中提取6种模式 左:所有代币的注意力。右:所选令牌的注意力(“went”)

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

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

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

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

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

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

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

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

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

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

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

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

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

模式6:注意分隔符令牌

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

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

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

笔记

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

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

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


以上所述就是小编给大家介绍的《解构BERT:从1亿个参数中提取6种模式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

Out of their Minds

Out of their Minds

Dennis Shasha、Cathy Lazere / Springer / 1998-07-02 / USD 16.00

This best-selling book is now available in an inexpensive softcover format. Imagine living during the Renaissance and being able to interview that eras greatest scientists about their inspirations, di......一起来看看 《Out of their Minds》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器