【论文阅读】MEDICAL GRAPH RAG: TOWARDS SAFE MEDICAL LARGE LANGUAGE MODEL VIA

论文地址:https://arxiv.org/abs/2408.04187#:~:text=We%20introduce%20a%20novel%20graph-based%20Retrieval-Augmented

代码地址:

GitHub - MedicineToken/Medical-Graph-RAG: Medical Graph RAG: Graph RAG for the Medical Data

1 研究背景:

LLM(如GPT-4和ChatGPT)虽然在自然语言处理和日常应用中取得了巨大进展,但在医学等需要高度精确和专业知识的领域中仍然存在显著局限性,主要包括:

  1. 长上下文处理的复杂性:LLM在面对大量复杂数据时难以处理过长的上下文,同时对特定数据集进行微调代价高昂且不现实。

  2. 幻觉问题:在需要高准确度的领域(如医学),LLM可能会产生"幻觉",即生成看似准确但实际上错误的信息。这在医疗场景中尤为危险。

  3. 简单回答缺乏深入性 :LLM往往给出简单或常规的答案,不能提供足够的新见解,而医学领域需要高水平的推理能力以提供正确的答案。

传统的RAG方法在汇总语义概念或从大数据集中提取新的见解时表现不佳,难以应对复杂的医学场景。为了应对这些挑战,本文提出了一种面向医学领域的图检索增强生成(Graph RAG)方法,即MedGraphRAG 。该方法通过图结构和LLM结合,旨在提升LLM在医学领域中的表现,生成基于证据的响应,增强其安全性和可靠性。

2 研究贡献

  • 提出了一个全面的图检索增强生成(Graph RAG)框架,专门应用于医疗领域,这是该领域中的首创。

  • 开发了独特的图构建和数据检索方法 ,使得LLM能够利用全面的私有数据生成基于证据的响应,增强了响应的准确性和可靠性。

  • 通过验证实验,证明该方法在多个主流医疗问答基准上达到了最新的最先进水平(SOTA)性能,并在不同模型变体上展现了优越表现。

3 研究方法:

MedGraphRAG 框架:混合语义文档分割、实体提取和层次化的图谱构建来增强大语言模型(LLM)在医疗领域的应用。文章提出了一个三层结构的医学图谱:从用户提供的文档中提取实体,将其链接到医学书籍和文献中的知识,再进一步连接到权威的医学术语系统(如UMLS)。通过这种方式,MedGraphRAG能够准确检索并生成基于证据的响应,提高了医疗数据处理的精确性和安全性

3.1 医疗图谱构建

3.1.1 Semantic Document Segmentation - 混合语义文档分割:

传统的基于token size和fixed characters的方法,导致分块后无法完整捕捉到文档的语义上下文。这种方式可能会导致部分信息的丢失,特别是在处理复杂的医学文档时。为了克服该问题,作者提出了a mixed method of character separation coupled with topic-based segmentation,一种混合静态语义分割方法

step 1 静态字符分隔:通过符号(如换行符)将文档初步分隔为段落。

step 2 基于主题的语义分割(TODO:看下源码):应用主题识别技术(proposition transfer?),提取独立的命题,并基于这些命题进行更精确的分块。这种方法通过zero-shot LLM判断某个命题是否应与已有的块合并或生成新块。此外,使用sliding window来保持主题一致性,从而提高分块的准确性和语义完整性。

chunk完成后,会根据每一个data chunk来构建知识图谱。

3.1.2 Element Extraction 元素提取

基于大语言模型(LLM)提示的自动化元素提取方法。具体包括以下步骤:

  1. 设计LLM prompt(TODO:看下源码):通过为LLM提供设计好的prompt,模型可以自动识别文本中的相关实体(如医学术语、症状等)。对于每个实体,LLM会输出(name, type, description)

  2. 多次迭代提取:为了提高提取质量并减少噪声,采用多次迭代的方式,确保模型能够捕捉到初始提取过程中遗漏的实体。

这种方法减少了人为干预,提高了提取的准确性和泛化能力,同时还能根据上下文更好地理解并提取复杂的医学术语。

3.1.3 层次化链接-Hierarchy Linking

**实体层次划分:**通过不同层次的实体,确保从私有数据到权威医学知识的链接,从而增强模型的知识覆盖面。

  • 第一层:用户提供的文档(如医院的医疗报告),包含高度机密的医疗数据。
  • 第二层:常见的医学书籍和学术文章中的知识,作为基础信息。
  • 第三层:权威医学词典和知识图谱(如UMLS),包含精确的医学术语及其语义关系。

层次化图谱结构通过多层次的语义链接保证了每个实体的权威性和准确性,减少了模型生成幻觉的风险。

  • 从第一层文档中提取实体 :提取的实体包括名称、类型和描述,每个实体都被分配一个唯一的ID,用于追踪源文件和段落。
  • 实体链接:将第一层提取的实体与第二层的基础医学实体进行链接。链接的依据是LLM检测到的语义相似性,通过比较文本嵌入(如余弦相似度)来确定相关性。
  • 与医学词典的连接:第二层的实体进一步链接到第三层的医学词典(如UMLS)。每个医学术语都具有详细的定义和语义关系,确保高精度的医学知识引用。

3.1.4 关系链接 - Relationship Linking

通过relationship的明确标注和评分,确保图谱中的实体关系具有清晰的语义结构。

  • 识别实体之间的关系:LLM被提示识别出各实体之间的关系,基于每个实体的名称、描述、定义及其下级基础知识来建立这些关系。
  • 关系描述与评分:对于每一对实体,LLM会生成关系的描述(如"高度相关"、"中等相关"等),并对关系的紧密程度进行评分。最终生成加权有向图,将这些实体及其关系组织起来。

对于每一个data chunk,得到了一个有向无环图(meta-graph)

3.1.5 图谱合并 - Tags generation and merge the graphs

合并策略既保证了全局语义一致性,又保持了高效检索性能。

  • 合并元图(meta-graphs) :通过语义相似度,将多个元图合并成更大的图谱。LLM会根据预定义的医学类别(如症状、病史、功能等)为每个元图生成摘要标签(tags),这些标签用于计算元图之间的相似度,进而决定是否合并。
  • 控制合并过程:为了避免过度合并导致细节丢失,实际操作中限制了合并次数(如24次),确保最终生成的全局图谱能保持足够的细节。

3.2 图谱检索方法

**U-retrieve:**top-down retrieval, bottom-up response generation

**从全局图到元图检索:**通过从全局到局部的逐层索引,系统能够高效地处理大规模数据集,保持上下文相关性。

  • 顶层匹配 :检索过程从全局图(包含多个元图的较大图)开始。系统首先对顶层图的tag进行匹配,确定与查询相关的部分。
  • 逐层索引 :通过标签描述,系统逐步向下索引到更小的元图,逐步锁定与查询相关的子图。这个过程确保了全局上下文的一致性,同时避免了无关信息的干扰。

**从底层向顶层生成:**通过自底向上生成的策略,系统能够整合不同层次的图谱信息,从而生成内容丰富且具有全局视野的响应。

  • 检索相关实体和关系:在找到相关的元图后,系统会继续检索与查询相关的实体,并同时检索这些实体的TopK相关实体及其关系。
  • 生成中间结果:系统基于检索到的的实体和相关的知识生成一个中间结果。这个中间结果由与查询最相关的信息组成,通常包含原始的医学知识和解释。
  • 综合生成最终结果:中间结果与更高层次图谱中的tag信息结合,进一步生成详细或精炼的最终结果。生成采用自底向上的方式,确保上下文信息的完整性和准确性。

4 实验

4.1 数据集

4.1.1 问答数据源

Top-level Data

  • 数据来源 :主要来自用户提供的私有信息,例如医院的医疗报告和电子健康记录(EHR)。
  • 代表性数据集 :MIMIC-IV,公开的电子健康记录数据集,包含从 2008 年到 2019 年期间病人住院的数据。
  • 数据特点 :这层数据具有高度私密性,信息更新频率较高,主要用于特定用户的个性化医疗场景。这些数据包含详细的患者记录、诊断、治疗和临床笔记,具有较强的个性化和实时性。

Medium-level Data

  • 数据来源 :主要来自经过同行评审的医学书籍和学术论文
  • 代表性数据集 :MedC-K 数据集,包括 480 万篇生物医学领域的学术论文和 3 万本医学教科书。这些数据集通过清理和去重处理后,形成了大规模的医学知识库。
  • 数据特点 :这些数据提供最新的医学进展和研究成果,帮助确保生成的响应基于最新的知识。该层数据通常每年更新一次,以保持其前沿性。

Bottom-level Data

  • 数据来源 :来自权威的医学词典和知识库,主要用于定义医学术语及其语义关系。
  • 代表性数据集:UMLS(统一医学语言系统),这是一个整合了超过 200 个医学词汇表的大型数据集,包括 SNOMED CT 和 ICD-10。
  • 数据特点 :这层数据定义了医学术语的语义关系,主要用于确保每个医学实体的定义和关联具有权威性。这些数据更新频率较低,大约每 5 年或更久更新一次。

4.1.2 验证数据集

PubMedQA

  • 数据来源:该数据集来自 PubMed 摘要,专门用于生物医学研究问答。
  • 数据集内容 :主要关注通过多项选择(是、否、可能)的方式回答研究问题。数据集包含三部分:
    • PQA-L:1000 个经过人工标注的问答对,用于测试。
    • PQA-U:61,200 个未标注的问题对(不用于评估)。
    • PQA-A:211,300 个通过自动化方式生成的问题对。
  • 数据特点 :PubMedQA 专注于通过文献摘要回答医学研究相关的问题,测试模型在处理生物医学文献中的表现。

MedMCQA

  • 数据来源 :该数据集由印度医学院入学考试(AIIMS 和 NEET-PG)的练习题和考试题组成。
  • 数据集内容 :数据集分为训练集和测试集:
    • 训练集:182,822 道多项选择题。
    • 测试集:4,183 道多项选择题,每道题提供 4 个可能的答案。
  • 数据特点 :MedMCQA 测试的是医学知识,尤其是针对医学考试的多项选择问题,非常适合测试医学领域的基础知识理解和推理能力。

USMLE

  • 数据来源 :该数据集来自美国医学执照考试(USMLE)的多项选择题。
  • 数据集内容 :题目专为测试医疗专业人员的资格认证准备。该数据集是多语言的,涵盖了英语、简体中文和繁体中文版本,但评估时仅使用了英语部分的数据。
    • 英语部分包含 10,178 + 1,273 + 1,273 个问题数据。
  • 数据特点 :USMLE 以评估医学专业人员的准备情况为目标,涵盖从简单到复杂的医学问题。它是一个多语言数据集,适合跨语言评估模型的表现。

4.2 模型

  • LLaMA2LLaMA3:开源模型系列,经过进一步优化,适合广泛的语言任务和应用场景。
  • GPT-4:OpenAI 的旗舰模型,擅长处理复杂对话和生成任务,尤其适合医疗问答等高要求任务。
  • Gemini:Google 开发的对话系统模型,着重于自然语言理解和生成,适合对话式应用。

4.3 实验结果

4.3.1 MedGraphRAG相比于原生模型的提升

MedGraphRAG相对于pretrained模型均有提升

4.3.2 MedGraphRAG提供基于证据的回答

对复杂的医疗问题产生基于证据的回应,提高安全性和可解释性

4.3.3 对比SOTA医疗大模型

GPT-4 LLM + MedGraohRAG超越SOTA模型Medprompt 1.1%

4.3.4 消融实验

消融实验,针对混合文档分割策略,层次化图构建和U-Retrival方法进行验证,每种方法都能带来效果提升,结合使用效果更佳

5 结论

**MedGraphRAG,**通过多层次的图结构和检索策略,成功解决了 LLM 在处理复杂医学问题时的精确性、安全性和可靠性问题,未来可以探索该框架在更多领域和实时应用中的潜力,进一步推动医学领域 LLM 的发展和应用。

相关推荐
禁默8 分钟前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
Robot25116 分钟前
浅谈,华为切入具身智能赛道
人工智能
只怕自己不够好21 分钟前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤2 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭2 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~2 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码2 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow