7.4 语义组合
分布式词表示的思想可以进一步扩展,即通过组合(Composition)的方式来表示短语、句子,甚至是篇章等更大粒度的语言单元。目前主要通过三种神经网络结构来实现不同的组合方式,即循环神经网络(顺序组合)、卷积神经网络(局部组合)和递归神经网络(根据句法结构进行组合) [8] 。下面以句子“我 喜欢 红 苹果”为例,说明不同组合方式的基本原理及其优缺点,具体可以参见图 1 中“深度学习”部分。
循 环 神 经 网 络(RNN,Recurrent NeuralNetwork)从左至右顺序地对句子中的单元进行两两组合,首先将“我”和“喜欢”组合,生成隐层h 1 ;然后将 h 1 与“红”进行组合,生成 h 2 ,以此类推。传统的循环神经网络模型存在严重的梯度消失(Vanishing Gradient)或者梯度爆炸(ExplodingGradient)问题,尤其是当句子较长,即网络的层数较多时。深度学习中一些常用的技术,如使用ReLU 激活函数、正则化,以及恰当的初始化权重参数等都可以部分解决这一问题。另一类更好的解决方案是减小网络的层数,以 LSTM 和 GRU 等为代表的带门循环神经网络(Gated RNN)都是这种思路,即通过对网络中门的控制,来强调或忘记某些输入,从而缩短了其前序输入到输出的网络层数,从而减小了由于层数较多而引起的梯度消失或者爆炸问题。
积神经网络(CNN,Convolutional NeuralNetwork)目前被广泛应用于图像处理领域,它考虑了生物神经网络中的局部接收域(ReceptionField)性质,即隐含层神经元只与部分输入层神经元连接,同时不同隐含层神经元的局部连接权值是共享的。这一性质在很多自然语言处理的任务中也有所体现,如对评论文本进行分类,最终的褒贬性往往由局部的一些短语决定,同时不需要顾及这些短语在文本中的位置信息。例如,只要评论中含有“我 喜欢”,就说明该评论是褒义的。由于存在局部接收域性质,各个隐含神经元的计算可以并行的进行,这就可以充分利用现代的硬件设备(如GPU),加速卷积神经网络的计算,这一点在循环神经网络中是较难实现的。
递 归 神 经 网 络(RecNN,Recursive NeuralNetwork)首先对句子进行句法分析,将顺序结构转化为树状结构,然后利用该结构来构建深度神经网络。因此在对句子“我 喜欢 红 苹果”进行组合时,首先组合“红”和“苹果”,生成隐层 h 1 ;然后再组合“喜欢”和 h 1 ,获得 h 2 ,以此类推。由此可见,该方法充分考虑了语言的递归组合性质,不会出现在循环或者递归神经网络中可能出现的任意无意义组合,如“喜欢 红”等。同时,对于如语义关系分类等任务,往往需要识别两个距离较远的实体之间的语义关系,如句子“在哈尔滨工业大学本科生院成立典礼上,校长周玉表示……”中,“哈尔滨工业大学”和“周玉”距离较远,他们中间的词汇往往对循环或者卷积神经网络模型构成了干扰,而递归神经网络利用句法结构,会将两个实体距离拉近,从而去除不必要的干扰,提升分析的准确率。当然,递归神经网络模型也受限于句法分析的准确率,因为一旦句法分析出现了错误,则会产生错误的组合方式,从而影响最终结果。