谷歌最强NLP模型BERT,为何炫酷又强大?腾讯程序员给你从头讲起
query 和 title 中是否有相同的 term 是我们的分类任务中非常关键的特征,假如 query 中大部分 term 都能在 title 中找到,则 query 和 title 相关性一般比较高。如 query="京东小哥"就能完全在 title="京东小哥最近在干嘛"中找到,两者的文本相关性也很高。我们发现部分 attention-head 负责提取这种 term 匹配特征,这种 head 的 attention 权重分布一般如下图,可以看到上句和下句中相同 term 的权重很高(颜色越深表示权重越大)。 其中在第 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 分配图 (编辑:惠州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |