本章涵盖以下内容:
- 知识图谱导论
- 大语言模型导论
- 使用知识图谱与大语言模型构建数据驱动型应用
由 Google 的 Gemini 和 OpenAI 的 GPT 等大语言模型(LLM)驱动的生成式人工智能(GenAI),已经改变了我们的工作与生活方式,并持续颠覆一个又一个行业。尽管取得了巨大成功,生成式 AI 在那些要求特定领域知识、高准确性和可解释性的场景中,仍然存在明显不足。它还存在其他重要局限,包括幻觉,以及缺乏上下文与关系信息。知识图谱(KG)正是在这里发挥作用:它能够提供构建“第三波 AI”[1] 所需的上下文信息——例如经验、环境特征、文化因素和社会规范——从而支持关键任务型应用。
KG 是一种复杂的图结构,用来表示现实世界中的实体(人、地点、疾病、蛋白质),定义它们之间有意义的连接,并提供上下文。KG 提供结构化、可解释的知识表示,但其构建和查询都具有挑战性;LLM 则具备自然语言处理能力,但容易产生幻觉、依赖过时信息,并缺乏面向特定领域的扎根能力。二者结合堪称“黄金组合”:LLM 能够从非结构化文本中抽取实体与关系,更高效地构建 KG,并提供更自主、更强大的图查询与分析能力;与此同时,KG 又能为 LLM 提供可靠、最新的领域知识,使其回答有据可依,从而防止幻觉。
将 KG 与 LLM 融合,是构建复杂数据驱动型应用的一种强大方式。这类应用能够整合异构数据源,提供自然语言接口,并输出具备上下文依据的智能响应。在本书中,你将学习如何采用面向业务的方法、建模 KG 模式、使用 LLM 进行实体抽取、验证信息完整性,以及创建能够结合结构化与非结构化数据、回答复杂领域问题的对话式 AI 系统。
1.1 知识图谱
KG 将人类知识的结构化表示纳入机器之中,从而使机器表现出更智能的行为。这通常通过构建一种包含以下要素的复杂图结构来实现:
- 节点(Nodes) 表示现实世界中的实体(人、地点、组织、疾病、蛋白质、基因)。
- 关系(Relationships) 定义这些节点之间有意义的连接(例如某人出生于某地、某种疾病引发某些症状、某个基因编码某种蛋白质)。
- 属性(Properties) 提供上下文(例如出生日期、地理坐标、组织发展历史、以多种语言记录的疾病描述)。
图 1.1 展示了一个医疗领域的 KG,其中不同实体(疾病、药物、化合物、解剖结构)通过有意义的关系连接在一起。这样的显式表示,使机器能够在结构化知识上执行推理与推断,从而为复杂智能系统中的决策提供支撑。
图 1.1 医疗领域中的 KG 示例。节点(圆形)表示实体,例如人、疾病和解剖部位。边(关系)表示实体之间有意义的连接。节点和边都带有属性,用于描述相关细节。
尽管 KG 在支撑智能系统开发方面具有显著效果与优势,但它并未被广泛采用,原因包括以下几点:
- 构建和维护 KG 在时间、精力和资金上都成本高昂。
- 在图中进行多跳访问需要复杂的访问模式。
- 查询结果通常把信息分散在多个节点与关系中。
构建 KG 需要从异构数据源(包括结构化与非结构化数据)中识别并提取相关实体与连接。与处理非结构化数据相比,处理结构化数据源要简单得多。在结构化或半结构化数据(例如关系数据库,或 CSV、XML、JSON 格式文件)中,数据项通常是隔离的、可识别的,并且往往带有类型。尽管这些数据仍需从原始模式映射到统一的图模式中,但这一过程通常是可控且可预测的。
而非结构化数据则完全不同。从文本中抽取信息,一直都是一项复杂任务,原因包括:
- 多语言——每种语言都有自己的语法规则、词汇、习语和细微差别。处理多语言文本,需要系统能够理解并处理这些差异。此外,不同语言还可能使用不同书写系统(如拉丁字母、西里尔字母、汉字),这要求系统支持多种字符集与编码。
- 拼写错误——人类撰写的文本常常包含打字错误、拼写错误以及其他失误,因此需要更复杂的算法来理解其原本想表达的含义。
- 代词——要准确理解句子,必须正确解决代词所指(即指代消解,coreference resolution)。例如在句子 “John saw Bob and he waved” 中,“he” 究竟指 John 还是 Bob,并不明确。
- 不同写作风格——作者会使用同义词、不同句式和各自独特表达方式,这使系统难以保持一致性,并准确解释不同风格的写作。
- 领域特定术语与概念——许多专业领域都有自己独特的词汇、技术术语和概念,这要求系统具备相应领域知识,才能正确理解并提取信息。
要从人类语言中准确抽取并解释信息,必须依赖先进技术和健壮系统。但构建 KG 只是开始。KG 持有海量且相互连接的信息(知识),为了获得正确答案并支撑智能系统,还必须能够正确访问这些知识。KG 模式在定义上的灵活性有助于处理异构数据源和复杂领域连接,但也让不熟悉查询方法的人更难访问它。预定义查询与分析固然能够支持某些特定智能系统,但它也限制了用户类型与系统所能提供的支持范围。此外,返回结果往往不易被非专家理解,也不易在用户界面中自然呈现。
让我们来看几个例子。KG 最早、最知名的应用者之一是 Google,它通过 KG 增强搜索,为用户提供“相关”的连接信息。这种方法强调搜索的是“事物(things)”,而不仅仅是“字符串(strings)”,但它主要局限于搜索类应用。
许多分析师会使用 KG 来回答复杂调查问题。但由于图查询过程复杂,并且通常需要专用界面,这种用法往往只限于较小范围的专业用户。
不妨设想这样一种场景:用户直接用自然语言向 KG 提问,智能系统能够有效查询图结构,找到正确答案,再把结果转化为简洁摘要。本书将围绕这一场景逐步展开。
1.2 大语言模型
LLM 专门处理自然语言,因此能够消除以 KG 为核心技术的智能系统在演进过程中所面临的许多障碍。这类系统能够帮助用户在复杂领域中完成任务。
LLM 的基础是迁移学习(transfer learning) :也就是把在通用任务(例如预测被遮蔽的 token)中学到的模式,迁移到特定任务(例如关系抽取)中加以复用 [2](见图 1.2)。这一突破改变了范式:从过去训练大量小型、面向特定任务的模型,转向训练少量可在多任务中复用的大模型,从而显著减少监督学习所需的训练数据和计算资源。
图 1.2 在迁移学习中,一个在特定任务上训练好的模型(或其中一部分),会被用于另一个任务的训练与预测。
在大规模语料上使用 Transformer 架构 [3] 训练的预训练语言模型(PLM),展示了“用一个大模型完成自然语言处理任务”的能力。模型规模的扩展提升了模型容量,而对规模效应的进一步研究,也推动了参数规模持续扩大。所谓大语言模型(large language model) ,通常指的是一种具有显著规模的 PLM——通常具有数百亿甚至上千亿参数。像 GPT-2 [5] 这样在超大规模文本数据上训练的 LLM 的出现,彻底改变了 AI 领域。它们的现代继任者,包括 GPT-4 [5]、Gopher [6] 和 PaLM [7],让“数据的不合理有效性(unreasonable effectiveness of data)”[8] 这一说法焕发新生。它们之所以被认为“不合理地有效”,主要源于三个彼此关联的原因:
- 模型复杂度(也就是参数量)
- 训练语料的规模,以及对于 GPT 来说,语料质量
- 它们将许多原本需要人类智能的任务还原为“预测下一个 token”的能力
正如论文 Scaling Laws for Neural Language Models [9] 所展示的,更大的神经网络模型(即拥有更多可训练参数的模型),在达到相同测试集损失水平时,所需要的数据样本更少。同一篇论文也证明,训练语料的规模至关重要。很显然,模型学习的数据越多,它表现就越好。但数据质量同样关键。传统机器学习通常遵循一种以模型为中心(model-centric) 的范式,重点在于寻找最佳模型架构并细致调节超参数。然而,错误数据会导致错误预测。与之相对,以数据为中心(data-centric) 的范式更强调数据工程,关注提升用于训练高复杂度机器学习模型的数据质量与数量。有了这些改进之后,我们就可以直接用自然语言描述任务,而 LLM 只需极少模型工程即可生成准确答案(见图 1.3)。
图 1.3 LLM 的构成模块与差异化特征
1.3 KG 与 LLM:强强联合
KG 与 LLM 能够相互支撑、共同提供更高质量的服务,并一起增强强大智能系统的实现能力。我们尤其关注 LLM 在以下几个方面如何帮助基于 KG 的解决方案:
- 构建 KG——尤其是从非结构化数据中抽取相关概念与连接。传统上,这项任务通常需要针对特定领域训练定制化 NLP 模型。LLM 则通过极少配置(例如 prompt)即可承担多种任务,从而大幅简化了这一过程;见图 1.4。我们将在第 2 部分和第 3 部分中讨论如何构建 KG。
- 查询 KG——知识抽取通常需要从起始概念经过多个步骤(或称 hop)才能到达目标。这些 hop 往往要求理解图模式与查询语言。LLM 则可以帮助提取与查询和搜索相关的、精确且有用的信息。我们将在第 5 部分中讨论这一点。
- 总结——从 KG 中抽取出来的信息,可以以文本摘要形式返回,而不只是表格、图、图表等形式。
图 1.4 使用和不使用 LLM 构建 KG 的对比,以及 LLM 对查询与检索的支持
KG 同样可以帮助缓解 LLM 在领域准确性、透明性和时效性方面的局限。下面列出一些 LLM 的缺点,而这些缺点都可以通过整合 KG 来缓解 [10]:
- 幻觉(Hallucinations) ——KG 提供结构化、经验证的知识,作为事实基础,能够显著降低 LLM 生成“看似合理但实际上错误”的信息的倾向。LLM 则以更复杂的查询机制来补充这一点,例如 text-to-cypher 翻译,它能把自然语言问题转化为精确的图查询,从结构化知识库中直接提取可靠信息。
- 信息陈旧(Stale information) ——KG 可通过高级检索增强架构实现动态知识更新。LLM 无法被持续重训,但 KG 可以不断更新,并通过 KG-based prompting 与 GraphRAG 等技术供模型访问。GraphRAG 会把知识组织为有意义的聚类与社区摘要,使 LLM 能够利用持续更新的 KG 中最新的信息。
- 可解释性(Explainability) ——KG 提供透明的信息路径与结构化推理过程,用户可以追踪并验证这些过程,从而通过可解释 AI 机制建立信任。与 LLM 的自然语言处理能力结合后,就能形成一种系统:其知识抽取过程可理解、可复现,而其发现结果又可以被总结为可读、可理解的人类语言。
图 1.5 总结了这两种技术如何相互支持与互补。
图 1.5 LLM 与 KG 互补关系总结。灵感来源于 [11]。
1.4 数据驱动型应用中的范式转移
传统范式通常是:围绕特定目的构建系统,并使用结构化、同质化数据库。这种方法适合定制化需求,但在那些需要适应不同用户特征、并整合异构数据的复杂领域中,这种方法并不现实。KG 能够捕捉连接关系,并通过图模式匹配与图遍历发现关系。无论是资源描述框架(RDF)还是标签属性图(LPG),都提供了机器可读、同时也可被人类理解的表示形式。KG 强调对数据进行丰富且有意义的表示,使其既能被人类使用,也能被机器使用,从而推动了一种范式转移:智能行为被编码到一个唯一可信源(single source of truth)之中。
根据麦肯锡公司 [12] 的研究,解决数据碎片化问题,可以在短期内减少 5% 到 15% 的年度数据支出。KG 通过打破数据孤岛,构建统一知识源,同时降低数据访问门槛,并增强治理能力。
1.4.1 知识图谱的四大支柱
为了把这种范式转移落实到具体实现中,我们提出一个新的 KG 定义,它同时覆盖技术层与业务层中的关键特征:
定义
知识图谱是一种持续演化的图数据结构,由一组有类型的实体、它们的属性,以及有意义且具名的关系组成。它面向特定领域构建,整合结构化与非结构化数据,以为人类和机器共同生成知识。
这个定义为 KG 的四大支柱奠定了基础:
- 演化(Evolution) ——KG 允许我们持续摄取、整合并统一信息,形成单一知识源。图结构可以根据分析需求和使用目标轻松扩展。新的交互与内容可以无缝纳入 KG,而无需彻底重构现有结构。
- 语义(Semantics) ——KG 使数据的含义——即语义——显式化,通过有类型的实体和有意义的关系来构建知识基础设施。新数据会与已有数据合并,并立即可用于分析。上下文知识就在这样的基础设施中涌现,并驱动业务活动与决策。这类知识会连接带类型的实体,支持例如身份关系、传递关系或逆关系。对数据表达力的增强,也打开了通往可解释性的道路 [13]。KG 还能为从一致性检查到因果推断的多种推理机制提供支撑。
- 整合(Integration) ——KG 作为与某一领域相关的所有结构化与非结构化数据的中心参照。由于 KG 是围绕“数据含义”来表示信息的,因此用户能够跨越数据类型、格式与来源上的差异,把来自多个数据源的信息连接起来。
- 学习(Learning) ——KG 表示一个领域的核心信息与全局图景。人类可以分析、可视化和查询图数据,从中提取洞察。推理规则与机器学习算法则可运行在 KG 之上,从而推断出 KG 中未被显式编码的新信息。分析师还可以使用中心性分析、连通性分析来识别关键节点,利用网络分析寻找节点间最短路径,并通过社区分析识别相似节点群体。
图 1.6 展示了构成 KG 的四大支柱。
图 1.6 KG 的四大支柱:演化、语义、整合与学习
1.5 使用 KG 与 LLM 构建数据驱动型应用
本节中,我们将考察几个在关键领域中使用 KG 和 LLM 的潜在应用示例。
注意
本书中我们会频繁提及医疗领域,因为它的特征、问题和需求很容易迁移到其他领域。此外,医疗领域拥有大量公开可用数据,因此我们能够使用与真实场景相近的数据集来讨论现实世界案例。
1.5.1 示例用例:药物发现与研发
药物研发需要整合多个学科领域的知识,从生物学到化学;而把一种新药推向市场成本极高,且失败概率很大。因此,必须采用快速且实用的方法来指导新药研发。
挑战——医疗与制药数据的整合必须确保数据完整性、准确性与一致性,同时正确赋予每个数据点其上下文。
基于 KG 的解决方案——在不同尺度上对生物实体之间的交互进行建模,利用关系类型把基因、疾病与药物连接起来。具有多条规则的类型化关系,更能准确表达领域含义,并支持传递性连接与推理。
LLM 的作用——处理来自科研论文、临床报告和数据库的非结构化数据,并确保整合后的知识库内部保持一致。LLM 还可以通过分析文献和推断潜在关系来扩展 KG,并通过高级文本挖掘能力处理化学结构与实验结果。
将 LLM 融入其中,可以增强数据整合、扩充 KG、促进假设生成、改进信息检索,并支持高级文本挖掘。这些能力最终都会加速新型治疗药物的研发。
1.5.2 示例用例:用于客户支持的对话式 AI
个性化助手系统不仅要回答用户问题,还应能提出追问。一个高效工具必须把通用知识与用户具体需求结合起来,并且高效管理海量信息。
挑战——尽管自然语言生成(NLG)技术已经取得进展,但语言模型给出的回答仍然可能重复、空泛(Zhang et al. [14])。如果一个对话系统想提供真正有用的建议与信息,它就必须从文本中提取相关实体与关系,同时结合外部与内部结构化知识为对话提供支撑。
基于 KG 的解决方案——Zhang 等人 [14] 指出,“对话往往围绕知识展开”。更具体地说,自然对话是围绕构成知识的概念而展开的。KG 把这些概念连接起来,并建立它们之间有意义的关系。KG 可以为对话提供扎根基础、整合信息并支撑响应生成:NLP 技术从文本中抽取实体与关系,而图结构化的对话背景上下文则驱动对话的推进。
LLM 的作用——LLM 可以处理广泛主题,并给出连贯响应,这使它们成为构建高级对话系统的重要组成部分。但如果缺乏额外上下文支撑,它们的回答往往会显得过于泛化且缺乏深度。
一旦将 LLM 与 KG 这样的知识源整合,对话系统就能显著提升回答质量。LLM 可以利用 KG 中的结构化信息,生成更准确、更符合上下文的回答。这种集成使系统能够处理复杂查询、提供精确信息,并维持自然的对话流。
1.5.3 如何判断是否应该使用 KG
尽管前面的场景各不相同,但它们共享一些共性挑战。下面这些问题可以帮助你判断,KG 是否是解决业务与技术问题的合适方案。
如果以下问题你的回答是“是”,那么应考虑使用 KG:
- 我是否需要把分散的数据孤岛整合为一致性的整体视图?
- 我是否需要在结构化与非结构化数据源之间建立有意义的连接?
- 我是否需要一种结构可演化的灵活数据表示?
- 我是否需要跟踪数据流水线中的来源与一致性?
- 我是否需要支持高级搜索与推荐服务?
- 我是否需要可视化网络结构,展示社区与相互依赖关系?
- 我是否需要应用那些能够从数据关系性中获益的机器学习模型?
如果以下问题你的回答是“是”,那么应考虑使用 LLM:
- 我是否需要从非结构化数据中提取实体与关系?
- 我是否需要理解复杂用户查询,并给出准确回答?
- 我是否需要提供对话式接口?
- 我是否需要把复杂结果总结成文本?
如果你对以上任意一个问题回答“是”,那就意味着:你需要 LLM 来增强你的 KG 解决方案。
1.6 知识图谱技术
本书采取一种**技术无关(technologically agnostic)**的方法,并通过代码示例交替展示两种常见的 KG 构建与查询范式:
- RDF 与 SPARQL 查询语言,二者都由万维网联盟(W3C)定义。RDF 是一种以知识表示为核心的数据模型,其中图被编码为一组陈述(statements)或三元组(triplets)。它的目标是在 Web 上标准化数据发布与共享。智能系统的核心,建立在语义层上的推理之上。
- LPG(标签属性图)方法 以及诸如 openCypher(opencypher.org/)和 Gremlin(tinkerpop.apache.org/gremlin.htm…)之类的查询语言。LPG 更关注图的结构(属性与关系)。节点和边都带有属性,因此更强调图数据本身的特征。
RDF 擅长通过标准化陈述在系统间实现数据互操作与一致性,同时提供强大的超图(hypergraph)与联邦(federation)能力,使不同 RDF 图能够以富有上下文的方式彼此链接。LPG 的优势则体现在路径查找与图遍历操作上。在 LPG 中,每条边都有唯一身份和属性;而在 RDF 中,关系是全局谓词,可在整个知识库中的多个陈述里复用。
RDF 与 LPG 是两种不同范式,但在不同应用场景下也可以互为补充。RDF 更适用于需要语义一致性、Web 级互操作以及依赖本体推理的场景;LPG 则更适用于需要丰富属性表示与高效图遍历的场景。
1.6.1 分类体系与本体
现代 KG 的实现,不仅要利用传统图数据特征,还必须如文献 [15] 所定义的那样,利用由语义带来的组织原则,把图中的潜在知识真正转化为 KG。图模型可以通过一组陈述(RDF)实例化,也可以通过 LPG 模型构建。但仅仅引入结构信息,还不足以完整表达数据中的关系。我们需要借助分类体系(taxonomies) 与 本体(ontologies) 把这些语义特征注入 KG:
- 分类体系(Taxonomies) 表示数据中的层级维度,用“更宽泛—更具体”的关系来组织类别。例如,在一个分类体系中,“Vehicle(交通工具)”可能比 “Car(汽车)”更宽泛,而 “Car” 又比 “Sedan(轿车)”更宽泛。复杂 KG 中通常可以集成多个分类体系。
- 本体(Ontologies) 则引入了超越简单层级关系的更复杂语义关系。它可以澄清实体之间的同一性、差异性以及更复杂的连接。例如,本体可以规定 “Car” 和 “Automobile” 是同义的(即同一概念),而 “Car” 与 “Bicycle” 则是互斥的(不能是同一个概念)。本体支持并集、补集、互斥性与基数约束等类定义,它捕捉的是领域的概念结构。没有本体时,词汇表往往是模糊的,因为它并没有编码概念之间的内在关系。
传统定义分类体系与本体的方法通常比较僵化、复杂,这会降低系统对不断演化知识和多样数据源的适应能力。现代 KG 更倾向于一种务实方法,即 “足够的语义(just enough semantics)” 。这意味着只选择能够解决当前问题的一部分本体特性,而不是一开始就过度规定一切。例如,在医疗 KG 中,实践者可能会先聚焦某一个特定医学子领域——例如肿瘤学或心脏病学——同时预留未来扩展到其他专科的空间。
现代 KG 不再强制要求完整而僵化的分类体系,而是倾向于集成可自然扩展的部分本体。这种灵活性使知识表示能够动态扩展、具备可伸缩性,并能适应现实世界约束与不断变化的业务需求。
1.7 我们如何教授 KG 与 LLM?
本书将为你提供创建与使用 KG 所必需的核心工具,同时展示如何利用 LLM 构建高级智能应用。你将学会:
- 采用以业务需求为核心的思维方式:先目标,再数据,最后算法。
- 在建模 KG 模式时,同时考虑未来扩展、分类体系与本体。
- 从结构化数据源导入数据,并把实体/关系映射到模式中。
- 使用 LLM 从文本中抽取与领域相关的实体与关系。
- 验证导入信息,确保其完整性与准确性。
- 使用最新机器学习技术(例如图神经网络)开展分析。
- 查询并可视化图中的局部结构,并利用 LLM 支持自然语言提问。
我们将通过具体、可操作、且源自真实实践经验的案例来讲解这些概念。
小结
- KG 是一种持续演化的图数据结构,包含有类型的实体、属性与有意义的关系。它面向特定领域,由结构化与非结构化数据构建,用于为人类与机器生成知识。
- KG 具有四大支柱:演化、语义、整合与学习。
- KG 是把人类知识纳入机器的核心抽象,而 LLM 则提供自然语言理解能力。二者通过弥补彼此局限,实现相互赋能。
- KG 与 LLM 的结合代表了一种范式转移:智能行为被编码一次,并沉淀于一个唯一可信源中。由此可以为不同应用与多样任务提供数据表示能力。
- KG 的两项核心技术范式是资源描述框架(RDF)与标签属性图(LPG)。
- 分类体系与本体发挥着基础性作用,因为它们通过引入语义元数据,使传统图结构变得更“聪明”。
如果你愿意,我下一步可以继续把这段内容整理成更适合出版的中文风格版本,把术语进一步统一得更自然。