当前位置: 首页 > news >正文

iText2KG:显著降低LLM构建知识图谱时的幻觉现象

iText2KG:借助大型语言模型实现知识图谱的增量构建

知识图谱

大多数数据都是非结构化的,难以提取有价值的信息。自动构建知识图谱(KGs)是解决这一问题的关键,它不仅使数据结构化,便于用户高效搜索,还能促进洞察和推理。传统的自然语言处理方法,如命名实体识别和关系提取,虽在信息检索中起重要作用,但受限于预定义实体类型和监督学习需求。当前研究利用大型语言模型的零-或少量-shot 学习能力,但仍面临未解决和语义重复的实体与关系问题,导致图谱不一致和大量后处理需求。此外,多数方法依赖特定主题。本文提出 iText2KG,一种无需后处理的增量、主题无关的 KG 构建方法。该即插即用、零-shot 方法包含文档提取、增量实体与关系提取及图谱集成与可视化四大模块,适用于多种场景,如科学论文、网站和简历的图谱转换,性能优于现有基线方法。


1. 当前知识图谱构建存在的问题

知识图谱通过捕捉实体之间的关系来构建知识的结构化表示,在分析文本数据集和从结构化异构数据中推断知识方面具有显著优势。比如,知识图谱能够融合来自多个来源的不同数据,提供一个具有凝聚力的信息视角。还能为文本语料库的分析提供更高层次的可解释性。

知识图谱的重要性不必多言,最近的GraphRAG又再一次将知识图谱掀起高潮。

1.1 传统知识图谱构建的问题

传统的命名实体识别、关系提取和实体解析是常用于将非结构化文本转化为结构化数据、捕获实体及其关联和相关属性的 NLP 技术。然而,这些方法存在一些局限性:往往局限于预定义的实体和关系,或者依赖特定的本体,并且大多依赖监督学习方法,需要大量的人工标注。

1.2 LLM时代知识图谱构建的问题

LLMs (大语言模型) 的最新进展在包括知识图谱补全、本体优化和问答等各类 NLP 任务中展现出了潜力和更优的性能,为知识图谱的构建带来了良好的前景。

LLMs 在少样本学习方面也表现出色,能够实现即插即用的解决方案,并且无需大量的训练或微调。由于它们在广泛的信息源中接受训练,因而能够跨不同领域提取知识。

所以,近期的研究已开始利用 LLMs 的发展成果,特别是其在知识图谱构建任务中的少样本学习能力。

不过,未解决和语义重复的实体及关系仍然构成重大挑战,导致构建的图谱出现不一致的情况,需要大量的后期处理。这些不一致可能表现为冗余、模糊以及图谱扩展的实际困难。

此外,许多现有的方法与主题相关,这意味着其有效性在很大程度上取决于其设计所针对的特定用例。这种依赖性限制了这些方法在不同领域的通用性,需要为每个新的主题领域定制解决方案。

基于大型语言模型(LLM)构建知识图谱(KG)的解决方案,可依据三种范式来分类:本体引导、微调以及零样本或少样本学习。

2. iText2KG

为了解决以上问题,作者提出了iText2KG。上图是 iText2KG 的工作流程概览。包含四个模块:

  • • 1)文档蒸馏器(Document Distiller):利用 LLM,将原始文档重新整理为预定义和语义块。该模式类似预定义的 JSON 结构,引导语言模型从每个文档中提取与特定键相关的特定文本信息;

  • • 2)增量实体提取器(Incremental Entities Extractor):获取语义块,识别语义块内独特的语义实体,消除歧义,确保每个实体都有清晰的定义并与其他实体区分开;

  • • 3)增量关系提取器(Incremental Relations Extractor):处理已解决的实体和语义块,以检测语义上独特的关系。

  • • 4)图集成器(Graph Integrator):使用 Neo4j 以图形格式直观地呈现这些关系和实体。

2.1 文档蒸馏器(Document Distiller)

运用大型语言模型(LLM)依照预定义的模式(Schema)或蓝图将输入文档重写为语义块。这些模式(Schema)并非本体,而是一个蓝图,使 LLM 倾向于特定类别,同时在其他方面保持灵活性。

实际上,该模式(Schema)的功能类似于预定义的 JSON,引导 LLM 从每个文档中为特定的键提取特定的值(文本信息)。在这个项目的Github仓库里可以找到一些这种Schema的示例(如下图):

对于每个文档,如果其中存在所需信息,将获得一个半填充的 JSON。

然后将所有这些半填充的 JSON 聚合起来,形成文档的语义块。

该模块的主要目标为:

-(a)通过减少可能用冗余信息污染图形的噪声来提高信噪比。

-(b)利用模式引导图形构建过程,特别是针对概念键。例如,对于一篇科学文章,能够提取“标题”和“作者”,并添加诸如“具有标题”和“具有作者”之类的关系以及语义信息。为确保解决方案在各种用例中的适用性,Schema是一个取决于用户偏好和用例特殊性的输入。通过重新制定原始文档来增强图形构建过程的构想已被以下论文所证实。

2.2 增量实体提取器(Incremental Entities Extractor)

增量式实体匹配器(iEntities Matcher)会遍历所有语义块并提取全局文档实体。

iEntities Matcher 的主要算法如上图。

iEntities Matcher的核心算法是先利用大型语言模型(LLM)从首个语义块(即文档0)中提取实体,构建全局实体集ℰ,且假定这些实体在首次迭代中仅此一次成对独立。

遵循约束(C1,原文具体定义,即:实体和关系都应该描述一个语义上独特的概念。),引导LLM提取单一概念的实体,以避免语义混淆。

对于文档集合中的后续文档,算法抽取局部实体,并尝试将其与全局实体集中的实体进行匹配。

如果局部实体在中找到对应,则加入到匹配集中。

若未找到,算法将使用预设阈值的余弦相似度在中寻找相似实体。若依然无匹配项,局部实体将直接加入匹配集;

若有,则基于最高相似度选取最佳匹配的全局实体加入。随后,全局实体集通过与匹配集的合并进行更新。

这一流程在文档集合中的每个文档上重复执行,最终形成一个全面的全局实体集。

2.3 增量关系提取器(Incremental Relations Extractor)

将全局文档实体与每个语义块一同作为上下文提供给增量式关系匹配器(iRelations Matcher)以提取全局文档关系。

采用了与 iEntities Matcher 相同的方法。

根据将全局实体还是本地实体作为与语义块一起的上下文提供给 LLM,关系提取会有不同的表现。

当提供全局实体作为上下文时,LLM 会提取语义块直接陈述和隐含的关系,特别是对于语义块中未明确存在的实体。这为图形丰富了潜在信息,但增加了不相关关系出现的可能性。

相反,当提供本地匹配的实体作为上下文时,LLM 仅提取上下文直接陈述的关系。这种方式降低了图形的丰富程度,但也降低了不相关关系的概率。

iRelations Matcher 的两个版本如上图所示,蓝色表局部实体(Local),红色表示全局实体(Global)。

2.4 图集成器(Graph Integrator)

将全局文档实体和全局文档关系输入到 Neo4j 中以构建知识图谱。

这一部分作者描述的比较简单,大家有兴趣可以去Github查看该部分的源代码:

https://github.com/AuvaLab/itext2kg/tree/main/itext2kg/graph_integration

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈


3. 效果评估

所有实验中,作者均选用了 GPT-4 来作为基础模型进行评估。GPT-4 即便在零样本的情境下,也能达成近乎微调后的顶尖性能。

采用了三个用例:网站转化为知识图谱、科学文章转化为知识图谱以及简历转化为知识图谱分别对各个模块进行效果评估,确保 iText2KG 能在不同的知识图谱构建场景中适用。

3.1 文档蒸馏器效果评估

作者首先对模块 1 (文档蒸馏器)进行评估,以确保所提取的信息与模式及输入文档的语义相符。针对该模块,作者提出了以下指标:

  • • 模式一致性(Schema consistency):检验重写文本内容是否与输入的架构相符。对于架构中每个关键点,我们定义 Cs(K)为正确对应到该关键点相关架构的元素数目。Is(k) 为那些被加入但不属于架构的元素数目。架构中某个关键点的一致性得分计算如下:

  • • 信息一致性(Information consistency):评估重写文本的内容是否与原始报告的语义相符,具体分类为:差异极大(<30%)、中等差异(30-60%)、大致一致(60-90%)和完全一致(>90%)。
3.1.1 模式一致性

上表显示,文档蒸馏器在各类文档类型中均实现了较高的模式一致性。

科学文章和简历呈现出最高的模式一致性得分,表明该模块处理结构化信息的能力出色,特别是对于主要依靠标题来组织数据的文档。

网站的一致性得分仍高达 0.94,但相对略低,这或许是由于网络内容的多样性和结构化程度较低所致。

表明文档蒸馏器在处理和从不同类型文档中提取结构化信息方面的稳健性和适应性。

3.1.2 信息一致性

上图展示了不同类型文档(简历、科学文章和网站)的信息一致性情况。

对于简历,大部分信息(74.5%)完全一致,25.5%大致一致,不存在中等一致性。表明重写的文本与简历原始内容的语义高度匹配。因为简历主要以清晰简洁的短语编写,使得大型语言模型更易于捕捉语义。

对于科学文章,57.1%的信息完全一致,42.9%大致一致,在保留原始语义方面展现出较高的准确性,尽管略逊于简历。这在预料之中,特别是鉴于科学文章是用更为复杂的科学英语撰写的。

网站有 56.0%的信息完全一致,24.0%大致一致,20.0%为中等一致性。这可能归因于网络内容的非结构化特性,这给准确的语义重写带来了更大的挑战。

3.2 增量实体提取器和增量关系提取器效果评估

  • • 三元组提取精度(Triplet Extraction Precision):不关心实体/关系解析过程,直接评估与相应文本的三元组一致性。三元组有的时候是隐含的,不一定直接由文本表述。将精度得分定义为提取的相关三元组数量除以提取的三元组总数。

  • • 实体/关系解析错误发现率(Entity/Relation Resolution False Discovery Rate):评估在提取的实体或关系总数中未解决(假阳性)的实体或关系所占比例。具体而言,计算未解决的实体或关系与提取的实体或关系总数的比率。通过突出总提取中的错误(未解决的实体/关系)比例,表明实体和关系提取过程的可靠性。

3.2.1 三元组提取

参照上图,作者分别对使用全局还是局部实体作为上下文进行比较,比较二者在关系提取方面呈现出不同的表现。

当以全局实体作为上下文时,相关三元组的精度比以局部实体作为上下文时低 10%。当使用全局实体作为上下文时,大型语言模型会提取语义块中明确提及和隐含的关系。这会形成一个更丰富的图,包含更多潜在信息,但也有更高的出现不相关关系的可能性。

使用局部实体 作为上下文会致使大型语言模型仅提取直接陈述的关系,从而导致生成的图不够丰富,但不相关关系出现的可能性较低。

这体现了一种取决于用例的权衡。作者让用户决定是接受精度降低 10%以换取更丰富的图,还是获取 10%的精度但得到相对不那么丰富的图。

3.2.2 实体/关系解析

LlamaIndex 为检索增强生成(RAG)构建具有边级和节点级文本信息的未连接子图;因此,未将 LlamaIndex 与 iText2KG 进行对比评估。

从上面两个图中,可以看出 iText2KG 在三个不同的知识图谱构建场景中,在实体和关系解析过程方面取得了更优的成果。

此外,结果显示,当输入文档数量较少且具有清晰、非复杂的短语时,大型语言模型在实体和关系解析方面表现出色,如简历到知识图谱的过程所示。

此外,网站到知识图谱中未解决实体和关系的错误发现率高于其他知识图谱构建场景。是由于文档(块)数量较多以及网站文本信息的非结构化特性所致。

因此,只要文档(块)数量庞大且文本是非结构化且语言复杂,实体/关系解析过程对于构建一致的知识图谱就变得至关重要。

4.3 阈值估计

为基于余弦相似度估计合并实体和关系的阈值,使用 GPT-4 生成了一个包含 1500 个相似实体对和 500 个关系的数据集,其灵感源自不同领域。

4.4 整体效果

上图对比了其他方法与iText2KG在三种不同情境下的表现:

  • • 其他基准方法在所有三种知识图谱构建情境中都暴露出孤立节点,这些节点间缺乏联系。可能由于实体和关系提取的同时进行,导致语言模型产生幻觉效应,进而引起“遗忘”现象。可以通过分离实体和关系提取步骤可以提升性能。

  • • 在“网站至知识图谱”的场景中,输入文档数量的增加往往导致图中噪声节点的增加。表明文档蒸馏在有效提炼和精炼输入数据方面的重要性。

  • • iText2KG方法在三种知识图谱构建情境中均展现出了更优的实体和关系解析能力。当输入文档较少且内容简单、不复杂时,语言模型在实体和关系解析上表现出高效性,这一点在“简历至知识图谱”的流程中得到了体现。然而,随着数据集变得更为复杂和庞大,挑战也随之增大,如“网站至知识图谱”的场景。输入文档的分块大小和阈值对知识图谱构建的影响不容忽视。文档蒸馏器的输入可以是独立文档或分块。分块越小,语义块能捕捉到的文档细节就越具体,反之亦然。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • React第五章(swc)
  • npm i:【idealTree:vue.web: sill idealTree buildDeps vue3拉取jQuery卡慢失败:[解决]】
  • LabVIEW如何确保采集卡稳定运行
  • Linux 磁盘扩容操作指引
  • 深入CSS 布局——WEB开发系列29
  • 【JavaSE】重写equals()和hashCode()
  • 2409wtl,网浏包装
  • 程序员如何写笔记?
  • 软件开发人员从0到1实现物联网项目:项目架构的思考
  • 基于聚类与LSTM对比特币价格深度分析与预测
  • 开机自动启动nginx
  • 【无人机设计与控制】 四轴飞行器的位移控制
  • Spring WebSocket 快速示例
  • 【空气能热泵热水系统原理
  • 容器测评十个热门小知识
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Angular 响应式表单之下拉框
  • C++类的相互关联
  • Create React App 使用
  • ES6 ...操作符
  • GraphQL学习过程应该是这样的
  • java小心机(3)| 浅析finalize()
  • nodejs调试方法
  • node和express搭建代理服务器(源码)
  • opencv python Meanshift 和 Camshift
  • PHP 的 SAPI 是个什么东西
  • Sublime text 3 3103 注册码
  • Xmanager 远程桌面 CentOS 7
  • 回顾2016
  • 将 Measurements 和 Units 应用到物理学
  • 聚类分析——Kmeans
  • 前端技术周刊 2019-02-11 Serverless
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 微信开源mars源码分析1—上层samples分析
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #HarmonyOS:软件安装window和mac预览Hello World
  • #Java第九次作业--输入输出流和文件操作
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (学习日记)2024.01.19
  • (一)认识微服务
  • (原)本想说脏话,奈何已放下
  • (转)socket Aio demo
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .net通用权限框架B/S (三)--MODEL层(2)
  • .Net中间语言BeforeFieldInit