自然语言处理,不可不知的7种神经网络

Posted 景略集智

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自然语言处理,不可不知的7种神经网络相关的知识,希望对你有一定的参考价值。

什么是神经网络?它是如何工作的?现在有哪些神经网络?有哪几种类型的神经网络可以用于自然语言处理?下面我们会一一解答这些问题。


神经网络是一种基于人脑结构的非线性计算模型,能够根据其它数据样本,学习执行分类、预测、决策、可视化等多种任务。


神经网络包含人工神经元或处理元素,基本上由三个相互连接的层构成:输入层,隐藏层和输出层,其中隐藏层可能会有多个层


自然语言处理,不可不知的7种神经网络


输入层包含 4 个神经元,它会向隐藏层输入信息。隐藏层会向输出层输送数据。每个神经元都有加权的输入(突触),一个激活函数(根据输入来定义输出)以及一个输出。突触是可调整的参数,将神经网络转换为一个参数化系统。


输入的加权和会产生一个激活信号,将信号输入激活函数后就能从神经元中获得一个输出。常用激活函数有线性函数、阶梯函数、S 型函数、tanh 函数、ReLu 函数等。


线性函数

f(x)=ax


阶梯函数


自然语言处理,不可不知的7种神经网络


逻辑(S 型)函数


自然语言处理,不可不知的7种神经网络


Tanh函数


自然语言处理,不可不知的7种神经网络


ReLu函数


自然语言处理,不可不知的7种神经网络


训练是权重的优化过程,在训练中预测值的错误会被降低到最少,最终神经网络会达到预期准确率。我们通常用反向传播法来明确每个神经元对误差影响大小,它会计算损失函数的梯度。

如何更形象的理解神经网络,可以参考我们的这篇回答:



通过添加隐藏层可以让神经网络的性能更灵活更强大。在输入层和输出层之间有多个隐藏层的神经网络,就被称为深度神经网络(DNN),它可以建模复杂的非线性关系。


多层感知机(MLP)


自然语言处理,不可不知的7种神经网络


多层感知机有三个或以上的层。它利用一个非线性激活函数(主要为双曲正切函数或逻辑函数),能让它分类非线性可分离的数据。一个层的每个节点会和后面层的每个节点相互连接,让神经网络实现全连接。例如,语音识别和机器翻译都是多层感知机在自然语言处理方面的应用。


卷积神经网络(CNN)


自然语言处理,不可不知的7种神经网络


卷积神经网络包含一个及以上的卷积层、池化层或全连接层,然后用一些前面说过的多层感知机。卷积层利用卷积操作,将输入传入下一层,这能让神经网络以更少的参数实现更深的深度。


卷积神经网络在图像和语音应用方面展示出了非凡的效果。Yoon Kim 在《Convolutional Neural Networks for Sentence Classification》中描述了将 CNN 用于文本分类任务的过程和结果。他基于 Word2vec 搭建了一个卷积神经网络模型,执行了一系列试验,和其它几种方法进行了对比,展示了卷积神经网络在自然语言处理方面成绩斐然。


而在《Text Understanding from Scratch》中,Xiang Zhang 和 Yann LeCun 证明了 CNN 可以在没有词汇、短语、句子和其它任何人类语言知识的情况下,在文本理解上取得了出色的表现。卷积神经网络同样可以用于语义分析、释义检测、语音识别等领域。


递归神经网络(RNN)


自然语言处理,不可不知的7种神经网络


递归神经网络(RNN)是两种人工神经网络的总称。一种是时间递归神经网络(recurrent neural network),另一种是结构递归神经网络(recursive neural network)。时间递归神经网络的神经元间连接构成矩阵,而结构递归神经网络利用相似的神经网络结构递归构造更为复杂的深度网络。

递归神经网络是一种深度神经网络,它将相同的权重递归地应用在神经网络架构上,以拓扑排序的方式遍历给定结构,从而在大小可变的输入结构上可以做出结构化的预测。递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。


循环神经网络(RNN)

不像前馈神经网络,循环神经网络是递归神经网络的一种变体,神经元之间的连接会成为循环。也就是说,网络的输出不仅仅依靠当前的输入,而且还有前一步的神经元状态。这就能让我们可以解决像手写连笔字识别或语音识别这样的自然语言处理问题。在《Natural Language Generation, Paraphrasing and Summarization of User Reviews with Recurrent Neural Networks》论文中,作者证明了循环神经网络模型可以生成小说语句和文档总结。


作者创建了一种循环神经网络,可以在没有人类设计特征的情况下用于文本分类。作者还将这种文本分类模型同现存的文本分类方法进行了比较,比如词袋模型、支持向量机、LDA和递归神经网络等,结果显示他们的模型性能要优于传统的方法。


长短期记忆网络(LSTM)



长短期记忆网络是一种具体的循环神经网络架构,用于为时间序列建模。它们的长期依赖要比卷积 RNN 更加准确。在循环组件内,LSTM 并没有使用激活函数,存储的值没有修改,在训练中梯度也不会消失。通常,LSTM 单元在有多个单元的“隐层单元”(block)中执行。这些代隐层单元会有 3 或 4 个“门”(比如“输入门”“遗忘门”“输出门”),它们会控制逻辑函数中的信息流通。


在论文《Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling》中,作者展示了深度 LSTM RNN 架构在大规模声学建模中表现最好。


而在《Part-of-Speech Tagging with Bidirectional Long Short-Term Memory Recurrent Neural Network 》这篇论文中,作者搭建了一个用于词性标注的模型,实现了 97.4% 的标注准确率。苹果、亚马逊、谷歌和微软等都将 LSTM 作为基础元素应用在自家产品中。


序列到序列模型

通常,序列到序列模型包含两个循环神经网络:一个编码器用于处理输入,一个解码器用于生成输出。编码器和解码器可以使用相同或不同的参数。


序列到序列模型主要用于问答系统、聊天机器人和机器翻译中。在《Sequence to Sequence Learning with Neural Networks》论文中,作者成功地将多层神经元用于序列到序列模型中,完成翻译任务。


在《Paraphrase Detection Using Recursive Autoencoder》论文中,作者展示了一种简单的递归自动编码器,在 N 维语义空间中的表示均为向量,其中有相似含义的短语会紧挨在一起。


浅层神经网络

除了深度神经网络之外,浅层神经网络同样是比较常用和有用的工具。例如,word2vec 就是一种浅层的两层模型,用于生成词向量。Word2vec 会用比较大的文本语料库作为输入,生成一个向量空间。语料库中的每个词汇都包含该空间内的对应向量。来自语料库中相同语境中的词汇会在向量空间中处于相邻的位置。


结语

本文我们讨论了几种类型的神经网络,比如多层感知机、卷积神经网络、递归神经网络等等。它们都可以应用在自然语言处理任务中。卷积神经网络主要用于文本分类,循环神经网络通常用于自然语言生成和机器翻译。


关于自然语言处理有哪些框架和程序库,可以查看我们的这篇分享:



《Convolutional Neural Networks for Sentence Classification》:

http://www.aclweb.org/anthology/D14-1181

《Text Understanding from Scratch》:

https://arxiv.org/pdf/1502.01710.pdf

《Natural Language Generation, Paraphrasing and Summarization of User Reviews with Recurrent Neural Networks》:

http://www.meanotek.ru/files/TarasovDS%282%292015-Dialogue.pdf

《Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling》:

https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf

《Part-of-Speech Tagging with Bidirectional Long Short-Term Memory Recurrent Neural Network 》:

https://arxiv.org/pdf/1510.06168.pdf

《Sequence to Sequence Learning with Neural Networks》:

https://arxiv.org/pdf/1409.3215.pdf

《Paraphrase Detection Using Recursive Autoencoder》:

https://nlp.stanford.edu/courses/cs224n/2011/reports/ehhuang.pdf



以上是关于自然语言处理,不可不知的7种神经网络的主要内容,如果未能解决你的问题,请参考以下文章

架构设计中不可不知的网络基本知识

不可不知!这个计算机网络期末汇总非常有用!

不可不知!4种常见的黑客攻击手段

不可不知:Linux让进程在后台可靠运行的方法

收藏 | 产品经理不可不知的 7 种技术思维

网络安全入门:不可不知的8款免费Web安全测试工具