【论文精读】融合知识图谱和语义匹配的医疗问答系统

💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢迎在文章下方留下你的评论和反馈。我期待着与你分享知识、互相学习和建立一个积极的社区。谢谢你的光临,让我们一起踏上这个知识之旅!
请添加图片描述

📖论文介绍

论文题目:融合知识图谱和语义匹配的医疗问答系统

作者信息:徐若卿 (三峡大学 计算机与信息学院, 湖北 宜昌 443000)

原文地址


📖摘要

问答系统是自然语言处理领域中的一项重要任务,常应用于医疗服务。传统的问答系统通过 知识图谱的实体关系匹配返回相应的尾实体作为答案,然而,倘若实体或关系无法识别或在知识图谱中并 不存在相应实体关系,问答将无法继续进行。为了解决这一问题,文中建立了一种融合知识图谱和语义匹 配模型的中文医疗问答混合框架当所提问题无法在知识图谱中进行实体关系匹配时,该模型能继续从问 答对数据集中找到最相似的问题,并返回相应结果作为答案。在语义匹配模型方面,结合中文医疗相似问 题对,在Sentence-BERT模型上进行微调训练并引入了双曲空间中的距离度量函数对句子对进行相似度 度量。在整体性能方面,该模型相较于BERT这类大语言模型能有7.16%的精度提升;在度量能力方面, 双曲度量相较于通用欧氏空间度量,如余弦度量,最高能有2.28%的精度提升和1.58%的F1值提升


📖0 引言

人工智能在提升医疗服务质量方面起着至关重 要的作用,问答系统是其中一项较受欢迎的技术之 一,它能够帮助用户实时获取问题的解答[ 1]。问答 系统由一个与患者和医疗从业者交互的界面组成, 其能将问题进行语义化分类,能够准确、直观地提
供一系列实时的问答反馈[ 2]。 近年来,问答系统技术发展迅速,尤其是在医 疗领域,各类问答系统方案被提出,典型应用包括 帮助患者回答问题的医疗助理,引导患者前往合适 服务部门的医疗服务前台等。基于传统知识图谱问答的主要方式是先对问题进行实体关系抽取,再从 知识图数据库中进行对应尾部实体的检索,以此返 回相应答案。然而,该方式在实际的应用中依旧存 在着一定局限,倘若实体关系未被成功抽取,或实 体关系不在相应的图数据库中,那么系统将无法回 答用户所提问题。


为了解决上述问题,本文对新的问答系统框架 进行了探索,当接收到用户的问题,该模型会首先 对问题进行实体关系抽取,在图数据库中进行尾实 体检索以获取答案。如果无法识别出相应实体和关 系,系统会继续尝试第二条路径,其方式是通过一 个已训练好的语义相似度匹配模型,将用户所提问 题与大型问答对中的问题进行相似度匹配,从而将 与用户问题相关的回复返回给用户[ 3]。传统的语义 匹配模块使用结构相对简易的记忆网络模型,如 MaLSTM[ 4],实验结果表明其在中文数据集上训练 的效果较差;传统的BERT模型[ 5]虽然能显著提高 训练效果,但准确率依旧不理想。本文针对具体任 务,在Sentence-BERT模型[ 6]进行微调训练,并采 用新的双曲度量[ 7]方式,使任务性能得到优化,从 而优化整个问答系统。


📖1 相关工作


📖1.1 问答系统

Cui等人设计了一种基于知识库的问答系统, 他提出自然语言问题可以被理解,并设计了一种新 的问句表示方法,能使问题精确地映射到基于知识 库的结构化查询,然而该系统性能往往取决于模板 的好坏[ 8]。


📖1.2 语义相似度判别模型

He等人早期提出了一种基于ConvNet的卷积网 络变体[ 3],通过整合不同尺度下多个卷积之间的差 异来推断句子相似度,然而标记数据的局限限制了 模型的性能。

谷歌研究院提出了革命性语言模型 BERT[ 5],其利用了Transformer的双向编码器表示, 通过对所有层的左右上下文进行联合条件化预训练 深度双向表征,在文本处理任务中表现优异,然而 由于其网络的复杂性,在受到误差干扰时性能容易下降


📖2 系统架构

传统的知识图谱问答存在实体关系无法正确抽 取或实体关系在知识图谱中无法匹配这两类问题, 导致问答系统无法有效反馈问题答案。鉴于此,本 文构建一种基于混合策略医疗问答系统,其结构框架如图1所示,其中红色部分为知识图匹配模块, 蓝色部分为语义匹配模块。该系统主要通过两个路 径来解决针对用户提问的反馈:首先,在第一条路 径需要对用户所提问题进行自然语言理解,并利用 一个医疗领域的知识库快速检索查询相关医疗问题 并返回答案;其次,在知识库无法查询答案时系统 会转入第二条路径,即通过语义匹配的方式在一个 医疗领域问答对数据库中寻找最相似问题,并返回 其对应答案
在这里插入图片描述


📖2.1 知识图谱模块

知识图谱能应对海量的数据变化,以满足和完 成专业性比较强的领域的人工智能问答。本文使用 的医疗知识图谱用Neo4j进行存储,其将结构化数 据存储在网络空间中,能以更自然的连接状态存储 管理相应数据,且可以提供高效的数据查询与修改。
本文参考了liuhuanyong的开源中文医疗知识 图谱,其包含7类实体、10类关系和8类属性,共 包含约4.4万量级的实体和30万量级的关系。


在知识图匹配方面,可以分为4个步骤:

  • 1)用户输入问题
  • 2)对问题进行意图识别
  • 3)在知识图数据库匹配答案
  • 4)按照模板返回答案。意图识别模块使用 Aho-Corasick算法提取疾病关键词

📖2.2 SBERT微调模型

本文使用了中文医疗问答重复句子对作为原始 数据来训练语义匹配模型,训练好的模型具备良好 的中文医疗相关语句的向量化表示能力,当知识图 谱模块无法识别出问题中的实体与关系时,问答系 统将切换路径,通过训练好的语义相似度判别模型 匹配所提问题与大规模问答对问题中最相似的目标, 返回其对应的答案。该方式必然会返回一个答案, 即便答案可能与问题无关,因此还需要设定一个阈 值,当计算的语义相似度值超过该阈值时才返回答 案,若无法超过阈值,系统理应返回诸如“无法理解” 等模板来促使用户重复提问


本文采用基于SBERT微调的方式进行训练。 SBERT由Nils等人提出,其是基于原始预训练 BERT网络的变体,由于BERT网络结构没有计算 独立的句子嵌入,这使得利用BERT获取句子嵌入 十分困难。为了突破这一限制,SBERT使用连体网 络架构[ 6]来获得语义有意义的句子嵌入,使用如余 弦距离、曼哈顿距离等距离度量方式学习模型参数, 这些距离度量可以在现代化硬件上高效地执行,使 得SBERT既可用于句子的语义相似性判别,又可用 于相似句搜索,能够较好地适应与句子相关的特定 任务


BERT使用预训练的BERT网络,通过微调产 生有效的句子嵌入,从而大大减少训练时间。SBERT 对BERT的输出进行池化操作以此获取固定维度 的句子嵌入,模型默认采用均值池化。为了在BERT 上进行微调,模型使用了连体网络更新权重,使得生成的句子嵌入在语义上有意义,并且可以用余弦 相似度等度量函数进行比较
对于计算过程,SBERT计算两个句子u和 v 之 间的距离度量损失来优化目标函数,本文的距离度 量采用了基于双曲空间的双曲距离度量而非基于传 统欧氏空间的欧氏距离度量,损失计算使用均方误 差。本文的相似度判别任务也使用了该体系结构, 其计算流程如图2所示
在这里插入图片描述


📖2.3 双曲距离度量

度量学习旨在学习一个高度判别的模型,该模 型鼓励相似的嵌入在向量空间中更接近,而差异越 大的嵌入在向量空间中的距离将被拉得越远[ 7]。常 见的方法是使用编码器来提取嵌入,并使用基于距 离的损失函数进行嵌入学习。传统的度量学习通常 在欧氏空间中度量向量间的距离,而本文使用了双 曲距离函数[ 7]进行度量学习,该距离函数能够将文 本嵌入映射至双曲空间这类非欧氏空间,从而优化 对应的嵌入在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


📖3 实验与分析


📖3.1 实验数据

在知识图谱方面,本文在liuhuanyong的开源医 疗知识图谱上进行优化,其底层已提供了一套基础 问答模型。本文重点在于语义匹配模块,采用了基 于双曲度量的SBERT微调模型进行相应任务训练。 数据集方面,使用了中文医疗相似问题对 CMedQQ[ 11]作为训练的原始数据,这些相似问题对 均与医疗相关,在该数据集上进行训练能使模型更 准确地进行医疗语义判别。数据分布上,该训练集 约20 000条数据,正负样本比例约为1∶1。此外, 本项目对该数据集做了一定脚本处理,数据格式如 表1所示。
在这里插入图片描述
为了验证模型性能,本文还在Quaro英文重复 句子对数据集上继续进行试验,其格式与中文数据 集一致,共有 10 000条数据,其余设定均与中文数 据集相同。对于问答对数据,本文截取了CMedQA 数据集[ 12]部分数据


📖3.2 实验设置与评估方式

为了保证实验的公平性,除了一些特别的设置, 各模型都选取相同的参数值,数据集按照8∶1∶1 的比例划分为训练集、验证集、测试集;其余参数 的向量维度为768,批处理大小为64,训练轮数为 10。本文实验使用准确率和F1值来评价模型的性能


📖3.3 实验分析


📖3.3.1 语义相似度模型评估

为了评估SBERT微调模型的性能,将本文模型 与几种处理该任务的模型进行对比验证,这些模型 分别为MaLSTM[ 4]、HBAM [3]和BERT [5]模型。这些 模型都在句子相似度任务上取得良好的性能,特别 是BERT,表2为模型对比结果。由表2可知,本 文所使用的微调SBERT模型性能均优于对比模型
在这里插入图片描述


📖3.3.2 不同相似度距离度量评估

在这里插入图片描述
在这里插入图片描述
由表3可知,双曲度量在各类模型上都具更良好 的效果


📖3.3.3 实验结果分析

通过一系列实验可以得出:相较于其他与该任 务相关的模型,基于双曲度量的SBERT微调模型在 处理本文中文医疗相似问题对任务上具有更强的性 能,相比于性能优越的BERT微调模型在准确率上提升了7.16%,说明其通过对句子特定的池化和双 曲距离度量损失计算,能有效地将相似语义的句子 嵌入在特征空间中拉近,将语义差别较大的句子嵌 入在特征空间中拉远,从而较好地提取句意特征。 MaLSTM和HBAM在中文数据集上的效果明显较 差,原因是这类模型产生的初衷是用于处理如英文 这类固定分隔模式的句子,对中文句子所能捕获到 的信息有限。BERT能够较好地捕获语句中医疗相 关词汇的语义特征,但在该任务上容易过拟合,导 致性能略受影响。


由表3可知,使用双曲距离度量的SBERT在不 同的预训练模型上性能均优于其他距离度量,这表 明双曲距离度量在语义判别任务上具备一定有效性, 可将该度量进一步扩展至其他嵌入方面的应用。在 ALBERT这类轻量级模型上,使用双曲距离度量后 性能提升较大,对比余弦距离度量在准确率上有 2.28%的提升,F1值有1.58%的提升,这也表明双 曲度量对于一些轻量级模型性能有较大的提升


📖3.4 效果展示

本文构建了一个GUI界面并手动提出了几个医 学相关问题,界面显示如图3所示。图3a)为原始 的知识图谱问答系统,用户在提出问题后,由于系 统无法识别实体关系或实体关系在知识图谱中不存 在,系统无法作答;而图3b)显示在系统中加入本 文所提的语义匹配模块后,能在问答对数据集中匹 配到相似问题,并返回此问题对应的答案,回答了 图3b)中未能回答的问题。本次将语义判断阈值设 为0.5,即提出的问题与问答对中最相似问题的相似 度高于0.5时系统才返回答案,图3b)第三轮问答 展示了该情况
在这里插入图片描述


📖4 结论

本文提出一种基于知识图谱和语义相似度匹配 的问答系统,其充分利用了知识图谱和语义匹配各 自的优势,其中,知识图谱能够存储结构化数据, 并且能较好地维护和检索特定领域的知识;而语义 匹配模块作为该系统的重点优化模块,通过在 SBERT模型上微调训练,并且结合一种新的双曲距 离度量,得到了一个能更好地理解自然语言问题的 模型,通过该模型,系统能够利用自然语言处理这 类深度学习技术来进一步回答知识图谱无法回答的 问题。但该系统也具备一定局限,即用户在问题表 达过程中可能会使用一些知识库中医学实体和关系 的同义替换词[ 9],这种情况下系统应能够通过模糊 匹配识别出相应的实体和关系,进而继续在知识图 数据库中进行查询而非转入第二条路径,这一点可 以在图嵌入技术方面进行探索。


针对本论文,本人对其中的一部分内容不解,以下是本人经过自行查阅得到了答案

  1. 欧式空间是什么?

    欧式空间是指具有欧几里德度量的空间,即满足平行公设的空间。在欧式空间中,直线是最短路径,平行线永不相交。欧式空间可以是任意维度的,例如二维平面、三维空间等。
    在欧式空间中,距离的计算方式 是通过欧氏距离公式来确定的,即两点之间的距离等于它们坐标差的平方和的平方根。

  2. 双曲空间是什么?
    双曲空间是一种非欧几何结构,与欧式空间相比,其曲率更大。在双曲空间中,直线是不断远离的曲线,平行线有可能相交。
    双曲空间也可以是任意维度的,其具体形态由双曲几何学所描述。双曲空间有着与欧式空间不同的性质,例如在双曲空间中,三角形的内角和小于180度。

网上找了一篇介绍欧式空间和双曲空间 =>传送门

  1. 欧式距离度量和双曲距离度量又是什么?
    在这里插入图片描述
    下节我将学习本论文中的其中一篇经典参考文献~

挑战与创造都是很痛苦的,但是很充实。

  • 33
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小馒头学python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值