深度学习在自然语言处理中的应用( 四 )


网络结构
我们一起看看网络是如何处理初始输入内容的 。和大多数机器学习算法一样,此方法首先也是将输入内容映射成特征表示 。映射的方法可以是词向量、成分标注或者语法分析等等 。
下一步,根据特征表示I(x)更新记忆内容m,以反馈新输入内容x引入的信息 。
我们可以把m看成是若干个mi组成的数组 。每个独立的mi又可以视为m、特征表示I(x)和其本身的函数G 。记忆内容的更新是通过G函数完成 。第三步和第四步是读取记忆信息,根据问题生成特征表示o,然后将其解码输出得到最终的答案r 。
函数R可以是一个RNN模型,将特征表示转化为我们人类可读的文字答案 。
针对第三步,我们希望O模块输出的特征表示是最匹配该问题的答案 。那么,这个问题将与各个记忆单元逐一比较,计算它们之间的匹配得分 。
最后,用函数选出得分最高的一项(或者多项) 。计算得分的方法就是将问题的向量与各个记忆单元的特征表示向量相乘(细节请参见论文) 。这个过程与计算两个词向量的相似度类似 。输出的表示特征o再被送入RNN或是LSTM模型,生成最终我们可读的答案 。
整个训练过程属于监督式学习,训练数据包括问题、原始语料、经过标记的答案 。目标函数如下图所示:

深度学习在自然语言处理中的应用

文章插图
更多的相关资料可以参见下面几篇论文:
情感分析的树形LSTM模型
下一篇论文主要内容是介绍情感分析的方法,分析某个短语是否包含正面或是负面的情绪 。《心理学大辞典》中认为:“情感是人对客观事物是否满足自己的需要而产生的态度体验” 。LSTM是目前情感分析最常用的网络结构 。Kai Sheng Tai,, 和所发表的这篇论文介绍了一种新颖的方法将LSTM网络串联成非线性的结构 。
这种非线性排列的动机源自自然语言所具有的属性,即词语序列构成短语 。而词语的排列顺序不同,构成的短语含义也不相同,甚至与单个词语的含义完全相反 。为了体现这一特点,LSTM单元构成的网络必须呈树状结构排列,不同的单元受其子节点的影响 。
网络结构
树形LSTM与标准型网络结构的差异之一是后者的隐藏状态是当前输入与上一步隐藏状态的函数,而前者的隐藏状态则是当前输入与其子节点的隐藏状态的函数 。
深度学习在自然语言处理中的应用

文章插图
由于网络结构的改变,训练的方法也有所变化,具体细节可以参考这篇文章 。作者的关注点在于为何这种模型的效果比线性LSTM更好 。
基于树形的结构,每个独立单元的状态与其所有子节点的隐藏状态都相关 。这一点很重要,因为因为每个节点可以区别对待其子节点 。在训练过程中,网络模型能学到某些特殊单词(比如“not”和“very”)对整句话的情感分析相当重要 。若模型能给予这部分节点更大的权重,最终取得的效果也将更好 。
神经机器翻译
作者挑选的最后一篇论文是关于机器翻译的 。该文的作者是谷歌的机器学习大牛们,Jeff Dean, Greg , Orial 等人,这篇文章介绍了支撑谷歌翻译服务的基础系统 。该系统相比之前谷歌所用的系统,翻译的平均错误率降低了60% 。
传统的自动翻译方法包括多种短语匹配方法 。这种方法需要大量的语言学的领域知识,而且最终其设计方案被证明过于脆弱,缺乏泛化能力 。传统方法存在的问题之一,就是它会试图一块一块地翻译输入的句子 。事实证明,最有效的方法(即神经机器翻译的技术)是一次翻译整个句子,从而译文显得更自然流畅 。