知识表示
Views: --
对应 PPT:第2讲 后续所有抽取/融合/推理都依赖”知识怎么写”。期末必考,必背。
1. 知识表示概述
知识表示 = 知识的符号化和形式化过程,是用机器表示知识的可行性、有效性方法。 把人类知识编码成计算机能存储、能处理、能推理的符号集合。
发展脉络
| 时间 | 流派 | 关键贡献 |
|---|---|---|
| 1934 | 产生式(Post) | 因果规则 |
| 1937 | 一阶谓词逻辑(Frege/Russell) | 形式化推理 |
| 1966 | 语义网络(Quillian) | 联想记忆模型 |
| 1970s | 框架(Minsky) | 结构化对象 |
| 1980s | 描述逻辑 | 本体推理 |
| 1998 | RDF(W3C) | 语义网数据模型 |
| 2004 | OWL | 本体语言 |
| 2000s+ | 属性图 | 工业图数据库 |
| 2013+ | 表示学习(TransE) | 向量化 |
2. 一阶谓词逻辑(FOPL)
三元素
- 个体词:具体/抽象个体或变量(姚明、上海、x、y、z)
- 谓词:刻画个体性质/关系(“是学生”、“出生于”、“大于”)
- 量词:全称量词 ∀(任意)+ 存在量词 ∃(存在)
表示举例
出生于(姚明, 上海) — 二元谓词
身高(姚明, 2.26) — 属性谓词
中国人(x) = 出生于(x, 中国) — 一元谓词定义
谓词的元数 = 连接几个个体。一元 = 性质,多元 = 关系。
优缺点
| 优点 | 缺点 |
|---|---|
| 严密性:演绎推理结果正确 | 无法表示不确定性(没有概率) |
| 自然性:接近自然语言 | 缺乏组织原则,知识库管理困难 |
| 通用性:通用演算和推理规则 | 组合爆炸,规模一大就慢 |
期末最爱问:“为什么有了谓词逻辑还要语义网络/产生式?“答:谓词逻辑表达能力最强但组织性差,不适合大规模知识库。
3. 语义网络(Semantic Network)
起源
- 1966 年 Quillian 研究人类联想记忆提出;
- 心理学模型 → AI 知识表示方法。
结构
- 有向图:节点 = 概念,边 = 概念间语义关系
- 边类型:is-a、part-of、has、agent、location…
表示举例
"鸟" ISA 动物;"鸟" HAS 翅膀;"鸟" CAN 飞
"鸵鸟" ISA 鸟 → 鸵鸟 CAN 飞 ✗ 错的(鸵鸟不会飞)
优缺点
| 优点 | 缺点 |
|---|---|
| 联想性:符合人类联想记忆 | 非严格性:无公认公理 |
| 易用性:直观 | 处理效率低:图结构检索慢 |
| 结构性:组织复杂语义 | 无法表示量化、复杂逻辑 |
期末考点:语义网络 ≈ 图形式的 FOPL 子集,和一阶谓词逻辑转换容易。
4. 产生式系统(Production System)
起源
- 1934 年 E. Post 提出;心理学家认为人脑对知识的存储就是产生式;
- 用规则序列形式描述问题求解的思维模式。
两种基本结构
① 事实(Fact)
- 确定性事实 = 三元组 (对象, 属性, 值) 或 (对象1, 关系, 对象2)
- 例:
乔布斯的性别 = 男
- 例:
- 不确定性事实 = 四元组 (对象, 属性, 值, 置信度)
- 例:
手机特性是防水的可能性 = 0.9
- 例:
② 规则(Rule)
- 确定性规则:
P → Qx 是 y 的老师 → y 是 x 的学生x 出生于 z ∧ y 出生于 z → x 和 y 是同乡
- 不确定性规则:
P → Q (置信度)x 导演电影 y ∧ x 的国籍是英国 → 电影 y 的语言是英语 (0.8)
系统结构(3 部件)
┌──────────┐ ┌──────────┐ ┌──────────┐
│ 数据库 │ ←→ │ 推理机 │ ←→ │ 规则库 │
│ (事实) │ │ (控制) │ │ (规则) │
└──────────┘ └──────────┘ └──────────┘
- 数据库:初始事实、中间结果、最终结论
- 规则库:所有相关规则
- 推理机:
- 按策略选规则与数据库匹配
- 匹配多条时冲突消解
- 执行规则后件
两种推理方向
| 方向 | 别名 | 思路 | 适用 |
|---|---|---|---|
| 正向推理 | 数据驱动、前向链 | 事实 → 规则 → 结论 | 已知事实,求所有可能结论 |
| 反向推理 | 目标驱动、反向链 | 目标 ← 规则 ← 事实 | 已知目标,验证可行性 |
正向推理例子(动物识别:目标 = “A 是猎豹?”):
规则库:
R1: 有毛发 → 哺乳动物
R2: 吃肉 → 食肉动物
R3: 哺乳动物 ∧ 食肉动物 ∧ 黄褐色 ∧ 暗斑点 → 猎豹
数据库:
A 有毛发 ✓ → 触发 R1 → 数据库新增"哺乳动物"
A 吃肉 ✓ → 触发 R2 → 数据库新增"食肉动物"
A 黄褐色 ✓,A 暗斑点 ✓ → 触发 R3 → "A 是猎豹"
优缺点
| 优点 | 缺点 |
|---|---|
| 自然性:符合 IF-THEN 思维 | 效率低(规则多时匹配慢) |
| 模块性:规则独立,易增删 | 不适合结构化知识 |
| 不确定性:可加置信度 | 难以维护规则间一致性 |
| 可解释性强 | 规则冲突难消解 |
重点:产生式 = 专家系统的”灵魂”;专家系统 = 知识库 + 推理机 + 综合数据库。
5. 框架(Frame)
起源
- 1975 年 Minsky 在论文 “A Framework for Representing Knowledge” 中提出;
- 灵感来自视觉感知:人看到新场景时用”框架”去匹配。
结构
框架 = 带**槽位(slot)和侧面(facet)**的数据结构:
框架名: 鸟类
ISA: 动物
槽1: 翅膀
值: 有
继承: 默认
槽2: 飞行能力
值: 能
继承: 默认
槽3: 体色
值: 默认(灰)
关键机制
- 继承:子框架继承父框架的槽值
- 鸵鸟继承”鸟”的”翅膀=有”,但可重定义”飞行能力=不能”——解决语义网络的”鸵鸟会飞”问题
- 匹配:新场景和框架匹配,填槽
- 侧面:每槽多个侧面(值类型、默认值、继承规则)
优缺点
| 优点 | 缺点 |
|---|---|
| 结构性:知识组织成结构化单元 | 缺乏形式化语义 |
| 继承性:支持默认值和例外 | 难以处理动态变化 |
| 自然性:符合人类认知 | 不适合过程性知识 |
对比记忆:语义网络 = 平面的图;框架 = 带结构的”对象模板”。
6. 描述逻辑(Description Logic,DL)
定位
- 一阶谓词逻辑的可判定子集(为本体推理设计)
- 1980s 提出,是 OWL、Protégé 的逻辑基础
- 解决 FOPL 不可判定 + 语义网络无严格语义的中间路线
核心构件
| 构件 | 含义 | 例子 |
|---|---|---|
| 概念(Concept) = 类 | 对象的集合 | 人物、学生 |
| 角色(Role) = 属性/关系 | 二元关系 | 有孩子、教授课程 |
| 个体(Individual) | 具体实例 | 姚明、知识图谱课 |
| 构造算子 | 构造复杂概念 | 合取 ⊓、析取 ⊔、非 ¬、存在 ∃、全称 ∀ |
表示示例
| 自然语言 | DL 形式 |
|---|---|
| ”人” | Person |
| ”有孩子的男人” | Man ⊓ ∃hasChild.Person |
| ”有至少 3 个孩子的人” | Person ⊓ ≥3 hasChild |
| ”母亲” | Woman ⊓ ∃hasChild.Person |
TBox vs ABox(期末高频)
- TBox(Terminology Box):模式层——定义概念和角色
Mother ≡ Woman ⊓ ∃hasChild.Person
- ABox(Assertion Box):实例层——具体个体的断言
Mother(Alice),hasChild(Alice, Bob)
TBox = 类定义,ABox = 类实例化。和”概念层 vs 实例层”完美对应。
推理任务(DL 核心价值)
| 任务 | 含义 | 例子 |
|---|---|---|
| 概念可满足(Satisfiability) | 概念能否有实例 | ”既是 Man 又是 Woman”不可满足 |
| 概念包含(Subsumption) | A 是否包含 B | Mother ⊑ Woman |
| 实例检测(Instance Checking) | 个体是否属于概念 | Mother(Alice) 是否成立 |
| 一致性(Consistency) | ABox 是否矛盾 | Alice 既是 Man 又是 Woman 矛盾 |
优缺点
| 优点 | 缺点 |
|---|---|
| 可判定性:算法保证终止 | 表达力弱于 FOPL |
| 形式化语义 | 难处理不确定性 |
| 支持自动推理 | 实现复杂 |
| OWL 标准化 |
7. 本体(Ontology)
定义
- 起源于哲学(“存在的本质”)
- AI 视角:本体是特殊类型的术语集,具有结构化特点,更适合计算机处理
- 作用:把领域知识用共享的、形式化的、明确的概念集描述出来
本体的构成(5 元组)
本体 O = (C, R, I, A, X)
C = 概念集(Class)
R = 关系集(Relation)
I = 实例集(Instance)
A = 属性集(Attribute)
X = 公理集(Axiom)
关系类型
| 关系 | 含义 | 例子 |
|---|---|---|
| part-of | 部分与整体 | 翅膀 part-of 鸟 |
| kind-of / subClassOf | 继承 | 鸟 kind-of 动物 |
| instance-of | 实例与类 | 姚明 instance-of 体育人物 |
| attribute-of | 属性 | 年龄 attribute-of 人 |
本体 vs 知识图谱
| 维度 | 本体 | 知识图谱 |
|---|---|---|
| 层 | 概念层 / 模式层 | 概念层 + 实例层(包含本体) |
| 内容 | 类、关系、属性、公理 | 大量实例三元组 |
| 规模 | 通用本体数千概念,领域更少 | 实例可达数十亿 |
| 推理 | 描述逻辑推理 | 本体推理 + 图结构推理 + 表示学习 |
本体是 KG 的”骨架”,KG 是本体的”血肉”。KG = 本体(schema)+ 实例(data)。
8. RDF(Resource Description Framework)
定位
- W3C 推荐标准
- KG 的最基本数据模型
- 用三元组 (Subject, Predicate, Object) 描述资源
三个组成
- 资源(Resource):用 URI 标识任何事物
- 例:
http://www.w3.org/People/Berners-Lee/card#i
- 例:
- 属性(Property):资源的特征或关系
- 陈述/语句(Statement):一个三元组 = 一个事实
数据模型
- 本质是有向标记图
- 节点 = Subject 或 Object(URI 资源 + literal + blank node)
- 边 = Predicate(有方向)
表示方式
| 方式 | 例子 |
|---|---|
| 三元组 | (ex:Beijing, ex:locatedIn, ex:China) |
| RDF/XML | <rdf:Description rdf:about="ex:Beijing"><ex:locatedIn rdf:resource="ex:China"/></rdf:Description> |
| Turtle | ex:Beijing ex:locatedIn ex:China . |
| N-Triple | <ex:Beijing> <ex:locatedIn> <ex:China> . |
命名空间(Namespace)
@prefix ex: <http://example.org/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
- rdf::RDF 核心词汇
- rdfs::RDF Schema(类、属性、子类、子属性)
- owl::Web 本体语言
- xsd::XML Schema 数据类型
RDF Schema(RDFS)核心词汇
| 词汇 | 含义 | 例子 |
|---|---|---|
rdfs:Class | 声明一个类 | ex:Person rdf:type rdfs:Class |
rdf:type | 声明实例属于类 | ex:姚明 rdf:type ex:人物 |
rdfs:subClassOf | 子类 | ex:体育人物 rdfs:subClassOf ex:人物 |
rdfs:subPropertyOf | 子属性 | ex:身高 rdfs:subPropertyOf ex:属性 |
rdfs:domain | 属性定义域 | ex:身高 rdfs:domain ex:人物 |
rdfs:range | 属性值域 | ex:身高 rdfs:range xsd:decimal |
rdfs:label | 标签 | ex:姚明 rdfs:label "姚明"@zh |
rdfs:comment | 注释 | ex:姚明 rdfs:comment "中国篮球运动员"@zh |
RDF 局限性 → 引出 OWL
RDF/RDFS 表达不了:
- 类的不相交(DisjointWith)
- 属性的特征(传递、对称、函数性)
- 基数约束(最小/最大)
- 枚举类
→ OWL 解决。
9. OWL(Web Ontology Language)
定位
- W3C 推荐标准
- 在 RDF 之上,基于描述逻辑
- 弥补 RDF 表达能力不足
OWL 子语言(期末必背 4 层次)
| 子语言 | 描述逻辑基础 | 表达能力 | 可判定性 | 适用 |
|---|---|---|---|---|
| OWL Lite | SHIF(D) | 最弱 | 最高 | 简单分类 |
| OWL DL | SHOIN(D) | 中 | 强 | 完整 DL 推理 |
| OWL Full | 不受限 RDF | 最强 | 不可判定 | 极端灵活 |
| OWL 2 | SROIQ(D) | 强 | 可判定 | 现代标准 |
OWL 三大子语言递进关系:OWL Lite ⊂ OWL DL ⊂ OWL Full(表达力递增,可判定性递减)。
OWL 核心构造
# 类的等价与不等价
ex:母亲 owl:equivalentClass ex:女性 ⊓ ∃ex:有孩子.owl:Thing
ex:男人 owl:disjointWith ex:女人
# 属性特征
ex:有配偶 rdf:type owl:SymmetricProperty # 对称
ex:祖先 rdf:type owl:TransitiveProperty # 传递
ex:身高 rdf:type owl:FunctionalProperty # 函数性
ex:父母 rdf:type owl:InverseOf ex:孩子 # 互逆
# 基数约束
ex:人 ⊓ ≥2 ex:有孩子 # 至少 2 个孩子
ex:人 ⊓ ≤1 ex:有配偶 # 至多 1 个配偶
# 枚举类
ex:性别 owl:oneOf (ex:男 ex:女)
OWL 推理机
- HermiT、Pellet、FaCT++
- 自动做:概念分类(subsumption)、一致性检查、实例分类、属性推理
10. 属性图(Property Graph)
定位
- 和 RDF 并列的另一套 KG 数据模型
- 图数据库(Neo4j、JanusGraph、OrientDB)的标准模型
- 工业界更常用
三要素
- 节点(Node):实体,有类型标签 + 属性键值对
- 边(Relationship):定向、有类型 + 属性键值对
- 属性(Property):键值对,节点和边都可以有
示例
// 节点
(姚明:Person {姓名:"姚明", 身高:2.26, 出生年份:1980})
(上海:City {名称:"上海"})
// 边
(姚明)-[:出生于 {时间:1980}]->(上海)
属性图 vs RDF(期末必考对比)
| 维度 | 属性图 | RDF |
|---|---|---|
| 边/点是否有属性 | ✅ 原生支持 | ❌ 无(要属性必须加一个中间节点) |
| 标准化 | 无 W3C 标准(de facto Neo4j) | W3C 标准 |
| 推理支持 | 弱(无内置描述逻辑) | 强(OWL) |
| 工业落地 | 主流(Neo4j 用户多) | 学术 / 政府 / 出版业多 |
| 查询语言 | Cypher(Neo4j) | SPARQL(W3C) |
| 数据规模 | 千亿级(JanusGraph) | 万亿级(专用三元组库) |
| Schema 灵活性 | 灵活,不强制 | OWL 严格,RDF 自由 |
一句话:RDF 偏学术标准化,属性图偏工程实用。两者可互转。
RDF 的”中间节点表示属性”
<姚明> <身高> _:b1 . ← blank node
_:b1 <数值> "2.26" .
_:b1 <单位> "米" .
属性图直接:
(姚明 {身高: "2.26 米"})
期末常考:RDF 增加信息就要增加节点,是它最显著的缺陷之一。
11. 知识表示学习(KRL)— 概念引入
为什么需要
传统表示痛点:
- 稀疏性:one-hot,百万实体 = 百万维
- 语义鸿沟:符号相似 ≠ 语义相似
- 难以融入 DL:符号不能直接喂给神经网络
目标
- 实体/关系表示成稠密低维实值向量
- 向量之间有语义距离(cosine 距离近 = 语义相似)
- 可直接用于神经网络下游任务
经典代表:TransE(2013)
- 核心假设:h + r ≈ t(头实体 + 关系 ≈ 尾实体)
- 例:
Vec(姚明) + Vec(出生于) ≈ Vec(上海) - 损失函数:让正样本距离小、负样本距离大
详细在第 11 讲展开,先留印象:把 KG 嵌成向量空间,让推理变成向量运算。
12. 各表示方法对比总结(期末必背大表)
| 表示方法 | 形式 | 优点 | 缺点 | 适用 |
|---|---|---|---|---|
| 一阶谓词逻辑 | 符号 + 量词 | 严密、自然、通用 | 无不确定性、组织性差、组合爆炸 | 形式化推理、小规模 |
| 语义网络 | 有向图 | 直观、联想、结构化 | 非严格、效率低、无法量化 | 早期 AI、NLU |
| 产生式 | IF-THEN 规则 | 自然、模块化、可解释、不确定性 | 效率低、难维护 | 专家系统、规则引擎 |
| 框架 | 槽-侧面结构 | 继承、默认值、结构化 | 缺乏形式化语义 | 视觉、对象识别 |
| 描述逻辑 | DL 语法 | 可判定、形式化、OWL 基础 | 表达力受限 | 本体推理 |
| 本体 | 5 元组 | 共享、明确、形式化 | 构建成本高 | 领域知识建模 |
| RDF | 三元组 | 标准化、灵活、可融合 | 无属性、表达弱 | 语义网、数据交换 |
| OWL | DL + RDF | 强表达、可推理 | 复杂、性能差 | 复杂本体建模 |
| 属性图 | 节点+边+属性 | 工业实用、查询高效 | 无 W3C 标准、推理弱 | 图数据库应用 |
| 表示学习 | 向量 | 可融 DL、语义平滑 | 不可解释、需训练 | DL+KG 融合 |
13. 本章脑图
知识表示
├── 发展时间线
│ ├── 1934 产生式 → 1937 FOPL → 1966 语义网 → 1975 框架
│ ├── 1980s 描述逻辑 → 1998 RDF → 2004 OWL
│ ├── 2000s+ 属性图 → 2013+ 表示学习
│
├── 传统表示(5 种)
│ ├── 一阶谓词逻辑 FOPL
│ ├── 语义网络
│ ├── 产生式(IF-THEN 规则)
│ ├── 框架(槽+侧面+继承)
│ └── 描述逻辑(FOPL 可判定子集)
│
├── 本体
│ └── 5 元组(C,R,I,A,X)
│
├── 标准化表示(3 套)
│ ├── RDF(三元组+命名空间+RDFS)
│ ├── OWL(Lite/DL/Full)
│ └── 属性图(Neo4j/Cypher)
│
└── 表示学习
└── 把 KG 嵌成向量;h+r≈t