APP下载

一种改进的GloVe词向量表示学习方法

2021-05-27石隽锋李济洪王瑞波

中文信息学报 2021年4期
关键词:余弦句法语料

石隽锋,李济洪,王瑞波

(山西大学 现代教育技术学院,山西 太原 030006)

0 引言

近些年来,在自然语言处理领域,预训练词语分布式表示在很多任务中有很好的性能,这些任务包括文本分类[1]、问答系统[2]、命名实体识别[3]、语义角色标注[4]等。为此,研究人员提出了很多预训练的语言模型[5-9],较为典型的方法有SENNA模型[5]、Word2Vec模型[6]、GloVe模型[7]、ELMo模型[8]、BERT模型[9]。其中,GloVe模型基于任意两个词之间的全局共现信息,再采用Log-Bilinear模型学习得到词向量表示,在多项评测任务中表现良好。通常情况下,得到的词向量的维数越高模型性能越好,但维数越大则训练耗时越长。一个自然的想法是,利用并行计算分别学习较低维数的词向量再拼接,能否得到性能更高的词向量?事实上,在GloVe模型中,共现矩阵的统计方法采用了两种,一种是对称窗口的方法,即取目标词两侧固定窗口内的词语作为其上下文;另一种是非对称窗口的方法,即取目标词左侧的固定窗口内的词语作为其上下文,不同的共现矩阵会反映不同的句法和语义信息。为此,在GloVe模型中,本文以对称和非对称窗口统计得到两个共现矩阵,分别学习得到词向量表示,然后再采用拼接的方式,得到较高维度的词向量表示。在验证实验中,我们分别学习得到的300维向量,再拼接得到600维向量表示,在中文和英文的词语推断任务的评测集上,预测的准确率得到显著提升。

1 相关工作

在自然语言处理领域,词语的分布式表示(distributional representation)是将词的上下文信息表示为词向量的形式,这种词向量构建的基础是1957年Firth提出的分布式假说(distributional hypothesis)[10],即一个词语的语义信息是由其周围的词语来刻画的(a word is characterized by the company it keeps)。科研人员提出了多种词向量的构造方法。Burgess 等[11]构造的词向量的每一维上表示目标词和其上下文词语共现的频次,而有些研究人员[12-13]用目标词和它的上下文的逐点互信息(pointwise mutual information,PMI)或正逐点互信息(positive pointwise mutual information,PPMI)代替了频次。词语的共现范围通常用滑动窗口的方法来实现[11],给定窗口的大小为w,通过在语料上逐词地滑动窗口。在每个窗口里,共现的词对的频次的和形成共现矩阵,词对是有序的,即只统计目标词左侧上下文的频次,而把目标词和上下文交换角色后,就可以得到目标词右侧上下文的频次。文献[14]系统地比较了不同的距离测度对不同的共现矩阵(PMI共现矩阵、PPMI共现矩阵)得到的词向量在各种任务上的性能。在PPMI共现矩阵中,分出了四种共现矩阵,即基于左侧共现、右侧共现、及左右侧共现相加、左右侧共现拼接的共现矩阵,依次表示为:L,R,L+R,L&R,在语义聚类任务和句法聚类任务上比较了基于四种共现矩阵的性能,发现在语义聚类任务上,基于L&R的词向量性能略高于基于L+R的词向量;在句法聚类任务上,基于L&R的词向量在维数较高的情况下,性能显著高于基于L+R的词向量。词语的分布式表示是高维的、稀疏的向量,不利于进行语义计算。为此,科研人员提出了一些降低维度的方法,文献[15]对词对的频次排序,设定阈值,删掉词对频次低于阈值的维数,使得词向量的维数大大降低。文献[16]提出了奇异值分解方法,将文档矩阵进行分解,降低了词向量的维数,文献[17]是对共现的PPMI矩阵进行因式分解。近些年来,科研人员通过神经网络训练词语的低维表示。Word2Vec模型[6]包括CBOW模型和Skip-gram模型,目标函数为目标词和上下文的关系,CBOW模型的目标函数为通过上下文预测目标词,而Skip-gram模型的目标函数为通过目标词预测上下文。文献[18-21]都是在CBOW和Skip-gram模型基础上进一步考虑了词语在句子中的位置以及和目标词的关联程度提出的改进模型,这些模型在句法任务上性能均有所提升。文献[18]采用了基于句法关系的上下文训练的词向量作为依存句法解析的特征,来提高模型性能。文献[19]在CBOW模型和Skip-gram模型的基础上添加更多的参数,保留上下文和目标词之间的位置信息。但模型的复杂度会随着窗口的增大线性增加。文献[20]在CBOW模型的基础上,根据上下文的不同类型以及和目标词的相对位置的不同,为上下文分配不同的权重。文献[21]引入一个方向向量来表示上下文是在目标词的左边还是右边,从而提高Skip-gram模型的性能。文献[22]提出了采用基于句法关系的上下文训练词向量的方法,在Skip-gram模型上,比较了基于句法关系的上下文和基于滑动窗口的上下文训练得到的词向量,发现通过基于句法关系的词向量找到的相似词语中功能型相似(functional similarity)的词语比较多,基于滑动窗口的词向量找到的相似词语中主题相似(topical similarity)的词语比较多,例如,“佛罗里达州”在第一种上下文的词向量下得到的相似的词语为其所属的国家或者它包含的城市,在第二种上下文的词向量下得到的相似词语是美国的一些其他的州。因此基于滑动窗口上下文的词向量表示和基于句法上下文的词向量表示各有优劣。应当把这两种词向量表示结合起来使用。基于GloVe模型有两种统计共现矩阵的方式,一种是对称窗口方式,没有考虑词语顺序;另一种是非对称窗口方式,考虑了上下文在目标词的前后顺序。因此,我们有必要将两种共现矩阵得到的词向量结合起来,得到精度更高的词向量表示,来更好地完成语义和句法任务。

2 GloVe模型

GloVe模型可以分别训练出基于对称共现矩阵的低维词向量和基于非对称共现矩阵的低维词向量。

GloVe模型训练基于对称共现矩阵的低维词向量的步骤如下:

(1) 从语料库统计出词表。从给定语料库统计每个不同的词语出现的次数,按照频次从高到低排序,ci表示第i个词,fi表示第i个词的频次,1≤i≤n,其中n为语料库中不同的词语个数。

(3) 用vS表示基于对称共现矩阵训练得到的低维词向量。训练vS的目标函数如式(1)所示。

(1)

GloVe模型训练基于非对称共现矩阵的低维词向量的步骤如下:

(1) 从语料库统计出词表。从给定语料库统计每个不同的词语出现的次数,按照频次从高到低排序,ci表示第i个词,fi表示第i个词的频次,1≤i≤n,其中n为语料库中不同的词语个数。

(3) 用vA表示基于左侧共现矩阵训练得到的低维词向量。训练vA的目标函数如式(2)所示。

(2)

3 GloVe词向量拼接模型

本文提出了GloVe词向量拼接模型,该模型并行训练出只有一半维数的vA和vS,再将它们拼接起来,完成词语推断任务。具体步骤如下:

(1) 从语料库统计出词表。从给定语料库统计每个不同的词语出现的次数,按照频次从高到低排序,ci表示第i个词,fi表示第i个词的频次,1≤i≤n,其中n为语料库中不同的词语个数。

(2) 设定固定窗口大小为w,依次遍历语料库中的词语,并行统计出左侧共现矩阵和对称共现矩阵XL和XS。两个矩阵的大小都为n×n。XL和XS都是按词频排序的。

(3) 并行打乱XL和XS的顺序。

(4) 在两个处理器上,设置维数为GloVe模型的一半,分别用式(1)训练出vS,用式(2)训练出vA。

(5) 将vA和vS拼接起来作为词语的低维词表示。

4 实验

实验环境为山西大学高性能计算平台。

4.1 在英文词语推断任务上比较

从English Wikipedia语料分割出三个不同大小的语料,分别包含2亿、5亿、10亿个单词,文件大小分别为1.09 GB、2.71 GB、5.42 GB。滑动窗口大小(window-size)设置为10,词典中的最大词数(max-vocab)设为100 000,用GloVe模型训练出600维的vS和vA,用GloVe词向量拼接模型训练出600维的vS和vA的拼接向量(vS和vA的维数都是300维),在词语推断任务[3]上比较它们的准确率,实验结果如下,词语推断任务的测试集包括语义任务(capital:country,city:state,family)和句法任务(adjective:adverb,opposite,comparative等),结果如表1~表3所示。

从表1可以看出,GloVe词向量拼接模型得到的词向量在语义任务、句法任务和总任务上的准确率均有不同程度的提升,句法任务和总任务上提升较大。从表2和表3可以看出,GloVe词向量拼接模型得到的词向量在句法任务上有较大提升,在总任务上准确率也有所提升。综合表1到表3,GloVe词向量拼接模型在句法任务上性 能较好,在较小的语料库上性能提升得较大。随着语料规模的扩大,在“vA拼接vS”词向量下,语义任务上的准确率先升后降(82.01%→84.62%→84.40%),这是因为max-vocab参数的设置,该参数限制了词典的最大词数,在不同大小的语料上,词典里的词按照频次从高到低排序,词数相同,使得保留下来的词并不相同,较大的语料保留了词频较高的词,但可能删去了一些有意义的上下文词语。因此,语料大也可能使准确率下降。由于实验目的是比较在相同语料规模下,GloVe模型训练出词向量和GloVe词向量拼接模型训练出的词向量的性能,因此,没有考虑三个语料下要统一词表。

表1 1.09 GB English Wikipedia语料下的比较结果 (单位:%)

表2 2.71 GB English Wikipedia语料下的比较结果 (单位:%)

表3 5.42 GB English Wikipedia语料下的比较结果 (单位:%)

4.2 在中文词语推断任务上比较

本文在中文的词语推断任务上也做了相同的实验,中文语料采用1998年和2000年人民日报语料合并后的语料,大小为186 MB,中文的词语推断任务的测试集是文献[23]提供的,只包含语义任务(首都:国家,省会:省,家庭关系),用GloVe模型训练出600维的vS和vA,用GloVe词向量拼接模型训练出600维的vS和vA的拼接向量(vS和vA的维数都是300维),在中文的词语推断任务上进行比较,实验结果如表4所示。

表4 人民日报语料下的比较结果 (单位:%)

从表中的数据可以看出,GloVe词向量拼接模型得到的词向量准确率有大幅提高。

4.3 显著性检验

本文对表1中的数据用χ2检验方法进行了显著性检验,如式(3)所示。

(3)

在本实验中,n01表示使用GloVe词向量拼接模型预测错误而GloVe模型预测正确的词语个数,n10表示使用GloVe词向量拼接模型预测正确而GloVe模型预测错误的词语个数,通过计算得到的χ2值如表5所示。

表5 “vS”和“vA 拼接vS”在各个任务上的χ2值

4.4 词语聚类的示例

词语聚类的效果可以检验词向量性能。通常可以通过计算词语向量的相邻词,观察这些学习到的词向量表示的好坏。本文采用词向量的余弦相似度来度量词语的相邻程度。采用4.2节训练的词向量。表6和表7分别列出了在“vS”“vA”和“vA拼接vS”的词向量下,英国、德国最相邻的10个词。

表6 “英国”在“vS”、“vA”和“vA拼接vS”词向量下的10近邻词及余弦相似度

表7 “德国”在“vS”、“vA”和“vA拼接vS”下的10个近邻词及余弦相似度

可以看出,与“vS”与“vA”词向量相比,在“vA拼接vS”词向量下,词语的余弦相似度较大,说明聚在一起的相似的词语比较多。

通过列出的10个近邻词语可以看出,在“vS”词向量下,列出了更多语义上比较接近的词,在“vA”词向量下,列出了更多句法上接近的词语,在“vA拼接vS”词向量下,列出了更多句法和语义上接近的词语。

比如,在“英国”的10个近邻词中,在“vS”词向量下,“英国”的相邻词中包括“牛津”,而在“vA”词向量下没有这个词;在“vA”词向量下,“英国”的相邻词中包括“美国”“日本”“澳大利亚”,而在“vS”词向量下没有这些词。在“vA拼接vS”词向量下,“英国”的10个近邻词中包括“美国”“日本”,不包括“牛津”“澳大利亚”。但“英国”的第14近邻词为“澳大利亚”,和“英国”词向量的余弦相似度为0.502 7,“英国”的第15近邻词为“牛津”,和“英国”词向量的余弦相似度为0.495 3。虽然这两个词不在“英国”的前10个近邻祠内,但是,在“vA拼接vS”下,这两个词和“英国”的余弦相似度分别比在“vA”和“vS”词向量下的大。例如,在“vA拼接vS”下,“澳大利亚”和“英国”的词向量的余弦相似度为0.502 7,0.502 7>0.424 7(“vA”下“英国”和“澳大利亚”的余弦相似度),同样,在“vA拼接vS”下,“牛津”和“英国”的词向量的余弦相似度为0.495 3,0.495 3>0.459 5(vS下“英国”和“牛津”的余弦相似度)。同样,在“vA拼接vS”下,“美国”“日本”和“英国”的余弦相似度比“vA”词向量下的余弦相似度大。

比如,在“德国”的10个近邻词中,在“vS”词向量下,“德国”的相邻词中包括“施罗德”(德国前总理)、“纳粹”,而在“vA”词向量下没有这两个词。在“vA”词向量下,“德国”的相邻词中包括“荷兰”“日本”,而在“vS”词向量下没有这些词。在“vA拼接vS”词向量下,“德国”的10个近邻词中包括“施罗德”“荷兰”“日本”,不包括“纳粹”。但“德国”的第22近邻词为“纳粹”,余弦相似度比“vS”词向量下的大,为0.482 9,0.482 9>0.439 5(“vS”下“德国”和“纳粹”的余弦相似度)。在“vA拼接vS”词向量下,“德国”的第7近邻词为“日本”,余弦相似度为0.578 7,0.578 7>0.439 7(“vA”下“德国”和“日本”的余弦相似度)。在“vA拼接vS”词向量下,“施罗德”“荷兰”的余弦相似度分别比在“vS”和“vA”词向量下的大,由于篇幅所限,在此不一一列举。

总的来说,在“vA拼接vS”下,词语的近邻词中包括了更多语义和句法上相近的词语。“vA拼接vS”得到的词向量在词语聚类上的表现优于“vS”和“vA”词向量。

4.5 运行时间

本文统计了4.1节在1.09 GB的English Wikipedia语料下完成词语推断任务时,GloVe模型和GloVe词向量拼接模型运行的时间,如表8所示。

表8 1.09 GB English Wikipedia语料下的运行时间

因此,对GloVe模型,采用并行的训练学习方法,既可以提高词向量的性能,又能节省训练时间。

4.6 实验结果分析

从大部分的词语推断任务和聚类任务的实验结果可以看出,“vA拼接vS”词向量在语义任务和句法任务上都超过了“vS”词向量和“vA”词向量。原因是“vS”词向量和“vA”词向量共现矩阵构造过程不同,反映的句法和语义信息也不同。“vA拼接vS”词向量能够体现更完整的句法和语义信息。

“vS”词向量的共现矩阵构造方法为:在语料库上,从开始位置滑动固定大小的窗口,统计目标词两侧固定窗口内的词语的频次,生成对称共现矩阵。

“vA”词向量的共现矩阵构造方法为:在语料库上,从开始位置滑动固定大小的窗口,统计目标词左侧固定窗口内的词语的频次,生成左侧共现矩阵。左侧共现矩阵的转置即为右侧共现矩阵,因此右侧共现矩阵不需要单独统计。

“vA”词向量的共现矩阵保存了词语在目标词左右的位置信息,而“vS” 词向量的共现矩阵将目标词左侧和右侧的相同词语的频次求和,使得共现矩阵中混合了目标词之前和之后的上下文词语。“vA”词向量聚类能将句法相近的词语更好地聚在一起,而“vS”词向量聚类能将语义相近的词更好地聚在一起。因此,“vA”词向量更多地体现句法信息,而“vS”词向量更多地体现语义信息。

“vA拼接vS”词向量是将“vA”词向量和“vS”词向量拼接起来,融入了“vA”词向量和“vS”词向量的信息,因此该词向量能体现更多的句法和语义信息。

5 结论与展望

事实上,表示学习的理论依据是词的意义是由与其共现的词来体现的,意义的不同体现了其共现词语的差异。GloVe模型中共现是以滑动窗口的方式来统计的,显然,对许多词,使用词的左侧、右侧窗口或对称窗口来计算共现能够体现词组合的不同分布特性。因此,采用多种方式而不是仅仅用对称窗口方式得到共现矩阵,应该可以学习到更为准确的词表示向量。

本文提出了GloVe词向量拼接模型,使用不同的共现矩阵,并采用并行处理分别学习较低维度的词向量,再采用拼接方式得到较高维度的词向量表示,减少了词向量的训练时间。实验结果表明,由GloVe拼接模型得到的词向量在词语推断任务上和词语聚类任务上性能有显著提升。下一步我们将研究如何得到反映多种层面信息的共现矩阵,有效集成多种词表示向量,提高表示学习的性能。

猜你喜欢

余弦句法语料
句法与句意(外一篇)
述谓结构与英语句法配置
句法二题
诗词联句句法梳理
两个含余弦函数的三角母不等式及其推论
基于语料调查的“连……都(也)……”出现的语义背景分析
分数阶余弦变换的卷积定理
图像压缩感知在分数阶Fourier域、分数阶余弦域的性能比较
华语电影作为真实语料在翻译教学中的应用
《苗防备览》中的湘西语料