《中国人工智能学会通讯》——7.4 语义组合
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 ,以此类推。由此可见,该方法充分考虑了语言的递归组合性质,不会出现在循环或者递归神经网络中可能出现的任意无意义组合,如“喜欢 红”等。同时,对于如语义关系分类等任务,往往需要识别两个距离较远的实体之间的语义关系,如句子“在哈尔滨工业大学本科生院成立典礼上,校长周玉表示……”中,“哈尔滨工业大学”和“周玉”距离较远,他们中间的词汇往往对循环或者卷积神经网络模型构成了干扰,而递归神经网络利用句法结构,会将两个实体距离拉近,从而去除不必要的干扰,提升分析的准确率。当然,递归神经网络模型也受限于句法分析的准确率,因为一旦句法分析出现了错误,则会产生错误的组合方式,从而影响最终结果。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《中国人工智能学会通讯》——7.3 分布式表示
7.3 分布式表示 深度学习最早在自然语言处理中的应用是神经网络语言模型[4] ,其背后的一个基本假设是使用低维、稠密、连续的向量表示词汇,又被称为分布式词表示(Distributed Word Representation)或词嵌入(Word Embedding)。从直觉上来讲,使用该项技术,可以将相似的词汇表示为相似的向量,如“马铃薯”和“土豆”的词向量比较相似。这样,如果我们在训练数据中只观察到了“马铃薯”,即使在测试时出现了“土豆”,也能通过词向量判断其与“马铃薯”比较相似,从而在一定程度上缓解了自然语言处理中常见的数据稀疏问题。 在理论上,将原有高维、稀疏、离散的词汇表示方法(又称为 One-hot 表示)映射为分布式表示是一种降维方法,可有效克服机器学习中的“维数灾难(Curse of Dimensionality)”问题,从而获得更好的学习效果。同时这种分布式表示的表达能力更强,理论上其表达能力与其维度成指数关系,而传统离散表示是线性关系。另外一种对分布式词表示的理解是,不同维度表示了词的不同主题,各维度上的数值表示了一个词对于不同主题的权重,这相当于将原来线性不可分的一...
- 下一篇
《中国人工智能学会通讯》——7.5 应 用
7.5 应 用 通过组合,产生不同粒度语言单元的(向量)表示方式,然后通过在向量空间中的运算,就可以支撑多种多样的应用。例如想要识别两个句子是否互为复述(Paraphrase),就可以使用以上任意一种神经网络结构,将两个句子分别表示为两个向量,并通过在其之上再构建神经网络构成二元分类器的方式,判断两个向量之间是否互为复述[9] ;然后通过反向传播(Back Propagation)算法,就可以学习获得三个神经网络的参数。 另外,两个单元也可以是不同的粒度,如完形填空,空白处的上下文可以使用神经网络表示为向量,候选词也可以使用向量表示,然后同样使用另一个神经网络模型判断它们之间是否匹配,从而判断填入该词是否合适。 这种以向量的形式表示,然后再计算的思想可以扩展为多种语言,从而实现机器翻译等功能。对于机器翻译,我们首先将源语言表示为向量,该向量代表了源语言的语义信息;然后根据该向量,逐词的生成目标语言[10] 。这套方法又称为编码 - 解码(Encoder-Decoder)或者序列到序列(seq2seq,sequence to sequence)的框架。现实情况中,很难用一个向量表示源语言...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址