zoukankan      html  css  js  c++  java
  • 论文赏析[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的设计是有瑕疵的。

  • 相关阅读:
    LOJ #2109. 「JLOI2015」骗我呢 数形结合+组合+容斥
    LOJ #2729. 「JOISC 2016 Day 1」俄罗斯套娃 扫描线+贪心
    LOJ #2508. 「AHOI / HNOI2018」游戏 拓扑排序
    LOJ #2106. 「JLOI2015」有意义的字符串 构造+矩阵乘法
    LOJ #2471. 「九省联考 2018」一双木棋 记忆化搜索
    python的md5和base64加密
    [转]python的find()方法
    [转]python的startswith()方法
    获取http请求的响应状态
    with...as...用法
  • 原文地址:https://www.cnblogs.com/godweiyang/p/12203892.html
Copyright © 2011-2022 走看看