前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >知识卡片 递归神经网络

知识卡片 递归神经网络

作者头像
DataScience
发布2020-08-20 11:12:14
5130
发布2020-08-20 11:12:14
举报
文章被收录于专栏:A2DataA2Data

前言:本文简要介绍文本分类的情感分析及传统求解方法,词向量的表示以及和递归神经网络模型在情感分析上的应用。

情感分析

Sentiment Analysis

什么是情感分析?

情感分类和文本分类的关系

现有情感词典

对于情感分类,清单词典是很重要的,中文词典Hownet的情感词具有良和莠的属性分别褒义和贬义词;现有情感词典的词不足之处是固定的,需要对其进行扩充。

情感词典构建方法之一

情感词典构建方法之二

典型数据集以及传统分类步骤

如何处理否定现象

否定现象是句子之间的相似度极高,但是由于出现否定词“didn’t”,表达的极性完全相反,为了体现句子的区分度,一种简单的办法是在出现否定词后的单词前加上“NOT_”。

情感分类的难点

人类的语言表达的情感有时候是微妙的,需要仔细阅读才能体会,对机器来说是一个难点,特别是涉及到程度副词以及语句的方向,使得情感分类变得复杂,传统的分类方法遇到困难。

前三句中文中,都有“大”字,但是前两句是贬义,后一句可看作是褒义,里面没有明显描述情感的词汇。英文中,对于香水的评论更是具有文学或者艺术性的表达,对机器来说理解起来比较复杂。

词向量

Word Vector

传统的语义向量表示方法

菠萝和凤梨是相似的,但传统的词向量表示看不出关联,出现“词汇鸿沟”。

深度学习中的词向量表示

word embedding 词嵌入是一种处理词向量的方法,将一个向量映射到一个一个低维连续向量。在语言处理中,将一个词进行分解,查找与其相关内容的语义,如cat猫这个词,embedding 之后,词向量由一组于之对其相关联的词组成,如 animal,dog,tiger等,用多个词向量来表示句子。

利用Word2vec得到词向量

Word2vec需要利用到较大规模的语料进行训练。其基本原理是,词语的语义通过上下文信息来确定,即相同语境的词其语义也相近。

利用word2vec进行词的相似度计算

用命令行语言把词china输进去,可找出china与训练文本中相同语境下语义也相同的词,并显示出相似度。

GloVe: Global Vectors for Word Representation

对于词向量的表示,除了Word2vec还有GLove,相关内容的网址如下:

项目网址:https://nlp.stanford.edu/projects/glove/

代码:https://github.com/stanfordnlp/GloVe

论文: Jeffrey Pennington, Richard Socher, and Christopher D. Manning. 2014. GloVe: Global Vectors for Word Representation. EMNLP 2014. 1532‐ ‐1543

递归神经网络

Recusive Neural Networks

如何判断一段文本的情感倾向?

not very good 是三个词的组合在语义分类中对机器来说比较难的,传统的词向量分析对于分类的预测,采用词袋模型使用贝叶斯和支持向量机算法,而通过使用word2vec将词表示为一个低维的向量,使用递归神经网络可以提高语义分类模型的效果,其采用句法分析,对语义进行组合, 找到一个很好的组合对其进行判断,并输出结果。即使两句话的字面内容不同,递归神经网络可以根据词向量间的距离,来判断相似度,也就是语义上的相似性。

循环神经网络和递归神经网络

神经网络的输入层单元个数是固定的,因此必须用循环或者递归的方式来处理长度可变的输入。循环神经网络实现了前者,通过将长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。一个典型的例子是,当我们处理一句话的时候,我们可以把一句话看作是词组成的序列,然后,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出。如此,我们就能处理任意长度的句子了。然而,有时候把句子看做是词的序列是不够的,比如下面这句话『两个外语学院的学生』:

上图显示了这句话的两个不同的语法解析树。可以看出来这句话有歧义,不同的语法解析树则对应了不同的意思。一个是『两个外语学院的/学生』,也就是学生可能有许多,但他们来自于两所外语学校;另一个是『两个/外语学院的学生』,也就是只有两个学生,他们是外语学院的。为了能够让模型区分出两个不同的意思,模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。当面对按照树/图结构处理信息更有效的任务时,递归神经网络通常都会获得不错的结果。

情感树库语料

递归神经网络在语义分析的良好效果,不仅是由于算法本身,还与其有良好标注的训练样本有关,即使用大量的人工对于语义的情感态度进行标注。

训练集的数据中,采用5类评级对语义词进行标注,例如,excellent为4,good 为3等。

标准RNN

递归神经网络需要构建一个树模型,输入a,b,c是底部的叶子节点,p1是父节点,每个词初始化时,表示为一个d维的向量,随机采样生产,所有词向量被存储在一个词嵌入矩阵L中,列数为d,行数为绝对值V,在训练过程中,L被视为一种参数,会被优化和调整。父节点的向量通过组合函数g来获得,这样可以获得不同向量组合而成的词句段的向量表示。

p1父节点有两个孩子节点b和c组合而成,p1 = f(W[b/c])中,b和c组成而成一个向量,是2Xd,再与参数W,大小dX2d相乘后,W[b/c]是一个dx1的一维的词向量,再经双曲正切函数规范后将值输出在[-1,1]。

得到父节点p1的目的是计算其最终的情感分类。假设p1的节点为a,计算公式如图中红字相同,输出的结果中,y^a的概率是ws*a 属于5*1的向量,维度为1含有五个元素,分别表示节点p1所属的情感类,对应5类评价的概率,最后,Sofxmax函数将实数转换为概率。更高父节点p2的计算方法与p1类似。

MV‐RNN

MV-RNN加上在父节点p1向量上加上矩阵P1-体现相邻参数间的影响,P1公式中,[B/C]的向量大小是2dX2d,与Wm相乘后任然是dXd的矩阵,此种方法虽然可以显示出相邻节点间的影响,但是此种方法参数过多,效率较低。

RNTN

RNTN引入了张量层,用于代替MV-RNN中相邻节点的影响。

在这个张量层(Tensor Layer)中,p1=f((slices of tensor layer)+(standard layer)),p1由张量层的切片和标准层相加。

第一个虚线框中(张量层),从左边看,有三个切片,横着的蓝色切片是b和c的拼接的转置,再与一个4x4的红色框即张量层相乘,后再乘一个竖着的蓝色b和c的拼接,即1x4,4x4,4x1三个向量相乘,得到的结果是1x1,是一个数值。两个虚线框相加,尺寸是2x1.

张量层的切片(2x1)和标准层(2x4·4x1=2x1),形状相同可以相加,通过此方法得到上级节点p1的向量。

1)RNTN加入张量的结构同样可以计算孩子节点对父节点的影响,此外孩子节点间的互动比较好,也可以达到MV-RNN的目的,但参数减少了。当将V的范围设置为0,f1的计算退化为标准的RNN。

2)是不同的,初始的时候不同,经过训练后的红色矩阵参数也不同。注:V^[1:2]的表示,对于V词汇表的大小选取范围在1-2。

3)d维红色矩阵的目的是为了生成d维父节点的元素,与红色矩阵左右两端相乘的矩阵是b和c的拼接。

RNTN的交叉熵损失函数

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DataScience 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档