第一次课
大约 9 分钟教学文档知识图谱
一、教学目标
- 理解概念: 学生能够准确复述知识图谱(Knowledge Graph, KG)的定义、核心要素及数据表示形式。
- 掌握流程: 学生能够描述知识图谱构建的全生命周期,特别是其中涉及 NLP 技术的关键环节。
- 了解应用: 学生能够列举并解释知识图谱在 NLP 领域的传统典型应用场景(如搜索、问答、推荐)。
- 建立认知: 初步建立“数据 - 信息 - 知识”的认知层级,理解 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 提供了外部知识库和逻辑约束。
1. 智能搜索 (Semantic Search)
- 传统搜索: 基于关键词匹配(Keyword Matching)。搜“苹果”,出来水果和手机,无法区分。
- KG 增强搜索:
- 实体链接 (Entity Linking): 将查询词链接到图谱中的唯一实体 ID。
- 语义扩展: 搜“感冒”,自动关联“发烧”、“止咳药”。
- 直接答案 (Direct Answer): 在搜索结果页直接展示知识卡片(Knowledge Panel)。
- 案例: 百度搜索“刘德华身高”,直接显示"174cm",无需点击网页。
2. 知识图谱问答 (KBQA)
- 定义: 基于 KG 的自然语言问答。
- 流程:
- 语义解析 (Semantic Parsing): 将自然语言问题转化为查询语句(如 SPARQL 或 Cypher)。
- 图谱查询: 在 KG 中执行查询。
- 答案生成: 返回结果。
- 示例:
- 问:“马云创立了哪些公司?”
- 解析:
Find ?company WHERE (马云,创立,?company) - 答:阿里巴巴、湖畔大学...
- 优势: 答案准确,可解释性强(因为路径是明确的)。
3. 推荐系统 (Recommendation System)
- 传统推荐: 协同过滤(用户 - 物品矩阵),存在“冷启动”和“黑盒”问题。
- KG 增强推荐 (KGR):
- 连接性: 利用 KG 中的多跳关系发现潜在兴趣。
- 用户喜欢电影 A -> 电影 A 主演是 B -> 用户可能喜欢 电影 C(B 主演的)。
- 可解释性: 可以告诉用户“推荐这部电影是因为你喜欢它的导演”。
- 解决冷启动: 新物品通过 KG 属性(类型、演员)与用户建立联系。
- 连接性: 利用 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. 课后思考题
- 尝试使用 Neo4j 或在线工具,手动构建一个包含 5 个实体、5 个关系的微型“家庭关系图谱”。
- 思考:在“自底向上”构建图谱时,如何解决“关系冲突”问题?(例如: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)
