原本想把标题写成“从炼丹到化学”,但细想之下,这个说法太过跳跃——学术研究从来不是一蹴而就的。不过,若能找到一套合适的数学工具来量化深度神经网络的表达能力与训练能力,将当前依赖经验调参的“炼丹”范式,逐步引导至有定量指标支撑的“化学”范式,这确实是新一代人工智能亟需突破的核心课题。在当下深度学习行业略显“混沌”的大环境中,这一思路或许能带来一丝新的曙光。
本文想介绍我们团队近期被ICML接收的一项工作——“Towards a Deep and Unified Understanding of Deep Neural Models in NLP”(这次先聚焦自然语言处理领域,后续有机会再讨论类似思路在计算机视觉网络中的论文)。这是与微软亚洲研究院合作的项目,王希廷研究员在NLP方向积累了丰富的经验,她和学生关超宇在这个课题上贡献巨大,在此特别致谢。
人们常说神经网络是一个“黑箱”,这个说法其实包含两个层面:第一,神经网络所提取的特征与决策逻辑在语义层面难以理解;第二,我们缺乏合适的数学工具来诊断和评估网络的特征表达能力——例如,它究竟建模了多少知识量?泛化能力如何?收敛速度怎样?进而,不同神经网络模型在信息处理上的差异也就难以说清。
以往的研究大多聚焦于第一个层面,而这篇ICML论文同时兼顾了两个方面:针对各类自然语言应用中的神经网络,寻找恰当的数学框架来建模其中间层特征所携带的信息量,并可视化这些信息的分布规律,从而解释不同模型之间的性能差异。
其实,我们一直想建模网络的特征表达能力,却迟迟不愿动手,原因很简单——始终找不到一套足够优美的数学框架。深度学习的研究与应用已被不少人批评为“经验主义”和“拍脑袋”,如果连解释性算法也沦落到靠拍脑袋来凑,那么解释工作还有什么意义呢?
研究的真正难点在于,评测指标必须具备“普适性”与“一致性”。所谓普适性,是指指标要建立在通用的数学概念之上,能与现有数学体系尽可能多地衔接,同时所依赖的假设要尽可能少,计算过程也要尽量独立于网络结构与具体任务。而一致性则要求评测结果能够客观反映特征表达能力,并能在不同维度上进行可靠比较:比如,比较同一网络中不同层之间的语义信息继承与遗忘;比较不同网络处理同一任务时任意层的信息分布;以及比较不同网络面对不同任务时的信息处理特点。
具体到NLP场景:当输入一句话 \(x=[x_1, x_2, \ldots, x_n]\) 到神经网络时,整个信息处理过程可以看作是对输入单词逐步“遗忘”的过程。每经过一层传递,信息就会损失一部分,而网络的作用就是尽可能忘掉与目标任务无关的信息,保留相关的部分。于是,相对于目标任务的信噪比会逐层提升,最终保证分类性能。
基于这一视角,我们提出了一套算法,用来测量每一层中层特征 \(f\) 中包含了多少关于输入句子的信息量,即 \(H(X|F=f)\)。如果假设各单词的信息相互独立,那么句子层面的信息量就可以分解为各个单词的信息量之和:\(H(X|F=f) = H(X_1=x_1|F=f) + H(X_2=x_2|F=f) + \ldots + H(X_n=x_n|F=f)\)。这个形式是不是和信息瓶颈理论有些相似?其实两者有明显区别:信息瓶颈关注的是全部样本上输入与中层特征的互信息,而我们只针对某一个具体输入,细粒度地研究每个单词被遗忘的程度。
可以从两个不同的角度来计算 \(H(X|F=f)\)。一种是只关注真实自然语言的低维流形——把 \(p(X=x|F=f)\) 建模为一个 decoder,用中层特征 \(f\) 去重建输入句子 \(x\)。在这篇论文中,我们选择了第二个角度:不关心真实语言的分布,而是考虑整个特征空间的分布,允许 \(x\) 取值为噪声。计算 \(p(X=x, F=f) = p(X=x) p(F=f|X=x)\) 时,需要搞清“哪些噪声输入也能产生同样的特征 \(f\)”。举个简单的例子:输入是“How are you?”,显然“are”是废话,从“How XXX you?”就能猜出来。如果只从真实句子分布出发考虑重建,那些话佐料(比如“are”“is”“an”)会被重建得很好。但第二个角度关注的是网络实际遗忘了哪些单词——结果发现,“How XYZ you?”同样能生成“How are you?”的特征。所以 \(H(X|F=f)\) 反映的正是:在计算中层特征 \(f\) 时,哪些单词的信息在层间传递中被网络忽略了,即便把这些单词换成噪声,也不会影响特征。信息量如何计算?这确实是个难点,具体推导只能留给论文,这里只谈思路,不上公式。
从普适性来看,中层特征中输入句子的信息量(或者说遗忘程度)是信息论中的基本概念,它只关心特征背后的“知识量”,不受网络参数大小、特征值大小、卷积核顺序的影响。而从一致性角度来看,“信息量”能客观反映层间的信息传递能力,实现稳定的跨层比较。下面这张图可以看到,基于梯度的评测方法在不同中间层无法给出稳定一致的结果。

接下来的图对比了不同可视化方法在分析“reverse sequence”神经网络中层特征关注点时的差异。我们基于输入单词信息量的方法,能够更平滑自然地展示网络内部的信息处理逻辑。

再来看诊断“情感语义分类”神经网络的例子。同样,我们的方法在可视化中层特征关注点方面,比其他方法更清晰、更自然。

基于这个信息量指标,我们进一步分析了四种在NLP中常用的模型:BERT、Transformer、LSTM和CNN。在各种NLP任务中,BERT通常表现最好,Transformer次之。下面这张图展示了一个有趣的现象:相比LSTM和CNN,基于预训练参数的BERT和Transformer能更精准地定位到与任务相关的目标单词,而LSTM和CNN往往依赖更大范围的邻接单词来做预测。

更进一步,BERT在预测中更倾向于使用有实际意义的单词作为分类依据,而其他模型则把更多注意力放在“and”“the”“is”这类没有实际含义的单词上。

从逐层遗忘的视角来看(见下图),BERT在L3-L4层就已经遗忘了EOS标记,而在第5到12层逐渐遗忘其他与情感分析无关的单词。相比其他模型,BERT在单词选择上更有针对性。

我们的方法还可以更细粒度地分析各个单词的信息遗忘情况。结果显示,BERT对各类细粒度信息的保留能力是最强的。

十多年前刚接触AI的时候,感觉最难的是独立找课题;后来发现追着热点拍脑袋能想出一堆新题目;再后来,真正想做的课题反而越来越少——哪怕AI领域的投稿量一直呈指数增长。回国以后,身份从博后变成了老师,带的学生多了,工作量翻了一倍,一直没腾出时间写文章和大家分享新工作。如果有时间,还会继续聊聊更多的研究,包括这篇文章后续的多种算法、信息量在CV方向的应用论文,以及基于这些技术衍生出的新课题。这次先到这里。
