双阶段语义词向量生成方法技术

技术编号:23853694 阅读:39 留言:0更新日期:2020-04-18 09:58
本发明专利技术提供了双阶段语义词向量生成方法,该方法包括5个步骤:文本矩阵化;特征提取器的构建;语义识别;神经语言模型的构建;义项词向量的生成。本发明专利技术使用多个神经网络为多义词的不同语义生成了对应的词向量,解决了传统词级嵌入式中多义词只对应一个词向量的缺陷,且使用的语料库大小在可接受范围内;同时采用卷积神经网络(CNN)和支持向量机(SVM)结合的方式,一方面利用了卷积神经网络的特征提取能力,一方面利用了SVM的泛化性以及鲁棒性,使得词义识别的效果更优,从而使得生成的语义词向量质量更高。

Two stage semantic word vector generation method

【技术实现步骤摘要】
双阶段语义词向量生成方法
本专利技术属于神经网络领域,具体涉及一种双阶段语义词向量生成方法。
技术介绍
词的表示问题是自然语言处理中的关键问题之一。词的表示方法是否适当,直接影响着句法分析、语义表示和篇章理解等任务的建模方法,也影响着信息检索、问答系统等应用系统的准确性和鲁棒性。目前中文词的表示策略可以归纳为3种:传统的0-1表示,基于潜在语义信息的分布式表示和基于神经网络语言模型的分布式表示。传统的0-1表示有两方面问题:一方面0-1表示造成了数据稀疏,使得该种方式生成的词向量占用大量的空间;另一方面0-1表示只能区分不同的词语,但对于词义的表示没有任何贡献。基于神经网络语言模型很好地解决了维度灾害等问题,代表性工具有Word2vec、glove等。但是它仍在存在另一个问题,它是一种词级表示方式,即只为一个词语生成一个词向量,而不能为多义词的不同词义生成不同的词向量,这会对下游任务造成一定的干扰,从而影响下游任务的效果。于是词义级表示方式开始被研究,它根据词语在语料中的语义为其生成特定的语义词向量。目前,词义嵌入类的模型主要有两类:双阶段型和融合型。在双阶段型中,词义识别过程和词向量生成过程是串行的,而融合型模型则在词向量生成过程中完成词义的识别。国外最早使用双阶段模式的是Schutze,他在1998年提出了上下文分组识别,以期望最大化为目标进行聚类来识别词义,然后生成词义向量。2010年,Reisinger和Moone将上下文表示为一元语法的特征向量,采用MovFV聚类的方法来完成词义识别。Sense2vec工具对词语添加了词性信息,以区分同义词的不同词义,但是它没有考虑不同词义的词性可能相同。后续双阶段模型的思路都与以上方法类似,都是在词义识别算法或文本建模方面进行优化。融合型模型利用词义识别和词向量生成本质上都需要对文本上下文进行计算的共通性,将两个过程合并为一个,以减小计算消耗。Neelakantan在Word2vec模型的基础上进行扩展,为每个多义词初始化固定数量的词向量,然后在语言模型的训练过程中选择合适的词向量进行更新。这一方法最大的限制在于它假设每个多义词具有相同数量的词义,而这一假设与事实悬殊较大。YangLiu等人发现词向量生成过程中仅利用了词语的局部信息,对于全局信息并没有使用,所以他们利用这一缺陷,在词向量生成过程中加入文本的主题信息,提出了TWE模型来生成语义词向量。近年来涌现了ELMo、GPT、Bert等利用深度学习模型以及大语料库进行语言模型训练的模型。ELMo使用LSTM进行语言模型建模,模型训练完成后,对于下游任务,先将其文本输入ELMo模型,然后使用网络前3层的输出共同进行词表示。Bert则使用当前较流行的Transformer进行建模,并且使用更大的语料库进行模型训练,而下游任务直接在此训练好的模型上进行微调即可,只是在输入输出方面需要稍作修改。这些模型虽然被证明在许多NLP任务上表现很好,但是它们并没有生成具体的词向量,缺少应用灵活性。目前,国内在词表示方面和词向量生成工具方面的研究较少,曾琦利用LDA模型对主题进行建模并对多义词进行语义标注。孙茂松利用中文知识库HowNet得到义原向量来进行进一步的词向量的学习。李国佳在词义识别阶段使用了K-Means聚类构建了一个双阶段模型,该方法的缺点与Neelakantan的方法类似,需要提前为K-Means算法设定中心簇数目,相当于需要提前确定词义生成的个数,可扩展性不够好。总结已有的方法可以得知:0-1表示的缺点在于造成了维数灾害以及缺乏语义信息;词级别嵌入的缺点在于1)拥有多种词义的词语训练生成的词向量更加偏向于语料中出现更多的语义,语料中出现较少的语义被弱化;2)计算与某多义词相似度较高的结果中出现语义互不相关的内容;3)破坏了词向量空间原本的三角不等性,使得其质量下降;词义级别嵌入中,融合型模型可以压缩词向量的生成过程,但是其效果基于其所使用的聚类算法的效果,而目前大多数聚类算法的效果表现不如有监督模型分类算法。双阶段型模型忽略了词义识别和词向量生成过程之间的相似性,两个过程串行完成,效率低下,但是其对于生成词向量的质量有很高的保证。改进现有的词向量生成工具word2vec、glove等,为具有多个义项的词语生成多个词向量,从而在下游任务中,对多义词使用具有义项区别的义项词向量,使得下游任务对于文本语义的捕获更加准确,从而使得下游任务的效果更好。
技术实现思路
针对上述问题,本专利技术认为,词向量的生成过程是一次性的,而下游任务对于词向量的使用是多次的,则生成质量更高的词向量的需求大于对词向量生成过程减少时间开销的需求,所以本专利技术基于神经网络对于样本特征的提取能力,提出一种结合卷积神经网络(CNN)和支持向量机(SVM)的双阶段语义词向量生成方法,由于包含特征提取器的构建、词义识别以及神经语言模型的构建、义项词向量生成两个阶段,可以生成高质量的语义词向量供下游任务使用。该方法包括如下5个步骤:步骤1:文本矩阵化从获取的文本中挑选出含有多义词w的子句si,将此子句si与多义词w在该子句si的义项类别ci组成一条训练样本(si,ci),将这样的样本组成的集合称为数据集,i=1,2,...,n。所述文本矩阵化就是将含有多义词w的子句si转换成一个q行M列的数据矩阵Di,其中q是子句si转化成的数据矩阵的行数。步骤2:特征提取器的构建基于卷积神经网络(CNN)构建一个特征提取器,该特征提取器的结构包含6层,分别是输入层、卷积层、池化层、全连接层1、全连接层2和输出层。利用步骤1的文本矩阵化将语料库中每个训练样本(si,ci)中的si转换成对应的数据矩阵Di作为所述特征提取器的输入,最终得到训练样本中子句si中w被预测为每个义项的概率值;使用交叉熵损失函数及反向调节算法对所述特征提取器的网络参数进行更新,在所述特征提取器训练好之后,保持所述特征提取器中各网络参数不变,采用验证数据矩阵集合验证训练好的所述特征提取器,得到验证完成的所述特征提取器;将含有多义词w的训练样本重新输入验证完成的所述特征提取器,则全连接层1重新输出的Fi即为特征提取器提取到的子句si的特征向量。步骤3:多义词语义识别采用分类器SVM进行多义词语义识别;对每条训练样本使用步骤2得到的特征向量Fi作为所述分类器SVM的输入,对所述分类器SVM进行训练,对于训练好的分类器SVM,将由步骤2得到的训练样本si的特征向量Fi作为输入,即可对样本子句si中多义词w的语义进行识别,得到其预测义项类别步骤4:神经语言模型的构建构建一个神经语言模型,对所述神经语言模型的训练集进行处理,构建一棵哈夫曼树H,使用哈夫曼树结构构建输出层,加速所述神经语言模型的计算过程,使用层次Softmax(HierarchicalSoftmax)算法完成所述神经语言模型的输出层的正向传播和反向调节。步骤5:义项词向量的生成义项词向量的生成,主要在于所述神经语言模型各层网络参数的更新,即层次So本文档来自技高网
...

【技术保护点】
1.一种双阶段语义词向量生成方法,其特征在于,该方法分为三个阶段,并由5个步骤组成,其中第一阶段是文本矩阵化;第二阶段包括特征提取器的构建、语义识别两个步骤;第三阶段包括神经语言模型的构建、义项词向量的生成两个步骤:/n步骤1:文本矩阵化/n从获取的文本中挑选出含有多义词w的子句s

【技术特征摘要】
1.一种双阶段语义词向量生成方法,其特征在于,该方法分为三个阶段,并由5个步骤组成,其中第一阶段是文本矩阵化;第二阶段包括特征提取器的构建、语义识别两个步骤;第三阶段包括神经语言模型的构建、义项词向量的生成两个步骤:
步骤1:文本矩阵化
从获取的文本中挑选出含有多义词w的子句si,构成集合Dw={s1,s2,s3...},即含有歧义词的子句集合,将子句si与多义词w在该子句的义项类别ci组成一条训练样本(si,ci),将这样的训练样本集合称为数据集,i=1,2,...,n;
取所述集合Dw中出现频率最高的L个字符构成字汇表,为所述字汇表构建一个数据矩阵V,其大小记为L行M列,其中第r行对应字汇表中第r个字符的向量表示,即V中的每一行表示该行对应字符的初始化向量,矩阵V的值使用标准正态分布进行初始化,L是字汇表的大小;
对所述数据集中每个训练样本(si,ci)的子句si进行文本矩阵化,所述文本矩阵化就是将含有多义词w的子句si转换成一个q行M列的数据矩阵Di,其中q是子句si转化成的数据矩阵Di的行数,其大小不超过所述获取的文本中最长的子句具有的字符的个数,且q值由用户根据实际情况指定,q<L;Di是子句si中每个字的字符向量经过拼接之后又做了行数处理之后的结果;拼接的做法是,根据子句si的第k个字符从字汇表数据矩阵V中查得这个字符的向量表示,将其作为数据矩阵Di第k行的值,k=1,2,...,q,行数处理的做法是,若Di的行数大于q,则只取其前q行,若Di的行数小于q,则补相应行数的0使其行数达到q;
步骤2:特征提取器的构建
基于卷积神经网络(CNN)构建一个特征提取器,该特征提取器的结构包含6层,分别是输入层、卷积层、池化层、全连接层1、全连接层2和输出层,其中,每一层的作用分别描述如下:
输入层:利用步骤1的文本矩阵化将所述数据集中每个训练样本(si,ci)中的si转换成对应的数据矩阵Di作为所述特征提取器的输入;
卷积层:利用多个卷积核与矩阵Di进行卷积运算抽取出每个训练样本中的子句si的局部特征,得到多个特征图,其中,为每个不同窗口大小的卷积共设置了256个卷积核,卷积的窗口值设置为[3,4,5];
池化层:使用最大池化,通过降采样的方法对卷积层得到的所述多个特征图进行压缩,得到池化后的特征图,然后将其拼接得到列向量Ei;
全连接层1:根据该层的权重参数矩阵将所述列向量Ei转化为列向量Fi,该列向量Fi的维度设置为128,Fi表示所述特征提取器提取到的si的特征向量;
全连接层2:通过全连接层1得到的si的特征向量Fi来计算si中多义词w被预测为每个义项的可能性,该可能性被表示为一个列向量,全连接层1和全连接层2之间使用dropout函数舍弃部分特征,防止所述特征提取器模型过拟合,提高所述特征提取器模型的泛化能力,所述全连接层2的维度与多义词w的义项数一致;
输出层:使用Softmax函数将全连接层2得到的所述列向量的长度转化为1,得到训练样本中子句si中w被预测为每个义项的概率值;
将由步骤1得到的文本矩阵化后的数据集按照8:2的比例分为训练集和验证集,然后使用交叉熵损失函数及反向调节算法对所述特征提取器的网络参数进行更新;当所述特征提取器的网络参数都收敛之后,保持所述特征提取器中各网络参数不变,即得到训练及验证完成的所述特征提取器;最后将含有多义词w的训练样本重新输入所述训练及验证完成的所述特征提取器,则全连接层1重新输出的Fi即为特征提取器提取到的子句si的特征向量;所述训练集和所述验证集都是在训练过程中使用的,所述特征提取器一边训练一边验证;
步骤3:多义词语义识别
将多义词语义识别作为分类任务处理,采用分类器SVM进行多义词语义识别;对每条训练样本使用步骤2得到的特征向量Fi作为所述分类器SVM的输入,以下式作为目标函数,对所述分类器SVM进行训练:



s.t.yi(whyperφ(xi)+b)≥1-ξi,C>0,ξi≥0,i=1,2,...,n
所述分类器SVM的核心问题是寻求出在多维空间中能够区分正负类样本的最优分离超平面whyperx+b=0,其中whyper和b分别代表了该超平面的法向量与截距;C为惩罚系数;ξ为松弛变量;xi即Fi,为子句si的特征向量;yi即义项类别ci,为xi对应的类别标记;φ(x)为从低维空间到高维空间的非线性映射函数;
对于训练好的分类器SV...

【专利技术属性】
技术研发人员:桂盛霖刘一飞
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1