第 2 课
← 返回系列列表

知识图谱与大语言模型

Knowledge Graphs for RAG — 知识图谱增强检索

LLM 与知识图谱的结合方式:实体抽取、关系推理。

知识图谱与大语言模型

课程简介

LLM 与知识图谱的结合方式:实体抽取、关系推理。

🎬 本课程视频:Knowledge Graphs for RAG — 知识图谱增强检索


知识图谱与大语言模型:互补与融合

一、为什么需要融合?

1.1 两种技术的互补性

大语言模型和知识图谱在 AI 栈中占据不同的生态位:

维度 大语言模型(LLM) 知识图谱(KG)
知识来源 训练语料统计模式 结构化事实
更新方式 需要重新训练或微调 可动态增删改查
推理方式 概率推理(可能产生幻觉) 确定性推理(基于事实)
表达能力 灵活的自然语言 精确的三元组
知识广度 百科级知识 领域深度知识
可解释性 黑盒(难以追溯知识来源) 白盒(每个事实可溯源)

两者的融合可以产生强大的协同效应:LLM 提供自然语言理解和生成的灵活性,知识图谱提供精确的事实存储和推理能力。

1.2 融合的两个方向

方向一:KG 增强 LLM——在 LLM 的推理过程中注入知识图谱的结构化知识,提升回答的准确性和可溯源性。

方向二:LLM 增强 KG——利用 LLM 的自然语言理解能力,从非结构化文本中自动抽取实体和关系,降低知识图谱的构建和维护成本。

二、实体抽取:从文本到知识

2.1 传统 NER 的局限

传统命名实体识别(NER)系统基于序列标注模型(如 BiLSTM-CRF),需要大量标注数据训练,且难以处理:
- 嵌套实体(如「上海交通大学」中的「上海」)
- 不常见的实体类型
- 领域特定的术语

2.2 LLM 驱动的实体抽取

LLM 在实体抽取上的优势:
- 零样本或少样本能力:不需要大量标注数据
- 上下文理解:能根据上下文判断实体边界
- 灵活性:可以识别任意类型的实体

提示词设计示例

从以下文本中抽取所有实体,返回 JSON 格式。

文本:马斯克在 2022 年以 440 亿美元收购了 Twitter,并将其更名为 X。

输出格式:
{
  "entities": [
    {"name": "马斯克", "type": "Person", "mentions": ["马斯克"]},
    {"name": "2022年", "type": "Date", "mentions": ["2022年"]},
    {"name": "440亿美元", "type": "Price", "mentions": ["440亿美元"]},
    {"name": "Twitter", "type": "Organization", "mentions": ["Twitter"]},
    {"name": "X", "type": "Organization", "mentions": ["X"]}
  ],
  "relationships": [
    {"subject": "马斯克", "relation": "收购", "object": "Twitter", "time": "2022年"}
  ]
}

2.3 实体链接(Entity Linking)

实体抽取的下一步是实体链接——将文本中的实体提及映射到知识图谱中已有的节点。

核心挑战是多义性问题

文本中的「苹果」 → 知识图谱中的:
  a) 苹果公司 (Organization)
  b) 苹果 (水果, Food)

LLM 利用上下文可以准确判断:

「苹果发布了新款 iPhone」 → 苹果公司
「今天买的苹果很甜」 → 水果苹果

三、关系推理:利用图谱知识增强 LLM

3.1 图谱增强生成

在 RAG 框架中,知识图谱可以作为检索源之一。相比传统的向量检索(基于语义相似度),图谱检索(基于关系路径)有以下优势:

向量检索的问题
- 查询「苹果的 CEO」和「苹果的创始人」语义相似,向量检索可能同时返回两者的信息
- 难以回答多跳问题,如「苹果公司 CEO 曾在哪家公司担任高管」

图谱检索的优势
- 精确匹配关系类型:知道「CEO」是特定关系类型,不会与「创始人」混淆
- 天然支持多跳:沿关系路径遍历,可以回答深层次的关联性问题

3.2 减少幻觉

知识图谱可以作为 LLM 的事实性约束:

def kg_enhanced_generation(query, llm, kg_client):
    # 1. 从 LLM 提取查询中的实体
    entities = llm.extract_entities(query)

    # 2. 在知识图谱中查询相关事实
    facts = []
    for entity in entities:
        # 查询实体的直接关系
        relations = kg_client.query(
            f"MATCH (e)-[r]->(n) WHERE e.name = '{entity}' RETURN r, n"
        )
        facts.extend(relations)

    # 3. 将事实注入提示词
    enhanced_prompt = f'''
    基于以下知识图谱中的事实来回答问题:

    {facts}

    用户问题:{query}

    请基于上述事实回答,不要添加图谱中不存在的信息。
    '''

    # 4. 生成最终回答
    return llm.generate(enhanced_prompt)

3.3 架构模式

方式一:KG → LLM(先检索,后生成)
1. 用户问题输入 LLM
2. LLM 从问题中识别实体和关系
3. 系统查询知识图谱获取相关事实
4. 将事实注入 LLM 的上下文
5. LLM 基于事实生成回答

方式二:LLM → KG(先理解,后查询)
1. 用户自然语言问题输入
2. LLM 将问题转化为结构化查询(如 Cypher)
3. 系统在知识图谱上执行查询
4. 将查询结果格式化为自然语言
5. 返回最终回答

方式三:迭代融合(多轮交互)
1. 初步检索知识图谱
2. LLM 分析检索结果,判断信息是否充足
3. 如果不充足,生成新的查询继续检索
4. 直到获得足够信息
5. 生成最终回答

四、LLM 驱动的知识图谱构建

4.1 持续抽取

利用 LLM 从非结构化文本中持续抽取知识,自动扩展知识图谱:

def kg_construction_pipeline(texts, existing_kg):
    for doc in texts:
        # 1. 实体抽取
        entities = llm.extract_entities(doc.text)

        # 2. 实体链接(与已有节点关联)
        linked_entities = []
        for e in entities:
            existing = existing_kg.find_similar(e.name)
            if existing:
                linked_entities.append(existing)
            else:
                new_node = existing_kg.create_node(e)
                linked_entities.append(new_node)

        # 3. 关系抽取
        relations = llm.extract_relations(doc.text, linked_entities)

        # 4. 图谱更新
        for rel in relations:
            existing_kg.create_relationship(rel)

        # 5. 质量检查
        llm.validate_kg_update(entities, relations)

4.2 质量保障

LLM 在 KG 构建中可能产生的错误:
- 遗漏实体:文本中的重要实体未被识别
- 错误关系:实体之间关系判断错误
- 边界错误:实体边界划分不准确

质量保障策略:
1. 多轮抽取:同一个文档多次抽取,取共识结果
2. 交叉验证:多个 LLM 或不同设置下的结果进行交叉验证
3. 置信度评分:要求 LLM 为每个抽取结果附上置信度分数
4. 人工审核:对低置信度的结果进行人工审查

五、实际应用案例

5.1 智能问答系统

结合 KG 和 LLM 的问答系统可以做到:
- 「1 号店这个月销售额最高的产品是什么?」→ 精确查询图谱
- 「分析一下这个月销售额变化的原因」→ LLM 基于图谱数据生成分析

5.2 企业知识管理

六、总结

LLM 和知识图谱是天然互补的技术组合。LLM 提供自然语言理解和生成的灵活性,KG 提供精确的事实存储和确定性推理。实体抽取是融合的切入点,图谱增强生成是降低幻觉的有效手段,而 LLM 驱动的图谱构建则大幅降低了知识图谱的建设和维护成本。理解这两种技术的融合方式,是构建新一代 AI 应用的关键能力。

六、LLM+KG 的高级应用模式

6.1 知识图谱问答(KGQA)

这是最直接的应用:用户用自然语言提问,系统通过 LLM 理解问题、生成图查询、执行查询并用自然语言返回答案。

系统架构

用户问题 → LLM 问题理解 → 查询生成 → 图查询执行 → 结果格式化 → LLM 答案生成

6.2 知识图谱增强的事实核查

LLM 生成的内容中常有事实性错误。知识图谱可以作为事实核查的外部参考:

  1. 提取 LLM 输出中的事实性声明
  2. 将声明转换为图查询
  3. 向知识图谱查询验证该声明
  4. 标记不一致的声明供人工审查

6.3 动态知识图谱跟踪

结合 LLM 不断从新信息中抽取实体关系,知识图谱可以保持持续更新。这适用于:
- 新闻事件跟踪
- 产品动态监控
- 科研进展追踪

七、挑战与未来发展

  1. 抽取精度:LLM 的实体抽取在高精度场景下仍不够可靠
  2. 大规模处理:百万级文档的全自动图谱构建仍面临挑战
  3. 知识冲突:不同来源的信息可能相互矛盾
  4. 隐私问题:从文本中抽取个人信息涉及隐私合规

八、总结

LLM 和知识图谱是天生互补的技术组合。

关键要点回顾:
- LLM 擅长灵活的语言理解,KG 擅长精确的知识存储
- LLM 从自然语言中抽取实体关系,降低图谱构建成本
- 实体链接解决多义性问题
- KG 增强生成让 LLM 回答基于精确数据减少幻觉
- 多跳推理是知识图谱在 RAG 中的核心优势
- 两种架构:KG 增强生成和 LLM 驱动 KG 构建各有适用场景

六、LLM+KG 的高级应用模式

6.1 知识图谱问答(KGQA)

这是最直接的应用:用户用自然语言提问,系统通过 LLM 理解问题、生成图查询、执行查询并用自然语言返回答案。

系统架构

用户问题 → LLM 问题理解 → 查询生成 → 图查询执行 → 结果格式化 → LLM 答案生成

6.2 知识图谱增强的事实核查

LLM 生成的内容中常有事实性错误。知识图谱可以作为事实核查的外部参考:

  1. 提取 LLM 输出中的事实性声明
  2. 将声明转换为图查询
  3. 向知识图谱查询验证该声明
  4. 标记不一致的声明供人工审查

6.3 动态知识图谱跟踪

结合 LLM 不断从新信息中抽取实体关系,知识图谱可以保持持续更新。这适用于:
- 新闻事件跟踪
- 产品动态监控
- 科研进展追踪

七、挑战与未来发展

  1. 抽取精度:LLM 的实体抽取在高精度场景下仍不够可靠
  2. 大规模处理:百万级文档的全自动图谱构建仍面临挑战
  3. 知识冲突:不同来源的信息可能相互矛盾
  4. 隐私问题:从文本中抽取个人信息涉及隐私合规

八、总结

LLM 和知识图谱是天生互补的技术组合。

关键要点回顾:
- LLM 擅长灵活的语言理解,KG 擅长精确的知识存储
- LLM 从自然语言中抽取实体关系,降低图谱构建成本
- 实体链接解决多义性问题
- KG 增强生成让 LLM 回答基于精确数据减少幻觉
- 多跳推理是知识图谱在 RAG 中的核心优势
- 两种架构:KG 增强生成和 LLM 驱动 KG 构建各有适用场景

我们补充一个实践中非常重要的环节:实体抽取的 prompt 工程。在用 LLM 从文本中抽取实体时,prompt 的设计直接影响抽取质量。一个好的抽取 prompt 应该包含以下要素:明确的任务描述、输出格式规范(最好用 JSON Schema)、实体类型的明确定义、关系的合法类型列表、以及几个高质量的例子(few-shot)。通过精心设计的 prompt,实体抽取的 F1 分数可以从 70% 左右提升到 90% 以上。

六、LLM+KG 的高级应用模式

6.1 知识图谱问答(KGQA)

这是最直接的应用:用户用自然语言提问,系统通过 LLM 理解问题、生成图查询、执行查询并用自然语言返回答案。

系统架构

用户问题 → LLM 问题理解 → 查询生成 → 图查询执行 → 结果格式化 → LLM 答案生成

6.2 知识图谱增强的事实核查

LLM 生成的内容中常有事实性错误。知识图谱可以作为事实核查的外部参考:

  1. 提取 LLM 输出中的事实性声明
  2. 将声明转换为图查询
  3. 向知识图谱查询验证该声明
  4. 标记不一致的声明供人工审查

6.3 动态知识图谱跟踪

结合 LLM 不断从新信息中抽取实体关系,知识图谱可以保持持续更新。这适用于:
- 新闻事件跟踪
- 产品动态监控
- 科研进展追踪

七、挑战与未来发展

  1. 抽取精度:LLM 的实体抽取在高精度场景下仍不够可靠
  2. 大规模处理:百万级文档的全自动图谱构建仍面临挑战
  3. 知识冲突:不同来源的信息可能相互矛盾
  4. 隐私问题:从文本中抽取个人信息涉及隐私合规

八、总结

LLM 和知识图谱是天生互补的技术组合。

关键要点回顾:
- LLM 擅长灵活的语言理解,KG 擅长精确的知识存储
- LLM 从自然语言中抽取实体关系,降低图谱构建成本
- 实体链接解决多义性问题
- KG 增强生成让 LLM 回答基于精确数据减少幻觉
- 多跳推理是知识图谱在 RAG 中的核心优势
- 两种架构:KG 增强生成和 LLM 驱动 KG 构建各有适用场景

我们补充一个实践中非常重要的环节:实体抽取的 prompt 工程。在用 LLM 从文本中抽取实体时,prompt 的设计直接影响抽取质量。一个好的抽取 prompt 应该包含以下要素:明确的任务描述、输出格式规范(最好用 JSON Schema)、实体类型的明确定义、关系的合法类型列表、以及几个高质量的例子(few-shot)。通过精心设计的 prompt,实体抽取的 F1 分数可以从 70% 左右提升到 90% 以上。

延伸阅读

← 知识图谱基础 知识图谱查询与 RAG →