最近,神经网络在NLP中的作用越来越重要,在上面列出的一些任务中,神经网络是需要不同的知识和能力。在翻译任务中,需要翻译的语句需要由深度语言模型用另外一种语法去表达语义信息,这表明模型需要具有在不同语言中应用语法的知识。而语言的可接收性任务中则同样面对翻译问题中的语句通顺问题。同样涉及到需要不同的语法去表达语义信息的还有Paraphrase任务。上述任务共同包含的能力需求是识别语义的前后包含关系,例如前一句有没有包含第二句话的条件。模型还应该具有常识判断能力。例如:大象不能放到冰箱里面,因为它太大了,这个它指的是大象还是冰箱。而模型要想正确的理解“它”是大象还是冰箱,就必须知道现实生活中大象和冰箱的大小概念,这样才能正确理解是大象太大了。而相反的语句,大象不能放到冰箱里,因为它太小了,模型则能够理解是冰箱太小了。另外在做任务时,神经模型还需要理解语义信息,例如 Quora Question Pairs任务中,需要判断两个问题是否在提问相同的问题。值得考虑的一点是,在这些任务中神经模型能够出色的完成任务,这意味这它们应该具有很多相关知识。因此需要关注它们具有多少知识,如果它们具有这些知识,它们是从什么时候开始学会这些知识的。它们对于这些知识的储存方式是不是储存在一部分的单元里面,如果是的话我们能不能把这些单元提取出来,或者改进其他的单元。而知道这些知识的储存位置对于如何设计更好的模型提供了帮助。探究这个问题的方法是使用诊断探针。在2016年的时候,Ettinger 在文章《Probing for semantic evidence of composition by means of simple classification tasks》中提出了探针诊断。他们设计的方法是使用分类器,分类器算法的输入是句子的表征,输出的是语言任务,而使用者只需要手动指定一些语言任务,然后让分类器去学习。如果分类器能很容易学会,即获得很高的正确率或很低的交叉熵损失函数,就说明表征中有很多很容易解码的信息。Bengio在文章《Understanding intermediate layers using linear classifier probes》中提出,对诊断探针的分类器的疑问可以概括为,在模型的阵列当中是否包含这块信息。因为在一个深度模型当中,从低层到高层所包含的信息是减少的,这主要因为信息处理的不平等,模型会对信息做一些处理,导致信息的损失,但是会尽量保留有用信息。所以越往高层走,任务相关的信息占的比例会越来越高的,会越来越容易解码。 2
对于语言探针的探索
当设置好语言探针任务之后,就能够使用探针去寻找不同的语言信息,例如语法信息。Hewitt在2019年发表于NAACL的《A Structural Probe for Finding Syntax in Word Representations》中使用探针去寻找句子中的单词与单词在语法树上的距离,因此他们的输入就是句子的表征,而输出的是词与词的语法距离。他们在文章中表明,在BERT模型中,较低层的表征含有较多的语法树距离信息,但是在模型的高层中这类信息相对较少。Tenney在文章《BERT Rediscovers the Classical NLP Pipeline》中发现高层中包含的语义信息比较多,低层中语法信息比较多。这就像一个传统的Pipeline形式,可解释性强且信息局部化,其中每个流程都在完成不同的工作,且是严格按照一定顺序进行的,例如句法分析,语法分析,命名实体识别,语义角色标注,然后共指消解。其先在低层处理一些语法特征,传统的办法有手动提取特征,而在高层中通过算法提取一些语义信息,即形成低层语法,高层语义的模式。Tenney组发现BERT模型中也呈现出了类似的特征。作者在他的论文《Examining the rhetorical capacities of neural language models》对修辞特征进行了探索,他们把探针的输入设置成文章的表征,进而观察文章中有多少解释或者转折的信息,并且观察到双向的语言模型在这方面表现比单向的语言模型要好。语言探针容易设置:输入表征、让分类器预测一些诊断任务。探针结果的结果容易解读:“诊断探针任务”的效果好,则可以推测“表征的知识丰富”。但是这种传统的语言探针模式在2019年受到了挑战。2019年EMNLP获得最佳论文奖第二名的斯坦福大学的研究团队在《Designing and Interpreting Probes with Control Tasks》(作者为 John Hewitt、Percy Liang)一文种提出:当我们能够观察到好的表现的时候,不一定是因为这个表征具有很多的信息,也有可能是因为探针学会了这项任务。这是因为探针本身就是神经网络,而神经网络甚至能够从随机的向量里面学习改进(参考:2017年Zhang的《Understanding Deep Learning Requires Rethinking Generalization》)。因此只要所用的数据集够小,而探针的设置够大,探针甚至能够通过这个数据集建模。因此,他们提出使用“Selectivity”标准去选择探测器。Selectivity标准是:和使用了随机标签的控制任务相比,探针的精度提高了多少。探针本身就能够进行学习,但是在“控制任务”里面,探针也会学习。这些学到的知识会减法中被抵消。此外,Hewitt and Liang还推荐使用更简单的探针模型,因为探针的参数越少,它的学习能力就越低。针对Hewitt& Liang的文章,几个月之后,ETH Zurich的Tiago Pimentel等人在ACL 2020文章《Information-Theoretic Probing for Linguistic Structure》中反驳了他的观点。首先,他们试图从信息论的角度来定义探针任务。他们提出,语言探针的目的在于计算表征R和任务T之间有多少互信息(code-target mutual information, I(T;R))。在NLP模型中,我们通常认为词语或者句子的表示蕴含了一定的语言学性质,比如句法信息或者语义信息。为了证明这一点,人们设置了探针任务,它是关注于简单的语言学性质的分类任务。比如对于一个LSTM encoder,使用句子 embedding 来训练一个时态分类器,如果能够得到正确的分类,则认为这个 embedding 包含了一定的时态信息。Hewitt的文章认为探测任务应该使用比较简单的模型,比如使用浅层感知机。而Pimentel等人这篇文章反驳了这一观点,认为探测任务应该使用表现尽可能好的探针模型,他们反对Hewitt提出的二分法解释。Pimentel也反对使用控制任务;他们提出控制函数作为控制设置。控制函数与控制任务的区别在于控制函数将表征随机化,而控制任务将标签随机化。在后面的实验中,我们将证实这两者是等价的。此外,Pimentel还使用了信息增益这个判断标准来选择语言探针,信息增益是控制任务和探测任务交叉熵损失的差异,用此来近似信息的增量。这两篇文章形成了一种辩论,我们试图解释这两个文章里面观点不同的地方。 3