Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径

news2024/11/13 9:24:46

Tree-of-Traversals:结合知识图谱与大模型,通过树遍历和回溯寻找高置信度推理路径

    • Tree-of-Traversals算法解析
    • 对比 MindMap
      • 1. 与知识图谱(KGs)的整合
      • 2. 推理方法
      • 3. 灵活性与可扩展性
      • 4. 在医学诊断中的应用
    • 速度和准确
      • 1. 速度
      • 2. 推理的全面性
      • 3. 准确性
      • 总结

 


论文:Tree-of-Traversals: A Zero-Shot Reasoning Algorithm for Augmenting Black-box Language Models with Knowledge Graphs

代码:https://github.com/amazon-science/tree-of-traversals

随着强大的 LLMs 新功能的涌现,结合知识图谱的兴趣也随之复苏。最近的一系列调查和论文强调了结合使用 LLMs 和 KGs 的巨大潜力。目前,LLMs 与 KGs 的结合方式多样,如在预训练阶段集成,进行微调或后期适配,但这些方法都存在局限。

尤其是,训练或微调大型语言模型不仅成本高昂,而且在很多情况下,模型的权重并不是公开可获取的。

此外,最大的知识图谱需要独立的服务器托管,无法直接在内存中与语言模型集成。以前的研究也未涉及同时与多个知识图谱结合的场景。

我们提出了一种创新的推理算法——“树遍历”,它允许在不重新训练或微调的情况下,将任意数量的知识图谱以零次射击方式加入到强大的黑盒式大型语言模型中。

这种方法使得客户可以安全地结合使用黑盒 LLM API 和专门领域的内部知识图谱,或者通过各种可通过 API 访问的知识图谱将深入的领域知识融入其中,而无需担心使用个人数据训练模型可能带来的风险。

我们的研究成果主要包括以下几个方面:

  1. 我们提出了“树遍历”算法,这是一种创新的零次射击推理算法,它可以增强任何强大的大型语言模型,并利用树状搜索进行高级知识图谱推理。
  2. 我们在两个广泛使用的基准测试集上对“树遍历”进行了评估,并将其性能与现有基线进行了比较。
  3. 我们还开发了一个新的数据集,用于测试在通用及特定领域知识图谱上的综合推理能力,并在这一数据集上对“树遍历”算法进行了测试和评估。

我们提出的“树遍历”算法主要包括三个部分:

  • 首先,知识图谱接口允许与一个或多个知识图谱进行交互;
  • 其次,动作状态机(ASM),这是一个有限状态机,它定义了可行的动作、状态和在大型语言模型与知识图谱互动扩展本地知识图谱子图时使用的提示模板;
  • 最后,树形搜索算法决定了整体的搜索路径,包括最优先搜索、错误后的回溯以及找到答案时的终止。
├── 2 树遍历(Tree-of-Traversals)算法【技术核心】
│      ├── 输入【开始数据】
│      │      ├── 问题查询:来自用户的问题【问题输入】
│      │      └── 知识图谱数据:包含实体及其关系的结构化信息【数据输入】
│      ├── 处理过程【算法执行】
│      │      ├── 初始化【处理步骤】
│      │      │      ├── 提取实体:从问题中识别关键实体【技术应用】
│      │      │      └── 建立本地子图:在KG中形成相关的实体和关系子集【技术应用】
│      │      ├── 动作状态机(ASM)【处理步骤】
│      │      │      ├── 定义可能的动作:根据问题确定可执行的动作【决策过程】
│      │      │      └── 管理状态转换:控制从一个状态到另一个状态的过渡【状态管理】
│      │      └── 树搜索算法【处理步骤】
│      │             ├── 生成思考路径:利用LLM产生可能的思考路径和动作【推理生成】
│      │             ├── 执行动作:根据生成的路径在KG中执行操作【动作执行】
│      │             └── 评估和选择:对产生的结果进行评估,选择最佳路径【结果评估】
│      └── 输出【结果产出】
│             ├── 答案生成:LLM根据最终的KG状态生成答案【输出内容】
│             └── 更新的知识图谱:展示处理过程中对KG的更新或扩展【输出内容】
│
└── LLMs与KGs的整合【应用领域】
       ├── 增强推理能力,更新LLMs的能力而无需重新训练【应用效果】
       └── 自动化复杂的决策过程,改善如问答等数据驱动的任务【应用效果】

针对这个实际的医学问诊问题:“医生,我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”,我们可以通过穿越树(Tree-of-Traversals)算法来演示如何进行分析和诊断。

患者询问:“医生,我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”

  1. 输入
  • 问题查询:“我最近经常牙疼,刷牙的时候经常出血,是不是牙龈出问题了?”
  • 知识图谱数据:包含有关牙科疾病(如牙龈炎、牙周炎)、症状、治疗方法以及相关生活习惯信息的医学知识图谱。
  1. 处理过程
  • 初始化

    • 提取实体:识别“牙疼”和“刷牙出血”作为关键症状。
    • 建立本地子图:构建涉及这些症状及可能相关疾病如牙龈炎和牙周炎的知识子图。
  • 动作状态机(ASM)

    • 定义可能的动作:包括查询牙龈疾病的病因、症状、并发症和治疗方法。
    • 管理状态转换:从识别症状到关联病因和推荐治疗。
  • 树搜索算法

    • 生成思考路径:模拟可能的医疗诊断路径,例如探索牙龈炎引起的症状与治疗。
    • 执行动作:在知识图谱中执行搜索,更新关于牙龈状况的信息。
    • 评估和选择:评估不同诊断的可信度,选择最匹配患者描述的诊断结果。
  1. 输出
  • 答案生成:可能的诊断结果,如“牙龈炎可能是导致您牙疼和刷牙时出血的原因。”
  • 更新的知识图谱:包括关于牙龈炎及其治疗的最新医学信息,可能还包括预防措施和日常护理建议。

技术和方法解释及衔接

  • 知识图谱的使用:为算法提供牙科相关的详细医学背景,使算法能够基于实际情况进行深入的医学推理。
  • 动作状态机和树搜索算法的结合:通过ASM提供明确的动作指南和状态管理,以及树搜索算法的推理能力,确保从患者症状到可能的病因之间的逻辑推理精确且高效。
  • 零样本推理的优势:算法能够在没有特定训练样本的情况下处理复杂的医疗问题,适应各种未知或新出现的症状描述。

这幅图是一个关于如何使用一种名为“树遍历”的算法来解决一个具体问题的示例。这个问题是查询在两部电影《盗梦空间》和《星际穿越》中都有演出的演员。这个过程通过与知识图谱的交互完成,分以下几个步骤说明:

  1. 初始化:算法开始时,会根据问题中提到的电影《盗梦空间》和《星际穿越》,在知识图谱中标记出这两个实体。
  2. 选择操作:算法会决定是直接尝试回答问题,还是继续在知识图谱中寻找更多信息(称为“扩展KG”)。在这个例子中,算法选择了“扩展KG”以获取更多信息。
  3. 细化搜索:算法接着选择特定的实体(电影),并决定探索与这些电影相关的哪种信息(例如导演或演员)。
  4. 回溯:如果选定的路径没有产生有价值的信息(即答案的价值低),算法会退回到之前的步骤,选择其他可能的路径。
  5. 得出答案:最终,算法收集所有需要的信息后,会生成答案。在这个例子中,正确的答案是演员迈克尔·凯恩,因为他在这两部电影中都有出演。

每个步骤都用不同的方框和箭头表示,显示了从问题到答案的整个决策过程。这种方法可以帮助算法在复杂的查询中找到准确的答案,通过不断在知识图谱中搜索和回溯来提高回答问题的准确性。

Tree-of-Traversals算法解析

目的:提高大型语言模型(LLMs)在处理复杂查询时的推理能力和准确性,通过结合知识图谱(KGs),使LLMs能够更有效地处理和解答具体领域的问题。

问题:单独的LLMs在没有足够具体领域知识支持时,可能无法准确回答或推理出特定领域(如医学、法律等)的详细问题,因为它们的训练数据可能不包含足够的领域特定信息,或者信息已经过时。

解法:通过结合知识图谱和动态的搜索算法(树搜索算法)来增强LLMs的问题解决能力,使其能够访问和利用最新的、结构化的领域知识。

  1. 知识图谱接口(子解法1)

    • 特征:提供了结构化的、领域特定的知识,如实体、属性、关系等。
    • 之所以用知识图谱接口,是因为这些结构化的信息可以直接增强LLMs的知识库,使其对领域内的具体问题有更深入的理解。例如,医学领域的知识图谱可以帮助LLM更好地理解疾病和症状之间的关系。
  2. 动作状态机(ASM)(子解法2)

    • 特征:管理和维护可能的动作和状态,提供决策支持。
    • 之所以用动作状态机(ASM),是因为它可以根据当前的查询和可用的知识图谱信息确定最佳的行动路径。例如,面对一个关于药物副作用的查询,ASM能确定是否需要进一步查询特定药物与其他疾病的关联。
  3. 树搜索算法(子解法3)

    • 特征:执行复杂的推理和搜索任务,通过模拟多种可能的推理路径来寻找最佳答案。
    • 之所以用树搜索算法,是因为它可以在可能的解答空间内有效地导航,找到最准确的回答。例如,在处理法律相关查询时,树搜索算法可以评估不同法律规则的适用性并选择最相关的法条。

对比 MindMap

在医学诊断领域对比“树遍历”算法与“MindMap”时,几个关键方面凸显了它们的方法、优势和潜在应用:

1. 与知识图谱(KGs)的整合

  • 树遍历:

    • 无需重新训练或微调LLMs,便可与一个或多个知识图谱动态整合。此方法采用零次射击方式,根据特定查询上下文与知识图谱进行交互。
    • 侧重于使用基于树的搜索方法在知识图谱中导航,有效利用结构化知识进行推理。
  • MindMap:

    • 同样动态连接到知识图谱,但强调使用知识图谱提示来激发LLM内部的思维图。这增强了LLM的自然语言处理能力及其整合和推理新的、结构化信息的能力。
    • 使用可视化思维图来增加透明度,并提供可追溯的推理路径,这在医学诊断中至关重要,有助于理解模型的决策过程。

2. 推理方法

  • 树遍历:

    • 利用动作状态机(ASM)和树搜索算法来确定查询解决的最佳路径。这包括生成潜在的推理路径,执行知识图谱中的动作,并根据评估选择最佳结果。
    • 旨在通过动态导航一系列可能解决方案的树来处理复杂查询,使其高度适应不同的诊断场景。
  • MindMap:

    • 结合大型语言模型的能力和知识图谱来执行复杂的、多步骤的逻辑推理。专注于通过模拟类人思维过程的方式增强LLM的推理能力。
    • 在生成决策解释方面表现强劲,这在医学诊断中非常有益,为每个诊断建议提供清晰的理由。

3. 灵活性与可扩展性

  • 树遍历:

    • 高度灵活,允许与任意数量的知识图谱整合,且不依赖于模型重训练。这使得它能够在不同领域内扩展,无需额外的显著成本。
    • 该算法的回溯和探索多路径的能力确保了在复杂的诊断场景中的鲁棒性,特别是在可能有多个可行诊断时。
  • MindMap:

    • 通过动态更新其知识库的能力,也显示出在整合新知识领域时的显著灵活性,这在医学等快速发展的领域中尤为重要。
    • 系统的模块化在添加或修改知识领域时快速适应新的应用,使其在大规模医疗应用中既可扩展又高效。

4. 在医学诊断中的应用

  • 树遍历:

    • 其树搜索方法可以系统地探索各种诊断假设,评估它们,并在必要时进行回溯,类似于医疗专业人员如何权衡不同的诊断可能性。
    • 零样本学习方法确保了系统可以在没有针对特定医疗数据训练的情况下部署在医疗场景中,从而尊重隐私问题和数据敏感性。
  • MindMap:

    • 通过创建可视化思维图,MindMap能为医疗专业人员提供清晰且可解释的推理过程视图,帮助在需要多个专家合作和理解AI决策过程的复杂案例中。
    • 其能够结合并推理大量的医疗数据使其特别适用于深入诊断,理解症状、疾病和治疗之间的关系至关重要。

速度和准确

在比较“树遍历”和“MindMap”这两种技术在速度、推理全面性和准确性方面时,每种方法都有其独特的优势和局限。这些差异主要源于它们对知识图谱的不同使用方式和推理策略。

1. 速度

  • 树遍历:

    • 优势: 由于树遍历算法采用了零次射击(zero-shot)方法,无需预训练或微调,可以直接与多个知识图谱动态交互。这使得在不需要长时间加载或处理大量数据的情况下快速响应。
    • 局限: 虽然响应速度快,但复杂查询的处理速度可能因需要进行多次树形搜索和回溯而变慢,尤其是在面对广泛的知识图谱数据时。
  • MindMap:

    • 优势: MindMap通过构建可视化的思维图,增强了信息的透明度和可追踪性,但这种方法在处理速度上可能不如树遍历快,尤其是在构建和更新复杂思维图时。
    • 局限: 在生成详尽的推理路径时,可能需要更多的计算资源和时间,特别是当涉及到大规模或复杂的知识图谱时。

2. 推理的全面性

  • 树遍历:

    • 优势: 通过树搜索算法,能够探索多个潜在的推理路径,提供多方案的解决策略,这在处理复杂和多变的医疗诊断问题时尤其重要。
    • 局限: 尽管可以探索多条路径,但全面性的保证依赖于算法能否全面覆盖所有相关的知识图谱节点和连接,这可能受限于知识图谱的完整性和算法的搜索深度。
  • MindMap:

    • 优势: 通过结合知识图谱和大型语言模型的自然语言处理能力,MindMap在生成推理过程时能够考虑更多的上下文和连接,提供更为全面和深入的推理。
    • 局限: 虽然推理过程全面,但其效率和全面性同样受限于所使用知识图谱的质量和更新频率。

3. 准确性

  • 树遍历:

    • 优势: 能够动态地从多个知识图谱中获取信息,并通过实时的树形搜索确保根据最新和最相关的数据生成答案,增强了准确性。
    • 局限: 准确性在一定程度上依赖于搜索算法的有效性和知识图谱的质量。如果搜索算法未能覆盖所有相关数据或知识图谱存在缺陷,则可能影响结果的准确性。
  • MindMap:

    • 优势: 通过生成可视化的思维图和结合LLM的理解能力,MindMap可以提供非常详细和准确的推理结果,尤其是在需要深入分析的医学诊断中。
    • 局限: 准确性虽高,但如同全面性一样,也依赖于知识图谱的更新和准确度。此外,复杂的推理图可能在某些情况下导致过度复杂化,影响决策的速度和直观性。

总结

选择“树遍历”或“MindMap”依赖于特定应用的需求。如果项目需要快速响应和能够处理多来源信息的能力,可能倾向于选择“树遍历”。而在需要高度透明和详细解释推理过程的应用,尤其是在医疗诊断等领域,"MindMap"可能更为合适。

两者都能提供高准确性,但其效果依赖于所依赖知识图谱的质量和完整性。

“树遍历”和“MindMap”都为整合知识图谱与大型语言模型以增强医学诊断提供了坚实的框架。

选择哪一种将取决于特定需求,如需要透明度(MindMap)、灵活地与多个知识图谱整合的能力(树遍历),以及系统的推理风格如何与预期的医疗应用相匹配。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1975005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构第九讲:二叉树

数据结构第九讲:二叉树 1.实现链式结构二叉树1.1二叉树的节点结构1.2创建二叉树节点1.3前中后序遍历1.3.1前序遍历1.3.2中序遍历1.3.3后序遍历1.3.4总结 1.4二叉树结点的个数1.4.1错误示范1.4.2实现方法 1.5二叉树叶子结点的个数1.6二叉树第k层结点的个数1.7二叉树的…

看门狗应用编程-I.MX6U嵌入式Linux C应用编程学习笔记基于正点原子阿尔法开发板

看门狗应用编程 看门狗应用编程介绍 看门狗定时器的基本概念 看门狗是一个可以在一定时间内被复位/重置的计数器 如果在规定时间内没有复位,看门狗计时器溢出会对CPU产生复位信号使系统重启 有些看门狗可以只产生中断信号而不会使系统复位 I.MX6UL/I.MX6ULL So…

如何减少内存碎片的产生——页

文章目录 1 页的设计目的2 进程块和主存块的对应关系3 页、页框、页表3.1 页(Page)3.2 页框(Page Frame)3.3 页表(Page Table) 4 逻辑地址到物理地址的转换4.1 转换过程4.2 具体示例4.3 图示 参考资料封面 …

C语言程序设计25

《C程序设计教程(第四版)——谭浩强》 习题2.2 分析下面程序的运行结果,然后上机验证。 代码: //《C程序设计教程(第四版)——谭浩强》 //习题2.2 分析下面程序的运行结果,然后上机验证。#inc…

【C语言篇】操作符详解(下篇)

文章目录 操作符详解(下篇)前言条件操作符移位操作符左移操作符右移操作符 位操作符下标引用操作符函数调用操作符 操作符的属性:优先级和结合性优先级结合性表达式求值整形提升算术转换 操作符详解(下篇) 前言 操作…

JavaScript基础——JavaScript常见语句(判断语句、循环语句、控制流语句)

JavaScript提供了丰富的语句来控制程序的执行流程,包括用于条件判断的if、switch和三元运算符,以及用于循环的for、while、do...while、for...in和for...of。此外,还有控制流语句如break、continue和return。 判断语句 if 语句 if 语句&…

C/C++开发,opencv轮廓提取实现

一、cv::findContours轮廓提取函数 1.1 cv::findContours函数简介 cv::findContours 函数是用于从二值图像(灰度图)中检索轮廓。这个函数在OpenCV的不同版本中参数可能有所不同,但基本概念保持一致。特别是在OpenCV 3.x和4.x版本中&#xff…

贪吃蛇(使用QT)

贪吃蛇小游戏 一.项目介绍**[贪吃蛇项目地址](https://gitee.com/strandingzy/QT/tree/zyy/snake)**界面一:游戏大厅界面二:关卡选择界面界面三:游戏界面 二.项目实现2.1 游戏大厅2.2关卡选择界面2.3 游戏房间2.3.1 封装贪吃蛇数据结构2.3.2 …

如何通过谷歌外链快速增加网站流量?

利用谷歌外链提升流量的方法非常直接,但实际上,外链影响的是关键词排名,关键词排名提升了,自然就会有流量,所以谷歌外链不是直接能提升网站流量,而是间接的,下面,我会详细介绍几种有…

验收测试:确保软件符合业务需求和合同要求

目录 前言1. 验收测试的概念1.1 用户验收测试(UAT)1.2 操作验收测试(OAT) 2. 验收测试的主要作用2.1 确认业务需求的满足2.2 验证合同要求的实现2.3 提升用户信心 3. 验收测试在整个测试中的地位3.1 测试的最后一道关卡3.2 用户与…

niushop逻辑漏洞

niushop逻辑漏洞 安装环境 这里控制不了 抓包在数据包中可以改数据

非线性系统稳定控制器设及案例仿真(s-function函数)

目录 前沿一、案例11. 系统模型 二、案例21. 系统模型2. 稳定性分析3. 仿真(包含代码)1. 仿真效果2. 仿真结果3. 仿真剖析4. 仿真图与代码 前沿 定义一个系统 x ˙ f ( x , u ) \dot{x} f(x,u) x˙f(x,u), 其中 x x x 为状态变量, u u u 为系统输入&#xff0c…

跨平台终端工具Tabby安装配置与远程ssh连接Linux_ubuntu详细教程

文章目录 前言1. Tabby下载安装2. Tabby相关配置3. Tabby简单操作4. ssh连接Linux4.1 ubuntu系统安装ssh4.2 Tabby远程ssh连接ubuntu 5. 安装内网穿透工具5.1 创建公网地址5.2 使用公网地址远程ssh连接 6. 配置固定公网地址 前言 今天和大家分享一下如何在Windows系统使用Tabb…

构建LVS负载均衡群集

构建LVS负载均衡群集 实验环境实验环境 201:客户端 101:调度器 (需要用到2个网卡) 102:web 103:web 104:NFS存储 101:(添加一个网卡) 2 [root@localhost ~]# cd /etc/sysconfig/network-scripts/ 3 4 //查看另一个网卡的名字ens36 5 [root@localhost network-scrip…

人工智能深度学习系列—深度学习中的相似性追求:Triplet Loss 全解析

文章目录 1. 背景介绍2. Loss计算公式3. 使用场景4. 代码样例5. 总结 1. 背景介绍 在机器学习和模式识别领域,相似性度量是核心问题之一。Triplet Loss,作为一种特殊的损失函数,被设计用来学习数据的相对距离,从而使得相似样本更…

5.C_Demo_排序

冒泡排序法 原理: 依次比较相邻的两个元素,如果顺序错误就交换。 思路: 这种方法,显然需要很多轮才能完成,每一轮只能排序一个最大值或最小值(第一层for),将全部的数据排序完成,需要很多轮(第…

第三期书生大模型实战营之书生大模型全链路开源开放体系

一. Introduction 大模型是发展通用人工智能的重要途经 二. 开源历程以及InternLM2 2024年1月17日 InternLM2 2开源 三. 书生浦语2.0的主要亮点 3.1 超长上下文 3.2 综合性能全面提升 3.3 优秀的对话和创作体验 3.4 工具调用能力整体升级 3.5 突出的数理能力和实用的…

Among Us 私服的制作之路

文章目录 Among Us 私服的制作之路这游戏通常包括以下核心元素:角色设定:游戏机制:游戏界面: 第四步:添加社交特性第五:测试与优化方面 十分基础的框架(Web)注意事项 Among Us 私服的制作之路 作者正在准备…

嵌入式:简单的UI框架

1:UI框架简介 除了服务框架外,我们还需要对外显示UI,所以我们就需要一个UI的框架,跟服务框架一样,不用这个UI框架我们也是可以实现,但是这样每个人写的UI都会有差异,需要的事件,数据…

牛客JS题(二十)判断斐波那契数组

注释很详细&#xff0c;直接上代码 涉及知识点&#xff1a; 循环判断斐波那契数列组递归判断斐波那契数列组合法性判断 题干&#xff1a; 我的答案 <!DOCTYPE html> <html><head><meta charset"utf-8" /></head><body><scrip…