本发明涉及一种基于深度学习的实体链接,尤其涉及一种利用神经网络和图算法结合来做实体链接的技术。
背景技术:
信息爆炸在带来海量信息的同时,也对快速准确地获取目标信息提出了挑战。为了获取目标信息,我们需要处理大量无用的信息。这一问题源于自然语言表达的多样性,具体来说,即是同一实体可用不同的文本表达(多词一义),而同一文本可能表达多个不同的实体(一词多义)。通过进行实体链接(Entity Link),也即将文本中的实体指称与知识库中的实体进行链接,能够将文本数据转化为带有实体标注的文本,进而帮助人和计算机理解文本的具体含义。它一方面能够为人带来更好的阅读体验,帮助人们更好地理解所游览信息的含义,另一方面也能辅助构建以实体为核心的信息网络,推动语义网络和知识图谱的房展。通过为互联网上的文档添加能够被计算机所理解的语义数据,并将这些含有语义是实体以图的形式联结起来,是互联网的信息交流变得更有效率。实体链接是对文本的实体标注,是计算机能够对实体而非文本进行处理,从而更好地理解文本的含义。
实体链接是指将文档中出现的文本片段,即实体指称(entity mention)链向其在特定知识库(Knowledge Base)中响应条目的过程。在实体链接研究中所使用的知识库包括英文知识库TAP、维基百科、Freebase、YAGO以及中文知识库百度百科、互动百科、中文维基百科等。实体链接能够利用知识库丰富文本的语义信息,在文本分类和聚类、信息检索、知识库构建、知识图谱构建等领域有着重要的理论意义和应用前景。
此外,国际评测会议对实体链接的评测给予了一定的关注,如INEX会议中的“Link the Wiki”任务、TAC会议的KBP任务、TREC会议的KBA任务等。
实体链接是一个新兴的研究领域,对自然语言处理、信息检索领域有着重要的潜在价值,是语义网络技术的重要基础。尽管实体链接领域已有多年的研究,但依然存在一些局限。目前尚没有一个受到广泛认可的实体链接评测框架,不同实体链接研究在问题定义、基本假设、评测数据集、语言区别等多个维度均存在交大差异,难以进行有效的比较。不过,从会议的发展趋势来看,越来越多的会议让研究者通过参加挑战赛和研讨会的方式在定义明确的数据集上利用各自的算法解决问题。如由微软和谷歌赞助的实体检测与消歧挑战赛提供了开放的接口,供研究者评测其实体链接系统的性能,并参加研讨会交流经验,共同推动实体链接研究的发展。
技术实现要素:
本发明的目的是利用知识库丰富的语义信息来帮助用户和计算机更好的理解文本的含义,达到阅读增强的目的,并给出了一种基于深度学习的实体链接方法。
本发明的目的是通过以下技术方案来实现的:一种基于深度学习的实体链接方法,实体链接是针对一段文本中的一些实体指称(mention),找到它们可能对应的多个概念并消除歧义,使得每个实体指称能够唯一地对应到知识库中的一个实体(entity)上。该方法包括以下步骤:
1)数据预处理:对百科数据库全文做基于深度学习的词向量表达和文档向量表达训练;然后用训练好的模型对分词后的词语做词向量表达,对所有百科数据库中的实体文档做文档向量表达;对于一段新输入的文本,分别提取文本中所有待链接的实体指称、实体指称对应的所有候选实体、以及所有无歧义已链接的实体指称;在百科数据库中找出候选实体的所有分类标签;
2)神经网络结构设计与训练:将步骤1)预处理后的数据作为神经网络的输入特征,对神经网络进行参数调整,并训练神经网络,最终得到文本中每一个待链接的实体指称到其对应的所有候选实体的相似度。神经网络用双向LSTM和文档向量的结合来表达实体指称,用卷积神经网络和文档向量的结合来表达候选实体;
3)基于神经网络相似度的有向图排序:将一段文本中的每一个待链接的实体指称和其对应的所有候选实体、以及文本中已存在的无歧义已链接的实体指称对应的实体作为图节点,将步骤2)得到的相似度作为待链接的实体指称节点和对应候选实体节点之间的边权重,将候选实体的百科文档的文档向量之间的相似度作为候选实体之间的边权重;通过随机游走算法对有向图进行迭代计算直到边权值收敛,最后得到待链接的实体指称到对应候选实体的最终边值,选取边值最高者作为实体链接对象。
进一步地,所述的步骤1)中,
1.1)训练词向量和文档向量的表达:语料库选择为百度百科所有词条全文文档的集合,用skip-gram模型对该语料库训练word2vector(词向量表达)和doc2vector(文档向量表达),对百度百科所有词条文档做文档向量表达,对百度百科所有分类标签做词向量表达,用基于HanLP汉语词性标准的one-hot(独热编码)来表达词性向量;
1.2)用步骤1.1)训练好的模型表达词向量:对于给定文本,用HanLP对该文本进行分词,每一个分词元组包括词语以及词性,并用训练好的词向量模型和词性向量模型来表达;
其中,C表示上下文词集数组,表示词向量,表示词性向量。即对于一段上下文,可以用有限个词向量和词性向量的集合来表达。
对于一个待链接的实体指称,用mi表示它的词向量,用表达它上文所有的词向量,用表达它下文所有的词向量,用表达它上文所有的词性向量,用表达它下文所有的词性向量。
进一步地,所述的步骤2)具体包括以下子步骤:
2.1)将提取的特征输入到神经网络的双向LSTM(BLSTM)部分中。对于一个待链接的实体指称mi,将它上下文的词向量和词性向量分别输入到两个BLSTM的网络中,并在输出序列中取到待链接的实体指称mi对应位置的输出与公式如下:
然后将这两个向量和上下文的文档向量Dm进行拼接,并通过三层不同权重的全连接层让向量获得充分学习,获得表达一个待链接实体指称的向量Mi,公式如下:
Wm1、Wm2、Wm3、bm1、bm2、bm3是待训练参数;
用eij表示实体指称mi对应的第j个候选实体的词向量,用张量Tij来表示实体指称mi对应的第j个候选实体的分类标签的词向量集合。对Tij做卷积核大小为k的卷积运算后,做最大值子采样(max pooling)得到向量Oij,让Oij拼接上候选实体eij对应的词条文档的文档向量De,并同样通过三层不同权重的全连接层让向量充分学习,最后得到一个待链接实体指称mi对应的第j个候选实体的向量Eij,公式如下:
Wconv、bconv、We1、We2、We3、be1、be2、be3是待训练参数;
将待链接实体指称mi和他对应的候选实体eij的相似度sim(mi,eij)定义为余弦相似度cosin,公式如下:
2.2)训练模型:一组训练样本(batch)包括待链接的实体指称m,m所对应的正确链接的实体e,以及其他的错误候选实体集f,定义损失函数如下:
其中,g为神经网络参数,λ||W||为训练参数的正则项。
进一步地,所述的步骤3)为:
3.1)通过神经网络计算出待链接的实体指称mi和其对应的候选实体eij的相似度sim(mi,eij),另外定义两个在知识库中的实体e1和e2的相似度为sim(e1,e2),公式如下:
sim(e1,e2)=cosin(De1,De2)
定义一个待链接的实体指称mi和其所在的上下文的相似度为sim(mi,Dm),公式如下:
sim(mi,Dm)=cosin(mi,Dm)
3.2)对于一段分词后的文本,将其中的待链接的实体指称mi,每个mi对应的候选实体eij,以及已链接的实体指称对应的实体ek作为节点构成一张有向图。该有向图中:mi有指向eij的边,边值即cosin(mi,eij),另外,eij,ek之间都有互相指向的边,值为sim(e1,e2)。将该有向图转换成邻接矩阵Q,矩阵Qxy的值表示从节点y连接到节点x的边值。定义s为节点的初始状态向量:
根据随机游走算法(random walk)的近似运算得到最终的状态向量R:
R=γ(I-(1-γ)Q)-1s
其中,γ为常系数,取值范围[0,1],I为单位矩阵,结果Rx表示待链接实体指称选择候选实体节点x为实际链接结果的概率,最后选择概率最高的候选实体为待链接实体指称的链接结果。
本发明方法与现有技术相比具有的有益效果:
1.该方法利用了实体指称的上下文的词语含义和词性含义来帮助表达该实体指称的类型,并用上下文的文档向量来帮助表达实体指称的含义,融合两者导出特征来更好地表达一个实体指称。同时,用候选实体的分类标签来表达候选实体的类型,候选实体的所在词条文档向量来表达候选实体的含义,融合两者导出特征来表达实体;
2.该方法设计了一种神经网络来利用词向量、词性向量、文档向量来表达实体指称和候选实体,并训练该网络来计算实体指称和候选实体之间的相似度,达到实体链接的目的;
3.该方法最终以图算法来更新神经网络中计算出的实体指称与候选实体之间的相似度,利用了上下文中实体间的关系对相似度进行修正,并提高了实体链接的正确率。
附图说明
图1是本发明方法系统架构图;
图2是一次实体链接的结果;
图3是神经网络的结构图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
本发明提供的一种基于深度学习的实体链接方法,包括以下步骤:
1)数据预处理:对百科数据库全文做基于深度学习的词向量表达和文档向量表达训练;然后用训练好的模型对分词后的词语做词向量表达,对所有百科数据库中的实体文档做文档向量表达;对于一段新输入的文本,分别提取文本中所有待链接的实体指称、实体指称对应的所有候选实体、以及所有无歧义已链接的实体指称;在百科数据库中找出候选实体的所有分类标签;
2)神经网络结构设计与训练:将步骤1)预处理后的数据作为神经网络的输入特征,对神经网络进行参数调整,并训练神经网络,最终得到文本中每一个待链接的实体指称到其对应的所有候选实体的相似度。神经网络用双向LSTM和文档向量的结合来表达实体指称,用卷积神经网络和文档向量的结合来表达候选实体;
3)基于神经网络相似度的有向图排序:将一段文本中的每一个待链接的实体指称和其对应的所有候选实体、以及文本中已存在的无歧义已链接的实体指称对应的实体作为图节点,将步骤2)得到的相似度作为待链接的实体指称节点和对应候选实体节点之间的边权重,将候选实体的百科文档的文档向量之间的相似度作为候选实体之间的边权重;通过随机游走算法对有向图进行迭代计算直到边权值收敛,最后得到待链接的实体指称到对应候选实体的最终边值,选取边值最高者作为实体链接对象。
进一步地,所述的步骤1)中,
1.1)训练词向量和文档向量的表达:语料库选择为百度百科所有词条全文文档的集合,用skip-gram模型对该语料库训练word2vector(词向量表达)和doc2vector(文档向量表达),对百度百科所有词条文档做文档向量表达,对百度百科所有分类标签做词向量表达,用基于HanLP汉语词性标准的one-hot(独热编码)来表达词性向量;
1.2)用步骤1.1)训练好的模型表达词向量:对于给定文本,用HanLP对该文本进行分词,每一个分词元组包括词语以及词性,并用训练好的词向量模型和词性向量模型来表达;
其中,C表示上下文词集数组,表示词向量,表示词性向量。即对于一段上下文,可以用有限个词向量和词性向量的集合来表达。
对于一个待链接的实体指称,用mi表示它的词向量,用表达它上文所有的词向量,用表达它下文所有的词向量,用表达它上文所有的词性向量,用表达它下文所有的词性向量。
进一步地,所述的步骤2)具体包括以下子步骤:
2.1)将提取的特征输入到神经网络的双向LSTM(BLSTM)部分中。对于一个待链接的实体指称mi,将它上下文的词向量和词性向量分别输入到两个BLSTM的网络中,并在输出序列中取到待链接的实体指称mi对应位置的输出与公式如下:
然后将这两个向量和上下文的文档向量Dm进行拼接,并通过三层不同权重的全连接层让向量获得充分学习,获得表达一个待链接实体指称的向量Mi,公式如下:
Wm1、Wm2、Wm3、bm1、bm2、bm3是待训练参数;
用eij表示实体指称mi对应的第j个候选实体的词向量,用张量Tij来表示实体指称mi对应的第j个候选实体的分类标签的词向量集合。对Tij做卷积核大小为k的卷积运算后,做最大值子采样(max pooling)得到向量Oij,让Oij拼接上候选实体eij对应的词条文档的文档向量De,并同样通过三层不同权重的全连接层让向量充分学习,最后得到一个待链接实体指称mi对应的第j个候选实体的向量Eij,公式如下:
Wconv、bconv、We1、We2、We3、be1、be2、be3是待训练参数;
将待链接实体指称mi和他对应的候选实体eij的相似度sim(mi,eij)定义为余弦相似度cosin,公式如下:
2.2)训练模型:一组训练样本(batch)包括待链接的实体指称m,m所对应的正确链接的实体e,以及其他的错误候选实体集f,定义损失函数如下:
其中,g为神经网络参数,λ||W||为训练参数的正则项。
进一步地,所述的步骤3)为:
3.1)通过神经网络计算出待链接的实体指称mi和其对应的候选实体eij的相似度sim(mi,eij),另外定义两个在知识库中的实体e1和e2的相似度为sim(e1,e2),公式如下:
sim(e1,e2)=cosin(De1,De2)
定义一个待链接的实体指称mi和其所在的上下文的相似度为sim(mi,Dm),公式如下:
sim(mi,Dm)=cosin(mi,Dm)
3.2)对于一段分词后的文本,将其中的待链接的实体指称mi,每个mi对应的候选实体eij,以及已链接的实体指称对应的实体ek作为节点构成一张有向图。该有向图中:mi有指向eij的边,边值即cosin(mi,eij),另外,eij,ek之间都有互相指向的边,值为sim(e1,e2)。将该有向图转换成邻接矩阵Q,矩阵Qxy的值表示从节点y连接到节点x的边值。定义s为节点的初始状态向量:
根据随机游走算法(random walk)的近似运算得到最终的状态向量R:
R=γ(I-(1-γ)Q)-1s
其中,γ为常系数,取值范围[0,1],I为单位矩阵,结果Rx表示待链接实体指称选择候选实体节点x为实际链接结果的概率,最后选择概率最高的候选实体为待链接实体指称的链接结果。
实施例
如附图2所示,给出了基于深度学习的实体链接方法的一个应用实例。下面结合本技术的方法(技术流程如图1所示)详细说明该实例实施的具体步骤,如下:
(1)将知识库中的百科数据的所有词条文档作为语料库,训练词向量表达模型和文档向量表达模型,并对所有词条数据进行预处理,获取每个实体对应的文档向量表达以及大量的词向量表达。
(2)针对一个实体指称,对其上下文进行带词性的分词,并在知识库中找出该实体指称所有可能对应的候选实体。对上下文进行词向量表达以及文档向量表达,作为特征输入到神经网络的左半部分。获取每一个候选实体的对应所有分类标签,获取分类标签的词向量表达并结合候选实体对应的文档向量作为特征输入到神经网络的右半部分,如图3所示。
(3)用知识库中现有的实体衔接来训练神经网络,通过训练好的神经网络和特征来获得实体指称到每一个对应候选实体的相似度,以此作为有向图中指称节点到实体节点的边。以实体对应的文档向量之间的相似度来作为有向图中实体到实体的边(来自相同实体指称的候选实体之间不连线)。邻接矩阵来表达有向图并对邻接矩阵做数值归一化。
(4)用一个向量来表达图中每个节点的初始状态,对于一个指称节点的初始状态为它的词向量和它所在的上下文的文档向量的相似度,实体节点的初始状态为零。
(5)通过随机游走近似公式来更新状态,即更新实体指称到对应候选实体的相似度,最终选取相似度最高的候选实体为实体链接的对象。
本实例的运行结果在附图2中显示,用户分别输入文本“七里香喜温暖湿润气候,耐旱,不耐寒”以及“周杰伦对这张专辑的音乐充满自信,希望大家能把注意力焦点放在音乐上,将话题回归到音乐上,于是周杰伦把专辑命名为《七里香》”。系统对两段文本的实体链接结果如图显示,第一段文本中的“七里香”被链接到了植物上,而第二段的“七里香”被链接到了周杰伦的专辑上。