🎯 从“会算”到“懂理”:知识表示的终极挑战

第9章结尾留下的问题
逻辑引擎很强大,但需要“喂”给它结构良好的知识。

现实世界的知识可不是:
1. 所有人都会死
2. 苏格拉底是人
3. 因此...

而是:
“那个穿红色卫衣、昨天在电梯里问我‘吃了没’的同事,
今天请假了,可能是感冒,
但上周三他也请假了,那天其实是去体检...”

本章核心任务
如何把人类常识专业领域知识
组织成机器能理解、能推理的结构化形式

这就是知识表示(Knowledge Representation,KR)—— AI的“基建工程”。


一、本体论工程:给万物“上户口”

🤔 什么是本体论(Ontology)?

不是哲学里“世界的本质”,而是:
“某个领域里,有哪些东西、它们怎么分类、有什么关系”

生活比喻

  • 图书馆分类法:文学→小说→武侠→金庸
  • 生物分类:界门纲目科属种
  • 电商商品分类:电子产品→手机→智能手机→品牌

🔧 构建本体论的四大任务

1. 定义核心概念(类别)
图书领域:书、作者、出版社、ISBN、章节...
医药领域:疾病、症状、药品、剂量、副作用...
2. 建立分类体系(继承关系)
动物
├── 哺乳动物
│   ├── 猫科
│   │   ├── 猫
│   │   └── 老虎
│   └── 犬科
└── 鸟类

继承的好处

  • 父类的属性自动传给子类
  • “哺乳动物都喂奶” → 猫、老虎都自动继承这个属性
3. 定义关系网络
不仅仅是“属于”(is-a)关系:
- 部分关系(part-of):车轮是汽车的一部分
- 组成关系(made-of):桌子由木头制成
- 空间关系(in):书在书架上
- 时间关系(before):早饭在午饭前
- 因果关系(causes):淋雨导致感冒
4. 制定约束规则
- 一个人不能同时在两个地方(物理约束)
- 员工工资不能为负数(业务约束)
- 三角形内角和=180°(数学约束)

🏗️ 本体论工程实践指南

好的本体论像“城市规划”:
- 模块化:不同领域分开建(交通、医疗、教育)
- 可扩展:随时加新概念(新增“电动车充电桩”)
- 一致性:不能矛盾(“鱼类”不能同时是“哺乳动物”)
- 重用性:尽量用标准本体(如WordNet、Schema.org)

二、类别与对象:世界的“乐高积木”

🔍 核心问题:什么是“一个东西”?

桌子上有一杯水:
- 是一个“物体”(物理对象)
- 也是“物质”(水)
- 还能分成“杯子”和“水”两部分

📦 表示层次:从原子到结构

层次1:原子对象(独立个体)
对象:我的手机(iPhone13_张三)
属性:颜色=黑色,电量=78%,所有者=张三

特点:每个都是独一无二的实例

层次2:类别(类的概念)
类别:智能手机
属性:有屏幕,能安装APP,需要充电
成员:我的手机,你的手机,所有手机实例
层次3:物质(不可数名词的表示)
挑战:水、空气、沙子...没有天然“个体单位”

表示方法:
- 引入“量词”:一杯水,一立方米空气
- 用“物质+容器”:瓶中的水,房间里的空气

📏 量度:让AI“心中有数”

不仅要知道“有”,还要知道“有多少”:
- 尺寸:长20cm,宽10cm
- 重量:500g
- 温度:25℃
- 时间:持续3小时

关键:单位换算和一致性!
“房间面积20平方米” + “地板用了30块瓷砖”
→ 每块砖约0.67平方米 ✓

🧩 物理组成:整体与部分

复杂对象如何表示?
方法1:列举所有部分
   汽车 = {引擎,轮胎×4,方向盘,座椅...}

方法2:结构化表示
   type 汽车
      parts: {
        引擎: 1,
        轮胎: 4,
        方向盘: 1,
        座椅: [驾驶员座椅, 乘客座椅...]
      }
      constraints: 轮胎数 >= 4

经典问题:忒修斯之船(AI版)

船A的木板被逐渐替换,所有木板换完后:
- 物理上:所有物质都是新的
- 功能上:还是“那条船”
- 法律上:登记号没变,所以是同一艘

AI怎么表示?
需要区分:
1. 物理实体(具体的物质集合)
2. 功能实体(实现特定功能的对象)
3. 法律实体(有身份标识的对象)

三、事件:当知识“动起来”

⏰ 时间表示:给世界加上时间轴

静态知识:桌子是木头做的
动态知识:张三昨天买了桌子,今天搬到办公室

挑战:
1. 时间点 vs 时间段
   “会议在14:00开始”(点)
   “会议持续了2小时”(段)
2. 相对时间
   “早饭在午饭前”
   “下雨后地变湿”
时间表示方法
方法1:时间戳(绝对时间)
   事件(买桌子, 主体:张三, 时间:2023-10-01 10:00)

方法2:区间代数(Allen区间代数,13种关系)
   before(A,B): A在B之前
   meets(A,B): A刚结束B就开始
   overlaps(A,B): A和B重叠
   during(A,B): A在B期间发生
   ...
流和对象:变化中的恒常
“河流”既是:
- 物质:水分子不断流动更新
- 对象:我们仍然叫它“长江”

表示策略:
长江 {
   type: 河流,
   位置: 从青海到上海,
   当前水量: 实时变化,
   标识: 固定的地理标识
}

🎬 事件的结构化表示

一个事件包含:
1. 类型:吃早饭
2. 参与者:
   - 施事者(Agent):张三
   - 受事者(Patient):面包
   - 工具(Instrument):刀叉
3. 时间:7:00-7:30
4. 地点:厨房
5. 结果:面包被吃完,张三饱了

形式化:
事件(e1,
   类型: 吃,
   施事者: 张三,
   受事者: 面包,
   时间: 区间(t1,t2),
   地点: 厨房,
   结果: 状态(张三, 饱, true)
)

四、精神对象与模态逻辑:AI的“内心世界”

🧠 表示“知道”、“相信”、“想要”

物理世界:桌子上有苹果
精神世界:张三相信桌子上有苹果
           李四知道张三相信...

嵌套问题(俄罗斯套娃式):

我知道你以为我不知道你知道...
这在博弈、谈判、侦探推理中很常见

🔐 模态逻辑:给逻辑加上“模式”

普通逻辑:P是真的
模态逻辑:□P(必然真),◇P(可能真)

扩展到认知:
Believes(张三, P):张三相信P
Knows(李四, Believes(张三, P)):李四知道张三相信P
模态逻辑的种类
1. 认知逻辑(Epistemic Logic):关于“知道”
   - 公理:如果知道P,那么P为真
   - 公理:如果知道P→Q,且知道P,那么知道Q

2. 道义逻辑(Deontic Logic):关于“应该”
   - Obligatory(P):应该做P
   - Permitted(P):允许做P
   - Forbidden(P):禁止做P

3. 时态逻辑(Temporal Logic):关于“时间”
   - F(P):将来某个时刻P为真
   - G(P):将来所有时刻P为真
   - P(P):过去某个时刻P为真

4. 信念逻辑(Doxastic Logic):关于“相信”
   - 比“知道”弱:相信的可能为假
可能世界语义学
“张三相信猪会飞”是什么意思?

模型:
- 现实世界:猪不会飞
- 但存在一些“可能世界”(在张三的信念里)
- 在这些世界里,猪会飞
- 张三相信的世界集包含这些世界

这样就能形式化表示“错误信念”

💡 实际应用场景

1. 安全协议验证:
   “用户知道密码” → “系统相信用户知道密码”

2. 法律推理:
   “当事人应当知道合同条款”

3. 游戏AI:
   “我方知道敌方不知道我方的位置”

五、类别的推理系统:让知识“活”起来

🕸️ 语义网络:用“节点-边”画知识图

最早的知识表示方法(1960s)
像思维导图:

       动物
         │
         ├───有皮毛
         │
    哺乳动物
         │
         ├───喂奶
         │
         ├───猫科────猫───实例───小花
         │              │
         │              └───属性:颜色=橘色
         │
         └───犬科────狗
语义网络的核心关系
1. is-a(继承):猫 is-a 猫科动物
2. part-of(部分):轮子 part-of 汽车
3. has-property(属性):猫 has-property 可爱
4. member-of(成员):小花 member-of 猫
推理机制
1. 继承推理:
   猫科动物→吃肉
   猫 is-a 猫科动物
   → 猫吃肉(自动继承)

2. 传递推理:
   轮子 part-of 汽车
   汽车 part-of 车队
   → 轮子 part-of 车队

3. 交叉分类推理:
   小花 is-a 猫
   猫 is-a 宠物
   宠物 has-owner 人类
   → 小花有主人(且是人类)
语义网络的问题
1. 歧义性:
   “苹果”节点——是水果?还是公司?
2. 推理不可控:
   可能推出荒谬结论:
   尼克松 is-a 共和党人
   共和党人 is-a 人
   尼克松 is-a 人 ✓
   
   但:
   共和党人 is-a 保守派
   保守派 is-a 右翼
   → 尼克松 is-a 右翼? (过于简化)
3. 缺乏形式语义:
   不同系统解释不同

📐 描述逻辑:语义网络的“严谨版”

描述逻辑(Description Logic,DL):
- 有严格的数学定义
- 是语义网络的子集(但更规范)
- OWL(Web本体语言)的基础
描述逻辑的构建块
概念(类):   Student, Teacher
角色(关系): teaches, enrolledIn
个体(实例): 张三, CS101课程

构造算子:
- ∩(交):Student ∩ Athlete(学生运动员)
- ∪(并):Male ∪ Female(男性或女性)
- ¬(非):¬Undergraduate(非本科生)
- ∃(存在):∃hasChild.Male(有儿子)
- ∀(全称):∀hasChild.Doctor(所有孩子都是医生)
例子:定义“好教授”
用描述逻辑:
GoodProfessor ≡ Professor ∩
                (∀teaches.InterestingCourse) ∩
                (∃teaches.PopularCourse) ∩
                (≤3 teaches) ∩  // 最多教3门课
                (∃researchArea.AI)

翻译:
好教授 = 是教授 且
        教的每门课都有趣 且
        至少教一门热门课 且
        最多教3门课 且
        研究领域包括AI
描述逻辑推理服务
1. 一致性检查:
   “一个方的圆形” → 不一致!

2. 分类:
   自动把实例归到最具体的类
   张三:{教AI课,研究机器学习}
   → 系统推断:张三是“AI教授”

3. 子类推断:
   定义:父亲 ≡ 男性 ∩ 有孩子
          母亲 ≡ 女性 ∩ 有孩子
          家长 ≡ 父亲 ∪ 母亲
   系统自动推出:父亲 ⊆ 家长
                 母亲 ⊆ 家长

4. 实例检查:
   张三:{男性,有孩子}
   → 张三是父亲? ✓
实际应用:医疗本体
SNOMED CT(医学术语系统):
- 11个层级,35万+概念
- 用描述逻辑定义:
   糖尿病 ≡ 疾病 ∩
            ∃病因.血糖异常 ∩
            ∃影响.血管 ∩
            ...

推理:
病人P:有血糖异常,血管病变
→ 可能患有糖尿病(建议检查)

六、用缺省信息推理:当世界不“完美”

🤷 现实世界的特点

1. 信息不完整:
   “鸟会飞”(但鸵鸟、企鹅不会)
2. 有例外:
   “车停路边会被贴条”(但消防车例外)
3. 通常成立:
   “大学生通常年轻”(但也有中年大学生)

🔧 传统逻辑的局限

传统逻辑:要么真,要么假
现实:通常真,可能有例外

用传统逻辑:
“鸟会飞”写成:∀x (Bird(x) → Flies(x))
企鹅是鸟,但不会飞 → 矛盾!

🧠 解决方案:非单调推理

1. 限定(Circumscription)
核心思想:最小化例外
“鸟通常都会飞,除非有相反证据”

形式化:
默认规则:Bird(x) ∧ ¬Abnormal(x) → Flies(x)
异常谓词:Abnormal(x) 尽可能少

当知道企鹅是鸟时:
需要显式声明:Penguin(x) → Abnormal(x)
2. 缺省逻辑(Default Logic)
提出者:Reiter(1980)
形式:A : B / C
读作:如果A已知,且B与当前知识一致,则默认C

例子:
鸟会飞:Bird(x) : Flies(x) / Flies(x)
企鹅例外:Penguin(x) : ¬Flies(x) / ¬Flies(x)

推理过程

已知:Tweety是鸟
应用默认规则:Bird(Tweety)成立
              Flies(Tweety)与已知不冲突
→ 推出:Tweety会飞

新增知识:Tweety是企鹅
应用例外规则:¬Flies(Tweety)
→ 撤回“会飞”结论
3. 真值维护系统(TMS)
像推理的“版本控制”
记录:
- 每个结论如何得来(依据)
- 当依据失效时,自动撤销结论

结构:
节点(陈述) + 理由(justification)

理由类型:
1. 支持理由:{A,B} → C
2. 条件理由:{A,¬B} → C

TMS工作流程

初始状态:
  节点1:鸟(Tweety) [输入]
  节点2:企鹅(Tweety) [未知]
  节点3:飞(Tweety) [理由:{节点1,默认规则}]

新增证据:
  节点2变为真 [观察:Tweety是企鹅]
  检查一致性:节点3的理由冲突!
  撤销节点3
  添加节点4:¬飞(Tweety) [理由:{节点2,例外规则}]
4. 实际应用场景
1. 法律推理:
   “默认无罪,除非证明有罪”
2. 诊断系统:
   “设备通常工作正常,除非有故障迹象”
3. 常识推理:
   “鱼通常生活在水中”
   (但知道是“飞鱼”时,调整预期)

七、知识表示的实际考量

📊 表示方法选择指南

需求场景 推荐表示 关键原因
Web数据互联 OWL(基于描述逻辑) 标准,支持推理,适合语义网
快速原型 语义网络 直观,易可视化,开发快
医疗术语 描述逻辑 + 分类体系 严谨,支持自动分类
常识推理 缺省逻辑 + 框架 处理例外,接近人类思维
法律条款 道义逻辑 + 案例框架 表达“应然”,处理判例
时空推理 时态逻辑 + 空间本体 处理变化和位置关系

⚖️ 永恒的权衡

表达力 vs 计算效率:
- 一阶逻辑:表达力强,但推理难(可能不可判定)
- 描述逻辑:平衡较好,推理可判定
- 命题逻辑:简单高效,但表达力弱

简洁性 vs 显式性:
- 隐式知识:短小,但机器不懂“言外之意”
- 显式知识:冗长,但机器能直接使用

🌉 知识表示的边界

即使最好的知识表示系统:
1. 无法捕捉“言外之意”:
   “会议室能坐10个人” ≠ “会议室只能坐10个人”
2. 无法理解“隐喻”:
   “时间是金钱”——不是真能买卖
3. 难以形式化“模糊概念”:
   “年轻人”、“有点咸”、“很快”
4. 常识的“冰山问题”:
   写出来的只是冰山一角,水下是海量默认知识

🚀 现代发展:知识图谱

当今热点:知识图谱 = 
    本体论(Schema) + 
    实例数据(Knowledge Base) + 
    推理引擎

例子:Google知识图谱:
- 本体:人物、地点、组织、事件...
- 实例:特朗普是美国前总统,生于纽约...
- 推理:特朗普是美国人(因为美国总统必须是美国公民)

🧠 第10章思维升华

从“数据”到“知识”到“智能”

数据:原始的符号(“25”,“北京”,“C”)
信息:有意义的数据(“温度25℃”,“北京是首都”)
知识:信息+关联+约束(“北京是中国的政治中心”)
智能:运用知识解决问题(“去北京出差要带正装”)

本章位置

  • 第8章:逻辑语言(给了AI“说话方式”)
  • 第9章:逻辑推理(给了AI“思考能力”)
  • 本章:知识表示(给AI“思考内容”——组织良好的知识库)

知识工程的教训

1. 没有“万能表示”:
   不同领域需要不同表示(医疗vs法律vs常识)
2. 构建成本极高:
   Cyc项目(1984-至今):试图编码人类常识
   投入:500人年,百万美元级
   结果:有限成功,证明难度极大
3. 维护比构建更难:
   知识会过时(“手机”的含义从“大哥大”变到“智能手机”)
   需要持续更新

连接人工智能大图景

知识表示是“符号主义AI”的核心
但现代AI更多是:
- 连接主义:神经网络从数据中学习表示
- 统计方法:概率模型处理不确定性
- 混合系统:符号+神经结合

未来方向:
1. 神经符号AI:用NN学习表示,用符号系统推理
2. 知识增强的LLM:给大模型注入结构化知识
3. 自动化知识获取:从文本自动构建知识库

最后一句大实话
知识表示就像给AI编写“百科全书”——
不仅要定义每个词条,还要说明词条间的关系。
最难的往往不是“爱因斯坦的相对论”,
而是“人伤心时会哭”这样的日常常识。
人类用一生积累这些常识,
而要让AI理解,我们仍需漫长的“知识基建”。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐