📑 查看全课大纲(第 5 / 26 节)
- 1.知识图谱和语音技术概述
- 2.典型知识库项目简介
- 3.知识图谱技术概览
- 4.典型应用案例
- 5.早期知识表示简介
- 6.基于语义网的知识表示框架
- 7.典型知识库项目的知识表示
- 8.基于本体工具的知识建模实践
- 9.面向非结构化数据的知识抽取
- 10.面向结构化数据的知识抽取
- 11.面向半结构化数据的知识抽取
- 12.实践:基于百科数据的知识抽取
- 13.面向文本的知识抽取
- 14.知识挖掘
- 15.从一个例子开始
- 16.图数据库介绍
- 17.什么是知识融合
- 18.知识融合的基本技术流程
- 19.典型知识融合工具简介
- 20.典型案例简介
- 21.LIMES实战演练
- 22.知识推理
- 23.语义搜索
- 24.知识问答
- 25.IBM watson Lite
- 26.行业知识图谱应用
早期知识表示简介
约 15 分钟
小象实战讲义 · 知识图谱
欢迎来到知识图谱课程的第二讲。在上一讲我们概览了知识图谱的全貌与典型项目后,本节课我们将深入知识图谱构建的基石——知识表示与知识建模。我们将从早期人工智能领域的知识表示方法入手,理解如何将人类知识转化为计算机能够处理、存储和推理的结构化形式。学完本节,你将能够理解不同知识表示范式的核心思想、优缺点,并建立起从逻辑、规则到语义网络的知识表示知识框架。
💡 核心导读
- 知识为何需要表示:理解知识作为智能基础的重要性,以及计算机处理知识所需的特定模式。
- 知识的分类与特性:掌握常识、领域、事实、过程等不同类型知识的特点,以及知识的不确定性、可表示性等核心特性。
- 早期知识表示方法巡礼:系统学习一阶谓词逻辑、产生式规则、框架理论和语义网络这四种经典知识表示方法的核心思想与表达形式。
- 从逻辑到图结构:体会知识表示如何从形式化的逻辑语言(如谓词逻辑)逐步演变为更直观的图结构(如语义网络),为后续学习RDF等现代语义网标准奠定基础。
一、 知识表示的重要性与知识特性
知识是智能的基石。机器要表现出智能行为,必须具备获取、存储和运用知识的能力。然而,人类的知识多以自然语言、经验等形式存在,计算机无法直接理解。因此,我们需要一种符合计算机要求的知识表示模式,将知识转化为计算机能够存储和处理的数据结构,如列表、表格、树或图。
知识具有几个关键特性:
- 相对正确性:知识在特定条件或环境下才成立。
- 不确定性:知识可能包含随机性、模糊性、不完全性等“中间状态”。
- 可表示性与可利用性:知识可以通过语言、文字、图形、图像、视频、音频乃至神经网络、概率图模型等多种载体表示和利用。
根据作用范围、表示方式和确定性,知识可以进一步分类:
- 按作用范围:常识性知识(如ConceptNet、Cyc)和领域性知识(如医疗、金融、电商知识)。
- 按作用及表示:事实性知识(如“王昊奋的研究领域是知识图谱”)、过程性知识(如“使用Protégé进行知识建模的步骤”)和控制性知识(程序中的分支判断条件)。
- 按确定性:确定性知识和不确定性知识。
二、 早期知识表示方法概览
在语义网和现代知识图谱技术兴起之前,人工智能领域已探索出多种知识表示方法,它们为后续发展奠定了理论基础。本节课将重点介绍其中四种核心方法:一阶谓词逻辑、产生式规则、框架理论和语义网络。其他如逻辑程序、缺省逻辑、模态逻辑等,因与现阶段知识图谱关联度不高,我们仅作了解。
三、 一阶谓词逻辑与Horn逻辑
一阶谓词逻辑(First-Order Logic, FOL) 是一种形式化、严密的逻辑系统,接近自然语言,易于表示精确知识。其基本构成包括谓词(Predicate)、项(Term,变量或常量) 和量词(Quantifier)。
一个谓词 p(t1, t2, ..., tn) 表示一个关系或属性,其中 p 是谓词名,n 是目(arity),ti 是项。例如,has_child(Helen, Jack) 表示“Helen有孩子Jack”这一事实。
然而,一阶谓词逻辑的表达能力虽强,但其逻辑蕴涵问题在一般情形下是不可判定的(Church–Turing 定理),推理复杂度极高。因此,实践中常通过施加限制来换取可处理性。Horn逻辑 就是这样一个著名的限制子集,它是逻辑编程语言 Prolog 的基础。需要特别澄清:一阶 Horn 逻辑本身仍然不可判定(这正是 Prolog 图灵完备、完整推理不可判定的根源);真正可判定的是其命题 Horn 逻辑或不含函数符号的 Datalog 片段。本节随后介绍的描述逻辑,则是另一个专为本体设计、在限定构造算子下可判定的一阶子集。
Horn逻辑的核心是规则(Rules),形式为 H :- B1, B2, ..., Bm.。其中 H 是头部原子,B1...Bm 是体部原子。如果规则没有体部且没有变量,则退化为事实(Fact)。
# Horn逻辑规则的Python概念性示意(非Prolog代码)
# 规则: 如果X有儿子Y,则X有孩子Y
# has_child(X, Y) :- has_son(X, Y).
# 事实: Helen有儿子Jack
# has_son(Helen, Jack).
# 根据规则和事实,可以推导出新事实:
# has_child(Helen, Jack).从示例可以看出,Horn逻辑的规则和事实与后续RDF三元组(主体-谓词-客体)在结构上存在对应关系,常量对应具体事实,变量则可用于查询。
四、 描述逻辑:面向本体的可判定子集
描述逻辑(Description Logic, DL) 是一阶谓词逻辑的另一个重要可判定子集,它专为描述概念(Concept)、关系(Role/Property) 和个体(Individual) 而设计,是现代本体语言(如OWL)的理论基础。
一个描述逻辑知识库 O := <T, A> 包含两部分:
- TBox(术语公理):包含内涵知识,描述概念和关系的一般性质,形成类似格的结构。例如定义“母亲”是“有孩子且孩子是人”的那类“父母”。
Mother ⊑ ∃has_child.Person (母亲 ⊆ 存在has_child关系.人) - ABox(断言公理):包含外延知识,描述特定个体的属性。例如:
Mother(Helen) # Helen是一个母亲(概念断言) Person(Jack) # Jack是一个人(概念断言) has_child(Helen, Jack) # Helen有孩子Jack(关系断言)
描述逻辑通过丰富的构造算子(如交、并、非、存在量词、全称量词等),能够灵活地定义复杂的领域概念,并支持高效的自动推理。
五、 产生式规则系统
产生式规则系统 源于早期的专家系统(如 Feigenbaum 研制的化学分子结构专家系统 DENDRAL、Shortliffe 研制的诊断感染性疾病专家系统 MYCIN),其规则形式为 IF P THEN Q,或 P → Q,并可为结论附加置信度 CF(Certainty Factor)。
与谓词逻辑规则只能表示精确的“真/假”不同,产生式规则可以表示不确定性知识,并且前提与事实的匹配可以是基于相似度的“不精确匹配”。
# 产生式规则示例(MYCIN风格)
# IF 本微生物的染色斑是革兰氏阴性
# 本微生物的形状呈杆状
# 病人是中间宿主
# THEN 该微生物是绿脓杆菌,置信度 CF=0.6
# 概念性Python实现(模拟规则匹配)
facts = {
'染色斑': '革兰氏阴性',
'形状': '杆状',
'宿主类型': '中间宿主'
}
rules = [
{
'conditions': {'染色斑': '革兰氏阴性', '形状': '杆状', '宿主类型': '中间宿主'},
'conclusion': '绿脓杆菌',
'cf': 0.6
}
]
def match_rule(facts, rule):
for key, value in rule['conditions'].items():
if facts.get(key) != value:
return None
return (rule['conclusion'], rule['cf'])
for rule in rules:
result = match_rule(facts, rule)
if result:
print(f"推导结论: {result[0]}, 置信度: {result[1]}")
# 输出: 推导结论: 绿脓杆菌, 置信度: 0.6产生式系统的优点是自然、模块化、能有效表示多种知识,但其效率在处理大规模规则库时可能不高,且难以表示具有复杂结构关系的知识。
六、 框架理论
框架理论 认为人类记忆是以一种类似“框架”的结构存储知识。当遇到新事物时,人们会从记忆中调出一个合适的框架,并根据实际情况修改其细节。
一个框架(Frame) 是一种描述对象属性的数据结构,由若干个槽(Slot)组成,每个槽又包含若干侧面(Facet),槽和侧面的取值称为槽值和侧面值。
<框架名:案件>
槽名1[犯罪意图]: 值1
槽名2[犯罪结果]: 值2
槽名3[被杀者]: 值3
槽名4[知情人]: {zi | i∈I}
槽名5[罪犯]: t
约束条件1: 有某个zi指控t
约束条件2: t招认当用具体信息填充框架的槽时,就得到了一个实例:
<框架名:小A抢劫杀人案>
犯罪意图: 抢劫
犯罪结果: 杀人
被杀者: 小B
知情人: 小C
罪犯: 小A
条件一: 有小C指控小A
条件二: 小A招认框架对知识的描述非常完整,质量高,且允许数值计算。但其构建成本高,形式不够灵活,难以与其他数据关联。
七、 语义网络
语义网络(Semantic Network) 是一种用带标识的有向图来表示知识的方法。图中节点表示概念、个体、属性等,弧表示节点间的语义关系。其基本形式是一个三元组 (节点1, 弧, 节点2)。
语义网络能直观地将逻辑表达式映射为图形结构。例如,命题“每个学生都读过一本书”用一阶谓词逻辑表示为:
∀s (Student(s) → ∃b (Book(b) ∧ Read(s, b)))用语义网络则可以表示为下图所示的复杂结构,其中引入了表示全称量词 ∀、存在量词 ∃ 以及“公式” F 等特殊节点来完整表达逻辑含义。
[GS] ← Generic Statement:全称量化语句的集合空间节点
| (g 是其中一条语句对应的 formula 个体)
v
g ──∀──> s ← ∀ 标在 g → s 这条弧上,对个体 s 作全称量化约束
|
v
[学生] --(r: 读过)--> [书] ← 概念层(r=读过;s 是动作主体,b 是动作对象)
^ ^
| |
s b ← 个体层(s=学生个体, b=书个体)
| |
+--> [公式节点 F] <---+ ← 将个体关系打包为一个公式(注:这是一个简化的语义网络示意图,完整网络还需表达“动作主体”、“动作对象”等关系弧。)
语义网络的优点是结构化、具有联想性、直观自然。但其缺点是非严格性(缺乏统一的形式体系),且处理复杂性高。
📝 动手练一练
- 概念辨析:产生式规则
IF P THEN Q与一阶谓词逻辑中的蕴含式P → Q主要区别是什么? - 知识表示实践:请用框架理论表示“一次学术讲座”的知识结构。至少包含讲座主题、讲者、时间、地点四个槽,并为“讲者”槽设计一个侧面表示其职称。
👉 点击查看参考答案
区别:
- 确定性 vs 不确定性:谓词逻辑蕴含式表示精确的逻辑蕴含,结论非真即假。而产生式规则可以附加置信度(CF),用于表示不确定性知识。
- 匹配方式:谓词逻辑要求前提
P与已知事实必须“精确匹配”。而产生式系统允许基于相似度的“不精确匹配”。 - 本质:产生式规则是一种更宽泛的规则表示形式,谓词逻辑的蕴含式可视为其一种特殊情况(CF=1.0且精确匹配)。
框架示例:
<框架名:学术讲座> 槽1[主题]: <字符串> 槽2[讲者]: 侧面1[姓名]: <字符串> 侧面2[职称]: <字符串> (如:教授、研究员) 槽3[时间]: 侧面1[日期]: <YYYY-MM-DD> 侧面2[开始时间]: <HH:MM> 槽4[地点]: <字符串> 约束: 时间格式需合法实例填充:
<框架名:知识图谱公开课> 主题: 知识表示与建模 讲者: 姓名: 王昊奋 职称: 研究员 时间: 日期: 2023-10-27 开始时间: 20:00 地点: 小象在线课堂
本章小结
本节我们回顾了知识表示在人工智能中的核心地位,并系统学习了四种经典的早期知识表示方法:
- 一阶谓词逻辑及其子集(Horn逻辑、描述逻辑):提供了严密、形式化的知识表示与推理基础。
- 产生式规则:擅长表示不确定性知识和启发式知识,是专家系统的核心。
- 框架理论:通过“槽-侧面”结构对复杂对象进行完整描述。
- 语义网络:用图结构直观表示概念及其关系,是通向现代图结构知识表示的桥梁。
这些方法各有侧重,其思想精华被后续的语义网标准(如RDF、OWL)和现代知识图谱技术所吸收和融合。理解它们,有助于我们更深刻地把握知识表示的本质,并为学习后续更贴近工程实践的语义网知识表示框架做好准备。
📋 行动清单
学完本节,你可以立即:
- 尝试用一两个句子描述“知识表示”要解决的核心问题。
- 对比“产生式规则”和“语义网络”,思考它们分别更适合表示哪一类知识(例如,诊断规则 vs 概念关系)。
- 预习下一部分“基于语义网的知识表示框架”,思考RDF的三元组模型与今天学到的哪种表示方法在形式上最为接近。
—— 小象教研组
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加顾问免费领取;想学什么,直接告诉顾问
微信扫码添加顾问