基于带注意力机制CNN的联合知识表示模型

2019-04-02 02:55姚亚兰谢倩倩
中文信息学报 2019年2期
关键词:三元组知识库语义

彭 敏,姚亚兰,谢倩倩,高 望

(武汉大学 计算机学院,湖北 武汉 430072)

0 引言

目前,知识库在智能问答及个性推荐等人工智能领域应用前景广泛。知识库通常表示成网络结构,使用三元组(头实体,关系,尾实体)来表示知识。然而,基于网络的知识表示面临以下挑战: ①计算效率低。知识推理时往往要设计专门的图算法,计算复杂度高且拓展性差。②严重的数据稀疏。知识库存在一些关联知识较少的罕见实体,其语义计算准确率极低。基于以上挑战,学界提出了以深度学习为基础的知识表示学习方法,TransE[1]便是其中应用最为广泛的模型。然而,TransE及其大部分拓展模型仅利用知识库的结构化信息,很难处理好知识库外的新实体或相关知识极少的罕见实体。

为解决以上问题,一些工作[2-4]开始引入文本信息来改善知识表示,面对新实体或罕见实体,利用文本来补充其缺失的语义信息,不仅提供了新的表示方法,还能有效缓解数据稀疏问题。然而,它们仍存在一些不足: ①尚未提出联合文本和结构化信息的有效方法。许多工作只在单词的层次或得分函数上做了对齐。②未筛选文本信息。例如,实体描述可能包含实体在多种情况下的信息,并非对所有的文本都有用。

针对已有工作的不足,Xu等提出基于双向LSTM的联合知识表示模型[5]。该模型利用注意力机制来筛选描述文本里的信息,提出了门机制来联合文本和结构表示,在链路预测及三元组分类等经典任务里达到了目前最好的水平。然而,双向LSTM模型需要输入上一个隐藏状态和位置来产生下一个隐藏状态,这种固有顺序的性质使得训练过程无法并行化,在处理更长的序列时,还会因内存限制而制约训练集的跨批次处理[6]。

基于以上问题及面临的挑战,为联合文本信息来缓解知识库稀疏问题,准确捕捉文本中最相关的语义,同时考虑到卷积核可并行化及高效计算的优势,本文提出了基于带注意力机制CNN的联合知识表示模型JA-CNN。首先,本文提出了基于CNN的文本编码器,并设计了专门的注意力机制来选择描述文本中与情景最相关的语义信息;其次,本文采用TransE模型来编码知识库的结构化信息;最后,本文引入门机制来控制多源信息传递到联合表示的权重,形成最终的表示。此外,本文还提出了基于JA-CNN的改进模型JPA-CNN。该模型尝试在输入端引入位置向量,使编码器也具备捕捉句子词位置信息的能力。链路预测及三元组分类任务的实验表明,本文的模型能显著改善知识库稀疏问题,各项指标与最先进的方法相比都有很强的竞争性,尤其在关系分类任务下有明显优势。

本文的主要贡献:

① 本文提出了联合实体描述和结构化信息的联合知识表示模型JA-CNN。该模型设计专门的注意力机制来捕捉描述文本中的最相关信息,帮助提高实体表示的区分度。

② 本文提出了基于JA-CNN的拓展模型JPA-CNN。该模型引入位置向量,使CNN能捕捉描述句子中的位置信息。

③ 实验结果表明,本文的模型与目前最好的模型性能相近,还拥有可并行化及高效计算的优势。

1 相关工作

1.1 知识表示学习

近年来,知识表示学习在知识获取、融合及推理等多种任务里均表现优异,一度成为研究热点。

Bordes等提出非结构化模型(unstructured model)[7],该模型假设头、尾实体向量相似,在得分函数里将关系向量设置为零,因此无法区分不同关系。Bordes等提出结构化模型(structured embedding, SE)[8],该模型假定头、尾实体向量只在相关关系的语义空间内相似。此外,Bordes等提出语义匹配能量模型(semantic matching energy, SME)[9],利用投影矩阵表示实体与关系,根据得分函数分为线性形式(linear)和双线性形式(Bilinear)。之后,Bordes等提出TransE模型[1],该模型简单、高效、易拓展,逐渐成为最受关注的知识表示模型。

TransE模型将关系表示为从头实体到尾实体的平移向量,旨在将知识库中的实体和关系投影到同一个低维向量空间。Wang等提出TransH模型[10],将关系建模为超平面,并将头、尾实体投影到关系特定的超平面,解决了TransE的实体在不同关系下无法有不同表示的问题。Lin等提出TransR模型[11],在不同语义空间内表示实体和关系,并将实体投影到对应的关系空间。Lin等进一步提出了CTransR模型[11],利用聚类划分关系,为每个关系分别学习表示向量。Ji等提出TransD模型[12],利用投影矩阵将头实体和尾实体分别投影到关系空间,解决了TransR参数过多的问题。Ji等还提出TranSparse模型[13],将TransR模型中的稠密矩阵换成稀疏矩阵,头、尾实体都有投影矩阵,其中矩阵的稀疏度由关系连接实体的数量决定。Xiao等提出TransA模型[14],使用马氏距离替换得分函数中的距离。He等提出KG2E模型[15],利用高斯分布来表示实体及关系。Xiao等提出TransG模型[16],使用高斯混合模型表示关系,使关系能包含多种语义。

这些工作仅利用知识库的结构信息,未能有效利用与知识库相关的其他信息,如实体描述等。考虑到多源信息能缓解数据稀疏问题,提高知识表示的区分度,研究者们开始尝试融合多源信息来改善知识表示。

1.2 引入文本信息的知识表示

目前,已有许多研究工作使用文本信息来改善知识表示。

Socher等提出NTN模型[17],使用实体名称的词向量平均值来表示实体。Wang等通过对齐实体名称和维基百科锚点,将知识和文本投影到同一空间,提高了事实预测的准确性[2]。Zhong等在Wang等工作的基础上拓展模型[3],将实体描述中的知识和词汇关联起来。然而,这两份工作都在词级别上做了对齐,导致其丢失短语或句子层面的语义信息。Zhang等使用实体名称或者实体描述中词向量的平均值[18],该方法忽略了句子中的词序信息。

Xie等提出了DKRL模型[4],利用实体描述来表示实体向量。该模型使用连续词袋模型和卷积神经网络来编码实体描述的语义,并将得分函数分成基于结构和基于描述两部分。尽管该模型也使用CNN编码文本信息,但它的CNN只包括卷积层、非线性层和池化层,与本文的CNN结构有一定差别。此外,该方法尚未考虑文本信息的筛选及联合两种表示的有效方式。Xu等提出了基于双向LSTM的联合表示模型[5],利用注意力机制选择实体描述中的相关文本,同时设计门机制来控制结构信息和文本信息的权重。该方法相比先前的模型性能显著提高,但双向LSTM模型的隐状态需要按序生成,训练时无法并行处理,制约了面对长序列的计算效率。

除了实体描述外,还有一些工作[19-21]将文本关系和知识库关系映射到相同的向量空间并获得显著改进。

2 模型介绍

本文的联合模型主要分为三部分:基于TransE的结构表示、基于CNN/A-CNN/PA-CNN的文本表示和基于门机制的多源信息融合。首先,本文利用TransE来编码三元组的结构信息;然后设计了三种编码实体描述的文本编码器:CNN、引入注意力机制的A-CNN和在A-CNN的基础上引入位置信息的PA-CNN;最后利用门机制决定结构表示和文本表示构成联合表示的权重。图1展示了联合知识表示的整体框架。下面将对模型的每个层次的功能进行详细阐述。

图1 联合知识表示的整体框架

2.1 基于TransE的结构表示

基于TransE的表示模型在知识推理、关系抽取等任务里表现优异,也成为知识表示的研究热点。

给定三元组(头实体,关系,尾实体),将其表示为(h,r,t)。三元组(h,r,t)对应的向量表示为(h,r,t)。TransE旨在将实体和关系表示成低维连续的向量。合法的三元组的向量应该满足公式h+r≈t,错误的三元组则不满足。因此,TransE定义了如下得分函数来衡量三元组的质量,如式(1)所示。

(1)

式(1)即向量h+r和t的L1或L2距离。对于合理的得分函数,合法三元组的得分要比错误三元组的得分更低。

2.2 基于CNN/A-CNN/PA-CNN的文本表示

目前,大型知识库中的实体通常都有其对应的实体描述信息。实体描述包含实体在各种情景下的语义信息,有助于改善实体表示,使其区分度更强,同时也能缓解数据稀疏问题。

本文需从不定长的实体描述中编码文本信息。考虑到卷积核能捕捉文本信息的局部特征,拥有可并行化、运行速度快等优点,本文最终选择基于CNN的文本编码方式。

2.2.1 基于CNN的文本表示

文本预处理:本文先去除实体描述里的标点符号,然后使用Word2Vec预先训练好的词向量[22]初始化词序列,以此作为CNN的输入。

卷积层:卷积层的输入是预处理后长度为n的词序列x,本文定义为x1:n=x1,x2,…,xn,其中xi∈d表示句子中第i个词语的d维词向量。

对词序列x,卷积层选取大小为k的滑动窗口内的词序列进行卷积操作,输出特征映射c。词序列的长度不固定,本文以词序列的最大长度n为标准,在所有长度不符合的词序列末尾填充零向量,得到定长输入。

滑动窗口处理的词序列定义如式(2)所示。

xi:i+k-1=xi,xi+1,…,xi+k-1

(2)

窗口内词序列卷积后输出的第i个向量如式(3)所示。

ci=f(w·xi:i+k-1+b)

(3)

其中,w∈k×d是滤波器,b∈是偏置项,f是激活函数,本文选取线性整流函数ReLU作为激活函数。

卷积的边界处理(padding)设置为SAME,即用零填充。卷积层的输出如式(4)所示。

c=[c1,…,cn]

(4)

池化层:本文采用最大池化,对每个窗口内的输入向量选取最大值构成新向量。

窗口大小为np的池化层输出的第i个向量如式(5)所示。

pi=max(cnp·i,…,cnp·(i+1)-1)

(5)

滤波器的数量为m,池化层的输出为p=[p1,…,pm]。

Dropout层的输出定义如式(6)所示。

*p

(6)

其中,Bernoulli函数是以概率ρ随机生成0或1的向量,用于移除神经元。

全连接层:对输入进行矩阵向量乘积操作得到网络的最终输出向量。

CNN的输出定义如式(7)所示。

(7)

其中,wo是参数矩阵,bo是可选偏置。

2.2.2 基于CNN的文本表示

CNN对整体描述文本进行语义编码,没有考虑描述信息包含实体在多种关系下的不同语义。这意味着给定三元组后关系特定,描述里包含的其他关系的信息会造成一定干扰。因此,本文基于CNN提出文本编码器A-CNN,设计了相应的注意力机制,通过三元组的关系来捕捉描述中与其最相关的信息。

对实体描述的词序列x1:n=x1,x2,…,xn,给定关系r∈d,r拓展一维后得到矩阵d×1,该描述的注意力定义如式(8)所示。

(8)

(9)

2.2.3 基于PA-CNN的文本表示

考虑到CNN编码文本时未包括词的顺序特征,可能会丢失部分语义,本文引入词的位置编码作为补充信息。本文基于A-CNN提出了文本编码器PA-CNN,采用Sukhbaatar等人提出的方法[23]来编码位置信息。输入向量I的第j个分量Ij由位置向量的分量lj和词向量的分量xj构成。

位置向量lj是一个列向量,拥有以下结构,如式(10)所示。

lkj=(1-j/J)-(k/d)(1-2j/J)

(10)

其中,J是句子中词的个数,d是位置向量的维度,k是lj的第k个分量。这里位置编码采用和词向量同样的维度,方便将两者相加。

给定长度为n的词序列x1:n=(x1,…,xn),其位置向量为l1:n=(l1,…,ln),加入位置信息后编码器的新输入为I1:n=(x1+l1,…,xn+ln)。

2.3 基于门机制的多源信息融合

结构信息和文本描述都提供了实体的有效信息,本文采用Xu等提出的门机制[5]将两种信息源整合成联合表示,即将联合表示ej当作结构表示es和文本表示ed加权求和的结果。

联合表示ej定义如式(11)所示。

(11)

其中,gs和gd是平衡两种信息源的门,⊙是元素乘法。

门g定义如式(12)所示。

(12)

类似TransE,联合表示的得分函数定义如式(13)所示。

(13)

其中,ghs,ghd分别是头实体的门,gts,gtd分别是尾实体的门。

2.4 训练

与TransE相似,本文也采用最大间隔方法[1]训练模型。本文使用得分函数fr(h,t)来评估三元组的质量。合法三元组拥有较低得分,错误三元组拥有较高得分,则对应的优化目标函数如式(14)所示。

(14)

知识库里的三元组都是正样本,负样本需要自行生成。本文采用Wang等提出的方法[10],设置不同的概率来替换头实体或尾实体。该方法将关系按照两端连接实体的数目分为1-1、1-N、N-1和N-N四种,如果是1-N关系则增大替换头实体的机会,如果是N-1关系则增大替换尾实体的机会。该方法能降低产生错误负样本的概率。

训练集中的错误三元组由式(15)产生:

(15)

3 实验结果及分析

本文在链路预测和三元组分类两个常规任务上评估模型的性能。

3.1 实验数据

本文使用两个最常用的数据集,分别是语言知识库WordNet[24]的子集WN18和世界知识库Freebase[25]的子集FB15k。表1展示了数据集的相关属性。

表1 数据集的统计属性

对于FB15k的描述数据集,每段描述的平均词长为69,最长描述包含343个词。对于WN18的描述数据集,每段描述的平均词长为13,最长描述包含96个词。

3.2 实验设置

3.2.1 对比模型

对比模型分为三类: ①本文提出的模型:J-CNN、JA-CNN和JPA-CNN; ②仅利用结构信息的知识表示模型:TransE[1]、Unstructured[7]、SME(linear)[9]、SME(Bilinear)[9]、TransH[10]、TransR[11]、CTransR[11]、TransD[12]和TranSparse[13]; ③引入文本信息的表示模型:CNN+TransE[4]、Jointly(LSTM)[5]和Jointly(A-LSTM)[5]。

3.2.2 参数设置

最大间隔γ∈{0.1,1,2,5,10},向量维度d∈{50,100},学习率λ∈{0.000001,0.0001,0.01,0.1,1},卷积层的窗口大小k∈{1,2,3,4,5},滤波器的数量nf∈{16,64,128},Dropout层的丢弃率统一设置为0.5,不相似性度量L设置为L1或L2。为加速收敛,本文使用TransE的结果来初始化实体和关系的向量。

实验中,J-CNN、JA-CNN和JPA-CNN共享同一组最优参数。在链路预测任务中,模型的最优参数为:γ=2,d=100,λ=0.000 1,k=4,nf=64,L=L1。针对WN18数据,模型的最优参数为:γ=5,d=50,λ=0.000 1,k=4,nf=64,L=L1。在三元组分类任务中,针对FB15k数据,模型的最优参数为:γ=1,d=100,λ=0.1,k=1,nf=16,L=L1。针对WN18数据,模型的最优参数为:γ=0.1,d=50,λ=0.000 1,k=4,nf=64,L=L1。

本文与Xu等提出的模型[5]在同样的任务上使用相同的数据集和对比模型,因此本文直接使用该论文里对比模型的最优结果进行比较。

3.3 链路预测

链路预测任务旨在预测三元组中缺失的头实体或尾实体。对每个合法三元组,本文会先破坏它的头或者尾实体,依次替换成实体集中的其他实体,然后计算被破坏的三元组的得分,对得分进行升序排序,最后记录三元组的排名。类似TransE,本文采用两种评估指标: ①mean rank:所有合法三元组里实体排名的平均值; ②hits@10:所有合法三元组里实体排名小于10的比例。好的表示模型在该任务下应拥有较低的mean rank和较高的hits@10。

评估设置分为两种:“原始”(Raw)和“过滤”(Filt)。三元组替换了头或者尾实体后也可能合法,排序时这类破坏的三元组可能会排在合法三元组前面,这并不合理,所以应在排序前删除训练集、测试集和验证集里这类错误三元组,该设置称为“过滤”。本文会展示这两种设置的评估结果。在数据集WN18和FB15k的实验结果如表2所示。

表2 链路预测的结果

在所有数据集上,本文的模型JA-CNN在各项指标都与目前最好的模型Jointly(A-LSTM)水平相近,并在mean rank指标上达到目前最好的效果,这表明JA-CNN能有效捕捉文本的语义信息,在融合多源信息方面有一定优势。

与同样基于CNN编码文本的模型CNN+TransE相比,本文提出的三个模型在所有指标上都有明显提高,可能原因在于:本文选取的CNN结构更适应于编码描述的语义信息;本文引入了门机制,加强了两种信息源间的语义联系,比单纯的加权效果要更好;本文设计的注意力机制筛选文本的有效信息,增强了实体表示的区分度。

与仅利用结构信息里最好的模型TransD相比,本文的模型在mean rank指标上取得了大幅度的提升,这表明引入文本信息确实有效缓解了数据稀疏问题,但可能会影响训练过程中的频繁实体,导致hits@10指标变差。虽然hits@10比TransD的表现更差,但考虑到本文是基于TransE的改进而不是TransD,若基于其他优秀的表示模型如TransD等进行拓展,应该能进一步提升模型性能。

本文的三种模型互相对比,JA-CNN的性能优于J-CNN,这表明注意力机制的引入加强文本表示的语义区别,进一步提高了实体表示的区分度。在FB15k数据集上,JPA-CNN比JA-CNN表现要逊色许多,这可能是因为在该数据集上句子的长度长短分化严重,固定的位置编码没法有效拟合出这种差异,反而在一定程度上成为干扰信息。在WN18数据集上,JPA-CNN与JA-CNN效果相近,比在FB15k上表现更好,这可能是因为该数据集的句子整体偏短,长度差异较小,本文的位置编码更适用于拟合该数据集。

为进一步展示模型的性能,本文把关系划分成1-1、1-N、N-1和N-N四种类型,并比较不同类型关系下模型在数据集FB15k上hits@10(Filt)的结果。

表3的结果表明,面对所有类型的关系,本文的模型JA-CNN都比对比模型展现了更好的性能,尤其在N-1和N-N关系下的头实体预测以及1-N和N-N的尾实体预测上有明显的提高,这表明JA-CNN面对知识库的复杂关系时有一定优势。

3.4 三元组分类

三元组分类旨在判断给定的三元组是否合法。本文使用FB15k和WN18的数据集来评估模型的性能。由于数据集只有正样本,本文按照Socher等的方法[17]来构造负样本。该方法随机替换合法三元组的头实体来构成负样本,替换的实体只能从该三元组的关系对应的实体集中选择。该方法使负例集合里不会出现明显的无关系三元组,使负例与正例的语义差别更小,进而增加评估任务的难度。

表3 关系分类的结果

本文使用准确率作为该任务的评估指标。任务先达到验证集的最大准确率,获得每个关系r的阈值δr;接着对测试集的每个三元组(h,r,t)计算得分,若三元组的得分小于δr,会归为合法三元组,否则归为错误三元组。在FB15k数据集上,有部分关系出现在验证集却没有出现在测试集中,本文会采用验证集中出现过的关系的阈值的平均值来补充缺失的阈值。表4展示了三元组分类的结果。

表4 三元组分类的结果

结果表明,本文的联合模型相比TransE在三元组分类性能上有大幅度提高,其中,JPA-CNN与最好的模型性能相近,这表明本文的文本编码方法能有效编码语义信息,并能很好地融合到实体表示中,进而增强了三元组的语义区分度。

本文的三种模型相比,JPA-CNN均达到了最佳性能,这表明引入位置信息后,面对复杂关系能找到更精准的阈值,同时增强正负样本得分的差距。在FB15k上,JA-CNN比J-CNN效果稍差,但在WN18中,JA-CNN比J-CNN效果更好,这可能是因为FB15k数据集里描述的句子整体偏长,且关系的种类远大于WN18,本文的注意力机制在模拟这种语义信息时,一定程度上弱化了三元组得分的差异。

4 总结

本文提出了基于带注意力机制CNN的联合知识表示模型,并通过引入实体描述信息来改善知识表示。首先,本文提出了基于CNN的文本编码器;然后,设计相应的注意力机制来筛选与关系最相关的文本信息;接着,又引入位置信息拓展该模型;最后,利用门机制联合文本信息和结构信息获得最终的联合表示。实验证明,本文的模型在链路预测和三元组分类任务上与目前最好的模型水平相近,在关系分类任务上表现更好,这表明本文的方法能有效融合多源数据,缓解知识库稀疏问题,也为改善实体表示提供了新思路。

未来,本文将考虑从以下方向来改进模型:

① 本文采用了基于TransE的得分函数,未来可以考虑基于其他优秀的知识表示模型如TransD等进行模型拓展。

② 考虑融合更多其他信息,例如实体的类别信息。未来会尝试拓展模型来编码类别信息,也考虑使用类别作为实体的约束信息。

猜你喜欢
三元组知识库语义
真实场景水下语义分割方法及数据集
汉语近义词辨析知识库构建研究
特征标三元组的本原诱导子
语言与语义
关于余挠三元组的periodic-模
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
一个时态RDF存储系统的设计与实现
批评话语分析中态度意向的邻近化语义构建
“吃+NP”的语义生成机制研究
卫星状态智能诊断知识库设计方法