如何在NLP模型中“锚定”语言智能?同篇长文分析语言初探
新智元推荐
资料来源:数据战斗学校
作者:Keyur Faldu等。
两位数据科学家——Keyur Faldu和Amit Sheth撰写的《【新智元导读】,》阐述了现代自然语言处理的兴起和可解释性的必要性,并结合对当前技术状况的考察,以期更好地回答NLP模型引发的一些与语言智能相关的开放性问题。
在正式开篇之前,我们先来了解一下“可解释性”的概念。
实际上,可解释性并不是数学上严格定义的,可以简单理解为人们能够理解模型决策原因的程度。换句话说,机器学习模型的可解释性越高,人们就越容易理解它为什么做出某些决策或预测。
英语中有两个词——“可解释”和“可解释”,可以用来表达可解释性的概念,但两者是否完全一致?
当NLP出现时,这两个词在默认情况下具有相同的含义(即解释模型的行为),并且可以互换使用。随着NLP的发展,这两个名词之间存在着微妙的差异。
其中,“可解释”可以理解为使透明的白盒易于理解,所有有经验水平的用户都能理解模型的含义,强调理解;而“可解释”则强调研究者能够解释人们能够理解的黑箱模型的行为,更注重深层解释。
澄清了这两个概念,就开门见山吧。本文是之前发表的题为“在自然语言处理模型中发现编码语言知识”的文章的继续。前一篇文章讨论了什么是“探针”,它们与多任务学习的区别,以及两种类型的探针,即基于表征的——探针和基于注意力权重的探针。
本文将提出更多有趣的深层次问题。在前人工作的基础上,将进一步揭示在其他初级任务训练中如何使用探测任务(或辅助任务)来评估自然语言处理模型的语言能力,旨在帮助人们深入理解自然语言处理模型中编码了什么语言知识。
通过探针对语言任务的性能预测,或者将神经网络与语言现象相关联或进行比较的支持模式,为编码语言知识的内容和方式提供了独特的见解。性能预测的指标可以是分类精度、相关系数或MRR平均倒数秩)。
需要注意的是,模型对探测任务的性能预测可以与专门为此类任务设计并经过清晰训练的模型的最新技术性能进行对比,从而了解编码语言知识的程度。
当然,还有其他方面需要深入分析,比如:
更大的模型能更好的编码语言知识吗?模型捕获的语言知识在复杂度(维度大小、参数个数)上是如何变化的?探索不同复杂度模型对辅助任务的分类性能可以解释这个问题。
如何评价模型对语言知识进行编码的泛化能力?探针在编码语言知识方面的成功可以看作是测试复杂数据时泛化能力的一个标志。比如,如果训练数据通常以“主助动词”为第一个动词,而广义数据有意包含干扰因素,那么如果“主助动词”不再是第一个动词该怎么办?在这种情况下,如果探针能够检测到“主助动词”,则可以归因于句法分析树等语言特征,而不是顺序位置特征。
我们能否解码语言知识而不是依赖浅层探针分类器标签?在探索解码语言知识的能力时,发现分类任务的复杂度相对于解码或构建语言知识的任务来说相对较低,那么内部表示是否可以用来构建一个完整的依赖分析树?也许找到恢复潜在语言知识的方法会是一次非常有趣的经历。
探头的局限性有哪些?当探针能很好地完成辅助语言任务时,是由于某种关联性还是因果关系?考虑到深度复杂的探针模型也具有记忆能力,可能会导致过拟合。那么,如何验证探针所表达的语言知识来源呢?在设计“控制任务”时,可以尝试以下方案来比较探针的预测性能和控制任务的性能,从而揭示探针的有效性和语言知识的来源。
可以注入语言知识吗?如果神经网络模型在训练端到端任务的过程中学习语言知识,是否可以考虑注入语言知识(即解析树)来提高性能?
编码语言知识是否捕捉意义?语言知识,比如词性标注和依存树,本质上就是句法。实际应用期望NLP模型理解语义。因此,评估模型编码的语义仍然非常重要。
带着以上问题,让我们深入研究一下与这些课题相关的研究论文都揭示了什么。
图1伯特模型上的探针图示
模型越大效果越好?
在探索编码语言知识的早期形式研究中,有一篇题为“使用辅助预测任务的句子嵌入的细粒度分析”的论文。本文旨在更好地理解编码语言的句子表示。
在本文中,与句子结构相关的三个辅助任务被认为是:
句子长度:句子嵌入是否在句子长度中编码信息?
词-内容:你能根据句子嵌入预测一个句子是否包含一个词吗?
词序。给定句子嵌入和两个单词,你能确定这两个单词的顺序吗?
这些探测基于句子嵌入,并且句子嵌入通过由编码器-解码器模型和CBOW(连续单词包模型)生成的最终表示的平均值来计算。本文的主要发现是——模型能够更好地对语言知识进行编码。
如下所示:
图2图片来源:ICLR 2017
一方面,增加维度会使一些任务执行得更好。如图2所示,(a)长度和序列测试实现了更大的维度表示,而内容测试在750d达到其峰值。
另一方面,CBOW模型的参数比编解码模型少得多,维数越小,在“词内容”任务中的表现越好。
泛化能力
在广义数据上测试模型以验证其学习程度是一个很好的选择策略。而且,设计良好的复杂泛化数据可以检验NLP模型学习语言智慧的极限。很显然,当模型在这样复杂的数据上泛化时,其真实的语言能力就会表现得淋漓尽致,不再局限于记忆表面模式。
在另一篇论文《芝麻开门:走进伯特的语言学知识》中,林等人也进行了这样的实验。
图3图片来源:ACL 2019
图3显示了广义数据如何包含压力测试模型编码语言知识的有意干扰因素。
主要辅助任务用于识别句子中的主要辅助动词。一般来说,训练验证数据集所包含的“主助动词”是句子中的第一个动词,而广义数据集将其“隐藏”在句子的更深层部分。
类似地,“主语-名词任务”用于识别名词作为句子中的主语,它是训练和验证数据集中的第一个名词,但在概括集中被修改。
图4图片来源:ACL 2019
以训练集中的句子为例。“猫会睡觉”中的主助动词是“会”。与前一句相比,“会喵会睡的罐子”是一个复杂而笼统的句子。如果要分析这个句子,很容易在句子中找到干扰词“能”,所以很难预测主助动词是“会”。
图4(左)中探针的性能表明,BERT层对语言信息进行编码,能够很好地检测出广义数据中的“主要助动词”。
图5图片来源:ACL 2019
图6图片来源:ACL 2019
同样,对“主语名词”任务的递进数据集进行泛化也是一项相对困难的任务。幸运的是,随着连续层检测分类器性能的提高,我们可以注意到编码语言信息的增加。
本文进一步研究了模型的注意机制及其对这些干扰因素的敏感性。提出了“混淆分数”,即候选表征对目标表征的关注度的二元交叉熵。
以下情况会观察干扰因子复杂度降低时混淆度是如何下降的:当A1的混淆度从0.97下降到0.93时,由于A2中的干扰项“the dog”相对容易捕捉,与动词“dose”的奇异性不匹配。
同样,A3的混淆度从0.85下降到A4的0.81。由于关系从句的加入,A1的混淆度从A3的0.97降低到0.85(类似于A2和A4),可能更好地识别层次句法结构。
语言知识的解码能力
由于分类器探针的复杂度相对较低,所以研究编码后的语言知识是否可以作为一个整体进行解码是很有意思的。比如我们能否完全依靠编码表示来构建依赖解析树?
图7图片来源:NAACL 2019
休伊特和曼宁在他们的论文《在单词表征中寻找句法的结构探针》中提出了“结构探针”的概念。从实验上讲,把内部表征的空间转化为语言知识的空间是可能的。探测器识别线性变换,在该变换下,由变换表示的L2平方距离编码解析树中单词之间的距离,而由变换表示的L2平方范数编码解析树中的深度。
由此我们可以知道,语言知识是一层一层从模型中学习的,在顶层逐渐消失,因为这些层往往是主要的目标函数。
本文还研究了变换空间维数的增加是否有助于语言知识的表达。实验表明,解析依赖树的语言知识可以在32或64维左右表达,而且增加维度不会带来更多的价值效应。
图8图片来源:NAACL 2019
语言知识的局限和来源
“训练有素”的监督模式探索在一系列语言任务中取得了较高的准确性。
但这是否意味着这些表达方式编码了语言结构,还是仅仅是学习语言任务的探针?语言任务准确性可以用来有意义地比较模型不同层的语言属性吗?一个足够深的探针模型可以记忆语言信息。那么如何才能解决这个限制呢?
休伊特和梁在《设计和解释具有控制任务的探针》一文中提出了“选择性”的概念,作为测量探针有效性的一种方法。
控制任务的目的是理解检测器是如何学习与编码表征无关的语言信息的,选择性定义为语言任务的准确性与控制任务的准确性之差。
图9图片来源:EMNLP-2019
从图9可以看出,词性预测的控制任务会分别给某一组词分配某一个词类型(或logo),并根据该词类型预测词性标注(完全忽略编码表示)。
因此,如果一个深度探测器具有记忆功能,它也应该能够很好地执行控制任务。
该图清楚地显示了用于词性辅助任务及其控制任务的探针模型的复杂性和准确性。因此,选择高选择性和高精度的探针对于得出结论非常重要。
图10图片来源:ICLR 2017
Adi等人在《利用辅助预测任务对句子嵌入进行细粒度分析》一文中研究了句子结构知识的来源。虽然CBOW模型忽略了周围的语境,但探针可以在辅助任务中提供高精度的句子长度预测。
但是我们发现只有句子嵌入向量的范数代表句子的长度(图10(右)),所以信息的来源并不是来自标记的编码表示。
但总结这些表达式,范数趋于0,这是由中心极限定理和Hoeffding不等式决定的。
在图10(左)中可以注意到,合成句子(由随机选择的单词组成)的长度的预测精度也接近于法律句子的预测精度。所以决定句子长度的实际知识来源只是随机变量集合的统计性质。
所以需要更深入的研究分析才能从检测结果中得出推论。
注入语言知识
上面已经研究了用于分析编码语言知识的探测技术。接下来的问题是,能否在预期结果中注入显性语言知识?
有一个令人兴奋的研究释义生成——语法引导的控制生成的释义。库马尔等人已经证明了如何使用例句的语法来解释源句。生成的定义词应保留源句的意思,但语法和句子结构应与例句相似。
资料来源:TACL,2020年
图11显示了在不同示例语句的语法指导下生成的定义。我们可以仔细观察和探索模型如何从例句的语法中得到指导。
请注意,只给出例句的语法作为输入,实际的单个标签不会输入到模型中。例句的语法树可以在不同的高度h提取出来,作为编解码模型的输入。
因此,我们得出以下结论:高度越小,解释的灵活性越大,而高度越高,解释的句法结构越明确。
资料来源:TACL,2020年
编码语言知识能否捕获其含义?
编码语言知识对于理解自然语言的含义非常重要,现在大多数的探索都涉及到句法语言知识。我们需要开发一个框架来评估像BERT这样的NLP模型的功能。机器阅读理解、文本相似性、问答系统和神经机器翻译的实例表明,该模型的真正性能是基于其编码语义的能力。
可以开发像Glue(通用语言理解评估)和SuperGLUE这样的基准来评估NLP模型执行自然语言理解任务的能力。通常,将自然语言处理模型的性能与验证准确性的结果进行比较。需要注意的是,使用验证精度存在固有的局限性,如过拟合、验证集的数据分布不同等。这可能会干扰正确的判断。
在美国公民自由联盟2020年发表的论文《超越准确性:用检查表对自然语言处理模型进行行为测试》中,作者提出了一个框架,一种新的自然语言处理模型评估方法:检查表。
核对表借鉴了软件工程的传统测试准则,通过模板快速生成大量样本,全面测试模型的各种能力,几乎可以用于所有的NLP任务。(附件:作者提供了一个用于生成测试样本的开源工具:https://github.com/marcotcr/checklist)
检查表建议使用三种不同的测试方法:
最低功能测试(MFT),其中预期黄金标准用于生成示例;
不变性测试(inv),其中从给定的例子中创建新的例子,其中金本位被翻转;
方向预期测验(DIR)修改原句,金本位改为预期方向(正/负)。
作者建议尽可能用这三种方法来检验自然语言处理模型的各项能力。
例子如下:
图13图片来源:ACL 2020
令人惊讶的是,虽然像罗伯塔和伯特这样的模型超过了人类的基线(准确率分别为91.1%和91.3%),但它们在基于验证数据集的简单规则的推广上却“一团糟”。换句话说,任仲要实现人类层面的自然语言理解还有很长的路要走。
最后,通过评估自然语言处理模型中编码语言的知识,我们总结出以下几点:
自然语言处理模型确实可以编码语言知识来解决一些下游的自然语言处理任务。
更大的模型或表示不一定能更好地编码语言知识。
为句法任务编码的语言知识可以推广到具有复杂句子结构的测试数据,这归因于模型对语言语法的编码能力。
深度探测可能会过度适应和整合潜在的记忆辅助任务,从而导致对编码语言知识的高估和误判。因此,建议设计探头的控制任务。
在提供语言知识后,模型可以更好地完成从这些知识中寻求指导的任务。
句法语言知识不足以捕捉自然语言理解的含义,即使是最先进的模型也远远达不到实现NLP任务所需的理解。
综上所述,编码的语言知识本质上主要是语法知识。正如“检查表”所证明的,该模型在语义概括方面基本失败。最先进的NLP模型主要以自监督的方式对未标记数据进行预训练,并对有限的标记数据进行微调,用于下游任务。然而,从未标记的数据或有限的标记数据中获取与任务或领域相关的语义知识无疑是困难的。
注入语义和领域知识可以提高自然语言处理模型的编码能力,从而提高自然语言处理模型的推理能力,给出合理可信的解释。
瓜尔等人补充说,在黑盒:的语义中,知识图有助于使深度学习系统更具解释性和解释性吗?描述了知识图如何帮助深度学习系统更容易理解和解释,感兴趣的读者可以选择阅读它。
如何弥合语言知识的差距仍然是一个具有挑战性的研究课题。