用可视化解构BERT,我们从上亿参数中提取出了6种直观模式

大数据文摘联合百度NLP出品
编译:Andy,张驰,龙心尘
来源:towardsdatascience.com

深度神经网络的超强有效性一直让人疑惑。

经典论文《可视化与理解CNN》(Visualizing and Understanding Convolutional Networks)解释了在图像领域中CNN从低层到高层不断学习出图像的边缘、转角、组合、局部、整体信息的过程,一定层面论证了深度学习的有效性。另一方面,传统的NLP神经网络却并不是那么深,而bert的出现直接将NLP的神经网络加到12层以上。

那么如何理解各层学到了怎样的信息?

本文作者Jesse Vig通过可视化工具对此进行了非常有意义的探究。文章分两部分,第一部分介绍bert中的6种模式,第二部分介绍其底层细节。

可视化BERT之一

在BERT错综复杂的注意力网络中,出现了一些直观的模式。

2018年是自然语言处理领域的转折之年,一系列深度学习模型在智能问答、情感分类等多种NLP 任务上取得了最佳结果。特别是最近谷歌的BERT ,成为了一种“以一当十的模型”,在各种任务上都取得了的极佳的表现。

BERT主要建立在两个核心思想上,这两个思想都包含了NLP 最新进展:(1)Transformer 的架构(2)无监督学习预训练。

Transformer 是一种序列模型,它舍弃了 RNN 的顺序结构,转而采用了一种完全基于注意力的方法。这在经典论文 《Attention Is All You Need》中有具体介绍。

BERT 同时也要经过预训练。它的权重预先通过两个无监督任务学习到。这两个任务是:遮蔽语言模型(masked language model,MLM)和下句一句预测(next sentence prediction)。

因此,对于每个新任务,BERT 不需要从头开始训练。相反,只要在预训练的权重上进行微调(fine-tuning)就行。有关BERT的更多详细信息,可以参考文章《图解BERT》。

BERT是一只多头怪

Bert不像传统的注意力模型那样只使用一个平坦的注意力机制。相反,BERT 使用了多层次的注意力(12或24层,具体取决于模型),并在每一层中包含多个(12或16)注意力“头”。由于模型权重不在层之间共享,因此一个BERT 模型就能有效地包含多达24 x 16 = 384个不同的注意力机制。

可视化BERT

由于BERT 的复杂性,所以很难直观地了解其内部权重的含义。而且一般来说,深度学习模型也是饱受诟病的黑箱结构。所以大家开发了各种可视化工具来辅助理解。

可我却没有找到一个工具能够解释BERT 的注意力模式,来告诉我们它到底在学什么。幸运的是,Tensor2Tensor有一个很好的工具,可用于可视化Transformer 模型中的注意力模式。因此我修改了一下,直接用在BERT的一个pytorch版本上。修改后的界面如下所示。你可以直接在这个Colab notebook (https://colab.research.google.com/drive/1vlOJ1lhdujVjfH857hvYKIdKPTD9Kid8)里运行,或在Github 上找到源码。(https://github.com/jessevig/bertviz)。

这个工具将注意力看做不同的连线,它们用来连接被更新的位置(左半边)与被注意的位置(右半边)。(译注:可以想象为神经网络是从右向左正向传播的。)不同的颜色分别代表相应的注意头,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值