跳至主要內容

第一次课

周子力大约 9 分钟教学文档知识图谱

一、教学目标

  1. 理解概念: 学生能够准确复述知识图谱(Knowledge Graph, KG)的定义、核心要素及数据表示形式。
  2. 掌握流程: 学生能够描述知识图谱构建的全生命周期,特别是其中涉及 NLP 技术的关键环节。
  3. 了解应用: 学生能够列举并解释知识图谱在 NLP 领域的传统典型应用场景(如搜索、问答、推荐)。
  4. 建立认知: 初步建立“数据 - 信息 - 知识”的认知层级,理解 KG 如何赋予机器认知能力。

二、时间分配表

环节内容模块预计时长教学形式
导入课程引入与背景5 分钟讲授 + 提问
第一部分知识图谱基础(定义、表示、分类)25 分钟讲授 + 图示
第二部分知识图谱构建流程(核心 NLP 技术)35 分钟讲授 + 流程拆解
第三部分KG 在 NLP 中的传统应用20 分钟案例分析
总结课程回顾与展望5 分钟总结 + 答疑

三、详细教学内容

【导入】课程引入(5 分钟)

  • 开场白: 同学们好。在开始今天的内容之前,我想请大家思考一个问题:当你在搜索引擎中输入“周杰伦的妻子”时,为什么搜索引擎能直接右侧显示“昆凌”,而不是只给你一堆包含这两个词的网页链接?
  • 核心引出: 这背后就是知识图谱在起作用。它让机器从“关键词匹配”进化到了“语义理解”。
  • 背景简述:
    • 2012 年,Google 正式提出“知识图谱”概念,旨在构建一个结构化的语义知识库。
    • 它是人工智能从“感知智能”(听、看)向“认知智能”(理解、推理)跨越的关键基石。
  • 本节重点: 什么是 KG?怎么建?怎么用(特别是在 NLP 里)?

【第一部分】知识图谱基础(25 分钟)

1. 知识图谱的定义

  • 官方定义: Google 在 2012 年提出,本质上是一种语义网络(Semantic Network)
  • 通俗理解: 把现实世界中的事物(实体)以及它们之间的关系,用图的形式记录下来,形成一张巨大的网状知识库。
  • 核心逻辑: 从“字符串”到“概念”。
    • 传统文本:"Paris" 只是一个由 5 个字母组成的字符串。
    • KG 视角:"Paris" 是一个 城市 ,属于 法国,是 首都

2. 核心要素与数据模型

  • 基本组成单元:三元组(Triple)
    • 格式:(头实体,关系,尾实体)(Head, Relation, Tail)
    • 示例:(马云,创立,阿里巴巴)(北京,位于,中国)
    • 板书/PPT 展示: 画出节点(Entity)和边(Relation)的示意图。
  • 本体(Ontology):
    • 定义:知识的“模板”或“模式层”(Schema)。
    • 作用:定义实体有哪些类型(类),关系有哪些类型,以及类型的属性。
    • 示例:定义“人物”类,具有“姓名”、“出生日期”属性;“人物”与“公司”之间存在“任职”关系。
  • 表示标准(简述):
    • RDF (Resource Description Framework): 资源描述框架,Web 标准,强调 URI 标识。
    • 属性图 (Property Graph): 工业界常用(如 Neo4j),节点和边都可以有属性,查询效率高。

3. 知识图谱的分类

  • 按领域范围:
    • 通用知识图谱: 面向大众,覆盖面广,事实性知识为主。
      • 代表:Google KG, Wikidata, DBpedia, 百度百科知识图谱。
    • 行业/垂直知识图谱: 面向特定行业,深度深,包含大量专业术语和逻辑。
      • 代表:医疗图谱(疾病 - 症状 - 药品)、金融风控图谱(企业 - 法人 - 担保)、法律图谱。
  • 按构建方式:
    • 自顶向下 (Top-Down): 先定义好本体(Schema),再填充数据。适合高质量、小规模、垂直领域。
    • 自底向上 (Bottom-Up): 先从数据中抽取实体关系,再汇总抽象成本体。适合开放域、大规模数据。

【第二部分】知识图谱构建流程(35 分钟)

  • 过渡: 知道了什么是 KG,那么面对互联网海量的非结构化文本(新闻、百科、报告),我们如何把它变成结构化的图谱?这就是构建流程,其中NLP 技术是核心驱动力

1. 构建流程总览

  • 流程图展示:数据源 -> 知识抽取 -> 知识融合 -> 知识加工/推理 -> 知识存储 -> 应用
  • 核心难点: 非结构化数据(文本) -> 结构化数据(图谱)。

2. 关键步骤详解(结合 NLP 技术)

(1) 知识抽取 (Knowledge Extraction) —— 最核心的 NLP 环节
  • 实体抽取 (Entity Extraction / NER):
    • 任务: 从文本中识别出具有特定意义的实体。
    • NLP 技术: 命名实体识别(NER)。
    • 示例: 句子“乔布斯在加州发布了 iPhone。” -> 抽取 [乔布斯/人物], [加州/地点], [iPhone/产品]
    • 难点: 嵌套实体、新词发现、领域迁移。
  • 关系抽取 (Relation Extraction, RE):
    • 任务: 识别实体之间的语义关系。
    • NLP 技术: 基于规则、基于分类模型(CNN/RNN/BERT)、基于指针网络。
    • 示例: 识别“乔布斯”和"iPhone"之间是 (创始人,产品) 关系。
    • 分类: 有监督 RE(需要标注数据)、远程监督 RE(利用现有 KB 对齐文本)、无监督 RE。
  • 事件抽取 (Event Extraction):
    • 任务: 识别由多个实体参与构成的复杂行为。
    • 示例: “收购事件”包含:收购方、被收购方、金额、时间。
(2) 知识融合 (Knowledge Fusion)
  • 背景: 不同来源的数据可能对同一事物有不同描述。
  • 实体对齐 (Entity Alignment) / 实体消歧:
    • 任务: 判断两个实体是否指向现实世界中的同一对象。
    • 示例: "Apple Inc.""苹果公司" 是同一个实体;"乔丹" 可能是 "迈克尔·乔丹" 也可能是 "布兰登·乔丹"
    • NLP 技术: 基于字符串相似度、基于向量表示(Embedding)、基于图结构相似度。
  • 数据清洗: 处理冲突、错误和过时信息。
(3) 知识加工与推理 (Knowledge Reasoning)
  • 知识补全 (Knowledge Completion):
    • 任务: 预测图中缺失的链接。
    • 示例: 已知 (A, 父亲,B), (B, 父亲,C),推理出 (A, 祖父,C)
    • 技术: 知识图谱嵌入(KGE,如 TransE, RotatE)、规则推理。
  • 质量评估: 准确性、覆盖率、时效性。
(4) 知识存储 (Storage)
  • 图数据库: Neo4j (最流行), JanusGraph, Titan。
  • RDF 存储: Virtuoso, Jena。
  • 查询语言: Cypher (Neo4j), SPARQL (RDF)。
    • 代码示例展示: MATCH (p:Person)-[:BORN_IN]->(c:City) RETURN p.name, c.name

【重点强调】

  • 构建流程不是线性的,往往是迭代优化的。
  • NLP 在其中的角色: NLP 主要负责“输入端”(从文本读知识),KG 主要负责“存储端”和“逻辑端”(存知识、用知识)。

【第三部分】KG 在 NLP 中的传统应用(20 分钟)

  • 过渡: 建好图谱后,它如何反哺 NLP 任务?知识图谱为 NLP 提供了外部知识库逻辑约束
  • 传统搜索: 基于关键词匹配(Keyword Matching)。搜“苹果”,出来水果和手机,无法区分。
  • KG 增强搜索:
    • 实体链接 (Entity Linking): 将查询词链接到图谱中的唯一实体 ID。
    • 语义扩展: 搜“感冒”,自动关联“发烧”、“止咳药”。
    • 直接答案 (Direct Answer): 在搜索结果页直接展示知识卡片(Knowledge Panel)。
  • 案例: 百度搜索“刘德华身高”,直接显示"174cm",无需点击网页。

2. 知识图谱问答 (KBQA)

  • 定义: 基于 KG 的自然语言问答。
  • 流程:
    1. 语义解析 (Semantic Parsing): 将自然语言问题转化为查询语句(如 SPARQL 或 Cypher)。
    2. 图谱查询: 在 KG 中执行查询。
    3. 答案生成: 返回结果。
  • 示例:
    • 问:“马云创立了哪些公司?”
    • 解析:Find ?company WHERE (马云,创立,?company)
    • 答:阿里巴巴、湖畔大学...
  • 优势: 答案准确,可解释性强(因为路径是明确的)。

3. 推荐系统 (Recommendation System)

  • 传统推荐: 协同过滤(用户 - 物品矩阵),存在“冷启动”和“黑盒”问题。
  • KG 增强推荐 (KGR):
    • 连接性: 利用 KG 中的多跳关系发现潜在兴趣。
      • 用户喜欢电影 A -> 电影 A 主演是 B -> 用户可能喜欢 电影 C(B 主演的)。
    • 可解释性: 可以告诉用户“推荐这部电影是因为你喜欢它的导演”。
    • 解决冷启动: 新物品通过 KG 属性(类型、演员)与用户建立联系。

4. 文本理解与生成 (NLU & NLG)

  • 文本分类/情感分析: 引入 KG 中的常识。
    • 例:“这手机电池太持久了。” -> 正面。但如果结合 KG 知道“持久”在特定语境下可能指“充电慢”,可辅助消歧。
  • 内容生成: 在生成文本时,利用 KG 确保事实准确性(Fact-checking),减少大模型的“幻觉”。

【案例分析】医疗领域应用(5 分钟)

  • 场景: 辅助诊断。
  • 输入: 患者描述“头痛、发烧、流鼻涕”。
  • KG 推理:
    • 症状 -> 关联疾病(感冒、流感、脑膜炎)。
    • 疾病 -> 关联药品(退烧药、抗生素)。
    • 药品 -> 关联禁忌(孕妇禁用)。
  • 价值: 提供基于医学知识的推理,而非简单的关键词匹配,提高诊断建议的可靠性。

【第四部分】总结与展望(5 分钟)

1. 课程总结

  • 定义: KG 是结构化的语义知识库,核心是三元组。
  • 构建: 核心是 NLP 抽取技术(NER, RE)+ 知识融合。
  • 应用: 搜索、问答、推荐是三大经典场景,核心价值是语义理解推理

2. 前沿展望(KG + LLM)

  • 现状: 大语言模型(LLM)能力强但存在幻觉、知识更新慢;KG 知识准确但构建成本高、覆盖度有限。
  • 趋势:
    • KG 增强 LLM (RAG): 用 KG 作为外部知识库,让 LLM 回答更准确。
    • LLM 辅助构建 KG: 利用 LLM 强大的抽取能力,降低 KG 构建成本。
    • 神经符号结合: 将 LLM 的感知能力与 KG 的逻辑推理能力结合。

3. 课后思考题

  1. 尝试使用 Neo4j 或在线工具,手动构建一个包含 5 个实体、5 个关系的微型“家庭关系图谱”。
  2. 思考:在“自底向上”构建图谱时,如何解决“关系冲突”问题?(例如:A 文本说 X 是 Y 的子公司,B 文本说 X 和 Y 是合作伙伴)。

四、教学资源与参考

  • 推荐工具:
    • 可视化:Neo4j Browser, Graphviz
    • NLP 库:Spacy, HanLP, Transformers (HuggingFace)
    • 公开数据集:Freebase (已停用,可用 Wikidata 替代), CN-DBpedia, HowNet
  • 参考书籍:
    • 《知识图谱:方法、实践与应用》(王昊奋 等)
    • 《Introduction to Knowledge Graphs》
  • 参考论文:
    • Google: "Introducing the Knowledge Graph: things, not strings" (2012)
    • TransE: "Translating Embeddings for Modeling Multi-relational Data" (2013)
上次编辑于:
贡献者: zilizhou