首先,关于知识图谱自身的进展,我们先不多说,可以看《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)在自然语言处理(NLP)任务中的知识表示和推理能力不足的问题。尽管PLMs在下游任务中表现出色,但由于缺乏外部知识的显式表示,它们在推理能力方面存在局限,所以做了知识增强预训练语言模型(KE-PLMs)的研究,从知识源类型、知识粒度和应用三个方面进行分类和总结。
自从大模型出来后,大模型对知识图谱产生了一定的冲击,所以,大家开始在想,知识图谱应该和大模型如何进行结合,所以,在去年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进行命名实体识别(NER)、关系提取、事件提取和语义角色标注(SRL),利用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)来辅助用户在知识图谱(KGs)中的数据探索、分析和可视化的问题。
然后,在今年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)。
然后,还有个方向,那就是大模型的幻觉问题受到广泛关注,这里几个方向,代表的,《Can Knowledge Graphs Reduce Hallucinations in LLMs? : A Survey》(https://arxiv.org/pdf/2311.07914)这篇论文提出了三种主要的知识图谱增强方法来减少LLM中的幻觉,并对其有效性进行了系统评估。
一个是知识感知推理(Knowledge-Aware Inference),包括KG增强的检索(KG-Augmented Retrieval),使用检索增强生成模型(如RAG和RALM)在生成过程中提供相关文档,减少幻觉。如KAPING方法通过匹配问题中的实体从知识图中检索相关三元组,增强零样本问答性能;KG增强的推理(KG-Augmented Reasoning), 将复杂的多步任务分解为可管理的子查询,使用一系列中间推理步骤提高LLM的复杂推理能力。Chain of Thought(CoT)和Tree of Thoughts(ToT)等方法模仿人类的逐步推理过程,帮助理解和调试模型的推理过程;KG控制生成(KG-Controlled Generation),使用语言模型生成知识,然后通过探测或API调用完成任务,如使用Codex解析上下文并生成任务API调用,KB-Binder则利用知识图谱生成逻辑草稿以完成答案;
进一步的,也就是这个月,《Knowledge Graphs, Large Language Models, and Hallucinations: An NLP Perspective》(https://arxiv.org/abs/2411.14258),这工作介绍了知识图谱在缓解大模型生成虚假信息(即幻觉)方面的潜力。
在预训练阶段,将KG triples作为训练数据的一部分,通过掩码实体预测任务将KG triples与原始文本输入融合,如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(CoT),通过生成更全面和详细的解释来提高答案的可靠性;也或者是基于外部文本知识进行修正,如Self-Correcting with Tool-Interactive Critiquing(CRITIC)基于网络文本的修正答案;也可以是Question-relevant Knowledge Retrieval(QKR),利用知识图谱中的事实作为提示来增强答案的正确性,这个就是同一个道理。
关于评估这块,可以看看《GraphEval: A Knowledge-Graph Based LLM Hallucination Evaluation Framework》(https://arxiv.org/pdf/2407.10793),这个基于知识图谱的幻觉检测框架,用于评估大模型的回复,并检测与提供的知识不一致的地方,其实现思路也很有趣:
而进一步的,可以看另有个更pipeline式的方法,《Mitigating large language model hallucinations via autonomous knowledge graph-based retrofitting》(https://arxiv.org/pdf/2311.13314),提出一种五阶段流水线方法,通过在生成答案后查询外部KG来校验并修正LLM输出的事实性,如下图:
所以,当前Graph增强RAG受到广泛关注,例如《Graph Retrieval-Augmented Generation: A Survey》(https://arxiv.org/pdf/2408.08921),回顾了GraphRAG技术,提出了一个统一的工作流程,包括图索引、图引导检索和图增强生成。
当然除了这个还有KAG,KAG: Boosting LLMs in Professional Domains via Knowledge Augmented Generation》(https://arxiv.org/pdf/2409.13731,https://github.com/OpenSPG/KAG/blob/master/README_cn.md),走垂域知识图谱多跳推理,也是一个思路。