基于描述约束的词表示学习

2019-05-24 06:50冶忠林赵海兴
中文信息学报 2019年4期
关键词:向量词语神经网络

冶忠林,赵海兴,张 科,朱 宇

(1. 陕西师范大学 计算机科学学院,陕西 西安 710062;2. 青海师范大学 计算机学院,青海 西宁 810008;3. 青海师范大学 藏文信息处理与机器翻译省级重点实验室,青海 西宁 810008;4. 青海师范大学 藏文信息处理教育部重点实验室,青海 西宁 810008)

0 引言

词表示学习将词语与上下文词语之间的关联关系映射到低维度的向量空间中。其中最主流的分布式词表示算法为基于浅层神经网络的Word2Vec[1-2]算法,在该算法中,基于负采样优化的Skip-Gram模型简称为SGNS。由于其更加有效和快速拟合,因此比其他的神经网络方法(如NNLM, RNN, LSTM)[3]更加受到关注。此外,还有一些传统的词表示学习算法,例如,通过word-context构建的共现矩阵(SPPMI)方法或矩阵分解(SVD,LSI)方法[4]。

Levy在文献[5]中提出在类比数据集(MSR和Google )上SGNS效果优于使用SVD分解PPMI矩阵,但是在相似度评估数据集(本文使用相同的数据集)上,SVD分解PPMI矩阵的效果优于SGNS。SGNS实质也是矩阵分解,因此,SGNS性能优于SVD分解PPMI矩阵的主要原因是SGNS使用了一个浅层的神经网络不断地调整和优化表示向量之间的距离关系,同时在优化过程中使用大量的超参数也能提升性能。另外,SGNS隐含地分解一个加权矩阵,该过程类似于在类比任务中给语义相近的词语赋予更相近的词表示。Levy等认为构建类似于点互信息矩阵(PMI)的word-context加权矩阵也许能够提升词表示性能。在文献[6-7]中,Hamilton等建议当训练精确的词表示时,SVD方法应该为首选,而非SGNS。随后,Levy在文献[8]中证明了SGNS为隐含的分解添加了负采样的 Shifted PPMI矩阵(SPPMI)。

目前,传统的词表示方法研究逐渐被基于神经网络的方法所替代,主要是因为传统的方法构建word-context关系耗时,且不能准确地反映相互之间的关联关系。而对词向量地改进也主要是基于神经网络的方法,例如,倾向于主题共性的TWE算法[9]、利用句法分析优化的DEPS算法[10]、基于多原型的词嵌入Huang算法等[11]。基于神经网络的方法虽然高效,但仍存在不足。例如,(1)在固定上下文窗口中,语义完全相反的词语共享相同的上下文; (2)如果语料较为稀疏,则罕见词或词频较小的词难以得到充分地训练。

本文通过分析神经网络方法与传统方法之间的相关性,提出用传统方法训练词表示,也能使得其性能达到甚至超过基于神经网络的方法。为了实现该目标,本文在训练传统词表示模型时融入词语的句法和语义信息,因为现有的词表示学习算法很少把语义信息纳入考量,且在基于统计或词共现的传统词表示学习模型中更是丢失了语义因子。本文将维基百科中的词语描述信息和其他在线词典中的例句作为词语的内在语义信息,进而构建属性特征文本和属性特征矩阵,从而利用词语文本特征弥补罕见词训练不充分的问题。本文又将整个语料中的词语与其上下文的结构关联作为词语的外在结构信息,进而构建了词语的上下文特征文本和上下文特征矩阵。同时进一步对上下文特征文本进行分布平滑处理,即在上下文特征文本中删除重复的词语,使得某些频繁出现的上下文被采样的概率小于它们本身出现频率所指示的概率。为了从上下文特征矩阵和属性特征矩阵中均学习到有价值的内容,本文首次引入了高效的诱导矩阵补全算法到词表示学习任务中,该算法在分解上下文特征矩阵的同时从属性特征矩阵中学习特征因子,最终使得学习到的词表示同时含有两个矩阵因子。本文的贡献在于引入了基于矩阵诱导补全的词表示联合学习框架,并解决了基于神经网络的词表示所存在的两个缺陷,使得最终学习得到的词表示同时蕴含结构共性和语义共性。

1 算法描述

1.1 基于矩阵分解的词表示

2013年,Mikolov等提出了Word2Vec词表示学习算法[1-2],其由Skip-Gram模型和CBOW模型构成,同时提供了分层 Softmax和负采样(Negative Sampling) 两种优化方法。Hierarchical Softmax基于词频构建了一个完整的huffman树,该优化方法的缺点是训练非常耗时。负采样是噪声对比评估[12]的一类简化算法,该算法通常被用来改善词表示学习的训练效率。

通常,Skip-Gram模型与负采样优化方法的结合简称为SGNS算法。

2014年Levy和Glodbery等[8]证明了基于神经网络的SGNS模型等同于隐式地分解Shifted PPMI(SPPMI)矩阵,该矩阵定义为SPPMI(w,c)=max(PMI(w,c)-logk,0),其中,PMI(w,c)=logP(w,c)/(P(w)P(c))。 Church和Hanks[13]将PMI引入到语言模型,并定义PMI(w,c)=log(#(w,c)·|D|)/(#(w)#(c)),|D|为语料中的词语数量。随后其被广泛地应用于词相似度衡量任务中[14-15]。由于PMI的向量维度非常高,且会出现负无穷值,因此,在实际应用中一般采用PPMI矩阵替代PMI矩阵,即PPMI(w,c)=max(PMI(w,c),0)。

在基于神经网络的SGNS模型中,k表示负采样个数,在SPPMI中同样定义了k来选取不同的负采样大小。在SGNS中,负采样值k取值越大,表明训练时参与的词语就越多,参数的估计则更加准确。另外,k值也影响了SGNS隐式分解PMI矩阵的偏移,即k通过logk来转移PMI的值。

1.2 基于描述约束的词表示学习

1.2.1 属性特征矩阵构建

属性特征矩阵是每个词语的描述(或定义)文本构成的特征矩阵。词语作为语言模型的最小语义单元,除了与上下文词具有交互性之外,还含有丰富的描述文本,该类描述文本被认为是词语的内在属性信息。如果在语言模型中,充分地考量词语的属性信息,可有效提升词表示的性能。词语的属性特征矩阵构建可抽象为以下三个步骤:(1)描述(或定义)文本爬取;(2)属性文本特征预处理;(3)属性特征矩阵构建。

(1)描述(或定义)文本爬取词语的描述性文本主要来自于维基百科的词语描述段落。该内容范围从标记“”到标记“

”的内容,而不是整个页面的详细介绍内容。某些没有描述备注的词语,本文另从Wiktionary词典[注]https://en.wiktionary.org/wiki/Wiktionary:Main_Page和Dictionary词典[注]http://www.dictionary.com/的解释文本中获取内容。在未来的可重复实验中,为了便于获取词语的描述文本,可通过英文搜索引擎得到与该词语相关的前几页网页内容作为描述内容,为了使结果更加准确,可仅保留包含该词语的句子作为描述文本。

(2)属性文本特征预处理当从描述性或者解释性的文本中获取了词语的属性信息之后,需要对这些文本进行清洗和整理操作。首先本文删除了爬取文本中的HTML标签信息。由于英文停用词[注]https://blog.csdn.net/shijiebei2009/article/details/39696523在英文文本中出现率很高,但又仅起到结构连接的作用。因此,本文随后删除了文本中的891个停用词。最后得到的文本为词语的属性文本特征,即删除标签与停用词后的文本。

(3)属性特征矩阵构建: 本文基于删除停用词后的文本构建了文本特征词典并统计了对应的词频。以所有的相似度测试集中的词语(去重后)为行表头,以文本特征词典为列表头,以属性文本特征为约束条件,如果文本特征词典中的词语出现于属性文本特征中,则设置特征矩阵中对应位置为1,否则设置为0,循环设置直到最后一个相似度词语为止。

在基于神经网络的词表示学习中,假如意义完全相反的词语作为当前词语的上下文词语,则通过神经网络模型训练得到的词表示中,这两个词语在向量空间中具有了更相近的空间距离。但是,按照语言模型的认知习惯,意义相反的词语应该在向量空间中具有较远的空间距离。本文通过构建词语的属性特征矩阵,使得同义词在属性特征上具有更多的关联性,从而诱导词表示模型赋予同义词更相近的词表示向量。对于反义词,词表示学习模型无法从属性特征矩阵中学习到共享特征,因此会被赋予更远的词表示向量。因此,本文使用的特征矩阵可解决基于神经网络词表示学习模型属性所具有的第一个不足。

1.2.2 上下文特征矩阵构建

对于上下文语料库,本文同样使用了维基百科语料库,不同于词语特征矩阵构建,此环节本文下载了最新的全部维基语料。本节任务主要由两个步骤完成,即上下文特征文本预处理和上下文特征矩阵构建。

(1)上下文特征文本预处理该过程可被归纳为以下步骤:(a) 从维基百科网页中抽取文本信息,删除HTML标签; (b) 将所有单词的大写转换为小写,将文本中的数字转化为“NUMBER”;(c) 将语料按逗号、问号、感叹号等断句符号分割为行。每一行存储一条语句;(d) 检查每条语句是否包含了词典中的词语,如果包含则保留该句子,否则删除该句子。最后,本文整理得到的上下文特征文本中有3 770 834条句子。

(2)上下文特征矩阵构建该过程可被归纳为以下步骤:(a) 设置上下文窗口大小,按照上下文窗口获取当前词w的上下文词语C={c-2,c-1,w,c1,c2},并对C中的词语做去重处理,最终得到由当前词和上下文词组成的文档Dwc。 在英文文本中,以空格作为词语之间的分割符;(b) 基于Dwc计算当前词w出现的次数#(w)和上下文词c出现的次数#(c),以及w和c在同一窗口中出现的次数#(w,c);(c) 设置负采样k值,并根据公式SPPMI(w,c)=max(PMI(w,c)-logk,0)构建出上下文特征矩阵SPPMI。

在步骤(2)中,对上下文做去重处理主要是为了上下文分布平滑的考量,使得某些频繁出现的上下文被采样的概率小于它们本身出现频率所指示的概率。SGNS模型在训练词表示的过程中,为了加快模型拟合的速度,会将上下文中词语出现频率小于阈值的上下文词语删除,因此,罕见词由于词频小导致无法得到充分地训练。本文通过构建上下文特征矩阵,可有效的保留罕见词在整个语料中的上下文特征。因此,本文使用的上下文特征矩阵可有效地解决基于神经网络词表示学习的第二个不足。

1.2.3 基于属性特征矩阵和上下文特征矩阵的联合词表示学习

1.2.1和1.2.2小节讨论了如何获得词语的属性特征矩阵以及上下文特征矩阵,也已知Levy和Goldberg等[8]证明了基于浅层神经网络的SGNS等同于分解SPPMI矩阵。文献[6-7]认为使用SVD的矩阵分解方法应该为词表示学习的首选。

如何将两个矩阵联合学习,最简单的方法是分别分解两个矩阵之后,将得到的表示向量拼接。在推荐系统中,协同矩阵分解方法也可以解决该问题。2014年,Natarajan和Dhillon[16]提出了一类新的矩阵补全算法解决基因—疾病的关联性预测,即该诱导矩阵补全算法使用了已知的基因特征矩阵X∈d1×m和疾病特征矩阵Y∈d2×n去分解基因—疾病特征矩阵,分解得到的表示向量能够用于衡量不同基因之间的关联性。该诱导矩阵补全算法的目标函数可定义为式(1)所示。

式(1)的目标是分解基因—疾病矩阵M∈m×n,得到两个目标矩阵W∈k×d1和H∈k×d2,使得M≈XTWTHY。 最终使用WTH作为每个基因的表示向量。该思想可以被借鉴到本文中,用于解决词语属性特征矩阵和上下文特征矩阵的联合学习问题。本文中,设置矩阵X∈d1×m为单位矩阵E∈m×m,属性特征矩阵为T∈d×n。 因此,通过计算W∈k×m和H∈k×d,本文的目标函数是最小化,如式(2)所示。

式(2)可被简写为如式(3)所示。

本文使用WTH作为每个词语的d维表示向量。式(3)在分解上下文特征矩阵M∈m×m的过程中从辅助矩阵T∈d×n中学习潜在因子,从而提升了词表示学习的性能。如果辅助矩阵T∈d×n的性能较差,则最终的WTH的性能也会受到影响,因此,构建性能优异的文本特征矩阵T∈d×n至关重要。据我们所知,本文是首次将诱导矩阵补全的思想引入到词表示联合学习模型中,从而提出了一种新的基于矩阵分解的词表示联合学习框架,该框架有别于将属性文本约束函数作为词表示学习目标函数的约束项,使用随机梯度算法得到每个参数的更新表达式。矩阵分解具有较强的灵活性,可定制任意类型的辅助矩阵优化目标矩阵的分解过程,同时又能解决基于神经网络词表示学习中存在的两个不足,因此本文提出的DEWE算法是一种新颖的基于矩阵分解思想的词表示联合学习算法。

2 实验与分析

2.1 相似度词典预处理

本文使用了与文献[10]相同的六个相似度数据集评估本文提出的算法,即 MEN[17]、Rare Words[18]、M.Turk[19]、SimLex[20]、WordSim353[21](被拆分为WordSim Similarity和WordSim Relatedness 两个数据集) 。六个相似度数据集的词语全部放到一个文件中,构建一个相似度词典,并对该词典进行去重处理。另外,相似度词典中部分词语不在维基语料中出现,这些不出现的词语共有118个,其中100个为名词所有格形式,比如city’s,nation’s,world’s等。我们在词典中删除了这118个词语。最终得到词典中的词语共有 5 987个。

2.2 实验设置

本文提出的算法可调的参数有两个:负采样k和窗口大小。负采样k取值越大,采样的词语越多,结果越准确,但是设置k过大,也会引入噪声导致准确率降低。在下文中设置k为1,在2.4节中单独讨论不同的k对结果的影响。窗口大小采用Word2Vec一样的默认设置设为5,即当前词语前后各取两个词语。本文使用SGNS[8]、Glove[22]、Huang[11]、DEPS[10]、CBOW[8]等5个基于神经网络的词表示方法作为基本对比算法。为了分析DEWE词表示性能的提升因素,又和SPPMI、SPPMI(SVD)、Text(SVD)、SPPMI(SVD)+Text(SVD)等方法做了对比实验。本实验中使用的向量长度均为100。

2.3 实验结果讨论

基于2.2节中的设置,本文使用了2.1节介绍的六个数据集评估了本文提出的DEWE算法。DEWE算法分别设置向量维度为50、100、200三类。具体结果如表1所示。

表1 词表示学习算法性能分析

通过表1可知,本文提出的DEWE算法在表示向量长度为50、100、200的设置下均能获得较好的性能。SGNS和CBOW是Word2Vec的两种模型,所以其性能差距不明显。Glove和Huang的词表示性能低于SGNS。原始的SPPMI矩阵的性能比使用SVD分解SPPMI矩阵性能略高1%左右。文本特征矩阵使用SVD降维后获得的性能最低,与使用SVD分解的SPPMI矩阵拼接后性能获得提升,但其组合性能仍低于SVD分解SPPMI的性能。本文提出的DEWE方法实质上是将SPPMI特征矩阵和Text特征矩阵进行联合学习,实验结果表明,DEWE在六个数据集上性能均优于SPPMI和Text词表示性能。另外,在向量长度为50的设置下,DEWE相较于文本特征,性能最大可提升29.5%,相较于SPPMI,性能最大可提升7.4%。DEWE相较于SGNS,在六个数据集上性能的提升为3.4%、19.1%、9.4%、1.7%、1.8%、0.4%。因此,本文提出的联合学习模型是有效的。

2.4 参数分析

在本节两实验中,设置向量维度为100。首先在属性特征文本中过滤掉词频小于阈值的词语,然后使用剩余的词语构建属性特征矩阵,进而分析词语数量对文本特征矩阵Text的性能影响。在表2中,统计了词频大于阈值的词语的数量。表3中,分析了词频对Text性能的影响。

表2 属性特征文本中词语数量统计

表3 属性文本特征中词频对文本特征矩阵的性能影响分析

在本文算法中,k为负采样个数,取值越大则参与运算的词语越多,参数估算也越好。另外,k控制着SGNS隐式分解PMI的偏移量。本文在构建SPPMI矩阵时设置不同的负采样k值,从而分析负采样数对上下文特征矩阵性能的影响。具体结果如表4所示。从表4可以发现,随着k取值越大,SPPMI矩阵的性能也得到缓慢提升。

表4 负采样对上下文特征矩阵性能影响分析

2.5 词表示可视化

为探究生成的词表示向量是否具有明显的聚类现象,本文随机选取1 000个节点,同时使用SGNS和Glove算法与本文提出的DEWE算法进行可视化对比。可视化的聚类现象可被认为是可视化算法将具有同类属性的词嵌入聚类在一起。可视化结果如图1所示。

图 1 词表示向量可视化

由可视化结果可知,SGNS和SPPMI(SVD)算法生成的词表示在2维空间中未表现出聚类现象,Glove算法生成的词表示在一定程度上表现出了聚类的趋势。本文提出的DEWE算法生成的词表示展现出了一种曲线分布趋势,该趋势可被认为是一种分段的聚类现象,由于DEWE同时考虑了词语的上下文结构和属性文本特征,而属性文本特征又在无上下文关系的词语之间建立了隐含的文本相似关联,该类关联性可以增强弱结构关联词语之间的关联性。因此,DEWE会呈现出连续曲线分布。该实验充分表明了词语的内在属性文本(语义文本)可以使得关联词的词表示在向量表示空间中具有更近的距离,使得无上下文结构关联的词语通过语义关联促进其在向量表示空间中的距离,最终的结果是词表示在2维可视化中呈现出曲线分布趋势。

2.6 案例研究

在本节实验中,通过设置目标词语为“China”和“Beijing”,本文返回了相似度词典中与目标词的余弦相似度最相近的5个词语(并非返回整个训练语料中最相近的词)。在前面的词语有较大的相似度,靠后的词语有较小的相似度。具体结果如表5所示。

表5 最相关词案例分析

通过表5可见,SGNS仅考虑了词语的上下文结构关联,因此返回的词语仅仅是出现在上下文窗口中频率最高的词语。GloVe考虑了词语的全局特征信息,DEPS将Word2Vec的输入改为句法结构信息。而本文提出的DEWE算法通过词语的描述和解释内容提升词语的表示学习能力。不同的算法通过构建词语不同的特征从而训练出了相异的词语表示。表5给出的目标词语“China”与“Beijing”均为地址属性词语。不同的算法返回了不同的国家名称和城市名称。DEWE在返回“China”的最相关词中有“Beijing”和“Shanghai”,在返回“Beijing”的最相关词中有“China”,而“Chinese”是“China”和“Beijing”的共同最相关词语。因为,在Wikipedia中,描述“China”和“Beijing”时均会提到“Beijing”是“China”的首都,且“China”的官方语言是“Chinese”。因此,基于Wikipedia描述文本训练得到的词表示中会出现表5中DEWE算法所呈现出的词表示效果。另外,同一种算法,在不同的语料上训练,得到的词表示向量也尽不相同。

3 总结

本文提出了一种新的词表示学习算法DEWE,该算法将词语的内在语义信息和外在结构信息进行联合学习,从而使得学习得到的词表示具有结构相关性和语义相似性。为了实现该目标,本文构建了词语的属性特征矩阵和上下文特征矩阵,并引入了高效的诱导矩阵补全算法对属性特征矩阵和上下文特征矩阵进行联合矩阵分解。而诱导矩阵补全算法是首次被引入到词表示学习中,从而形成了基于矩阵分解形式的词表示学习框架,该框架能够从辅助矩阵中学习有价值的特征辅助分解目标矩阵。因此,本文提出的DEWE算法最终分解得到的矩阵因子既含有上下文特征矩阵中的影响因子又含有属性特征矩阵中的影响因子。实验结果表明,本文提出的DEWE算法性能优于单纯地分解上下文特征矩阵和属性特征矩阵,也优于本文中使用的对比算法,例如,GloVe、SGNS、CBOW、DEPS等。另外,DEWE在Rare Words和M.Turk数据集上性能的提升是最明显的。在未来的研究中,我们将继续研究如何把词语的词性标记和情感色彩融入到词表示学习模型中。

猜你喜欢
向量词语神经网络
容易混淆的词语
基于递归模糊神经网络的风电平滑控制策略
向量的分解
聚焦“向量与三角”创新题
找词语
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
一枚词语一门静