白 宇,田 雨,王之光,张桂平
(1. 南京航空航天大学 计算机科学与技术学院,江苏 南京 210016;2. 沈阳航空航天大学 人机智能研究中心,辽宁 沈阳 110136)
《知网》(HowNet)是一个以汉语和英语的词语所代表的概念为描述对象,以揭示概念与概念之间以及概念所具有的属性之间的关系为基本内容的常识知识库[1]。HowNet的构建秉承还原论思想,即所有词语的含义可以由最基本的、不再分割的最小语义单位构成,而这种语义单位被称为“义原”(Sememe)。义原是构成概念描述的核心部件。目前,《知网》构建了包含约2 200多个义原的精细的语义描述体系,并为约14.8万概念标注了义原。例如,“小米”在HowNet中的定义即Def被描述为: {material|材料: MaterialOf={edible|食物},material={crop|庄稼}},如图1所示。
图1 新概念发现及义原推荐示例
HowNet自问世以来,受到自然语言处理领域的广泛关注,国内外学者在词汇语义消歧[2-3]、相似度计算[4-6]、文本分类[7]等方面探索了 HowNet 的重要应用价值。近年来,相关研究[8-9]表明,HowNet通过统一的义原标注体系直接刻画语义信息,且每个义原含义明确固定,可被直接作为语义标签融入机器学习模型,使自然语言处理深度学习模型具有更好的鲁棒可解释性。然而,与其他依靠人工构建的知识库系统一样,HowNet存在着规模有限、更新扩展维护成本高的问题。没有HowNet背景知识和未经专门训练的人员难以较好地完成义原预测任务[10]。这导致HowNet潜在的巨大应用价值与其自身规模有限、语义资源稀疏且难扩展的矛盾,解决这个矛盾的一个可行的途径就是开展HowNet的自动或半自动构建技术的研究,其核心问题之一就是为新概念的描述选择合适的义原。
随着时代发展,新词汇和旧词新用的概念不断涌现。新词义原推荐(或预测)任务就是在HowNet已有义原集合中选择出适合构建其概念义项Def描述的义原子集。例如,在现有HowNet知识库中,“小米”的概念义项Def描述包含的义原集合为{material|材料,edible|食物,crop|庄稼}。然而,在目前实际语言环境中,“小米”除了具有一种农作物的概念外,还可以描述为一个公司名或电子产品的品牌。因此,其义原集合中还应该包含{InstitutePlace|场所}或{SpeBrand|特定牌子}等义原。
通常,语义相似的词语或概念之间会共享相同的义原,因此,解决新词概念义原推荐问题,可以借鉴协同过滤(Collaborative Filtering,CF)的主要思想: 即利用HowNet已有概念的Def描述中的义原集合来预测当前新词概念的Def描述最可能使用的义原集合,其关键在于度量新旧词语或概念之间的语义相似性。
近年来,基于词的分布式表示方法已成为计算词语相似度的主流方法,但是,这些方法采取的词语表示学习过程与HowNet对词语或概念描述的形成过程存在着本质区别,这导致了“相似性异构”问题。为了直观地说明该问题,我们在HowNet中随机抽取了两组中心词语,并获取了HowNet中与其语义相似的词语集合,对于该集合中的全部词语再通过基于Word2Vec[11]算法获取其对应的词向量,通过对词向量进行可视化来展示基于词的分布式表示方法得到的词语之间语义距离关系。如图2所示,其中,a组词语以“神经束膜”“团委”“原生质”为中心词,b组词语以“丰田”“分理处”“犹太教堂”为中心词,HowNet中语义相近的词语在图中使用相同符号进行了标记。图中相同符号的点的聚集性越明显,则语义距离的度量结果的一致性越好。
图2 基于词向量与基于HowNet的词语相似关系比较HowNet中的语义相近的词语使用相同符号表示
从图中显示的结果可见,基于词的分布式表示方法与基于HowNet义原的相似度度量方法之间存在差异,表现为词语之间语义距离的度量结果的不一致。为了更好地为新词概念选择合适的义原,需要建模一种新的相似度计算方法,使其计算得到的度量结果能够逼近基于HowNet义原的相似度计算结果,即达到“相似性同构”。基于这种假设,本文提出一种融合义原注意力的预训练语言模型优化方法SaBERT。在判别新词与HowNet词表词之间的语义相似性的过程中,该方法利用词表词已知概念描述义原序列的注意力分布,以相似性同构为目标,对基于BERT+CNN的相似性判别模型进行优化,从而为义原推荐任务提供相似概念集合。实验结果表明,本文方法可有效解决未登录词与词表词的相似性判别问题。在基于协同过滤框架的义原推荐任务中进行的实验表明,相似性同构程度与义原推荐效果成正相关,本文方法能够有效解决候选义原的选择问题。
HowNet通过事件、万物、属性、属性值、部件、空间、时间等7个维度进行世界的描述,示例如表1所示。
表1 知网7个维度的概念示例
HowNet利用有限的义原描述无限的概念集合。其中,义原被划分为Entity|实体、Event|事件、Attribute|属性、Value|值以及SecondaryFeature|第二特征等5个大类。
随着深度学习的发展,卷积神经网络(CNNs)[12],递归神经网络(RNNs)[13],图神经网络(GNNs)[14]和Transformer[15]等神经网络模型被广泛应用于解决自然语言处理(NLP)任务[16]。相比于非神经网络模型方法严重依赖于离散的手工特征,神经网络方法通常使用低维稠密向量隐式表示语言的语法或语义特征。近年来,大量的研究表明,使用大规模文本语料库进行训练得到的预训练模型(PTMs)可以学习近似通用语言表示[17-19],在对特定任务的小数据集微调后,可在显著降低单个自然语言处理任务的难度的同时提升系统性能。
在词语相似度计算方面,由于分布式表示方法可以通过将单个词表示为低维稠密实数向量,捕捉词语间的关联信息。因此该方法可在低维空间中高效计算词语间的语义关联,有效解决数据稀疏问题[11]。虽然以Word2Vec为代表的词语表示学习模型已经在词语相似度计算任务中取得了较好的效果。然而,Word2Vec中每一个词语被映射到一个唯一的稠密向量,它无法处理一词多义(Polysemy)问题。此外,现有的根据词语的上下文分布来学习词语的表示向量的表示学习模型,不能有效地对于出现次数较少或未登录的词语进行表示学习,这成为影响词语分布式表示方法在相似度计算任务上发挥作用的主要障碍。
相比于Word2Vec为代表的分布式表示方法,BERT[18]的一个比较突出的优势就是词语表示的动态性,能建模一词多义的现象。在新词概念的义原推荐任务中,对于未登录词(OOV)的分布式表示需求普遍存在,为了减缓OOV的影响,一种普遍的方法是扩大词典规模,以提升模型训练过程中词汇的覆盖度,但该方法不能从根本上解决OOV问题。
采用基于字的预训练语言模型,例如可利用BERT编码后对应位置的字的隐层向量得到当前词语的向量。然而,简单地将词看作字的序列来计算词向量的方法的效果并不理想。此外,在HowNet中,概念相似性的度量关键是计算概念对应的义原序列之间的相似度。在序列语义相似度(如句子相似度)计算方面,采用孪生BERT网络结构的句子嵌入方法Sentence-Transformers(S- BERT)[20]表现出了良好的性能。该方法将句子对输入到参数共享的两个BERT模型中,将BERT输出句子的所有字向量进行平均池化后获得每个句子的句向量表示。因此,本文尝试利用词表词已知概念描述义原序列的注意力分布,以相似性同构为目标,对基于BERT的相似性判别模型进行优化。
在HowNet中,由义原向上构建概念,由概念向上定义词,词语、义项、义原的关系如图3所示。这里以词语“小米”为例,由“material|材料”、“edible|食物”和“crop|庄稼”等义原及其关系构成的概念义项的描述为: DEF={material|材料: MaterialOf={edible|食物},material={crop|庄稼}(senseID: 177381),再由这个概念义项定义词语“小米(millet)”。
图3 词语、义项、义原的关系示例
如上所述,HowNet中,每个词语对应一个或多个概念义项的定义(Def),每个Def包含一个或多个义原。任一概念的描述中的义原之间通过体现概念与概念和概念的属性与属性之间的相互关系连接,通常一个义原可能存在于多个概念义项的定义之中。在对多个词语的语义关系进行建模时,就形成了“词语-义项-义原”关系网络。
我们期望利用“词语-义项-义原”关系网络的结构特征和基于协同过滤机制发现词语的新概念并为其推荐相关义原。
协同过滤机制是推荐系统所采用的最为重要的技术之一[21]。其基本原理是假设两个用户如果具有相类似的购买行为,则他们对同一类商品感兴趣的程度也就会比较接近,那么当前用户很有可能会对另一个相似用户所喜欢的商品感兴趣。在语义相似性度量方面,结合HowNet中对概念描述方式的规定,可以认为,语义相似的概念应具有相似的义原关联集合。因此,在义原推荐的任务中,采用协同过滤机制是一种可行的途径。基本原理是根据相似的概念义项所包含的义原来推荐当前词语尚未被标记但在实际语言环境中很可能表达其某方面语义信息的义原。
利用相似词语对应的概念获得待推荐义原的集合。如图4所示,首先,在HowNet词表词集合中,通过相似性判别模型选择与新词(未登录词)相似的词语构成相似词集合;其次,基于上述全部词语、词语对应的概念义项及其义原,构建局部“词语-义项-义原”关系网络;最后,基于网络节点重要性排序方法进行义原节点的选择。
图4 义原协同推荐框架
这里使用两种中心性(Centrality)的度量方法评估义原节点的重要度,并以此重要度作为义原选择排序的依据。度中心性(Degree Centrality)是在网络分析中刻画节点中心性(Centrality)的最直接度量指标。一个节点的节点度越大就意味着这个节点的度中心性越高,该节点在网络中就越重要。标准化度中心性测量如式(1)所示。
Cd(vi)=∑jxij/max(Cd(vj)),i≠j∈N
(1)
其中,xij=1表示节点i与节点j之间存在直接联系,否则,xij=0;N为网络中全部节点的集合。由于节点的度(Degree)的计算过程没有考虑图中邻接节点的重要性,不能很好地体现词语之间对义原的共享特征。因此,需要从路径这个维度来度量节点的中心性,这里引入基于介性中心度(Betweenness Centrality)的中心性度量方法。计算网络中任意两个节点的所有最短路径时,如果这些最短路径中有很多条都经过了某个节点,那么就认为这个节点的介性中心度高。介性中心度测量如式(2)所示。
(2)
其中,σst表示从节点s到t的最短路径数,∑st(vi)表示从节点s到t经过vi的最短路径数。节点的介性中心度是以经过某个节点的最短路径数目来刻画节点重要性的指标。一个义原节点的介性中心度越高,说明其被相似词语共享的可能性越大。
结合义原节点的标准化度中心性和介性中心度,计算义原节点的推荐指数如式(3)所示。
R(vi)=Cd(vi)×log(Cb(vi)+1)
(3)
在协同推荐的框架下,以相似词语集合为桥梁建立了未登录词与义原的关联关系,基于上述义原节点的推荐指数完成未登录词的候选义原的排序选择。
新词概念义原推荐任务的目标是为HowNet中未登录的概念推荐合适的义原,因此,需要找到一种义原未知概念与义原已知概念之间的相似度计算模型。由于概念以词的形式表现,上述问题可转换为未登录词语与词表词的相似度计算问题。
与一般的词语相似度计算不同,一方面,基于相似性同构假设,相似性的判别是以基于HowNet的词语相似度计算结果为标准;另一方面,参与相似性判别的词语由未登录词(OOV)和HowNet词表词(IV)构成,对于IV而言,构成其概念描述Def的义原集合是已知的,可以被用来提升模型的收敛性。
相似性判别模型的整体框架如图5右侧部分所示。该模型把输入的新词和词表词对应的字序列分别输入到两个SaBERT模型,获得融入义原序列信息的语义表示向量,向量拼接后通过CNN分类模型完成未登录词与词表词的相似性判别。
图5 SaBERT2+CNN模型
其中,义原注意力模型SaBERT的结构如图6所示,SaBERT首先将词表词的概念描述Def所对应的义原树进行先序遍历,得到义原中文词序列SL;然后将义原序列SL经S-BERT(固定参数,distilue-base-multilingual-cased)得到其向量表示ESL;将ESL与词语中每个字经过BERT后得到的隐藏层向量hci进行拼接,然后再接一个激活函数为tanh的全连接层,其中参数矩阵w1∈R2d×n,并通过Softmax得到各个字向量的权重向量α;最后通过向量加权和得到词语的最终向量表示e。
图6 义原注意力SaBERT模型
a=Softmax(tanh(w1[ESL;hci]))
(4)
(5)
在模型训练过程中,为了使模型的预测结果能够逼近基于知网义原的相似度计算结果,即达到“相似性同构”的目的,本文利用了经典HowNet语义相似度计算模型[4]作为相似性判别的标准模型。经典HowNet语义相似度计算结果为[0,1]连续实数,对其计算结果的分析发现,相似词语之间计算相似度的结果值在[0.9,1.0]、[0.8,0.9)、[0.7,0.8)和[0.0,0.7)区间上的比例约为6∶2∶1∶1。由于本文进行词语相似度计算的目的是面向候选义原集合的构建进行相似词语的选择,因此,为提高相似词选择的质量,这里我们将相似性判别问题看作以0.9为分类阈值的二分类问题,通过离散化处理将连续相似度值转换为相似程度判别标记,采用交叉熵损失函数完成模型训练。
3.1.1 数据集
将相似词判别问题作为二分类任务。基于HowNet经典相似度计算方法构建词语相似度矩阵A。将相似度大于或等于0.9的词对作为正类,其余作为负类。矩阵A中,删除义原预测测试数据集合中包含的词语对应的行和列后,形成矩阵B。在B矩阵的元素中选取27 000组词对按8∶1∶1划分为相似词选择模型的训练数据集、验证集和测试集。
为了验证本文相似性判别方法对义原预测结果的影响,将基于SaBERT的相似性判别方法与当前主流的基于预训练语言模型的方法以及HowNet标准模型进行比较。义原预测实验使用的数据集从HowNet知识库中抽取产生。首先,按照概念描述所涉及的义原数量将HowNet知识库中的词语分成11类,实例如表2所示。其次,从各类中抽取若干词语,数据分布及实例如表2所示,该测试数据集合计包含1 069个词语。
表2 义原推荐任务测试数据集实例
3.1.2 对比模型
采用的对比模型及模型对应的输入信息如表3所示。我们使用准确率P、召回率R和F1值作为词语相似性判别的评测标准。
表3 相似性判别对比模型
以HowNet词语语义相似度作为标准,表4列出了基于我们提出的模型和其他对比模型的词语相似性判别结果。
表4 不同模型的P、R、F1值比较
续表
由表4可知: ①在与新词的相似性判别结果中,基于词表词义原信息的相似性判别结果普遍优于仅使用词表词的结果。②在基于词表词义原信息的相似性判别结果中,基于共享参数的模型普遍优于使用非共享参数的模型。③模型SaBERT2+CNN取得了最好的词语相似性判别结果。
为了比较不同相似性判别模型对基于中心性的义原选择模型的影响,采用了如表5所示的4种基本模型及其组合模型对相似性判别模型进行性能评估,其中,相似性差别模型为义原选择模型使用的关系网络的构建确定了相似词集合。
表5 基于中心性的义原选择模型
使用F1值和MAP值作为义原推荐的评测标准。
(6)
其中,K为词语的义原数量,pk为第k个正确义原在推荐序列中的位置。
表6列出了分别基于独立模型(BERT)、非共享参数的模型(BERT+CNN)、共享参数的模型(SaBERT2+CNN)对不同义原推荐模型效果的影响情况。可知,义原推荐效果与相似性判别结果正相关,即模型的相似性判别结果与基于HowNet的相似度计算结果越一致,义原推荐效果就越好,这表明了本文以相似性同构为模型优化目标的合理性。
针对不同义原数量情况的模型表现对比如图7所示,图中纵坐标为不同义原预测模型取得F1值的算数平均,横坐标为义原数量。该结果表明,在对具有不同义原数量的词语进行义原预测时,SaBERT2+CNN模型均表现出良好的效果。
图7 针对不同义原数量情况下的模型对比
随着互联网应用的普及,文本大数据中大量的新词不断出现,同时现有词语的含义被延伸和扩展,因此有必要对以义原为基础的语义知识库进行持续地修正和扩充。
在词汇进行义原自动标注方面,Xie等人[22]提出了义原预测任务,并基于词嵌入(Word Embeddings)和义原嵌入(Sememe Embeddings)提出了多种义原预测模型,借助协同过滤和矩阵分解的方法,从已有的人工标注数据集学习词汇与义原的通用的关系,从而自动构造出新词的义原。依赖词语外部上下文信息的语义表示方法无法有效处理低频词或未登录词。Jin等人[23]提出了基于词语内部字信息和外部上下文信息的义原预测框架,通过将内部模型和外部模型融合,提升了低频词义原预测的效果。为了克服低频词嵌入质量差,义原预测准确性不高的问题,Li等人[9]提出了基于字和多标记分布序列到序列模型(Label Distributed Seq2Seq Model),利用词的定义和描述信息进行义原预测。张磊等人[24]基于多标签分类模型架构,通过将句子中的词作为模型输入,减小了用字作为最小单位的歧义性。杜家驹等人[25]提出了义原相关池化模型,利用局部语义相关性来预测义原,该方法依赖于定义文本的获取质量。在低资源的情况下,解决义原推荐问题的关键在于计算新词与HowNet词表词之间的语义相似度。
词语相似度计算方法可以分为基于语料库的方法[26]和基于知识库的方法[27]。目前,大量主流的词语语义相似性计算方法可以归类为基于语料库的方法。这些方法基于分布假设,从大型文本集合中学习单个词语之间的关联。如果两个词语的上下文环境越相似,或者它们在一起出现的频率越高[28],则假定它们的语义相似程度越高。通常,词语的分布式表示通过词语在语料库中的共现信息获得,其中一种最经典的基于词相邻关系的表达方式就是Word2Vec,每个词语被映射到一个唯一的稠密向量。BERT相比以Word2Vec为代表的词嵌入方法,使用Transformer中的编码器作为特征抽取器,这种方法对上下文有很好的利用,能够动态建模一词多义的现象。上述方法均以字或词的分布式表示为基础,忽略了基于词向量与基于HowNet义原信息的词语相似关系不一致问题,不适合基于协同框架的义原推荐任务。
本文提出了语义相似关系的异构问题,假设与HowNet基于义原的语义相似性度量具有一致性的词语相似度判别模型能更有效地为新词推荐义原。基于这种假设,以相似性同构为目标,融合义原注意力对预训练语言模型进行微调。实验结果表明,本文方法可以有效解决未登录词与词表词的相似性判别问题。在基于协同过滤框架的义原推荐任务中进行的实验表明,相似性同构程度与义原推荐效果正相关,表明了上述将相似性同构作为模型优化目标的合理性。