知识图谱与大模型结合三大方向时间线探索
今天是2024年11月25日,星期一,北京,天气阴。继续聊大模型与知识图谱的结合。这两个东西本身就是参数知识(LLMs)和显式知识(KGs)的一次正面交锋,关于结合,已经说过不少了。一年多下来,涌现了大量两者融合的工作。这里利用周末时间,做了一份综述的综述总结,归整了一下。主要将这种结合分成三个方向
今天是2024年11月25日,星期一,北京,天气阴。
继续聊大模型与知识图谱的结合。这两个东西本身就是参数知识(LLMs)和显式知识(KGs)的一次正面交锋,关于结合,已经说过不少了。
一年多下来,涌现了大量两者融合的工作。这里利用周末时间,做了一份综述的综述总结,归整了一下。
主要将这种结合分成三个方向:一是大模型与知识图谱在训练路线上的结合探索;二是知识图谱用于缓解大模型幻觉的路径总结;三是大模型与RAG结合的GraphRAG总结。
按时间线和方向线来梳理,会很有意思——两种技术的结合路径,正变得越来越清晰。多总结,多回顾,多思考,收获会更多,供大家一起参考。
一、大模型与知识图谱在训练路线及结合的路线探索
首先,知识图谱自身的发展进程,这里不多赘述,可以看《On the Evolution of Knowledge Graphs: A Survey and Perspective》(https://arxiv.org/pdf/2306.11489),了解知识图谱从静态到动态、到时序再到事件图谱的演变过程。

切入正题,先看结合的综述。最早的《A survey of knowledge enhanced pre-trained language models》(https://arxiv.org/pdf/2211.05994)是较早的综述,当时ChatGPT还未出现,大家关注的重点是如何解决预训练语言模型(PLMs)在自然语言处理任务中的知识表示和推理能力不足的问题。尽管PLMs在下游任务中表现优异,但缺乏外部知识的显式表示,推理能力存在局限。由此催生了知识增强预训练语言模型(KE-PLMs)的研究,论文从知识源类型、知识粒度和应用三个角度进行了分类和总结。
这篇论文将KE-PLMs分为四类知识:语言学知识、文本知识、知识图谱和规则知识。语言学知识包括词汇知识和句法树知识,代表方法有LIBERT、SenseBERT、SKEP等。文本知识方面有KNN-LM、REALM等。知识图谱方面有ERNIE、KEPLER等。规则知识方面有RuleBERT、PTR等。

在NLG中的知识融合方面,可以分为基于检索的方法和基于知识图谱的方法。基于检索的方法包括MemNet、RAG等;基于知识图谱的方法包括CE-PR、MRG等。

大模型出现后,对知识图谱产生了一定冲击,大家开始思考两者如何结合。去年6月,《Unifying Large Language Models and Knowledge Graphs: A Roadmap》(https://arxiv.org/pdf/2306.08302)提供了一个很好的总结,其中能看到不少方向性的指引。


这是一个早期的展望,后续开始从不同角度衍生。
同样在6月,《Give Us the Facts: Enhancing Large Language Models with Knowledge Graphs for Fact-aware Language Modeling》(https://arxiv.org/pdf/2306.11489) 顺应当时大模型的训练过程,总结出知识图谱参与大模型训练各个阶段的方案。


去年8月,《Large language models and knowledge graphs: Opportunities and challenges》(https://arxiv.org/pdf/2308.06374) 讨论了LLMs(参数知识)和KGs(显式知识)的常见争论点,并探讨了两者结合的机会和愿景,提出了一些思路。当时来说算是比较早的。
例如:实体解析和匹配(使用LLMs帮助标注训练数据,减少手动标注工作量,LLMs可以生成高质量的规则库用于实体匹配);表格数据处理(利用Transformers模型处理表格数据,将其转换为序列形式输入LLMs,方法包括TURL、RPT和Starmie等);文本知识提取(使用LLMs进行命名实体识别、关系提取、事件提取和语义角色标注,利用LLMs的上下文理解能力,无需大量领域特定的训练数据);KG构建(使用LLMs进行链接预测和三元组提取,包括Pretrain-KGE、MADLINK、KEPLER等);本体模式构建(利用LLMs从KG中挖掘约束和规则,进行本体细化和对齐,包括DeepOnto和BERTSubs等);KGs用于LLMs训练(将KGs作为预训练语料库,注入结构化知识,包括Knowledge-Enhanced Language Models和Neuro-Symbolic KBs);检索增强(使用KGs作为外部知识源,增强LLMs的推理能力,包括RAG和FiD等)。
在应用侧,也可以从可视化角度切入。例如今年4月的《A Preliminary Roadmap for LLMs as Assistants in Exploring, Analyzing, and Visualizing Knowledge Graphs》(https://arxiv.org/pdf/2404.01425),介绍了如何利用LLMs来辅助用户在知识图谱中的数据探索、分析和可视化。
今年6月(2024年6月),出现了《Research Trends for the Interplay between Large Language Models and Knowledge Graphs》(https://arxiv.org/pdf/2406.08223),内容编排与roadmap那篇类似,从发文统计的角度做了一些分析,抛出了一系列问题:如何利用LLMs为KG实体生成描述性文本信息;如何在本体生成中使用LLMs;LLMs如何帮助检测KG内的不一致性;LLMs如何通过事实检查提高KG的准确性、一致性和完整性;LLMs如何为KG问答提供准确答案;LLMs如何有效地从自然语言文本生成查询(Text to SPARQL或Cypher)。
当然,知识图谱除了“意”还有“形”,所以可以进一步扩展到图(Graph)上,沿着这条线就可以引申到幻觉以及知识增强方向。
二、知识图谱用于大模型幻觉方向总结
另一个备受关注的方向是大模型的幻觉问题。代表性的工作有 《Can Knowledge Graphs Reduce Hallucinations in LLMs? : A Survey》(https://arxiv.org/pdf/2311.07914),这篇论文提出了三种主要的知识图谱增强方法来减少LLM中的幻觉,并对其有效性进行了系统评估。
第一种是知识感知推理(Knowledge-Aware Inference):包括KG增强的检索(使用检索增强生成模型如RAG和RALM,在生成过程中提供相关文档,减少幻觉。例如KAPING方法通过匹配问题中的实体从知识图中检索相关三元组,增强零样本问答性能);KG增强的推理(将复杂的多步任务分解为可管理的子查询,使用一系列中间推理步骤提高LLM的复杂推理能力,如Chain of Thought、Tree of Thoughts等方法);KG控制生成(使用语言模型生成知识,然后通过探测或API调用完成任务,如Codex解析上下文并生成任务API调用,KB-Binder则利用知识图谱生成逻辑草稿完成答案)。
第二种是知识感知训练(Knowledge-Aware Training):包括知识感知预训练(在预训练阶段将知识图谱集成到训练数据中,提高LLM的理解能力和文本生成质量,如ERNIE、Rosset等通过掩码语言建模和知识引导输入增强语义理解);知识感知微调(在特定任务或领域上微调预训练模型,使用相关数据集和架构优化模型权重,如SKILL、KGLM等通过合成句子和实体关系嵌入层提高任务性能)。
第三种是知识感知验证(Knowledge-Aware Validation):使用结构化数据作为事实检查机制,提供模型验证信息的参考。KGLM和SURGE等通过知识图谱生成相关实体和事实,增强模型的解释性和可靠性。
进一步来说,这个月刚出的 《Knowledge Graphs, Large Language Models, and Hallucinations: An NLP Perspective》(https://arxiv.org/abs/2411.14258) 介绍了知识图谱在缓解大模型生成虚假信息(即幻觉)方面的潜力。从幻觉角度切入,并根据底层架构将不同的知识整合模型进行分类——这些模型可以在LLMs的不同阶段(预训练、推理、生成后)整合外部知识。
其中:
在预训练阶段,将KG三元组作为训练数据的一部分,通过掩码实体预测任务将KG三元组与原始文本输入融合,如Ernie 3.0模型。当然也可以直接转为plain text丢入大模型中进行训练,前面提到的《Give Us the Facts: Enhancing Large Language Models with Knowledge Graphs for Fact-aware Language Modeling》中有相应论述。
在推理阶段,通过提示将知识注入LLMs。常见的方法是将知识K和查询Q成对提供给LLMs,形成P={K,Q},用于RAG应用。这就是我们说到的GraphRAG系列。常见的方案有三种:Vanilla(直接提示模型生成答案)、Chain of Thought(通过生成更全面和详细的解释来提高答案可靠性)、基于外部文本知识进行修正(如Self-Correcting with Tool-Interactive Critiquing基于网络文本修正答案)、Question-relevant Knowledge Retrieval(利用知识图谱中的事实作为提示增强答案正确性,道理相同)。
在后生成阶段,在生成答案后通过外部KG验证答案的事实性,并根据验证结果对原始答案进行修正。
不过修正这块有一个思路值得注意:如何基于知识图谱来进行大模型幻觉检测?比较直接的检测方法是通过LLM提示提取LLM输出中的原子声明作为子图,并比较每个三元组的蕴含关系与给定文本上下文。例如,基于命名实体(组织、地点、人物等)提取源文本和生成文本之间的KG子图,然后比较两个图之间的对齐情况,通过阈值对齐来分类幻觉。
但如果围绕命名实体构建KG,可能会导致更抽象概念上的信息丢失,所以可以对更全面的关系提取进行改进。
关于评估,可以看看 《GraphEval: A Knowledge-Graph Based LLM Hallucination Evaluation Framework》(https://arxiv.org/pdf/2407.10793)。这是一个基于知识图谱的幻觉检测框架,用于评估大模型的回复并检测与提供知识的不一致。实现思路很有意思:
首先从LLM输出中构建知识图谱,然后迭代检查每个三元组是否在给定上下文中事实一致。如果任何三元组被识别为不一致,输出将被视为事实不一致,并可能返回不一致的三元组以提供可解释性。关于这块的更多细节,《利用知识图谱检测并修正大模型幻觉:GraphEval策略的简单粗暴实现思路》中做了介绍,其中也提出了一个后期矫正思路:先使用GraphEval检测方法识别出知识图谱中可能包含幻觉的三元组,然后将这些三元组和上下文一起输入到LLM中,生成更正后的三元组,最后将原始LLM输出中的信息替换为更正后的三元组中的信息。
进一步看,还有另一个更pipeline式的方法:《Mitigating large language model hallucinations via autonomous knowledge graph-based retrofitting》(https://arxiv.org/pdf/2311.13314),提出一种五阶段流水线方法,通过在生成答案后查询外部KG来校验并修正LLM输出的事实性,如下图:
包括5个步骤:首先,声明提取阶段,从生成的草稿响应中提取所有需要验证的事实声明。
其次,实体检测和知识图谱检索,识别提取声明中的关键实体,并从知识图谱中检索这些实体的本地子图。
接着,事实选择,从检索到的三元组中选择相关的事实声明,并将这些三元组分成若干块,利用LLMs分别提取每个块中的关键三元组。
然后,声明验证,利用LLMs将模型生成的声明与知识图谱中的事实信息进行比较,提出详细的修订建议。
最后,响应回滚,根据验证结果回滚生成的草稿响应,将整个KGR过程合并为一个单一的提示,使LLMs能够理解KGR过程并基于验证建议增强对事实回滚的理解。
看一个完整的例子:
三、大模型与RAG结合的GraphRAG总结
到后期,RAG开始流行。传统RAG方法未能有效捕捉文本间的引用关系等结构化信息;在拼接文本片段时可能导致上下文过长,产生“中间迷失”现象;只能检索部分文档,难以全面把握全局信息,影响查询重点摘要(QFS)等任务的表现。
所以Graph增强RAG受到广泛关注。例如《Graph Retrieval-Augmented Generation: A Survey》(https://arxiv.org/pdf/2408.08921),回顾了GraphRAG技术,提出了统一的工作流程:图索引、图引导检索和图增强生成。
首先,构建和索引图数据库,使其与下游任务对齐。图数据库可以来自公共知识图谱或自构建的数据源。索引过程包括映射节点和边的属性、建立节点间的指针以及组织数据以支持快速遍历和检索操作。
其次,根据用户查询从图数据库中提取相关信息。将用户查询表示为自然语言,计算查询与图数据之间的语义相似度,最终选择与查询最相关的子图元素。给定用户查询,检索阶段旨在从知识图中提取最相关的元素(如实体、三元组、路径、子图)。为了提高检索效率,通常会采用多种检索粒度(节点、三元组、路径、子图)和增强技术(查询扩展和知识合并)。
最后,基于检索到的图数据生成响应。将查询和检索到的图元素输入生成器,生成器结合查询和图数据生成最终响应。
目前,这块在工业领域有很多案例了。此前提到过LightRAG、nanoGraphRAG这些,还有一些代表框架。例如:
1、LightRAG,简单快速的GraphRAG检索增强生成。地址:https://github.com/HKUDS/LightRAG
2、GraphRAG-Ollama-UI,使用Ollama的GraphRAG,带有Gradio UI和额外功能。地址:https://github.com/severian42/GraphRAG-Ollama-UI
3、microsoft-GraphRAG,一个模块化的基于图的检索增强生成(RAG)系统。地址:https://github.com/microsoft/graphrag
4、nano-GraphRAG,一个简单、易于修改的GraphRAG实现。地址:https://github.com/gusye1234/nano-graphrag
5、KAG,基于OpenSPG引擎的知识增强生成框架,用于构建知识增强的严格决策制定和信息检索知识服务。地址:https://github.com/OpenSPG/KAG
6、Fast-GraphRAG,GraphRAG的轻量化版本。地址:https://github.com/circlemind-ai/fast-graphrag
7、DBGPT,在原社区摘要增强的GraphRAG基础上,引入了文档结构索引,拓展了GraphRAG中对于Graph的定义范畴。地址:https://www.yuque.com/eosphoros/dbgpt-docs/bex30nsv60ru0fmx
下面简单做一个思想对比:
GraphRAG(by Microsoft,https://github.com/microsoft/graphrag) 利用LLMs构建基于实体的知识图谱,增强查询重点摘要(QFS)任务。通过预生成相关实体群体的社区摘要,捕获文档集合内的局部和全局关系。
GraphRAG(by NebulaGraph,https://www.nebula-graph.io/posts/graph-RAG) 将LLMs集成到NebulaGraph数据库中,提供更智能和精确的搜索结果。通过将查询嵌入到图结构中,利用LLMs进行更复杂的推理和信息检索。
GraphRAG(by Antgroup,https://github.com/eosphoros-ai/DB-GPT) 在文档检索阶段使用LLMs提取三元组并存储在图数据库中;检索阶段识别查询中的关键词,定位图数据库中的对应节点,并使用广度优先搜索或深度优先搜索遍历子图;生成阶段将检索到的子图数据格式化为文本并提交给LLMs处理。
NallM(by Neo4j,https://github.com/neo4j/NaLLM) 将Neo4j图数据库技术与LLMs结合,探索Neo4j与LLMs的协同作用,主要应用于自然语言接口到知识图谱、从非结构化数据创建知识图谱以及使用静态数据和LLM数据生成报告。
LLM Graph Builder(by Neo4j,https://github.com/neo4j-labs/llm-graph-builder) 自动构建知识图谱,适用于GraphRAG的图数据库构建和索引阶段。主要利用LLMs从非结构化数据中提取节点、关系和它们的属性,并使用LangChain框架创建结构化知识图谱。
除了这些还有KAG(KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation,https://arxiv.org/pdf/2409.13731,https://github.com/OpenSPG/KAG),走垂域知识图谱多跳推理,也是一个思路。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:知识图谱与大模型结合三大方向时间线探索要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点WordPress生态里从来不缺各种各样的插件和主题,但真正把焦点放在低成本营销工具上的,其实不算多。wptao就是专门做这件事的——它专注WordPress插件与主题开发,提供的工具包括WordPress连接微博、微信机器人、淘宝客插件等。对于需要轻量级获客方案的用户来说,这类产品倒是很对胃口。
360站长平台助力网站运营者监控360搜索抓取记录、收录数量及问题页面,同时提供搜索优化知识与实用建议,便于边用边学,提升站点表现。
JobGenie面向求职者与招聘方,智能生成基于职位描述的个性化面试问题,并能快速创建全面职位描述,旨在通过AI自动化解放人力,让招聘者聚焦核心判断,大幅提升招聘与面试效率。
百度站长社区是官方为站长搭建的学习交流平台,提供权威运营技巧、算法解读与行业经验分享,内容涵盖收录、优化等日常问题,信息实用接地气,旨在帮助站长解决站点优化难题,提升网站表现,获取官方一手资讯。
- 日榜
- 周榜
- 月榜
热点快看
