加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 模式 > 正文

谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起

发布时间:2020-06-19 02:28:08 所属栏目:模式 来源:站长网
导读:副标题#e# 一、背景介绍 搜索场景下用户搜索的 query 和召回文章标题(title)的相关性对提升用户的搜索体验有很大帮助。query-title 分档任务要求针对 query 和 title 按文本相关性进行 5 个档位的分类(1~5 档),各档位从需求满足及语义匹配这两方面对 query

除了上下句相同的 term 有比较大的注意力,每个 term 对自身也有比较大的注意力权重(体现在图中对角线上的值都比较大) 为了更直观的看训练前后哪部分的 attention 值有比较大的改变,分别展示训练后 attention增强(微调前-微调后>0)和训练后 attention减弱(微调前-微调后<0)的 attention 分配图。可以观察到比较明显的几个点:

query 和 title 中 term 匹配的 attention 值变大了 从下图可以看到, query 和 title 中具有相同 term 时 attention 相比于训练前是有比较大的增强。说明在下游任务(query-title 分档)训练中增强了这个 head 的相同 term 匹配信息的抽取能力。 谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起 term 和自身的 attention 变小了 模型将重点放在找 query 和 title 中是否有相同的 term,弱化了 term 对自身的注意力权重 谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起分隔符 sep 的 attention 值变小了。 有论文指出当某个 token 的 attention 指向 sep 时表示一种不分配的状态(即此时没有找到合适的 attention 分配方式),在经过 finetune 后 term 指向 sep 的权重变小了,表示经过 query-title 数据训练后这个 head 的 attention 分配更加的明确了。 2.4.2 是否有某个 head 特别能影响模型

从上面的实验可以看到,bert 模型有比较多冗余的 head。去掉一部分这些 head 并不太影响模型,但是有少部分 head 特别能影响模型如上面提到的负责提取上下句中 term 匹配信息的 head,只去掉 5 个这种 head 就能让模型的表现下降 50%。那么是否有某个 head 特别能影响结果呢?

下面实验每次只 mask 掉一个 head,看模型在测试数据中表现是否上升/下降。下图中将 bert 的 144 个 head 看作 12X12 的矩阵,矩阵内每个元素表示去掉这个 head 后模型在测试数据上的表现。其中 0 表示去掉后对模型的影响不太大。元素内的值表示相对于 baseline 的表现提升,如+1%表示相比 baseline 的 acc 提高了 1%。

谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起

可以看到对于 bert 的大部分 head,单独去掉这个 head 对模型并不会造成太大的影响,而有少部分 head 确实特别能影响模型,比如负责上下句(query-title)中相同 term 匹配的 head。即使去掉一个这种 head 也会使得模型的表现下降。同时注意到高层(第 10 层)有一个 head 去掉后模型表现变化也很大,实验发现这个 head 功能是负责抽取底层 head 输出的特征,也就是 3-4 层中 head 抽取到输入的 query-title 有哪些相同 term 特征后,这部分信息会传递到第 10 层进一步进行提取,最后影响分类。

2.4.3 高层 head 是如何提取底层 head 特征-一个典型 case

上图中,在第 10 层有一个 head 去掉后特别能影响模型,观察其 attention 的分布,cls 的 attention 都集中在 query 和 title 中相同的 term 上,似乎是在对底层 term 匹配 head 抽取到的特征进一步的提取,将这种匹配特征保存到 cls 中(cls 最后一层会用于分类)。

谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起

在没有做任何 head-mask 时, 可以看到 cls 的 attention 主要分配给和 query 和 title 中的共同 term "紫熨斗",而 mask 掉 5 个 2~4 层的 head(具有 term 匹配功能)时, 第 10 层的 cls 注意力分配明显被改变,分散到更多的 term 中。

谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起

这个 case 展示了高层 attention-head 是如何依赖底层的 head 的特征,进一步提取底层的特征并最后作为重要特征用于 query-title 分类。

结语

本文主要探讨了在 query-title 分类场景下,bert 模型的可解释性。主要从 attention-head 角度入手,发现 attention 一方面非常的冗余,去掉一部分 head 其实不会对模型造成多大的影响。另外一方面有一些 head 却非常的能影响模型,即使去掉一个都能让模型表现变差不少。同时发现不同的 head 实际上有特定的功能,比如底层的 head 负责对输入进行特征提取,如分词、提取输入的语序关系、提取 query 和 title(也就是上下句)中相同的 term 信息等。这部分底层的 head 提取到的特征会通过残差连接送到高层的 head 中,高层 head 会对这部分特征信息进行进一步融合,最终作为分类特征输入到分类器中。

本文重点讨论了哪些 head 是对模型有正面作用,也就是去掉这些 head 后模型表现变差了。但是如果知道了哪些 head 为什么对模型有负面作用,也就是为什么去掉某些 head 模型效果会更好,实际上对于我们有更多的指导作用。这部分信息能够帮助我们在模型加速,提升模型表现上少走弯路。

参考文献

[1] Clark K, Khandelwal U, Levy O, et al. What Does BERT Look At? An Analysis of BERT's Attention[J]. arXiv preprint arXiv:1906.04341, 2019.

[2] Vig J. A multiscale visualization of attention in the transformer model[J]. arXiv preprint arXiv:1906.05714, 2019.

【编辑推荐】

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读