0 引言
知识图谱是大数据背景下的一种知识表示和管理工具,以节点和边的形式描述语义信息及关系,是直观且可理解性强的知识表示和推理框架
[1]。知识图谱具有知识语义化、复杂关系清晰表示的特性
[2],在药物治疗、辅助诊断、医学决策等场景中展现应用价值,但医学知识图谱构建难度较大,涉及复杂的语义表达,实体间多层次和多尺度关系难以表示。构建过程需要医学领域人员的协作,依赖大量有标注的数据集。另外,医学最新研究成果和临床实践经验要求知识图谱能够长期动态更新与知识同步
[3]。PAULHEIM
[4]估算了大型知识图谱手动创建一个三元组的成本在2~6美元,自动化的方法可以使构建成本大幅度下降。在老龄化、人均医疗资源不足的背景下,亟须快速构建医疗知识图谱来驱动多样化的智慧医疗服务。
知识图谱构建过程通常包含知识提取、知识融合及知识加工等3个步骤,构建过程通常依赖深度学习算法
[5]。如MEHTA等
[6]提出了一种端到端的知识图谱构建系统和基于深度学习的谓词映射模型,能够从文本中提取实体和关系并映射到DBpedia。YU等
[7]提出了一种非结构文本中分类关系和非分类关系的提取模型来构建领域知识图谱,并通过向量方差算法去除与领域无关的节点和关系。瞿东升等
[8]利用TPLinkerPLUS 模型实现单阶段实体关系联合抽取,解决医学实体中多关系重叠及多实体嵌套问题。基于深度学习的方法通常需要大量手动标注的数据作为模型训练的基础,为解决对数据标注的依赖,WANG等
[9]设计了一种名为MAMA的无监督方法,证明知识图谱可以通过预训练语言模型在语料库上的一次前向传递来构建,即提取预训练模型中存储的知识来构建知识图谱。
近年来,随着技术的不断发展和数据信息的增加,预训练模型得到突破性的进步与升级,强大的上下文学习能力使得在不更改任何模型参数的情况下执行零样本或少样本的学习任务成为可能
[10]。AGRAWAL等
[11]研究表明,尽管没有专门针对临床领域进行训练,但大型语言模型在从临床文本中零样本信息提取方面表现良好。杨波等
[12]使用GPT和主流命名实体识别方法BiLSTM+CRF、HMM进行对比,发现在医疗实体识别场景中,GPT结果具有更高的准确性和全面性。另外,大语言模型在关系提取
[13]、属性识别
[14]以及知识融合
[15]等知识图谱构建过程中也具有良好的应用前景。大语言模型在分析、处理和生成大规模人类语言和文本方面所具备的出色能力,已开启推动智慧医疗等多个应用领域的快速发展模式。
本文依赖大语言模型的强大文本处理能力,实现知识图谱构建过程中的一些关键步骤,以此降低人工参与量,并提升构建效率和构建过程的自动化程度;提出一种知识图谱构建方法,利用提示设计引导GPT对文本进行理解和处理,快速实现传统构建方法中的本体设计、知识抽取等任务,最终构成医学知识图谱。
1 提示引导的GPT构建知识图谱方法
提示引导大语言模型完成知识图谱构建任务,关键在于使模型明确知识图谱构建的步骤以及各步骤的处理逻辑,基本思路如
图1所示。
选取GPT⁃4作为基准模型,将知识图谱构建任务分解为多个子任务。其中GPT⁃4的参数数量达到1.8万亿,这些参数通过定义神经网络中每个节点之间的连接强度和传递方式,共同构成了整个GPT⁃4的神经网络架构,并负责存储从训练数据中学到的信息。首先,通过提示设计指导模型明确知识图谱的特点与结构,设计出清晰合理的本体;其次,提示引导模型从电子病历中提取出符合要求的知识,保证提取结果的全面性和准确性;再次,提示对模型输出结果进行约束,助力模型将关系与实体一一映射,提升一致性;最后,提示对模型结果进行标准化处理和不同格式的相互转换。
1.1 知识图谱构建流程
采取自上而下的方法构建知识图谱,主要任务包括本体构建、知识处理及知识填充,构建过程如
图2所示。本体作为一种能在语义和知识层次上描述信息和数据的概念模型,是知识图谱中的模式层。知识处理的目的在于从非结构化的文本中提取知识并进行知识加工,形成结构化三元组,构建知识图谱中的数据层。知识填充是将加工获取的结构化三元组填充至相应的本体概念中的过程,目标在于将知识处理所得的数据层与本体建模所得的模式层进行对应,形成最终的知识图谱。
1.2 方法流程设计
相较于传统算法,基于大模型的提示方法给知识图谱构建任务带来了更多交互性。
图3展示了交互式的任务流程和迭代过程,共包括7个步骤,其中Step1—Step4为输入提示设计的基本步骤,Step5、Step6为引导模型输出结果规范化的步骤,Step7为知识图谱可视化步骤。
结合具体的知识图谱构建任务,Step1明确知识图谱构建任务的目标包括结构设计、知识抽取、关系限定以及格式转换等4个方面。对于每一个任务目标,根据Step2要求GPT对任务内涵进行解释,并说明达到目标需遵循的原则。根据模型回答判断与院方理解是否一致,不一致则通过背景补充或内涵重述对模型进行引导。
根据Step3和Step4给定模型结果的格式、标准参考以及更加详细的任务要求和任务执行步骤,指导模型进一步了解任务需求和逻辑。Step5和Step6则要求根据模型输出结果的质量和稳定性判断是否需要进行步骤迭代,良好的结果应符合医学实际情况,且在不同的文本集中模型性能具有稳定性。Step7通过GPT将稳定的模型结果转化为Cypher语句导入Neo4j工具展示医学知识图谱。
表1展示了在上述方法步骤下设计的不同任务的部分提示。
2 实验与结果
2.1 实验数据
知识图谱构建的语料文本来源于广州市某三甲医院2021年5月至2022年5月的100份电子病历,病种均为非小细胞肺癌且治疗方式为手术。每份病历包含患者的病程记录、医嘱单、护理单等。其中,病程记录中涵盖患者入院记录、查房记录、术前小结及术后病程等;医嘱单记录了患者所执行的检查项目及辅助治疗;护理单记录了患者住院过程中所有护理工作。
2.2 实验过程
根据上节所提出的知识图谱构建方法7个步骤,分别将本体构建、知识处理、知识填充和代码编写等4个任务,按照方法步骤设计出每个任务对应的提示语句,并依次将提示和电子病历语料文本共同输入GPT模型中进行实验,获得实验结果。实验基于 Windows11系统,利用Python3.11进行操作,调用GPT⁃4的API接口进行实验,实验参数及参数说明设置如
表2所示。
2.3 实验结果
2.3.1 本体构建
在本体构建任务中,GPT⁃4抽象出电子病历的层级概念和概念间关系,设计出知识图谱本体的顶层模型,并给出基于protege平台的本体构建代码。为进一步评估GPT所生成的本体模型质量,请医院人员根据电子病历手动构建一个顶层的本体模型,并与GPT⁃4所生成的本体模型进行比较,如
图4所示。
从完整性角度,二者的相同概念达到73.33%,在同一个框架引导下进行本体模型构建,GPT⁃4展示出了与专家较为接近的理解能力和信息提取能力。但GPT⁃4没有将治疗过程的费用纳入本体模型的范围,对关键概念仍有所丢失。从准确性角度,GPT⁃4能准确地反映出上下级别概念之间的关联,但医院专家将变异这一因素归于住院过程,且医疗人员和医疗资源被整合为医疗资源概念。这表明专家能够捕捉到概念之间更复杂的关系,GPT⁃4难以识别概念间更加本质的联系,从而更倾向于将概念拆分为不同类别。
2.3.2 命名实体识别
使用精度、召回率和F1分数来说明GPT在电子病历医学命名实体识别任务中的结果,如
表3所示。
GPT⁃4在命名实体识别任务中获得84.73%的F1值,精度和召回率分别为84.29%和85.17%,说明GPT⁃4能够较为正确且完备地识别出电子病历中的命名实体,所识别的实体能很大程度上满足医学实体命名规范,且能够挖掘出病历中的绝大部分实体。而在同样方法引导下的GPT⁃3.5模型则仅有77.85%的F1值,得益于拥有更多的参数和更大规模的预训练文本,GPT⁃4在领域复杂任务中具有更大的适用性。进一步地选取了4个当前较为先进的命名实体识别算法,并比较了本方法和4个算法在公开医学电子病历数据集CCKS2019中的性能表现。
表3显示,GPT⁃4的F1值为85.32%,低于LEBERT(89.37%),比CWAT(85.07%)、BiLSTM‑GAT‑CRF(85.11%)的性能略高,比RoBERTa‑BiLSTM‑CRF的F1值高出2.32个百分点。对比实验说明,尽管并未对GPT⁃4进行刻意的医学命名实体识别训练,但其在命名实体识别任务中展现了与先进的深度学习方法大致相当的性能,且无须额外地标注数据进行模型训练。
2.3.3 关系抽取与知识融合
关系抽取任务要求GPT根据病历中实体的上下文信息进行关系抽取。为防止GPT在没有充足证据的情况下做出错误的判断或创建不存在的关系,即出现“幻觉”,在提示中说明仅对命名实体识别任务结果中包含的实体抽取关系,每条关系描述需严格基于文本内容且应有文本证据支撑。值得注意的是,GPT⁃4在关系识别任务中往往会将实体间存在的潜在简单关系推理出来。这些关系隐藏在文本语义中,或关系描述并非通过直观的谓词来体现。如
图5所示,文本并未说明患者执行过胸部CT,但GPT⁃4能根据患者的CT报告推理出胸部CT是患者的检查方式。同样地,病历仅用“入院检查,急血液常规”来表示二者关系,但GPT‑4推理出了入院检查包含了急血液常规,且符合医疗实际,展现了GPT⁃4对文本强大的理解和推理能力。
在知识融合任务中,由于病历中存在缩写、中英文替换以及用字不规范等问题,所抽取的实体在语义上存在重叠。通过提示GPT⁃4共返回了198组相似语义的实体集合,
表4展示了部分相似实体及相似原因。与传统基于词向量余弦相似度的相似实体识别方法不同,GPT⁃4能够充分理解词的语义,从概念上判断实体相似性。GPT⁃4学习了大量文本资料,包括医学文献、教科书、网站内容等,使其可以从词义内涵的角度理解不同术语之间的关系。即使没有给定关于医学领域专业术语缩写的知识或提示,GPT⁃4仍能够准确地完成任务,达到实体歧义消除和概念精准化的目标。
2.3.4 知识填充与知识图谱可视化
本体是知识图谱的模式层,所提取的三元组是知识图谱的数据层。知识填充是将实体映射至本体模型中,实现模式层与数据层的对齐,最终形成完整的知识图谱。在知识填充任务中,本体中的概念作为类别标签,GPT需要判断所有实体对应的类别标签,从而将所有实体填充到不同的本体概念中去。
表5显示了GPT⁃4对部分实体类别的判断情况。结果表明,GPT⁃4能将所识别的实体准确地对应到不同的类别标签,抽取出医学实体中和本体概念间一致的内涵,从而将实体归类到不同的本体概念中去。最终所构建的知识图谱如
图6所示,共包含1744对三元组。实体、关系的类别和数量见
图7。
3 讨论
对知识图谱的评价需要考虑其数据质量、可扩展性和自动化。本节对GPT生成的知识图谱的质量和效率进行评价,并与传统知识图谱构建方法进行比较,探讨本文提出的知识图谱构建方法的实际效果与优势。
3.1 知识图谱质量评价
本体模型是知识图谱的概念结构框架,需从完整性、准确性和一致性角度对本体质量进行评估。GPT⁃4生成的本体是基于真实电子病历的结构特征抽象出的概念模型,本体中的概念、属性具有事实依据,准确性较高,但无法覆盖病历中全部的主要概念,且部分概念间关系仍与专家结果存在差异。GPT⁃4构建的本体在概念上具备较高的准确性,但概念完整性和结构一致性仍有所欠缺。对本体优化需要依靠领域专家或结合领域知识设计更专业的提示,以促使模型学到更多病历书写的结构特征。换而言之,GPT能够根据文本信息快速且自动地生成本体的模型,但仍需额外的领域知识作为提示才能达到与专家构建的本体相一致的结果。
已有研究探讨了GPT在命名体识别和关系抽取任务中与深度学习算法间的表现差异
[20],GPT常获得更好的性能。深度学习模型的F1值多介于0.7~0.9之间,模型性能和应用场景、训练数据和模型参数密切相关。而本文GPT在命名实体识别任务中F1值达到0.847,与当前主流的深度学习模型性能相近。在关系识别任务中,传统模型的处理机制对上下文建模能力有限,在理解复杂文本、处理长距离依赖以及识别隐含关系方面存在局限。GPT⁃4强大的文本理解能力能挖掘出实体之间隐藏的关系,与传统基于谓词描述的关系识别方法相比,结果更具有完整性和一致性。
知识融合任务要求模型结果具有准确性和完整性,目标是识别出准确且完整的同义词和缩写词。目前缩写识别主要基于规则或词典,结果很大程度上依赖规则的质量和覆盖面,缺乏通用性和灵活性。AGRAWAL等
[11]使用Bert、ELMo进行医学缩写词识别,F1值仅介于0.3~0.52之间,而本文缩写词识别的F1值达到0.8以上。GPT基于Transformer理解词的上下文信息,从语义角度而非词向量特征角度推断词语的正确含义,提高了同义词、缩写词识别的准确性和完整性。
3.2 知识图谱效率评价
与传统的知识图谱构建方法相比,本方法的构建过程在以下几个方面得到简化。
首先,使用GPT进行本体建模无须手动定义本体概念、属性和关系,对病历结构出色的理解能力使GPT达到了自动构建本体的目标。另一方面,传统的知识图谱构建方法需要人工标注大量的数据进行模型训练,标注的数量和质量直接影响到模型输出的结果。就目前而言,尚未有自动化的数据标注方法出现,该过程仍需投入大量的人力成本和时间。而GPT仅以少数示例作为学习目标,通过提示引导模型输出符合规范的结果。相较于数千条数据标注,提供少量示例进行模型学习显然降低了工作的复杂度,甚至可以仅通过特定的提示达到零样本模型训练的效果。
其次,实现传统知识图谱构建方法主要为深度学习的神经网络模型,如命名实体识别采用Bi⁃LSTM算法、知识融合使用词向量余弦相似度算法、知识推理使用TransE算法。这些模型核心代码包含多个模块,代码编写工作量大且十分复杂。为达到最佳模型训练结果,还需要对模型隐藏节点、词向量维度等参数进行多轮调试。本文仅通过提示告知GPT“这是一个命名体识别任务,请你识别出所给文本中所有的命名实体”即可替代命名实体识别的模型搭建工作,将重点工作由模型设计转变为提示设计。提示能将额外信息和用户需求直接反馈给GPT,交互式的引导方法有助于GPT更快输出目标结果。
最后,GPT能整合各项任务的结果,并转化为相应Cypher语句实现知识图谱可视化。该过程无须进一步处理输出结果或编写可视化工具代码,进一步提升了知识图谱构建的效率。该方法同时具备较强的可扩展性,仅需替换语料和根据方法步骤重新设计提示即可更新或构建新领域知识图谱,避免了重新标注语料和模型设计等工作。
所提出的方法仍存在一定局限性。由于token数量限制,GPT在理解长文本时需将文本进行分割以保证输入的字符数符合要求。这一过程可能影响到模型的上下文理解能力,文本的多轮输入增加了一定的工作量,如何对长文本进行高效切割或做最大程度精简是值得研究的问题。另外,如何将领域知识嵌入提示,提升模型专业性,从而构建更具领域特征的知识图谱,是进一步提高知识图谱质量的工作方向。
4 结论
提出了一种基于GPT快速构建知识图谱的方法,该方法以电子病历为文本语料,通过提示使GPT明确结构设计、知识萃取、关系限定以及格式转换的任务目标,引导GPT完成本体构建、知识处理和知识融合三个知识图谱构建子任务。利用GPT整理结果并转化为cypher语句,以Neo4j进行知识图谱展示。
研究表明,GPT能基于病历结构自动地构建本体模型,但本体仍缺乏一定的完整性和一致性;GPT在命名实体识别任务中获得0.847的F1值,且在CCKS2019数据集中展现了与传统算法相当的任务性能。相较于传统方法,GPT在同义词替换、缩写词识别和隐藏关系推理方面具备优势。此外,本文比较了传统方法和本方法在知识图谱构建效率上的差异,分析了不同方法涉及的工作要求和工作难度。总体而言,本研究为提升知识图谱构建效率和质量提供了新思路,是大模型背景下知识图谱创建工作的有益探索。
国家自然科学基金项目(72171089)
广州市基础研究计划市校(院)联合资助项目(2023A03J0279)