基于统计语言模型改进的Word2Vec优化策略研究

2019-08-05 02:28张克君史泰猛李伟男
中文信息学报 2019年7期
关键词:查准率语料向量

张克君,史泰猛,李伟男,2,钱 榕

(1. 北京电子科技学院,北京 100071;2. 西安电子科技大学 计算机科学与技术学院,陕西 西安 710071)

0 引言

随着神经网络在图像处理领域的成功应用,神经网络也逐步被应用到自然语言处理领域[1]。文本不同于图像具有天然数字矩阵存储形式,如何将文本表示成机器可以处理的数字矩阵形式便成为了一个难点,同时文本表示的质量也成为提升自然语言处理系统性能的关键。

2013年,谷歌Word2Vec开源项目[2]引发了词向量[3]研究、应用的热潮。Word2Vec的相关文献[4-6]较为全面地介绍了其设计原理和训练优化思想。Word2Vec词向量作为深度学习在自然语言处理领域的基础技术[7]被广泛地应用于文本情感分析[8]、文本分类[9]等自然语言处理任务中。然而,研究者在训练、使用Word2Vec词向量的过程中,仅考虑了词向量的维度、窗口的大小、训练方法以及语料对训练结果的影响,并没有考虑语料的输入形式(句子的切分)[10]、分词工具的选择、语言模型等因素对训练结果的影响。我们研究发现,skip-gram和CBOW语言模型,仅考虑文本中间词与其上下文之间的联系,忽略掉了中间词与整个文本所表达含义之间的联系。举一个简单的例子“我喜欢喝咖啡”“我讨厌喝咖啡”,“喜欢”“讨厌”两个语义相反的词,训练出的词向量结果是相近的。skip-gram和CBOW语言模型训练出的词向量可以充分表达词的词性、词类,但是在词义表达上有些欠缺。因此有必要从语言模型的角度考虑提升词向量质量。

对于Word2Vec词向量训练过程来说,大致可以从以下几个方面提升词向量的质量:

① 语料的准备。语料库越大,词向量训练结果越好;对于某一个领域,训练该领域专有的词向量,词向量训练结果越好[11];

② 语料的预处理。在语料的预处理阶段,句子分割越准确,生成的训练样本相关性越强,词向量训练结果越好;使用分词工具进行分词,切分出来的词汇语义完整度越高,词向量训练结果越好[10,12];

③ Word2Vec主要参数的设置。词向量的维度、训练窗口的大小、hierarchical softmax和negative sampling的选择等[12-13];

④ 语言模型的选择。一个好的语言模型,能充分表达文章中词与词之间的关系(本文提出的观点)。

本文将集中讨论如何从第四个方面提高词向量的质量。

本文主要贡献在于: 首先,提出了基于文本关键词改进的语言模型,并经过对比实验发现,该词向量优于传统模型训练出的词向量,并且在优化反义词、数量词的相似性判断上有一些帮助;其次,利用wiki中文社区1.5GB的中文语料,通过改进的模型多次迭代训练出了具有较高质量的词向量,在词间相关性、词义表达和训练时间方面有着较为出色的效果;该词向量对于使用深度学习解决文本分类、情感倾向性分析、自动文摘等传统自然语言处理问题具有重要的参考意义;最后,给出一些其他的可以提高词向量质量的思路。

1 Word2Vec相关研究

词向量是自然语言处理领域的基础和核心。当使用深度学习方法解决文本分类、情感分析、自动文摘等传统自然语言处理问题时,词向量的训练是首要工作,词向量的质量也直接影响了整个问题处理的结果。Word2Vec训练出的词向量表现非常突出,训练出的分布式词向量成为了语义表达的强有力工具。把Word2Vec训练出的词向量应用于现有的机器学习系统,例如,词性标注、句法分析、机器翻译和情感分析,训练效果都得到了一定程度上的提升。Mikolov等[2]使用Word2Vec训练出的词向量进行词向量之间的距离计算可以很好地发现语料中语义相近的词汇,例如,与奥迪相近的词汇有奔驰、宝马、大众等汽车品牌;并且根据语义的线性偏移较好地预测了相关词,例如,中国的词向量+(美国的词向量-华盛顿的词向量)=北京的词向量。

1.1 语言模型

语言模型是自然语言处理领域重要且基础的课题。在传统的语言模型中,基于统计的语言模型应用较为广泛,其核心是利用概率统计的思想进行语言建模[14]。常用的统计语言模型有: 隐马尔可夫模型、条件随机场模型及决策树模型等。

随着深度学习方法在图像、音频领域的成功应用,其逐渐被应用到自然语言处理领域,产生了神经网络语言模型。神经网络语言模型最早由Bengio在Aneuralprobabilisticlanguagemodel一文中提出[15],该模型把每一个词表示为一个向量,向量的每一个维度蕴含了词本身的含义和词与其他词之间的联系。神经网络语言模型中的词向量与统计语言模型中广泛应用的One-Hot Representation有着本质的差异。One-Hot Representation中的词向量长度为词典的大小,向量元素只有一个1,其余全为0,且词向量之间相互独立,而神经网络语言模型中词向量长度可以根据需要来选择不同长度,且词与词之间的关系隐藏于词向量的各个维度之中。2013年谷歌开源实现了利用神经概率语言模型训练词向量Word2Vec。Word2Vec实现了利用skip-gram和CBOW两种语言模型训练词向量。这两种语言模型本质上是考虑了中间词与上下文的关系,使用单层神经网络利用中间词预测其上下文或者利用中间词的上下文预测中间词,最后得到分布式词向量。整个词向量包含了词本身的含义以及词与其他词之间的联系。Word2Vec在大规模语料的条件下训练效果良好,可以根据向量空间的余弦距离进行相似度计算,寻找相似度较高的一组词。

1.2 CBOW模型

CBOW模型[16]是根据中间词上下文预测中间词的模型。使用CBOW模型训练词向量的神经网络结构如下: ①输入层,上下文词向量context(w); ②投影层,将输入层的2c个context(w)词向量相加; ③输出层,输出中间词向量,其结构如图1所示。

图1 CBOW模型网络结构图

1.3 skip-gram模型

skip-gram模型[16]根据中间词w预测其上下文context(w),因此所求的概率转化为p(context(w)|w)。使用skip-gram语言模型训练词向量的神经网络结构如下: ①输入层为中间词向量w; ②投影层,直接投影到输出层; ③输出层为中间词上下文词向量,其结构如图2所示。

图2 skip-gram模型网络结构图

谷歌开源的Word2Vec是当前最为重要的词向量训练工具,提供了skip-gram和CBOW两种语言模型的词向量训练。词向量的质量对于提升基于词向量的一系列工作具有很重要的意义。然而,经典模型通过窗口建立中间词与上下文之间的联系,窗口越大词间联系越丰富,训练的词向量质量越好,然而窗口越大意味着训练时间越长。经典模型的假设是如果两个词的上下文相同,则这两个词是相似的,然而对于如“喜欢”“讨厌”这样的用法几乎一致、语境几乎一致的语义相反词,经典模型会将其判断为相似词。经典模型更多考虑的是如果两个词用法、语境一致,则这两个词是相似的。这虽然在很多词相似性的判断上有很好的效果,但遇到反义词、数量词时效果不佳。

2 基于文本关键词改进的语言模型

2.1 TFIDF权重计算法

TFIDF是目前被广泛使用的权重评价函数,这种加权策略的直观解释为: 若文本中的某个词在本文中出现的频率越高,其贡献越大;但若这个词在整个文本集中出现的频率都很高,则其贡献将被减少。TFIDF权重计算如式(1)所示。

wij=TFij×IDFj=TFij×log(N/nj)

(1)

其中,TFij(term frequency)表示词tj在文档di中出现的频数;IDFj(inverse document frequency)表示出现词tj的反比文档频数;N表示总文档数,nj表示出现词tj的文档数。本文使用TFIDF权重计算法计算文本中每个词的TFIDF值,取TFIDF值最大的几个词作为文本关键词。

2.2 基于文本关键词改进的CBOW模型

经典的CBOW模型的思想是: 具有相同上下文的词是相近的,使用中间词的上下文预测中间词。改进的CBOW模型,把TFIDF值最高的几个词作为文本关键词和中间词的上下文一起预测中间词,其结构如图3所示。在相对较少的训练时间代价下,增强中间词与整个文本之间的联系,在一定程度上增加了中间词预测的合理性,更加丰富了词向量对词间关系以及词本身含义的表达。

图3 改进的CBOW模型网络结构示意图

以文本“欧几里得西元前三世纪古希腊数学家,现在被认为是几何之父”为例,取中间词“三世纪”。则改进模型建立的词间联系为: 使用文本关键词“欧几里得”“几何”乘以各自TFIDF值和中间词上下文“欧几里得”“西元前”“古希腊”“数学家”一起预测中间词“三世纪”,整个词间联系如图4所示。

2.3 基于文本关键词改进的skip-gram模型

经典的skip-gram模型建立了中间词与其上下文的联系,由中间词预测中间词上下文。中间词上下文的大小由窗口c决定,可以通过控制窗口c的大小使得中间词与整个文本建立联系,但这样会极大地增加训练时间。基于文本关键词改进的skip-gram模型建立了中间词与其上下文以及文本关键词的联系,由中间词预测中间词上下文以及文本关键词,如图5所示。在增加较少的训练时间代价下,把skip-gram模型建立的局部词间联系扩大到中间词与整个文本的联系。

图4 改进的CBOW模型词间联系示意图

图5 改进的skip-gram模型网络结构示意图

同样以文本“欧几里得西元前三世纪古希腊数学家,现在被认为是几何之父”为例,取中间词“三世纪”。改进模型建立的词间联系为: 使用中间词“三世纪”分别预测中间词上下文“欧几里得”“西元前”“古希腊”“数学家”和文本关键词“欧几里得”“几何”,整个词间联系如图6所示。

3 评测方法

Word2Vec词向量训练是一个无监督训练过程,对于训练出的词向量的评价一般有两种方法: 一种是将训练出的词向量应用到现有的自然语言处理系统中,例如,文本分类、情感倾向性分析、自动摘要等系统。在仅考虑词向量一个变量的情况下,通过观察整个系统在正确率、准确率、召回率等系统评价指标,即可评价词向量的好坏。另一种是从语言学的角度,通过评测词向量相近的词之间的相似度来评价词向量的好坏。Mikolov根据语义偏移现象构建测试集,使用类比的方式进行词向量的评测。

图6 改进的skip-gram模型词间联系示意图

本文主要采用第二种方法评价词向量的好坏。在词向量的训练过程中,除模型外的其他因素,例如,训练语料、词向量维度、损失、优化器等因素全部保持一致。评测前,随机抽取5个目标查询词,使用Word2Vec分别查询与5个目标查询词最相近的20个词。平均查准率MAP(mean average precision)[12]计算如式(2)所示。

(2)

其中,N为查询词的总个数;AveP(qn)为每个词的查准率,其计算如式(3)所示。

(3)

其中,R为查询的与每个目标查询词语义相近词的个数;M为相近词人工评测得分。为了减少主观印象,评测分数范围仅为0、1、2。0代表完全不相关或者语义相反,1代表语义大致相近,2代表语义一致;从公式可以看出,MAP值越大,词向量质量越好。

评测的具体步骤如下: ①导入训练完成的词向量; ②分别查询与目标查询词最相似的20个词; ③根据MAP公式计算MAP值; ④导入其他训练完成的词向量,执行步骤②和步骤③。

4 实验数据以及数据的预处理工作

本文的实验数据集来源于维基百科中文语料数据集[注]维基百科中文语料的下载地址为https://dumps.wikimedia.org/zhwiki/latest/zhwiki-latest-pages-articles.xml.bz2。维基百科(Wikipedia)是一项多语言、内容自由、免费、开放、任何人都能参与的协作计划,包含了人类所有认知领域的信息。本文采用的维基百科中文语料总共1.5GB,大概71 168万字,内容覆盖范围广,语言相对规范,是训练中文词向量的非常不错的选择。

由于数据量巨大,如何保证数据质量是一个必须解决的问题。因此数据清洗是本次实验的重要工作之一。下载的中文语料采用xml格式保存,其中有大量繁体字、非法字符。数据清洗的核心步骤包括: 繁体字转化,删除英文,删除标点和非法字符,分词等操作,其流程如图7所示。文本分词采用哈工大分词工具;文本采用txt文件按行存储的方式存储。由于没有文本检索的需要,为了尽可能加快文本顺序读取的速度,没有采用结构化数据库或者非结构化数据库存储,仅采用txt文件存储文本数据。

图7 数据清洗流程图

5 实验与分析

5.1 实验设计

本实验采用了四种模型,分别是skip-gram、CBOW、skip-gram-TFIDF、CBOW-TFIDF模型。实验步骤: ①读取训练语料和TFIDF权重词文件; ②编写四种语言模型的训练样本生成器; ③分别训练词向量。

5.2 实验配置

本文实验基于Windows 10操作系统,Intel Core i7 7700HQ处理器(四核八线程),12GB内存,128GB固态硬盘+1TB机械硬盘,使用Python 3.6语言和tensorflow深度学习框架实现。词向量训练过程中主要参数设置[17]如表1所示。

表1 主要参数值表

5.3 结果分析

实验随机选取了厌恶、喜欢、北京、奔驰、争执5个目标查询词,分别从4种模型训练出的词向量中查询与目标查询词最相近的20个词,评价按照评价标准人工进行。

5.3.1 时间效率对比

通过观察图8发现使用skip-gram模型训练词向量所需要的时间比CBOW模型长;使用skip-gram-TFIDF模型训练词向量所需要的时间比skip-gram模型长,通过源码分析,增加的时间包括读取TFIDF权重词文件的io时间和词向量训练增加的时间。由于skip-gram-TFIDF模型在训练词向量时,增加了(中间词文本,文本关键词)样本,使得总样本数增加了大约1/5,所以整个训练时间相较于使用skip-gram模型大约增加了1/4;使用CBOW-TFIDF模型训练词向量所需的时间比CBOW模型稍长,通过源码分析,增加的时间主要为读取TFIDF权重词文件的io时间,而在词向量训练上增加的时间几乎可以忽略。综上所述,skip-gram模型所需的训练时间长于CBOW模型,改进的模型所需的训练时间长于经典模型;无论哪一个模型训练时间都在[1 000,3 000]秒之间,均在可接受的范围内,因此不在时间效率上评价模型的优劣。

图8 训练用时柱状图

5.3.2 平均查准率对比

通过观察图9可以看出,CBOW模型的平均查准率要优于skip-gram模型,而基于文本关键词改进的模型的平均查准率优于经典模型。CBOW和skip-gram模型的假设是,如果两个词的上下文是相似的,这两个词就是相似的。经典模型建立了单词间的纵向联系,由于CBOW模型使用上下文词向量求和结果预测中间词,skip-gram模型利用词对的方式分多次使用中间词预测上下文,故CBOW模型对于常见词有利,skip-gram对于罕见词有利。而本文评测选取的目标查询词都为常见词,故CBOW模型平均查准率较高。文献[2]中也提到这一点,并且该文献还指出skip-gram模型与hierarchical softmax搭配使用效果最好,与negative sampling搭配结果精度不高,本文主要讨论改进模型和经典模型之间的优劣,故没有考虑hierarchical softmax和negative sampling的影响,固定使用negative sampling。

图9 平均查准率柱状图

基于文本关键词改进的模型略优于经典模型,训练词向量时窗口越大,选择构成样本的词越多,词向量训练效果越好。然而当窗口增大,无疑会无限制地增加训练时间。改进模型引入TFIDF权重法计算文本最具代表性的关键词,并构成样本加入训练过程,在可以接受的时间范围内,使中间词与整个文本建立联系,提高了训练出的词向量的质量;并且使用CBOW-TFIDF模型训练出的词向量,预测如“喜欢”“讨厌”这类上下文非常相似,但语义相反的词时平均查准率提升了7.8%;skip-gram-TFIDF模型的平均查准率比skip-gram模型提升了3.7%。

综上所述,改进的统计语言模型在可接受的训练时间范围内训练出的词向量质量高于于经典模型;在进行常见词查询时CBOW-TFIDF模型训练出的词向量效果最优。

5.4 词向量在情感倾向性分析任务上的测试结果对比

本次实验数据集来源于2014中文观点倾向性分析评测(COAE2014)任务中的任务4: 句子级微博观点句识别,在给定的微博句子集合中,判别每个句子的情感倾向性(即褒义、贬义或者中性)。

取本文最好实验结果与哈工大的一篇同样以COAE2014作为实验数据集的论文[18]最好实验结果(Baseline)对比,结果如表2所示。

表2 情感倾向性分析性能对比

通过对比可以发现,使用CBOW-TFIDF模型训练出的词向量能够有效地提升情感倾向性分析的效果。虽然在消极情感的识别精确率、F-Score上稍有下降,但是其在积极情感的识别精确率上提升了4.79%,F-Score上提升了4.92%。

把4种模型训练出的词向量,分别应用到上述任务当中(词向量作为为唯一变量)。通过图10可以发现,在训练20 000次时,使用CBOW-TFIDF模型训练出的词向量,分类准确率最高;纵向来看,训练相同次数,使用CBOW-TFIDF模型训练出的词向量分类准确率最高;并且在前15 000次训练中,使用CBOW-TFIDF模型训练出的词向量,训练效率最高。

图10 四种词向量分类正确率随训练次数变化图

6 结束语

本文主要是对经典的CBOW和skip-gram模型的改进和优化,引入TFIDF权重法计算文本关键词,并构成样本加入训练过程,提高词向量质量。词向量训练的核心是建立词间关系模型,经典模型仅考虑中间词与其上下文之间的联系,而本文引入统计学方法,建立了中间词与整个文本之间的联系,进一步完善了词间关系模型。基于维基百科1.5GB中文语料的词向量训练实验表明,CBOW-TFIDF模型有利于提升词向量的质量;在解决如“喜欢”“讨厌”这类上下文相似、语义相反的词却被误判为相似词的问题上有一些帮助。本文对情感倾向性分析等以词向量为基础的自然语言处理应用有较大的参考意义。

猜你喜欢
查准率语料向量
向量的分解
基于归一化点向互信息的低资源平行语料过滤方法*
聚焦“向量与三角”创新题
濒危语言与汉语平行语料库动态构建技术研究
基于数据挖掘技术的网络信息过滤系统设计
大数据环境下的文本信息挖掘方法
基于深度特征分析的双线性图像相似度匹配算法
对外汉语教学领域可比语料库的构建及应用研究
——以“把”字句的句法语义标注及应用研究为例
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线