谷歌在2016年发布了全新的神经机器翻译系统(GNMT),并表示由于神经网络算法的介入,该系统相比传统机器翻译降低了80%的错误率,已接近人工翻译的水平。
但对于谷歌的这项发布,以及神经网络(或者深度学习)算法是否真的适合自然语言处理,业内存在着不同的看法。
日前美国AI公司exClone创始人,超导材料公司Epoch Wires主席Riza C. Berkan在博客中发布了一篇文章,围绕这一问题表达了自己的看法。他认为谷歌GNMT系统仅仅是一个噱头,而且由于自然语言本身并的特性,根本不适合用现有的神经网络算法来处理。
作者认为,神经网络算法本身的技术特点决定了它更适合于处理连续型变量,或者连续型过程,即自变量和因变量之间存在一种连续的变化关系(如气温变化),而非跳跃式的变化(如一个人的银行余额变化)。但自然语言,单纯从字词组成的角度来看,却并非一种连续型的过程,自然语言是由语法规则、逻辑思考和渐进式的决策边界等各种非连续过程产生的一种非连续的变化。
举例来说,“Mary爱她的猫(Mary loves her cats)”这句话,单从字词组成的角度看就是非连续的。因为Mary和猫之间并不是一种逻辑上连续的关系,而是一种随机的偶发性关系(Mary可以爱任何东西,并不一定是猫)。如果直接用这种偶发性的变化关系来训练神经网络系统,那么系统会抓不到训练的重点,也就得不到预期的输出效果。
但如果换一种方式,将上面那句话重新组织:{专有名词-Mary:人类女性}{动词-爱:情感寄托}{名词-猫:宠物},那么就能得到一种相对更连续的数据。因为从认知上说“人类女性对宠物具有情感寄托”比“Mary爱猫”具有更好的一致性。而如果以这样的数据输入神经网络系统展开训练,那么就能得到一个理想的效果。
需要指出的是,后一种组织方式并非简单的词性解析,而是一种逻辑性的认知识别,要做到这一点需要大量的人力和物力投入,目前还没有可靠的机器替代人工的方法,这也解释了在过去30年中,为什么基于字词组成的角度训练神经网络系统并未取得重大突破的原因。
如图所示为一个典型的多层神经网络模型,假设这里的输入和输出都是基于自然语言的文本数据(例如机器翻译或者机器聊天等场景),然后利用反向传播算法等常见的神经网络算法对该系统进行训练,或许最终这个系统也能收敛,但其处理问题的效果究竟如何,作者认为并不能保证。
假如以上文提到的第一种数据组织方式对该系统进行训练,即基于字词组成的分析方法,那么由于数据的非连续性,最终只能得到一种基于数理统计的词汇搭配,这时的神经网络并未“理解”文本的真正含义。也就是说:最终只得到了一种词汇和词汇间的简单映射,而且这种映射并不会随着语义的变化而变化。
即使对数据做矢量化的处理,或者采用其他一些神经网络的实现架构,也不会改变这一现象。因为从根本上说,数据本身的不连续性,会在训练中强制神经网络系统为每一种决策边界(针对每一种非连续状态)分配存储单元(就像人类神经网络系统中的神经元)。就好像在数据库处理中为每个数据元素单独分配一个存储空间那样,这种运行方式本身就悖离了神经网络系统的最大优势之一:数据之间高度的相关性。
采用这种数据的训练结果就是:当输入与训练数据高度相似的样本时,或许可以得到一些可接受的结果。可一旦输入样本与训练数据差异性变大,那么很可能得到一堆乱码,因为在可供分析和利用的不连续数据中并没有找到之前训练中得到的映射关系。换句话说,系统输出的有效性将非常局限于输入样本与训练数据集的相似性。
相反,如果使用连续型数据进行训练,即上文提到的第二种数据组织方式,基于认知概念的分析方法,神经网络系统就会对训练中得到的逻辑联系保持强大的复现能力和灵活性,就好像人类的大脑一样,在保证一定容错能力的同时,可以在每个存储单元之间建立普遍的关联性。这样的神经网络系统实际上就具备了一定的逻辑推断能力,这也是神经网络系统被广泛应用于工程应用领域的原因。
一些工程师可能会尝试用矢量化和降维等方法预处理,将原始数据强制转换成连续性的数据。但这可能会带来一个不可忽视的副作用:信息量的丢失。一定程度的信息量丢失在特征检测和归类等领域或许是可以接受的(例如图像处理),但在语言领域却完全不同。因为不论是整篇文本还是一句话,语言并非一种简单的词汇量的数理统计,而是一种基于概念和认知的副产品。数理统计或许有助于自然语言的处理,例如解决语言处理中的“肥尾”现象,或者借助矢量化在训练数据之外助力神经网络算法,但绝不是最终的解决方案。这里需要澄清的一点是:无论神经网络还是数理统计,基于字词组成的分析方法都无法覆盖自然语言处理中的所有问题,有些场景必须要借助基于认知概念的分析方法。
这里作者顺便提及了谷歌最新发布的GNMT系统,作者表示:由于我们无法获取谷歌训练神经网络系统的原始数据,因此也就无法判断谷歌给出的样本翻译语句是否与原始训练数据紧密相关,那么也就无从判断其超高的翻译准确率是否具有参考价值了。
另一方面,谷歌也并未公布GNMT系统的具体训练参数,包括神经网络模型的收敛程度,是否只能对训练数据集的一部分起作用,如果翻译出错了,错误原因是什么,以及错误出现的频率等等。
从这些细节我们可以确定:谷歌发布GNMT系统并非为了颠覆学术界,否则如果不是出于技术细节的安全性考虑的话,谷歌一定会公布神经网络内部的各项训练参数。
这一点在谷歌的公报中也能得到验证,下面是公报原文:Rekimoto在Twitter上向他的十多万粉丝推送了这项发现,在接下来的几个小时,有成千上万的用户在Twitter上广播他们使用谷歌机器翻译的测试结果,其中有些翻译是正确的,有些则为了搞笑故意拼错了单词。
在使用神经网络算法处理自然语言问题时,另一个非常容易被忽视的问题就是数据量。
这里作者打了个比方:假设我们使用一万页的文本数据量来训练神经网络模型。那么全球范围内人类完整的知识储备又有多少呢?这显然是一个无法计算的天文数字,这里不妨假设这些知识的总量有10的21次方页。那么问题来了,仅仅通过一万页的训练数据,如何让神经网络掌握全部10的21次方页的全部知识呢?答案是:可用的训练数据量实在太小了。
另一方面,对于语法规则和语义理解领域的专家来说,人类的大脑显然能够完全掌握这10的21次方页的全部知识(因为这些知识就是那些专家写出来的)。而且更关键的是,任何一个普通人,只要具备最基本的读写能力,就都能通过自主学习逐渐掌握这10的21次方页的完整知识,作者认为,这才是人脑与现阶段的神经网络模型相比最可怕的地方,即真正的学习能力。
作者认为,要完美解决自然语言处理的问题,就必须找到一种能掌握语法和语义的全新的机器学习方法,而不是词汇与词汇之间的简单映射,甚至也不是现阶段的神经网络模型。这里作者用“砖”和“桥”的例子做了说明。
目前,科学家们只是从人类大脑神经网络处理现实问题的基本原理中得到启发,构造了当前的神经网络模型。就好像上图中砖和桥的关系,由于并没有理解人脑处理问题的深层机制,就好像没有看到桥,只看到了砖一样,因此当前的神经网络模型只是在微观结构上模拟人脑,并没有实现完整的问题解决框架,而这种宏观的框架可能才是处理如自然语言理解这类困难问题的关键。这里作者将这一框架称为建立在神经网络之上的网络,即“网络之网络”(network of networks)。需要强调的是,这种“网络之网络”并非简单的增加现有神经网络模型的层次或者改变网络内部的反馈方向,而是一种更高级的组织形式。
作者表示,人类大脑这种宏观的问题解决框架至关重要,在生物学家们破解这一深层奥秘之前,我们只能耐心等待。而在此之前,所谓的“深度学习”也许只能称为“深度黑暗”(deep darkness)了。
那么回到谷歌翻译的问题,谷歌究竟是在炒作么?答案可能是肯定的。作者认为:由于目前我们对人脑神经网络系统的理解尚处于非常浅薄的阶段,因此几乎所有关于我们已经完全掌握了其中的关键技术,并取得了重大突破的表述也就都可以认为是“炒作”。作者同时调侃道:当然也有例外,比如谷歌已经领先竞争对手一个世纪,秘密地破译了人脑神经网络系统的深层工作原理,也即发现了那座由为数众多的“砖”组成的“桥”。
来源:linkedin