From SJTU, MSRA and PKU.
Authors: Chaoyu Guan, Xiting Wang, Quanshi Zhang, Runjin Chen, Di He, Xing Xie.
Title: Towards a Deep and Unified Understanding of Deep Neural Models in NLP
In: ICML 2019.
Codes: icml2019paper2428/Towards-A-Deep-and-Unified-Understanding-of-Deep-Neural-Models-in-NLP
Introduction
前段时间看过张拳石老师介绍这篇论文的文章,很感兴趣,自己原来也有这方面的其他想法,但是并没有实践过,这篇论文收获颇丰。
不管是深度学习的哪个方向,深度神经网络(DNN)的可解释性一直是一个困扰我们的问题。基于DNN的NLP模型效果为什么好?貌似没有一个好的解释方法。之前有几个尝试性的工作:
- gradient-based:基于梯度的方法
- inversion-based:基于反演的方法
- layer-wise relevance propagation:相关性逐层传播
这些方法一定程度上定量分析了模型的中间层,虽然可以进一步理解神经网络的内部机制,但是存在not coherency(“普适性”)和not generality(“一贯性”)问题:
- 普适性:解释性指标的计算算法尽可能独立于神经网络结构和目标任务的选择。比如,对单个神经元的分析适用,也要对神经元组成的网络层适用,还要对整个模型适用。
- 一贯性:解释性指标需要客观地反应特征的表达能力,并实现对不同模型结构和任务的广泛比较,也就是解释性指标的“泛化能力”。
文章试图找到一个可以定量分析(解释/可视化)NLP神经网络模型的方法,利用互信息[3]这一具有“普适性”特点的信息度量,定义了一种统一的information-based measure,量化NLP深度神经模型中的中间层对每个词编码的信息,研究每个单词的信息遗忘程度。
Methods
文章想从两个角度解释中间层的隐层状态:word information quantification【词信息定量分析】和fine-grained analysis of word attributes【细粒度词属性分析】。
Word Information Quantification
定量计算隐层状态编码输入词的信息量:
corpus-level:
M I ( X ; S ) = H ( X ) − H ( X ∣ S ) MI(\mathbf{X} ; \mathbf{S})=H(\mathbf{X})-H(\mathbf{X} | \mathbf{S}) MI(X;S)=H(X)−H(X∣S)
MI是互信息,H是熵。对于同一个输入,H(X)是恒量,模型中每一层每一个神经元对输入X对编码程度不一样,用H(X|S)表示隐层S丢弃X的信息量,MI就是S编码X的信息量。
其中: H ( X ∣ S ) = ∫ s ∈ S p ( s ) H ( X ∣ s ) d s H(\mathbf{X} | \mathbf{S})=\int_{\mathbf{s} \in \mathbf{S}} p(\mathbf{s}) H(\mathbf{X} | \mathbf{s}) d \mathbf{s} H(X∣S)=∫s∈Sp(s)H(X∣s)ds
sentence-level:
H ( X ∣ s ) = − ∫ x ′ ∈ X p ( x ′ ∣ s ) log p ( x ′ ∣ s ) d x ′ H(\mathbf{X} | \mathbf{s})=-\int_{\mathbf{x}^{\prime} \in \mathbf{X}} p\left(\mathbf{x}^{\prime} | \mathbf{s}\right) \log p\left(\mathbf{x}^{\prime} | \mathbf{s}\right) d \mathbf{x}^{\prime} H(X∣s)=−∫x′∈Xp(x′∣s)logp(x′∣s)dx′
其中: s = Φ ( x ) \mathbf{s}=\Phi(\mathbf{x}) s=Φ(x) 表示x对应的隐层状态。用H(X|s)表示中间层中对应的隐层状态集s丢弃X的信息量。
word-level:
H ( X ∣ s ) = ∑ i H ( X i ∣ s ) H ( X i ∣ s ) = − ∫ x i ′ ∈ X i p ( x i ′ ∣ s ) log p ( x i ′ ∣ s ) d x i ′ H(\mathbf{X} | \mathbf{s})=\sum_{i} H\left(\mathbf{X}_{i} | \mathbf{s}\right) H\left(\mathbf{X}_{i} | \mathbf{s}\right)=-\int_{\mathbf{x}_{i}^{\prime} \in \mathbf{X}_{i}} p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right) \log p\left(\mathbf{x}_{i}^{\prime} | \mathbf{s}\right) d \mathbf{x}_{i}^{\prime} H(X∣s)=i∑H