一种基于RoBERTa和启发式算法的实体链接方法与流程

文档序号:20684691发布日期:2020-05-08 18:43阅读:904来源:国知局
一种基于RoBERTa和启发式算法的实体链接方法与流程

本发明涉及知识库问答类领域,特别涉及一种基于roberta和启发式算法的实体链接方法。



背景技术:

实体链接是知识库问答的一项子任务,旨在抽取问题中出现的知识库实体文本,并链接到知识库中的实体对象,从而得到知识库问答任务的候选答案。近年来,随着yago、freebase、dbpedia等大规模知识库的不断发展,知识库问答任务也开始为人们所关注,而如何在自然语言的问题与结构化的知识库实体之间建立联系,是一个亟需解决的问题,这也是实体链接任务的目标。

对于这个任务,早期的研究主要是用n-gram的方法对问题中的词组进行遍历,然后查询所有名字中包含这些词组的知识库实体作为候选实体,即与问题相关联的实体。该方法存在以下缺点:(1)问题中的n-gram单词组合较多,导致查询知识库耗时过多;(2)在候选实体中引入了过多不相关实体。而近几年来,随着深度学习的不断发展,很多学者开始利用深层神经网络来减少候选实体中的噪音,具体做法是先用一个序列标注模型对问题文本进行建模,以确定问题中提及到知识库实体的区域,从而减小了问题中n-gram搜索的范围。该方法的效果主要取决于序列标注模型的性能,目前效果较好的方案主要是基于bi-lstm或者bi-lstm+crf的序列标注模型。这些模型基本上都是用了预训练word-embedding技术,能有效解决词典的高维稀疏问题,同时,将crf应与神经网络相结合,能够从训练数据中学习到标注间的约束,从而提高对问题中实体提及区域的标注准确率。然而,问题的用词和表达方式是丰富的,word-embedding对不同问题中的相同单词只会产生同样的向量表示,而无法根据上下文动态地改变单词表示。比如,单词“苹果”可以表示水果“苹果”也可以表示“苹果公司”,如果应用word-embedding,则所有的“苹果”不论表示的是水果还是公司,都会被表示成同一个向量,出现这个问题的原因在于,模型在对单词建模的时候并没有考虑到上下文的信息,而单词“苹果”表示的是水果还是公司往往需要从上下文进行判断。当前大部分基于序列标注的实体链接模型都是在word-embedding基础上对问题进行建模的,这也在一定程度上限制了当前实体链接方法的性能。



技术实现要素:

本发明的目的在于克服现有技术的缺点与不足,提供一种基于roberta和启发式算法的实体链接方法,该方法应用在知识库问答当中。

本发明的目的通过以下的技术方案实现:

一种基于roberta和启发式算法的实体链接方法,包含以下步骤:

s1、使用基于预训练语言模型roberta的序列标注模型对问题进行标注,roberta模型通过堆叠12层transformer结构以获取问题中多层次的语法语义信息;而transformer中通过多头注意力机制获取问题中每个单词基于上下文的动态表示,进而获取问题中的实体提及范围;

s2、获得实体提及范围后,使用一个启发式算法,直接将该实体提及与知识库实体进行匹配,完成实体链接。

步骤s1中,所述序列标注模型,其输入是问题中的每个单词,输出是问题中每个单词是否提及到知识库实体的0/1分类;所述序列标注模型包括以下三层:

(1)输入层:对于输入问题中的单词序列,输入层使用byte-pairencoding(bpe),即双字节编码,将单词序列编码编码成一系列子词(subword),并将编码结果传递到预训练roberta层,使用bpe编码方法可以有效解决未登录词问题和罕见词问题;

(2)预训练roberta层:该层首先将输入层的每一个子词其转化为2个向量,分别为:a、词向量:根据词表将每个单词映射成一个768维的词向量;b、位置向量:根据每个单词在问题中的位置,将其位置信息映射成一个768维的位置向量,并将上述两个向量每个元素相加作为子词的向量表示;然后,利用堆叠12层的transformer结构,让每个输入子词获得句子级别的上下文信息;

(3)输出层:该层使用一个全连接神经网络,将包含上下文信息的子词表示转化为一个2维表示,并将子词合并成原始单词,从而得到每个单词是否提及到知识库实体的0/1分类。

所述步骤s2具体如下:

s201、将问题中被标注为1而且相邻的单词合并起来,得到字符串s;若识别出多个候选实体字符串,则取最后一个;

s202、在知识库查询全名或别名为字符串s的所有实体,并将相关实体添加到候选实体集h中;

s203、若在步骤s202中查询不到相关知识库实体,则以字符串s为中心窗口,在距离1-2个单词内进行左右滑动,每滑动一次,得到一个新的字符串s`,然后重复步骤s202,直至获取实体集合h。

本发明与现有技术相比,具有如下优点和有益效果:

本发明通过结合序列标注模型和启发式算法的方法,给出一种基于深度学习技术的实体链接方法,能够有效的对具有丰富表达的自然语言问题与结构化的知识库实体进行关联,并解决了同一单词在不同问题中的动态表示问题,提高了序列标注模型的准确率,同时结合启发式算法,提高了实体链接的效率。本方法充分利用了大规模预训练模型的优点,使得模型有丰富的先验信息,从而提高了序列标注模型的准确率,此外还使用了启发式算法,不仅减小了序列标注错误带来的影响,还避免了传统n-gram遍历方式造成的效率问题。本发明可以应用到各种知识库问答的场景当中,为许多应高级用提供底层基础服务。

附图说明

图1为本发明所述序列标注模型的结构示意图。

图2为本发明所述启发式算法将该实体提及与知识库实体进行匹配的流程图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

一种基于roberta和启发式算法的实体链接方法,其模型的改进思路主要有两点,一是使用基于预训练语言模型roberta的序列标注模型对问题进行标注,roberta模型通过堆叠12层transformer结构以获取问题中多层次的语法语义信息,而transformer中通过多头注意力机制,可以有效获取问题中每个单词基于上下文的动态表示,更准确地获取问题中的实体提及范围;二是在获得实体提及范围后,使用一个启发式算法,直接将该实体提及与知识库实体进行匹配,避免了耗时的n-gram遍历搜索,在保证实体链接准确率的情况下,有效提高了实体链接任务的效率。

具体来说,本发明是一种基于预训练roberta模型和启发式算法的实体链接方法,包括序列标注模型和启发式算法两个部分。

序列标注模型结构如图1所示,模型的输入是问题中的每个单词,输出是问题中每个单词是否提及到知识库实体的0/1分类。模型包括以下三层:

(1)输入层:对于输入问题中的单词序列,输入层使用byte-pairencoding(bpe),即双字节编码,将单词序列编码编码成一系列子词(subword),并将编码结果传递到预训练roberta层,使用bpe编码方法可以有效解决未登录词问题和罕见词问题;

(2)预训练roberta层:该层首先将输入层的每一个子词其转化为2个向量,分别为:a、词向量:根据词表将每个单词映射成一个768维的词向量;b、位置向量:根据每个单词在问题中的位置,将其位置信息映射成一个768维的位置向量,并将上述两个向量每个元素相加作为子词的向量表示;然后,利用堆叠12层的transformer结构,让每个输入子词获得句子级别的上下文信息;

(3)输出层:该层使用一个全连接神经网络,将包含上下文信息的子词表示转化为一个2维表示,并将子词合并成原始单词,从而得到每个单词是否提及到知识库实体的0/1分类。

为了减小序列标注模型错误带来的影响,同时提高实体链接的效率,本发明使用了如图2所示的启发式算法来确定问题链接到的知识库实体,该启发式算法的输入是序列标注模型的输出,即每个单词是否为实体提及的0/1分类,输出是问题提及的知识库实体集合,具体步骤如下:

(1)将问题中被标注为1而且相邻的单词合并起来,得到字符串s。若识别出多个候选实体字符串,则取最后一个。

(2)在知识库查询全名或别名为字符串s的所有实体,并将相关实体添加到候选实体集h中。

(3)若在步骤(2)中查询不到相关知识库实体,则以字符串s为中心窗口,在距离1-2个单词内进行左右滑动,每滑动一次,得到一个新的字符串s`,然后重复步骤(2),直至获取实体集合h。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1