基于预训练语言模型的检索- 匹配式知识图谱问答系统

张鸿志 , 李如寐,王思睿,黄江华

美团, 北京市朝阳区 100020

{zhanghongzhi03,lirumei,wangsirui,huangjianghua}@http://meituan.com

Abstract. 本文介绍了我们在 CCKS -2020 的 KBQA 任务上的技术方案。 该 系统包括指称识别、实体链接、候选答案生成以及答案排序四个子模块。 在指称识别中,为使识别到的实体指称更容易地被链接到图谱上 , 提出了 匹配-判别式指称识别方法和融合图谱知识的多粒度序列标注方法。在答 案排序模块, 设计了重排序策略以降低计算量、缓解样本不均衡问题,同 时探索了多任务学习、带间隔的 瀃ai瀅瀊i瀆e 损失等训练策略。 与传统的以人 工特征为主的中文 KBQA 方法不同,该系统主要基于预训练的语言模型完 成指称识别、实体链接和候选答案排序。 B(瀇e瀆瀇)榜初次提交时,本系统的 f1 值显著高于 A(de瀉)榜分数相当的系统,该结果证明了所提方法的泛化能 力。

Keywords: 知识图谱问答, 指称识别, 语义匹配, 预训练语言模型

1 引言

KBQA 系统基于知识图谱回答用户的自然语言问题。通常采用两种方法,语义 解析的方法直接将用户问题解析为可以在 KB 上执行的查询语句;检索式方法 中,首先生成候选的答案,然后对答案进行排序。本文采用检索式方法,将答 案查找过程建模为一个自然语言问句与结构化知识描述的语义匹配过程。整体 框架包括召回和排序两大模块。其中召回模块生成候选答案,该过程保持尽可 能高的召回率;排序模块利用预训练语言模型计算问题和候选答案之间的匹配 度,给出预测答案。

图 1 检索- 匹配式知识图谱问答系统

图 2 从数据量来看的系统流程图

2

具体地, 所提系统的架构如图 1 所示。其中,指称识别和实体链接模块识别 出所提及的话题实体并将其映射到知识图谱中的实体节点(称之为话题实 体) ;然后子图召回模块以话题实体为中心进行漫游, 生成候选答案以及从话 题实体到候选答案的路径 (称之为答案路径);最终, 答案路径排序模块,基 于预训练的语言模型计算候选的答案路径与问题之间的语义匹配度、给出预测 答案。 为避免流水线模型中存在的错误累积问题, 在前三个步骤中遵循轻准 确、重召回的策略,将排序的压力留给最终的排序模块。实验也初步表明了该 模式的合理性, 也说明所设计和实现的基于预训练语言模型的答案路径排序模 型是相对可靠的。

之前在中文 KBQA 上的工作[2] , 主要基于人工特征和 Xgb瀂瀂瀆瀇 分类模型进行 实体链接和候选答案排序。其中也有利用 Fa瀆瀇Te瀋瀇 和 BERT 等深度学习方法, 但只是作为一路语义特征。本文方法中,尝试不再进行手工特征提取, 主要基 于预训练的语言模型完成指称识别、实体链接和候选答案排序。

图 2 给出了从数据量级视角的系统流程图。 整个过程可理解为多次候选生成 与候选排序过滤的过程。如实体链接中 , 将一个实体指称映射为多个候选实体 然后再进行判别。 由于候选答案生成过程产生大量候选答案, 采用了重排序策 略。 即首先经过一个轻量级的粗排模型进行过滤, 然后采用较重的精排模型产 生最终答案。如果不考虑计算量的问题, 完全依赖精排模型应该可以产生还算 满意的结果。在未来的工作中,可以考虑将精排以前的所有步骤,替换为向量 哈希召回、简化知识图谱问答工作流程。

2 方案介绍

2.1 实体指称识别模块

指称识别的目标是识别问题中提及的图谱实体节点的文本片段 。 为了保证召 回率,我们实现了两个指称识别系统,取两系统输出的并集作为实体链接的输入。其中,基于匹配-过滤的方法, 主要用于召回实体指称精准提及的情况(即 实体指称被包含在问题中的情况), 而基于序列标注的方法可召回模糊提及的 文本片段。 作为 KBQA 系统的子模块,匹配 -判别式方法所识别出的实体指称能 够很方便的被链接到图谱中的实体, 而基于序列标注的方法中, 我们也引入图 谱中的知识、尽可能识别出跟图谱中数据粒度相一致的实体指称。

1.匹配-判别式指称识别模块

首先采用文本匹配、规则提取和检索式召回等方法生成候选的实体指称。 1) 文本匹配根据指称字典,采用最长匹配产出候选的实体指称。 2) 将书名号和引 号内的文本片段、连续英文和日期片段作为实体指称。仅采用以上方法无法召 回模糊提及的实体指称, 3)我们通过检索式方法召回一些模糊匹配的实体指 称。具体地,构建实体指称的倒排索引, 然后将问题作为查询词从而召回匹配 度较高的实体指称 。 然后对于所召回的未被包含在问题中的候选指称, 在问题 中查找与该指称 Jacca瀅d相似度最高的文本片段作为候选指称。

由于知识图谱规模可能很大, 甚至包含“<那么>”、“<哪些>”以及“<什 么>”等实体。候选实体指称数目较多,因此我们通过一个指称判别模型进行 过滤,产生多组候选实体指称。 对于一个问题中由上述方法提取的 M 个实体指 称,我们首先产生 M 个单实体指称的结果, 然后从原来 M 个任选两个候选指 称产生 CM2 个双实体候选集合。 指称判别模型借鉴[4]中的实体位置标记方法, 在候选指称的开始和结束位置加入 “#”号作为实体位置标志位,然后用 BERT 模型做文本分类判断当前的实体指称是否正确。下表中给出了几个指称判别模 型的输入示例, 以及相应的标签。该模型的训练数据基于给定的标注数据由规 则生成。预测时,选取得分前五的五组实体指称识别结果。

表格 1 候选实体指称判别样本示例

此外,我们训练一个二分类模型,判断当前问句是单实体问句还是多实体问 句。如果模型以较高的置信度预测为单实体 , 则每个句子仅生成单实体指称组 合。由于大部分问题是单实体问题, 该策略可有效减小候选的数目。

2.融合图谱知识的多粒度序列标注方法

在指称识别中, 由于指称类型丰富、粗细粒度混杂。 指称识别不仅需要足够 的泛化能力,而且需要使指称识别结果粒度与图谱中实体粒度尽可能一致,因 此我们提出了结合图谱知识的多粒度指称识别模型。

图 3 结合知识图谱的 NER 方法框架

基于Transformer的序列标注。将指称(mention)识别建模为序列标注任务,利用Transformer 作为问题的序列建模层。Transformer 不仅接收token级别的embedding特征、BERT embedding,也整合了图谱实体匹配特征和位置特征,改变attention的计算方式以便于模型适应这种不同维度的信息。

Transformer的输出提供给不同粒度的任务做序列标注建模。

图谱知识的融合。1)候选指称的获取︰将query分成n-gram片段,与

mention-entity词典做匹配,保留匹配到结果的n-gram 作为候选指称,这部分指称能链接到图谱中的实体,能为指称的识别提供特征。2)Lattice特征的融合∶由于多个候选指称之间可能相互包含、交叉、覆盖,Transformer模型无法直接使用这种lattice 的指称特征,我们采用FLAT-Lattice NER[1]模型的做法,提取每个指称、token 的起始位置和终点位置,利用相对位置编码建模指称的position embedding,连同指称本身的word embedding 一起输入Trans-former。3)Token特征的增强∶每个token,我们同时结合了char embed-ding、bigram-embedding和预训练的 BERT-wwm embedding(使用的em-bedding和 FLAT-Lattice NER一致),再用一层全连接映射确保三种

embedding融合后的维度和lattice特征相一致。

多粒度弱监督训练数据生成与基于多任务学习的多粒度指称识别。 由于比赛数 据集中没有给出问题中的指称标注, 我们基于规则生成了弱监督数据。多粒度 弱监督数据生成步骤如下 :一个实体可以被多个指称召回, 如实体“<清华大 学>”的实体指称包括“清华”和“清华大学”等。我们生成了三种粒度的训 练数据 :最长粒度、最短粒度、随机粒度。 最长粒度就是选择实体对应最长的 指称,最短粒度就是选择实体对应最短的指称,随机粒度会在实体中对应的指 称中随机选择一个。最后我们通过 BMEOS 对 瀇瀂濾e瀁 进行打标。

基于多任务学习的多粒度指称识别模型。为了让模型输出多粒度的指称,我们 采用多任务学习框架训练不同粒度的指称识别模型,包括三个子任务:粗粒 度、细粒度和随机粒度的指称识别。三个子任务共享特征提取层的参数,在transformer 层提取的语义特征上添加不同的线性任务层。在训练过程中,每种粒度的数据训练对应的任务, 共同调节共享层参数。预测时,解码出三组不同 粒度的预测结果。

2.2 实体链接

给定指称识别的结果, 基于词典和倒排索引将实体指称映射到知识图谱中的 节点,生成实体链接的候选。 此外, 我们对日期字符串进行了特殊处理,将日 期类指称串格式化成标准日期格式进行候选实体召回。

采用实体链接模型对候选实体进行排序过滤。为简化实现、避免手工特征提取,我们同样同样采用了基于预训练的语言模型进行语义匹配度计算。实体链接模型的输入为问句、识别到的指称(一个或多个)以及指称对应的候选实体拼接成Question[SEP]Mention1KaTeX parse error: Expected 'EOF', got '#' at position 8: Entity1#̲Mention2Entity2的形式,其中多个指称用“#”号分隔。然后保留得分大于一定数值的所有实体链接候选。以往工作,如[2]中仅保留top2实体,而我们这里尽可能的保证召回率,将排序工作留给最后的答案排序模型。

2.3 候选答案和答案路径生成

给定所识别到的实体, 以实体为中心“画圈”召回候选答案,同时产生话题 实体到答案实体的路径作为答案排序的依据。 下表给出了具体的单跳和两跳候 选答案与关系路径的生成策略。

表格 2 候选答案生成策略,其中红色为输入实体, 绿色为候选答案

我们采用了一些简单的剪枝策略避免候选答案爆炸,如果某一跳节点 M 的第 二跳节点数目超过 500 时,不再对该节点进行二跳遍历。 如“<人物>”、“< 中华人民共和国>”等,其中有太多实体的“<类型>”和“<国籍>”指向该节 点,对该节点进行二跳遍历, 将产生大量候选。 此外, 在两跳查询中, 我们删 掉了两关系名相同但反向的候选答案路径, 避免将话题实体本身作为答案。

最终,我们基于规则将召回的路径展开为一个文本序列。 用$表示答案节 点,用@表示中间节点,下表中给出了部分示例。

2.4 答案路径排序模块

答案排序问题建模

答案排序模块计算用户问题瀄 与答案路径 瀃i的语义匹配度 瀆(瀄,瀃i),选择得分 最高的答案路径 瀃i对应的问题作为答案。我们采用 BERT 进行语义相似度的计 算。将 瀄 和 瀃i 拼接后([CLS]q[SEP]p) 输入到 BERT 中提取语义相似度特征, 最后基于输出特征计算相似度值。

答案路径排序与实体链接联合模型基于所提取的语义交互特征, 一方面判断 关系路径是否正确,一方面判断当前话题实体是否正确。

pointwise 和 pairwise 模型训练

图 4 pointwise 和 pairwise 模型训练

采用了不同的训练策略进行模型训练。对于问题“乐山大佛始建于哪一年?”的正确path 是“<开凿时间>”。但是采用pointwise损失训练出来的模型,会给该path 一个很低的分数10e-6量级,候选路径“<乐山大佛>#<大佛通高>”的得分约为10-3量级。Pointwise策略训练出来的模型,对排序偏后的样本难以给出合适的排序分数。分析原因为, pointwise模型训练中,模型主要损失来自相似但非正确答案样本的得分。即因为训练时,如果问题是问 “出生 时间”, 模型会花很多时间 “学习”给“逝世时间”一个极低的分数。而我们 希望, 瀇瀂瀃1 之后的,看似不匹配的情况下, 能给出一个合理的排序分, 即学到 “开凿时间”作为正确答案的概率应高于“大佛通高”。因此, 也采用了间隔 化的成对损失函数来进行模型训练。具体地,我们采用带有软间隔的损失函 数,只要某负样本与正样本的间隔大于γ时,就不再惩罚

重排序策略

对一个问题,将生成数千条候选的答案路径。如果直接训练,一方面正负样本比极不均衡,另一方面模型训练将极其耗时、无法训练BERT-large等大模型。因此,我们首先训练一个小模型(BERT-base 6层裁剪),采用该模型为每个问题选出topk的候选答案路径。将正负样本比例控制在k:1,同时降低了训练数据的规模。然后在新的训练数据上进行Bert-large等模型的训练。预测过程与之类似,先采用一个轻量级模型进行粗排,选择topN样本输入到一个或几个集成的大模型中进行重排序。

3 实验

3.1 实验数据与实验设置

在CCKS新冠知识图谱构建与问答评测任务(四)的数据集上进行了实验验证。数据集包括全领域、金融和医疗领域的训练数据。训练集4000条、验证集1529条、测试集1599条。所给出的知识图谱中包含6600万三元组,两千多万实体。验证集中,单实体、双实体和三实体问题的大约分别有1140、227和108个。

如非特殊说明,本文采用了该仓库中的BERT模型’。在实体链接句对判别任务上,首先将BERT模型在开源的LCQMC数据集上进行预精调,然后在实际任务上进行模型训练。采用ElasticSearch搭建的倒排索引。

1 https://github.com/brightmart/roberta_zh

3.2 实验结果与分析

总体结果,B(test)榜初次提交时,本系统的f1值显著高于A(dev)榜分数相当的系统,该结果证明了我们所提出方法的泛化能力。

表格 4 与其他参赛系统的结果对比

3.3 各模块实验分析

指称判别模块

指称判别模型的准确率相对尚可,但发现一类较为明显的问题。当候选的实 体指称较长时, 如超过 8个字符时, 正样本给分较低会导致一些漏召, 需通过 规则进行调整得分 。 总体而言, 在实体的开始和结束位置加标志位总体上是一 种简单可行的方法, 但是在长文本片段的标记中也面临一些待解决的问题。

结合图谱知识的 NER 方法

下表中给出了不同策略时,在 dev 集合上结合知识图谱的 NER 方法 F1 值的 变化。

表格 5 结合图谱知识的 NER 方法

引入基于训练标注的方法将验证集上实体链接的召回率从 94.6%提高到 97.8%。

答案路径排序模型

对答案路径排序模型的各个机制进行了消融实验, 不同配置下 de瀉 集合 F1 值结果如下表所示。 我们首先测试了重排序策略对实验结果的影响,直接在原 始的训练数据上进行模型训练, F1 降低近 3%,且训练过程极为耗时。在预测阶 段,直接采用大模型先进排序,能够带来约 0.1%的提高,但是预测时间约为原 来的数倍。 采用带有间隔损失的 pairwise 排序函数,能带来约 2%的提高。同时 也观察到模型对相似度较低的候选, 能够给出更为合适的分数。如“林建华毕业于哪个学校 ?”这个问题, 业于哪个学校?”这个问题,采用pointwise和 pairwise损失训练出的模型对三 个候选关系的排序分别为“毕业院校>出生日期>任教院校”和“毕业院校>任 教院校>出生日期”。这里“任教院校”虽然不是正确答案,但是其作为正确 答案的概率应高于“出生日期”。将答案路径排序任务与实体链接任务进行联 合训练能够带来小幅提高。也观察到, BERT -large 模型显著优于 Bert-base 模 型,该结果表明预训练过程中学习到的语言知识能够被迁移到答案路径排序任务中。

表格 6 答案路径排序消融实验结果

3.4 错例分析

从验证集随机抽取了 62 个错误样本进行归类分析, 错误归因如下表所示。


表格 7 验证集错例归类分析

基于预训练语言模型的检索- 匹配式知识图谱问答系统相关推荐

  1. 阿里达摩院 | 基于预训练语言模型的行业搜索

    作者|谢朋峻 阿里巴巴达摩院 整理|DataFunTalk 大家好,这里是NewBeeNLP.本文将分享行业搜索的相关技术和应用,主要包括三大部分: 行业搜索的背景 相关技术研究 行业搜索应用 01 ...

  2. 【论文写作分析】之三《基于预训练语言模型的案件要素识别方法》

    [1] 参考论文信息   论文名称:<基于预训练语言模型的案件要素识别方法>   发布期刊:<中文信息学报>   期刊信息:CSCD   论文写作分析摘要:本文非常典型.首先网 ...

  3. 【文本分类】基于预训练语言模型的BERT-CNN多层级专利分类研究

    ·阅读摘要:   本文利用BERT的预训练数据,结合CNN,应用于专利分类.由于专利的特性,本文还提出使用多层级方法来增强模型.(文章发表在<中文信息学报>,核心期刊) ·参考文献:    ...

  4. 基于模板匹配的知识图谱问答系统

    基于模板匹配的知识图谱问答系统 一,什么是基于知识图谱的问答(KBQA)? KBQA–knowledge base question answering,通过对问题进行语义理解及解析,通过知识库进行查 ...

  5. 《预训练周刊》第22期:Fastformer:加法注意力就是你所需要的、用于蛋白建模的大规模预训练语言模型...

    No.22 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第22期&l ...

  6. 预训练语言模型整理(ELMo/GPT/BERT...)

    预训练语言模型整理(ELMo/GPT/BERT...)简介 预训练任务简介# 自回归语言模型# 自编码语言模型 预训练模型的简介与对比 ELMo 细节# ELMo的下游使用# GPT/GPT2# GP ...

  7. AAAI 2022 | 北大 阿里达摩院:基于对比学习的预训练语言模型剪枝压缩

    近年来,预训练语言模型迅速发展,模型参数量也不断增加.为了提高模型效率,各种各样的模型压缩方法被提出,其中就包括模型剪枝. 然而,现有的模型剪枝方法大多只聚焦于保留任务相关知识,而忽略了任务无关的通用 ...

  8. retinanet50预训练权重_论文导读|基于注意力机制对齐增强预训练语言模型

    李彦增 这篇文章通过提出了一种注意力机制对齐的方法,为预训练语言模型在 fine-tuning阶段引入了多源分词信息外部知识,从而提升了预训练语言模型在各个子任务上的效果.本文收录于 2020 年 A ...

  9. 直播预告 | AAAI 2022论文解读:基于对比学习的预训练语言模型剪枝压缩

    「AI Drive」是由 PaperWeekly 和 biendata 共同发起的学术直播间,旨在帮助更多的青年学者宣传其最新科研成果.我们一直认为,单向地输出知识并不是一个最好的方式,而有效地反馈和 ...

最新文章

  1. php fpm是干嘛的,php-fpm是什么?
  2. 【系统分析与设计】业务流程图绘制方法
  3. ft232 mac usb串口驱动_记Macbook Pro配合FT232使用PN532模块
  4. php stripslashes 去除反斜线
  5. 解决:Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408,
  6. STM32工作笔记0047--认识DTU什么是4GDTU设备
  7. 里面的自带的字典在哪里_自带话放的声卡“秘密”
  8. Go编程笔记(28)
  9. 基于64QAM的LDPC编译码算法
  10. cad快捷栏怎么调出来_cad左边工具栏不见了怎么办|cad工具栏怎么调出来_PC6教学...
  11. 禁用hiberfil.sys文件
  12. TDSQL将发布免费版本,助力国产数据库生态完善
  13. imx6ul mqs 音频爆破音
  14. 解决visio对象在word中显示不全的问题
  15. chrome 浏览手机网站
  16. 倒三角打印乘法口诀python_Python打印乘法口诀表
  17. 虚假宣传!和基外汇伪造保险信息七大铁证!
  18. 大数据处理与分析方向主要干什么_大数据分析_方向_方法与工具
  19. WIN二种安装方式UEFI和BIOS方式引导修复
  20. 发现今年是阿里和腾讯这么多年来最大规模的校招

热门文章

  1. VS2022“clr“和“zw“命令行选项不兼容
  2. 基于GBT28181:SIP协议组件开发-----------第五篇SIP注册流程eXosip2实现(二)
  3. 大泉州汽车网整站程序PHP生成html开源版 V2018.1.1
  4. Java操作ZIp文件
  5. Python数据可视化 Pyecharts 制作 Line3D 3D折线图
  6. PTA L2-018 多项式A除以B (多项式除法)
  7. 全球与中国阻燃海绵市场深度研究分析报告
  8. u盘服务器安装win7系统安装教程,服务器u盘安装win7系统
  9. UDP和TCP(Java版)
  10. Python requests +PrettyTable 查询高铁或者动车票