论文赏析[EMNLP19]用控制任务来设计并解释探测任务

原文链接:

论文赏析[EMNLP19]Designing and Interpreting Probes with Control Tasks

论文地址:

Designing and Interpreting Probes with Control Tasks

介绍

NLP任务都存在着一个常见的问题:我的神经网络有没有学到某个性质 Y 所以我们需要构造出一种方法,来告诉我们模型是否真的学到了某些性质。

例如对于ELMo,我们想知道它是否学到了POS tag信息,所以我们需要设计一种探测任务(probe task)。

v2-2bad453aa59f79d07ee961b0dce51cd6_b.jpg

如上图所示,我们将句子输入到ELMo中,得到每个单词的上下文表示。 然后用probe函数(一般是MLP或者linear)进行分类,得到每个单词的POS tag。

注意到这里的ELMo是不进行fine-tune的,也就是固定住不变的,模型参数只有probe参数。

但是我们能否说,POS tag效果好,那么ELMo学的就好呢? 其实是不行的,因为有三点因素可能影响到最终的tag准确率:

  • ELMo真的学到了POS tag信息。
  • probe函数设计的比较复杂,可以很好的拟合出POS tag分布。
  • POS tag任务的监督信息加的比较多。

所以本文主要研究了如下三个问题:

  • 高的探测准确率是否意味着表示真的学到了某种性质?
  • 探测方法对结果有着什么样的影响?
  • 上面提到的三点影响因素对探测结论是否有影响?

下面我们一一关注这三个问题。

问题1

首先答案是否定的,探测任务上准确率越高,并不能代表着表示学到了你想要的性质。

v2-16dcac87f38c580f1a2d1c288131f840_b.jpg

还是用ELMo和POS tag举例子,上面这个模型用1000隐层维度的MLP作为probe函数,最终取得了97.3的高准确率。 但是我们不能说EMLo能够很好的学到了POS tag信息,因为可能是MLP很好的拟合出了POS tag分布。

所以我们提出了控制任务(control task)的概念,也就是用同样的模型去预测一个随机任务。 例如对于POS tag任务,PTB数据集里一共有45个tag,我们给每个单词重新随机分配一个tag,然后用探测模型预测句子的随机tag。 这样其实有个小问题,就是消除了单词的一词多义问题,一个单词在所有语境下tag都是一样的了。

v2-fba5cb87a71af4aab91f19646836426c_b.jpg

测试下来结果如上图所示。 可以看到MLP和linear对POS tag结果基本没有影响,都非常的高。 但是对control任务也就是随机tag影响很大,MLP并没有降低很多(92.8),但是linear降低了很多(71.2)。 于是我们将这个差值叫做selectivity。如果selectivity越大,说明probe函数影响越小,可能不是probe函数拟合出来的结果。 如果selectivity越小,说明不管是gold的label还是随机的label,准确率都很高,这就可能是probe函数拟合出来的结果了,而不是表示学出来的。

问题2

显然linear的学习能力明显不如MLP,那么不同的参数设置对最终结果是否有影响呢?

v2-a3543e40a7233a59b9eddee03044e4b6_b.jpg


上图举了两个例子,分别是dropout和隐层维度对结果的影响。 可以看出简单的正则化对selectivity影响不是很大,但是隐层维度影响特别大。

v2-6da014c0d762f3f3337f8035a8993a02_b.jpg

具体的参数影响如上图所示,最终选取了使得准确率比较高,selectivity相对大的参数配置。

问题3

答案也是肯定的。

v2-f97d3d7975b4215dd3574ddbd82f996e_b.jpg

比如上面这个例子,一般认为ELMo第1层POS tag效果是要好于第2层的,probe测试下来也是这样。 但是可以发现,第2层的selectivity更大,说明其实第2层才更好的学到了POS tag信息。 那为什么第1层效果更好呢?可能是因为它更靠近单词层,所以保留了更多单词的信息。 这也说明了selectivity方法可能也不是完美的,可能通过聚类预测POS tag,第2层效果会更好。

结论

具体的实验细节和分析就不说了,大体就是这么个思想。 这篇主要就是说明了,光靠准确率并不能说明一个encoder的表示学到了某种性质,而可能是模型拟合的结果。 所以他们提出了control task,同时预测一个随机输出,如果准确率差距较大,则验证了表示学到了性质。 当然这个方法还有一些问题,比如probe函数的挑选,还有文中依存句法分析的control task的设计是有瑕疵的。

posted on 2020-01-17 01:02  godweiyang  阅读(185)  评论(0编辑  收藏  举报

导航