速成 · 知识图谱

(updated 2026年8月23日)

我按期末串讲和十二讲课件重新组织了课程内容,目标是快速建立完整框架。这不是根据历年真题统计的押题表,也不代表某个知识点一定会考。

0. 先看课程主线

知识图谱要解决的事并不神秘:把分散的数据整理成带语义的图,再让机器可以查询和推理。整门课可以顺着一条数据流来理解:

原始数据
  ↓ 抽取
候选实体、关系与事件
  ↓ 融合
消歧、对齐后的统一知识
  ↓ 表示与存储
RDF 图或属性图
  ↓ 检索与推理
查询答案、补全缺失关系、发现新知识
  ↓ 应用
问答、推荐、视觉理解和行业系统

表示规定“知识长什么样”,抽取负责“从哪里拿到知识”,融合处理“不同来源是否说的是同一件事”,存储与查询让知识可用,推理则尝试得到图中没有直接写出的结论。后面的 KGE、KBQA 和推荐模型,都可以放回这条主线里定位。

1. 概述:知识图谱里装的是什么

1.1 从信号到知识

  • 信号是传感器或通信系统得到的原始变化。
  • 数据是按某种形式记录下来的符号和数值。
  • 信息是经过解释、带有上下文的数据。
  • 知识进一步表达实体、概念、关系和约束,可以支持判断与推理。

传统数据库擅长保存结构化记录,但通常不会主动表达“某个类是另一个类的子类”“两个名字指向同一个人”这类语义。知识图谱把这些语义也放进数据模型中,因此更适合异构数据关联、语义检索和推理。

1.2 三元组与两层结构

知识图谱最常见的基本单位是三元组:

(h,r,t)(h,r,t)

其中 hh 是头实体,rr 是关系,tt 是尾实体。例如:

(北京航空航天大学, 位于, 北京)(\text{北京航空航天大学},\ \text{位于},\ \text{北京})

一张图里通常同时有两层知识:

  • 概念层描述类别、约束和类别之间的关系,例如“大学是教育机构的一种”。
  • 实例层描述具体对象和事实,例如“北京航空航天大学是一所大学”。

概念层给出模式,实例层填入数据。只记三元组而忽略这两层的区别,后面很容易混淆本体、RDF 和普通属性图。

1.3 课程中的四个关键问题

课件把知识图谱技术归纳为四类问题:

  1. 知识表示:怎样让机器表示实体、关系、规则和约束。
  2. 知识抽取:怎样从结构化、半结构化和非结构化数据中得到知识。
  3. 知识融合:怎样消除异构、重复和歧义。
  4. 知识服务:怎样存储、查询、推理并支撑上层应用。

2. 知识表示:从规则到图

知识表示方法的发展,可以看成“表达能力、推理能力和工程成本”之间不断取舍。

方法基本形式适合表达主要限制
一阶谓词逻辑谓词、变量、量词严格事实与规则不擅长不确定知识,推理成本高
语义网络节点和有向边概念及其关系早期形式缺少统一严格语义
产生式系统IF 条件 THEN 结论专家规则规则多后维护和冲突处理困难
框架对象及其槽位结构化对象、默认值与继承通用推理能力有限
描述逻辑概念、角色、个体分类体系和约束表达能力越强,推理通常越贵
RDF / OWL三元组与本体公理Web 上可交换的语义数据复杂属性表达较冗长
属性图节点、边及键值属性图数据库中的工程查询跨系统语义标准化较弱

2.1 描述逻辑、本体与 RDF

描述逻辑把知识分成两部分:

  • TBox 描述概念和角色之间的模式,例如 Student⊑PersonStudent \sqsubseteq Person。
  • ABox 描述具体个体,例如 Student(Lee)Student(Lee)。

在本课程的记号中,本体可以写成五元组:

O=(C,R,F,A,I)O=(C,R,F,A,I)

CC、RR、FF、AA、II 分别表示概念、关系、函数、公理和实例。本体不是“事实越多越好”,它主要规定一套领域共同使用的概念和约束。

RDF 把事实写成主语、谓词、宾语三元组。RDFS 在 RDF 之上补充类、子类、属性定义域和值域等词汇;OWL 再增加更强的本体表达和推理能力。课件重点涉及三种 OWL 2 profile:

  • OWL 2 QL 面向大量实例和查询改写。
  • OWL 2 EL 适合类和属性很多的大型本体。
  • OWL 2 RL 适合基于规则的推理实现。

它们不是简单的“低、中、高”三个等级,而是针对不同应用场景裁剪出的子语言。

2.2 RDF 与属性图怎么选

RDF 的所有信息都以三元组表达,谓词必须用 IRI 标识;主语可以是 IRI 或空白节点,宾语还可以是字面量。它适合语义互操作、链接数据和本体推理。属性图允许节点和边直接携带键值属性,适合在 Neo4j 等图数据库里做遍历和工程查询。

例如“李雷从 2024 年起就读于北航”:

  • 属性图可以把 since: 2024 直接放在 就读于 这条边上。
  • RDF 通常需要额外三元组或引入中间节点表达这条关系的属性。

选择数据模型时,先看任务更依赖标准语义与推理,还是更依赖灵活属性和高效遍历。

3. 知识抽取:把原始数据变成候选事实

3.1 三类数据源

数据源例子主要方法
结构化数据关系数据库、表格直接映射、R2RML
半结构化数据HTML、百科页面、Web Table包装器、模板发现、表格阐释
非结构化数据新闻、论文、社交文本实体识别、关系抽取、事件抽取

无论数据源是什么,最后都要回答三个问题:文本或记录里有哪些实体,实体之间有什么关系,发生了什么事件。

3.2 结构化数据:D2R

关系数据库转成 RDF 时,可以先记住五组对应:

关系数据库知识图谱
表类
列属性
行实例
单元格属性值
外键实体之间的指代关系

W3C 的 RDB2RDF 路线包括两种方法:

  • Direct Mapping 按固定规则直接生成 RDF,省配置但定制能力有限。
  • R2RML 用映射文件定义逻辑表、主语映射和谓词—宾语映射,可以控制生成的类、IRI 和关系。

一条 R2RML Triples Map 的结构可以压缩为:

Logical Table
  ├── Subject Map
  └── Predicate-Object Map
        ├── Predicate Map
        └── Object Map / RefObjectMap

跨表关系通过 parentTriplesMap 指向父映射,再用 joinCondition 说明子表与父表怎样连接。D2RQ、Mastro、Ultrawrap 和 Ontop 都属于这条 D2R / OBDA 工具链中的代表。

3.3 半结构化数据:包装器、Web Table 与 PageRank

DBpedia 的典型思路是从 Wikipedia 的信息框、分类、页面链接等半结构化内容中抽取 RDF。一般网页则需要包装器根据 DOM 结构定位目标字段。包装器可以手工编写,也可以通过监督归纳或无监督模式发现生成。

Web Table 抽取不止是把 HTML 表格抄下来,还要完成:

  1. 判断表格是布局表还是关系表。
  2. 识别表头、数据区域和实体列。
  3. 把单元格链接到知识库实体,并确定列的语义。

实体消歧可以利用候选实体与单元格文本的相似度,也可以利用候选实体之间的图结构。PageRank 的稳态更新式为:

PR(v)=1−dN+d∑u→vPR(u)L(u)PR(v)=\frac{1-d}{N}+d\sum_{u\rightarrow v}\frac{PR(u)}{L(u)}

dd 是阻尼系数,NN 是节点数,L(u)L(u) 是节点 uu 的出链数。它表示随机游走长期达到稳态后落在节点 vv 的概率,不是“走到该点后停止的概率”。

3.4 非结构化数据:NER、RE 与 EE

命名实体识别(NER)先在文本中找出人名、地点、组织等实体。BIO 标注用 B-X 表示某类实体开头,I-X 表示实体内部,O 表示非实体;BIOES 进一步区分单字实体和结尾。

CRF 对整个标签序列打分:

p(y∣x)=exp⁡s(x,y)∑y′exp⁡s(x,y′)p(\mathbf y\mid\mathbf x) =\frac{\exp s(\mathbf x,\mathbf y)} {\sum_{\mathbf y'}\exp s(\mathbf x,\mathbf y')}

BiLSTM+CRF 中,BiLSTM 同时编码每个词的左、右上下文,CRF 再为整条标签序列选择全局得分最高的合法组合。两者分别解决“读懂上下文”和“约束标签转移”。

关系抽取(RE)判断实体对之间的语义关系。模板方法可解释但覆盖有限;深度模型能自动学习特征;远程监督用知识库已有实体关系自动标注文本,因此规模大但会引入噪声。它的经典假设是:若知识库中两个实体存在关系,包含这两个实体的句子就可能表达该关系。

事件抽取(EE)通常包括触发词识别和论元识别。流水线方法容易实现,但前序错误会传给后续步骤;联合抽取同时建模多个子任务,可以缓解这种传播,却不保证在所有数据和设置下都更好。

3.5 NER 扩展与大模型抽取

课件继续讨论了少样本/零样本、持续学习、嵌套实体、跨领域和多模态 NER。它们分别处理标注稀缺、新类型持续加入、实体边界嵌套、训练测试领域变化和图文联合输入。

LLM 抽取不必简单替代小模型。课件中的 Filter-then-Rerank 路线让小模型高召回地产生候选,再让 LLM 结合指令和上下文重排。这样能把稳定的批量抽取与较强的语义判断分开。

4. 知识融合:判断“是不是同一个东西”

多源知识图谱在语言、模式和实例层都会不一致,例如同一实体名称不同、两个本体类目划分不同、同一属性取值冲突。融合的目标不是简单合并文件,而是建立可信的对应关系。

4.1 本体映射

本体映射通常经历导入本体、发现候选对应、表示映射结果三个阶段。方法大致有三类:

  • 基于术语:比较名称、标签、词形和语言学信息。
  • 基于结构:利用父子概念、邻接关系和局部图结构传播相似度。
  • 基于实例:比较概念下已有实例的重合和分布。

常见字符串集合相似度为:

Dice⁡(S,T)=2∣S∩T∣∣S∣+∣T∣\operatorname{Dice}(S,T)=\frac{2|S\cap T|}{|S|+|T|} Jaccard⁡(S,T)=∣S∩T∣∣S∪T∣\operatorname{Jaccard}(S,T)=\frac{|S\cap T|}{|S\cup T|}

编辑距离适合比较拼写差异,结构方法则适合名称不相似、但周围关系相近的概念。Lily 把多类匹配器组合成一条映射流程,而不是只依赖某一个相似度。

4.2 实例匹配与实体消歧

实例匹配的实际流程通常是:

  1. 分块或生成候选对,避免对两张大图做笛卡尔积。
  2. 提取名称、属性、文本上下文和邻域结构特征。
  3. 用规则、分类器、度量学习或图模型判断是否匹配。
  4. 聚类或合并相同实体,并处理冲突属性。

TF-IDF 与余弦相似度可把文本描述变成可比较的向量:

TF⁡(t,Di)=t 在 Di 中出现的次数Di 的词数\operatorname{TF}(t,D_i)= \frac{t\text{ 在 }D_i\text{ 中出现的次数}}{D_i\text{ 的词数}} IDF⁡(t)=log⁡N∣{i:t∈Di}∣\operatorname{IDF}(t)=\log\frac{N}{|\{i:t\in D_i\}|} cos⁡θ=a⋅b∥a∥∥b∥\cos\theta=\frac{\mathbf a\cdot\mathbf b}{\|\mathbf a\|\|\mathbf b\|}

VMI 用倒排索引把可能匹配的实例放入同一候选块;AMiner 的同名作者消歧结合度量学习、图编码和聚类;OAG 的 LinKG 分阶段对齐出版地点、论文和作者。这些例子分别对应候选生成、单图消歧和跨图对齐。

5. 存储与检索:让图真正可查

5.1 SPARQL 与 Cypher

SPARQL 面向 RDF 图,通过三元组模式匹配变量。例如查询商品及其类别:

PREFIX ex: <http://example.org/>

SELECT ?product ?category
WHERE {
  ?product a ex:Product .
  ?product ex:category ?category .
}

常用结构是 PREFIX、SELECT、WHERE,再配合 FILTER 和 OPTIONAL。

Cypher 面向属性图,用近似画图的语法描述节点和边:

MATCH (person:Person)-[:STUDIES_AT]->(school:University)
WHERE school.name = '北京航空航天大学'
RETURN person.name

两种语言都在做图模式匹配,只是依赖的数据模型不同。

5.2 关系数据库中的四种 RDF 存储

方案做法典型取舍
三元组表所有事实放入 (s,p,o) 一张表简单通用,但自连接很多
水平表一个资源占一行,不同谓词作列查询直观,但大量空值且模式僵硬
属性表经常一起出现的谓词放在同一张表减少连接,但分组设计困难
垂直划分每种谓词一张 (s,o) 表单谓词扫描快,复杂查询仍需连接

RDF4J、AllegroGraph 是 RDF 存储与查询系统的代表;Neo4j 使用属性图和 Cypher。不要只背产品名,先判断它服务的是 RDF 语义网路线还是属性图数据库路线。

6. 推理:从已有事实得到新结论

6.1 四种基本推理

类型方向例子
演绎一般规则到具体结论人都会死,苏格拉底是人,所以苏格拉底会死
归纳多个事实概括一般规律观察大量样本后学习关系规律
溯因从结果寻找最可能原因看到症状后提出可能诊断
类比根据相似结构迁移结论用相似实体的关系帮助判断新实体

统计推理属于归纳路线,不是与这四类并列的第五类。

面向知识图谱,课件主要介绍三类方法:逻辑规则、图结构路径和表示学习。强化学习与 LLM 路径搜索则把“如何在图上选择下一步”做成策略决策。

6.2 规则学习:AMIE

规则可以写成:

r1(x,z)∧r2(z,y)⇒r3(x,y)r_1(x,z)\land r_2(z,y)\Rightarrow r_3(x,y)

AMIE 从数据中逐步扩展规则,主要操作包括增加悬挂原子、闭合原子和实例化原子,并用头覆盖度、置信度等指标剪枝。它是规则挖掘算法;算法最后产出的 Horn rules 才是规则。

规则推理容易解释,但依赖规则覆盖范围。路径排序算法 PRA 则对实体间的关系路径做随机游走,把不同路径出现的概率当作特征。强化学习方法进一步把实体视为状态、关系边视为动作、目标实体视为奖励,学习多跳搜索策略。ToG 让大模型参与候选关系和实体的选择,同时仍然需要知识图谱提供可验证的搜索空间。

7. KGE:把图放进向量空间

7.1 为什么需要嵌入

符号图容易解释,却难以直接用于梯度学习;大型知识图谱又普遍不完整。知识图谱嵌入(KGE)把实体和关系映射到低维空间,通过打分函数判断三元组是否合理,可用于链接预测、三元组分类和实体/关系预测。

模型可以按思路分成几类:

  • 几何变换:TransE、TransH、TransR、RotatE。
  • 张量分解:RESCAL、ComplEx、SimplE。
  • 神经打分:NTN、ConvE。
  • Transformer:KG-BERT。
  • 图神经网络:R-GCN。

7.2 TransE:把关系看作平移

TransE 希望真实三元组满足:

h+r≈t\mathbf h+\mathbf r\approx\mathbf t

常用能量函数为:

E(h,r,t)=∥h+r−t∥1或∥h+r−t∥2E(h,r,t)=\|\mathbf h+\mathbf r-\mathbf t\|_1 \quad\text{或}\quad \|\mathbf h+\mathbf r-\mathbf t\|_2

训练时让正样本得分低于破坏头实体或尾实体得到的负样本:

L=∑(h,r,t)∈T∑(h′,r,t′)∈T′max⁡(0,γ+E(h,r,t)−E(h′,r,t′))L=\sum_{(h,r,t)\in T} \sum_{(h',r,t')\in T'} \max\left(0,\gamma+E(h,r,t)-E(h',r,t')\right)

它简单高效,但同一个关系向量很难同时表示一对多、多对一和多对多关系;对称关系也可能使不同实体的表示退化到一起。

7.3 复杂关系怎样建模

后续模型分别针对 TransE 的不同局限做扩展:

  • TransH 把实体投影到关系对应的超平面,再执行平移。
  • TransR、TransD 和 STransE 为不同关系设计不同映射空间或映射方式。
  • RESCAL 用关系矩阵做双线性打分;ComplEx 在复数空间建模反对称关系。
  • PairRE 用成对关系向量分别缩放头、尾实体。
  • RotatE 把关系建模为复数空间中的旋转,可以表达对称、反对称、逆关系和关系组合。
  • KG2E 用概率分布表达实体与关系的不确定性。
  • HAKE 用极坐标的模长表达层级、相位表达同层关系。
  • Poincaré 嵌入利用双曲空间容纳树状层次。

路径、规则、文本、实体类型和多模态信息也能补充单个三元组看不到的上下文。PTransE 引入关系路径,RPJE 联合规则与路径,TKRL 利用类型层次,DKRL 利用实体描述,EngineKG 则在规则学习与嵌入学习之间迭代。

7.4 链接预测指标

测试时通常遮住头实体或尾实体,让模型给所有候选实体排序。Filtered 设置会删除图中已知为真的其他候选,避免把正确事实当成错误答案。

MR⁡=1N∑i=1Nrank⁡i\operatorname{MR}=\frac{1}{N}\sum_{i=1}^{N}\operatorname{rank}_i MRR⁡=1N∑i=1N1rank⁡i\operatorname{MRR}=\frac{1}{N}\sum_{i=1}^{N}\frac{1}{\operatorname{rank}_i} Hits@⁡n=1N∑i=1NI(rank⁡i≤n)\operatorname{Hits@}n =\frac{1}{N}\sum_{i=1}^{N} \mathbb I(\operatorname{rank}_i\le n)

MR 越低越好,MRR 和 Hits@nn 越高越好。MR 对极差名次较敏感,MRR 更强调前几名,Hits@nn 只关心答案是否进入前 nn 名。

7.5 图会变化,测试对象也可能没见过

静态闭世界的链接预测并不是全部场景。第十一讲还区分了几类扩展问题:

  • 增量式 KGE:同一张图不断新增或删除事实,更新表示时还要避免遗忘已有知识。
  • 时序知识图谱:事实带时间戳,需要建模关系何时成立以及事件怎样演化。
  • 多模态推理:把图结构与文本、图像等信号一起使用。
  • 少样本与零样本:目标关系只有少量样本,甚至训练时从未出现。
  • 归纳式推理:测试时出现新实体或整张新图,不能只依赖训练阶段记住的实体向量。

区分它们时,先问变化发生在哪里:是事实随时间更新、模态变多、标注变少,还是测试对象根本没有出现在训练图里。

8. 应用:知识图谱怎样进入系统

8.1 KBQA

知识图谱问答要把自然语言问题变成图上的可执行查询,主要有三条路线:

路线处理方式特点
模板匹配人工或自动生成的问句模板,再填充实体和关系准确、可解释,但覆盖有限
语义解析把问题转换为逻辑形式或查询语句结构清楚,但依赖解析与标注
深度学习学习问题与实体、关系或答案的表示泛化较灵活,但解释和复杂约束仍需专门设计

一个完整系统通常还要处理实体链接、关系识别、查询构造、图上执行和答案排序。模板、语义解析和神经模型并非互斥,工程系统常把它们组合使用。

8.2 推荐、视觉与行业应用

知识图谱推荐利用用户、物品和属性之间的多跳路径补充协同过滤信号,也能用路径解释“为什么推荐”。KGCN 聚合知识图谱邻居,KGAT 使用图注意力,RippleNet 沿用户历史兴趣在图上传播,PGPR 则学习可解释的推荐路径。

在视觉问答和跨模态检索中,知识图谱补充图片里没有直接出现的常识和实体关系。医疗、商业和信息安全等领域应用也是同一套流程:先构建领域本体和实例,再做查询、推理或预测。领域系统的关键不只是换一份数据,还要处理领域术语、约束、数据质量和可解释性。

9. 三个计算口径

9.1 Dice 与 Jaccard

比较 Lvensshtain 与 Levenshtein 的 bigram:

S = {Lv, ve, en, ns, ss, sh, ht, ta, ai, in}
T = {Le, ev, ve, en, ns, sh, ht, te, ei, in}

交集是 {ve, en, ns, sh, ht, in},因此 ∣S∣=∣T∣=10|S|=|T|=10,∣S∩T∣=6|S\cap T|=6,∣S∪T∣=14|S\cup T|=14:

Dice⁡(S,T)=2×610+10=0.6\operatorname{Dice}(S,T)=\frac{2\times6}{10+10}=0.6 Jaccard⁡(S,T)=614≈0.429\operatorname{Jaccard}(S,T)=\frac{6}{14}\approx0.429

9.2 TF-IDF 与余弦

计算顺序是分词、统计 TF、根据文档集合计算 IDF、得到 TF-IDF 向量,最后算余弦相似度。需要特别注意:IDF 的 NN 是文档总数,分母是包含该词的文档数,不是该词在所有文档中的总出现次数。

9.3 KGE 排名

若三个测试样本的真实实体名次分别是 1,2,101,2,10:

MR⁡=1+2+103=133\operatorname{MR}=\frac{1+2+10}{3}=\frac{13}{3} MRR⁡=1+1/2+1/103=815\operatorname{MRR}=\frac{1+1/2+1/10}{3}=\frac{8}{15} Hits@⁡3=23\operatorname{Hits@}3=\frac{2}{3}

排名从 1 开始,不能把数组下标 0 当作第一名。

10. 自测

先不翻上文,尝试回答下面的问题:

  1. 概念层和实例层分别描述什么?TBox 与 ABox 如何对应这一区分?
  2. RDF 和属性图表达“边的属性”时有什么差别?
  3. Direct Mapping 与 R2RML 的取舍是什么?R2RML 怎样表示跨表关系?
  4. BiLSTM 与 CRF 在 NER 中各自负责什么?
  5. 远程监督为什么能自动扩充训练数据,又为什么会带来噪声?
  6. 实体匹配为什么要先分块?名称相似、文本相似和结构相似各适合什么情况?
  7. SPARQL 和 Cypher 的共同点与数据模型差异是什么?
  8. AMIE、PRA、强化学习和 KGE 分别利用规则、路径或向量中的哪种信号?
  9. TransE 为什么难以处理一对多关系?RotatE 又能表达哪些关系模式?
  10. 模板、语义解析和深度学习 KBQA 各自在哪个环节获得灵活性,又在哪里付出代价?

检查答案时,不必逐字复述课件。按“输入是什么、方法做什么、输出是什么、局限在哪里”复述;停顿的部分再回到对应讲次。

评论