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

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

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

下面 gif 为我们模型中第 1 层第 3 个 head 的 attention 分布权重图,可以发现 attention 权重很明显带有词的边界信息,当当前的字是结尾时 attention 权重最大的 token 为"SEP",若当前字不是结尾时 attention 权重最大的为下一个字。

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

这种用于提取分词信息的 head 有很多,且不同的 head 有不同的分词粒度,如果将多个粒度的分词综合考虑(有一个 head 分词正确就行),则直接用 attention-head 切词的准确率在 96%,这也是为什么词粒度 bert 和字粒度 bert 表现差不多的原因

这种用于提取分词信息的 head 有很多,且不同的 head 有不同的分词粒度,如果将多个粒度的分词综合考虑(有一个 head 分词正确就行),则直接用 attention-head 切词的准确率在 96%,这也是为什么词粒度 bert 和字粒度 bert 表现差不多的原因。

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

猜测字粒度 bert 代词边界信息是通过 bert 的预训练任务 MLM 带来的,语言模型的训练使得 bert 对各个字之间的组合非常的敏感,从而能够区分词的边界信息。

2.3 某些 head 负责编码输入的顺序

我们知道 bert 的输入为 token_emb+pos_emb+seg_type_emb 这三个部分相加而成,而文本输入的顺序完全是用 pos_emb 来隐式的表达。bert 中某些 head 实际上负责提取输入中的位置信息。这种 attention-head 有明显的上下对齐的模式,如下图:

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

原输入: query="京东小哥", title="京东小哥最近在干嘛",bert 模型判定为 4 档

将 title 顺序打乱: query="京东小哥", title="近东嘛最都在干哥小京",bert 模型判定为2 档 将 title 顺序打乱: query="京东小哥", title="近东嘛最都在干哥小京",mask 掉 7 个怀疑用于提取语序的 head,bert 模型判定为3 档

下面的图分别对比了不做 mask,随机 mask 掉 7 个 head(重复 100 次取平均值),mask 掉 7 个特定的 head(怀疑带有语序信息的 head) 从下面的图看到,mask 掉 7 个特定的 head 后整体分档提升为 3 档,而随机 mask 掉 7 个 head 结果仍然为 2 档,且档位概率分布和不 mask 的情况差别不大。

这个 case 说明了我们 mask 掉的 7 个特定的 head 应该是负责提取输入的顺序信息,也就是语序信息。将这部分 head mask 掉后,bert 表现比较难察觉到 title 中的乱序,从而提升了分档。

谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起2.4 某些 head 负责 query 和 title 中相同部分的 term 匹配

query 和 title 中是否有相同的 term 是我们的分类任务中非常关键的特征,假如 query 中大部分 term 都能在 title 中找到,则 query 和 title 相关性一般比较高。如 query="京东小哥"就能完全在 title="京东小哥最近在干嘛"中找到,两者的文本相关性也很高。我们发现部分 attention-head 负责提取这种 term 匹配特征,这种 head 的 attention 权重分布一般如下图,可以看到上句和下句中相同 term 的权重很高(颜色越深表示权重越大)。

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

其中在第 2~第 4 层有 5 个 head 匹配的模式特别明显。我们发现虽然 bert 模型中 attention-head 很冗余,去掉一些 head 对模型不会有太大的影响,但是有少部分 head 对模型非常重要,下面展示这 5 个 head 对模型的影响,表格中的数值表示与 baseline 模型的 acc 相对提升值

--不做 HEAD-MASK随机 MASK 掉 5 个 HEADMASK 掉 5 个指定的 HEADMASK 掉 0~5 层所有 HEADMASK 掉 0 ~ 5 层其他 HEAD, 只保留这 5 个指定 HEAD测试数据准确率+0%+0%-52.4%-86.5%-18.1%

利用测试数据作为标准,分别测试随机 mask 掉 5 个 head 和 mask 掉 5 个指定的 head(这些 head 在 attention 可视化上都有明显的 query-title 匹配的模式)。从结果可以看到去掉这些负责 query-title 匹配的 head 后模型表现剧烈下降,只去掉这 5 个 head 就能让模型表现下降 50%。甚至 mask 掉 0~5 层其他 head,只保留这 5 个 head 时模型仍维持 baseline 模型 82%的表现,说明了 query-title 的 term 匹配在我们的任务中是非常重要的。

这也许是为什么双塔 bert 在我们的场景下表现会那么差的原因(Bert+LSTM 实验中两个模型结合最后的表现差于只使用 Bert, Bert 的输入为双塔输入),因为 query 和 title 分别输入,使得这些 head 没有办法提取 term 的匹配特征(相当于 mask 掉了这些 head),而这些匹配特征对于我们的分类任务是至关重要的

2.4.1 finetune 对于负责 term 匹配 attention-head 的影响

在 query-title 分档任务中 query 和 title 中是否有相同的 term 是很重要的特征,那么在 finetune 过程中负责 query-title 中相同 term 匹配的 head 是否有比较明显的增强呢?

下面以 case 为例说明: query="我在伊朗长大" title="假期电影《我在伊朗长大》"

下图展示了 query-title 数据***finetune 前*****某个**负责 term 匹配的 head 的 attention 分配图

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

(编辑:新余站长网)

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

推荐文章
    热点阅读