【深度学习NLP论文笔记】《Visualizing and Understanding Neural Models in NLP》

1 Introduction

神经网络对于NLP任务的可解释性很差。深度学习模型主要是基于word embedding词嵌入(比如low-dimensional,continuous,real-valued vector)。在本文中,我们使用传统方法,比如representation plotting,并使用一些简单策略来评估一个神经元(neural unit)对于语义构建(meaning comporition)的贡献度。它的显著性(salience)或重要性用first derivatives来评估。

在NLP语义合成中有一个重要特点,就是模型能够捕捉到负面不对称性(negative asymmetry).存在一种尖锐的空间局部性,某些维度以一种令人惊讶的地方主义的方式标记了否定(negation)和量化(quantification)。

2 A Brief Review of Neural Visualization

单词的相似度(similarity)可以做可视化:把词嵌入空间(embedding space )投影到二维平面,就可以观测到相同的词通常会聚集在一起。

卷积网络可视化技术(ConvNet visualizing techniques)通常把网络的不同层,和原始的图片输入做一个映射,从而寻找这些层中的unit怎么影响final decision。它包含以下方法:

  • Inversion:通过把不同层的输出投影到原始输入图片,可以得到反向的表征(inverting the  representations)。简而言之就是改动网络结构,反向生成新的输入图片,然后跟原始图片比对?

  • Back-propagation and Deconvolutional Networks:让损失(error)从输出层经过中间层反向传播到原始输入图片。这些策略使我们能够发现对最终分类决策贡献最大的活跃区域或区域。

  • Generation:通过已经训练好的网络模型生成图片。最开始的图片的pixel都是随机的,之后再每一步都不断调整。

在NLP中,单词作为基本单位,因此(词)向量是基本单位(CV中像素是基本单位)。单词序列(例如短语和句子)也以比像素排列更结构化的方式呈现。

3 Datasets and Neural Models

4 Representation Plotting

  • Local Composition:

图1:可视化Intensification和Negation。每个竖条表示组合后,最终句子/短语中一个维度的值。短语或句子的嵌入,是通过组合来自预训练模型的单词而获得的。

图1的Intensification部分显示了一些有启发性的模式,其中一些维度的值通过修饰符“a lot”(第一个示例中的红条)“so much”(第二个示例中的红条)和“incredibly”来增强。虽然否定的模式不是很清楚,但是对于某些维度仍然有一致的反转,比如good和not good

接着我们用tsne对单词和短语做可视化(figure2):

可以发现negation+positive words(像not nice,not good)和负面单词聚类在了一起。

也发现了负面非对称性(asymmetry of negation)现象:比如not bad和负面单词的距离更近,而非正面单词。(这在figure1和figure2都看的出来)

  • Concessive Sentences:

在让步语句(concessive sentence)中,两个分句有完全不同的极性 

图3:LSTM随时间的表示。每列对应于每个时间步长的LSTM的输出(在将当前字嵌入与先前的构建嵌入组合之后获得的表示)。列中的每个网格对应于当前时间步长表示的每个维度。最后一幅图对应于两个序列之间的每个时间步长的绝对差异。

从中可以看出以下2点:

  1. 像情感分析(sentiment analysis)这样的任务,维度太大会导致许多维度非功能性(值接近0)。因为两句完全不同的情感只在一些维度存在差异。这也许解释了为什么更多的维度没有得到更好的效果(有分析说word dimensionality最好在25到35维)

  2. 对于一些由两个子句合成(用though连接)的句子(two-clause sentences),model可能会让though后的第二个子句的情感和第一个子句一样(collaboratively),或者让情感更强的那个子句主导(competitively)。figure3(a)表明两个字句间的差异会在最后一个单词(interesting和boring)出现以后被稀释

  • Clause Composition:

figure4表明在简单正面子句(simple positive clause)后添加负面子句(negative clauses),比如but it is too long或者although it had bad acting,会让情感分析的结果更靠近负面。

但是相反的,在负面子句后添加一个让步子句不会让句子偏向正面,比如i hate X but...还是非常negative,和i hate X没什么差别。这还是说明了negative asymmetry的问题

5 First-Derivative Saliency

我们用一种方法来测量一个输入单元(input unit)对最终决策的影响,这种方法用到了一阶导数(first derivatives )

对于输入E,它的标签是c,训练好的模型给出(E,c)的分数(即分类正确的置信度)是.我们要做的就是找到E的哪个unit对得到的贡献度最大,即主要因为哪个unit,模型给出了c这个分类

由于是高度非线性函数(highly non-linear function),所以把用一阶泰勒展开表示:

其中w(e)是Sc对嵌入e的导数:。它的绝对值衡量了分类的显著性(saliency score)

5.1 Result on Stanford Sentiment Treebank

以下的figure5、6、7就表明了saliency score(loss function对word inputs每个维度的导数的绝对值)。其中每一行对应于对应词表示的显著性得分,每个网格表示每个维度。

  • I hate the movie:三个模型都对hate赋予了很高的显著性。LSTM比标准的RNN更关注hate,bi-directional LSTM除了hate以外几乎不关注其它单词,这可能是由于LSTM和Bi-LSTM中的门结构(gates structures),它们会过滤掉相对无关的信息

  • I hate the movie that I saw last night:三个模型都没有受梯度消失(gradient vanishing)的影响,尽管句子长度变长了

  • I hate the movie though the plot is interesting:标准RNN只强调了the plot is interesting,而忽略了I hate the movie,这可能是由于梯度消失。然而,该模型正确地将句子分类为非常负面的,这表明它成功地整合了第一个负面子句的信息。我们单独测试了子句though the plot is interesting,标准RNN非常确定地认为其是positive的。因此,尽管第一个从句的显著性得分较低,但简单的循环系统设法依赖于该从句,并淡化后一个积极从句的信息——尽管后一个词的显著性得分较高。(???)这表明saliency visualization的不足,即一阶导数不能捕捉我们想要可视化的信息。然而LSTM一下就强调了第一子句,并抑制了第二子句。Bi-LSTM则同时关注了hate the movie和plot is interesting

5.2 Results on Sequence-to-Sequence Autoencoder

figire9

猜你喜欢

转载自blog.csdn.net/qq_36829091/article/details/81812772
NLP