知识表示与推理:零基础复习课,从「身高预测」一路到 LLM 与智能体
这张专题就做一件事:用你自己的课件《Chapter 5: Knowledge Representation and Reasoning》打底,把「表示 ↔ 推理」这条主线从最朴素的「身高预测」案例开始讲起,一路经过 one-hot、稠密向量、四类推理范式,最后落到 LLM 与智能体上。读完之后,你应该能不翻课件复述出一张对照表,对「one-hot vs 稠密」「符号 vs 神经」「显式路径 vs 学到的模式」三个易混点给出自己的直觉区分,并讲清楚 LLM 与 Agent 究竟是怎么把前面所有东西收尾的。
智能系统为什么不直接看世界
计算机认识不到「这是苹果」
机器其实只能识别 0 和 1。不管是早期打孔卡上的「有孔 / 无孔」,还是 1940 年代真空管里的「通电 / 断电」,本质上都是把世界切成一长串 0/1,再做逻辑运算。
而真实世界里的信息——文字、图像、病历、传感器读数——它们默认不是机器能直接计算的形式。在机器能算出任何东西之前,必须先把这些信息转成机器内部的某个版本。这就是表示(representation):它是世界的「替代品」(课件 Slide 3),是任务导向的、有选择性的压缩(课件 Slide 5)。
光有表示还不够。系统要基于这些表示去推断、预测、决策或行动。这一步就是推理(reasoning)。课件把这一层用一句话总结得很到位:「推理从已表示的知识中得出新结论」(Slide 8)。
一条贯穿全程的流水线
把上面两件事合起来就是智能系统的最小骨架:
- Input:接收来自世界的信息。
- Representation:把信息有选择地转换为机器可计算形式。
- Reasoning:分析已表示的知识,进行推断、比较、预测或决策。
- Output:给出答案、推荐、决策或动作。
把这条流水线落到具体场景,就是「预测一个学生的未来身高」:
输入是病历、骨扫描、身高测量值、家庭信息。系统不直接把这些原始资料塞进模型,而是从中挑出对预测有用的几个字段——年龄、性别、骨龄、父母身高、营养——这些就成了这一任务的「内部表示」。接着把这份结构化特征拿去和生长模型比对,最后输出一个身高估计值(或者一个篮球选材决策)。这是课件 Slide 12 把流水线落到具体场景的完整样例。

图注:原图来自课件第 12 张幻灯片,分四段:输入(病历/骨扫描/测量值)→ 表示(结构化特征:14 岁、男性、骨龄 13)→ 推理(与生长模型比对)→ 输出(178 cm 的身高估计)。整张图把抽象的
Input → Representation → Reasoning → Output流水线物理落到人话,让读者一眼看到「表示是有选择性的压缩」是怎么发生的——系统不是把病历原文塞进模型,而是从中挑出有用的字段。
「表示是有选择性的压缩」
这张图里藏着一个非常重要的反直觉事实:同一个学生,会因为任务不同被不同地表示。课件给了一个对比:如果为了篮球选材,系统要保留年龄和骨龄(更关心成长空间);如果只是为了服装尺码规划,那只要当前身高、体重、衣服尺码就够了——骨龄、父母身高这些都成了冗余信息。
这意味着「表示」没有所谓的「最完整版」。一个好的表示取决于任务——丢掉哪些、保留哪些,是这条流水线能不能产出好推理结果的关键。课件 Slide 10 用一句话定调:「更好的、与任务相关的表示,带来更好的推理结果。」反过来也一样:关键信息缺失时,推理可能失败,结论可能很弱甚至错误——这一步的取舍贯穿后面的所有讨论。
符号之路:规则写下来,机器照着查
符号化表示:把知识写成人能读的形式
人类最早的「让机器学会推理」的方式,是把知识直接以人能读懂的形式写下来:一个标签、一条规则、一段事实。这就是符号化表示(symbolic representation)。它的特点是显式——你写下来什么样,机器就拿什么去推。
课件给了一个非常直观的例子。在医疗诊断场景里,系统可以这样组织知识:
- 事实:
Patient_01 has fever(Patient_01 发热)、Patient_01 has cough(咳嗽) - 规则:
IF fever AND cough, THEN possible flu(若发热且咳嗽,则可能是流感) - 推理:把事实喂给规则,得到
Patient_01 may have flu
这些事实和规则就像零散的便签纸。要让系统真能用,需要把它们归并到一个有组织的容器里——这容器叫知识库(Knowledge Base, KB)。

图注:原图来自课件第 19 张幻灯片。左侧是五条零散的符号化语句——
has_symptom(Patient_01, Fever)、has_symptom(Patient_01, Cough)、symptom_of(Fever, Flu)、symptom_of(Cough, Flu)、以及那条 IF-THEN 规则。右侧用一个蓝色右向箭头把它们归并成结构化的知识库,分成三栏:Facts(事实)、Rules(规则)、Concepts / Relations(概念/关系),右下角还标注了「可检索」「可重用」。这张图把「知识库」从抽象概念变成了可看的物理形态——它不是数据库里的一堆表,而是把事实、规则、关系三类东西分门别类地装在一起。
学科里的标准写法:KB + TELL/ASK
上面这种「写规则、推结论」的范式,在 AI 学科里有一套标准的命名方式。Russell & Norvig《人工智能:一种现代方法》第二版(2003 年)的 Chapter 7 给出了 knowledge-based agent 的最小原型:
- TELL:告诉知识库新事实("Patient_01 发热")
- ASK:向知识库查询("Patient_01 是不是得了流感?")
- 可靠性原则:推理必须 follow from what was told——也就是说,答案必须有依据,机器不能凭空造句。aima-ch7

图注:原图来自 AIMA 第二版 Chapter 7 的 Figure 7.1。矩形框内是 KB-AGENT 的 8 行伪代码:感知 → TELL 写入 KB → ASK 推出 action → 假设 action 已执行 → TELL 回写 → 时间步 +1 → return action。这段伪代码定义了「一个最小可用的知识库智能体长什么样」——它不是流程图、不是架构图,而是把 TELL/ASK 写成具体程序,让读者能直接看到这套范式怎么落到代码。aima-ch7
这套范式最大的卖点是白盒可审查:每一条结论都能追溯到具体的规则和事实。专家可以一行行审知识库、出错时可以改某条规则、推理路径可以展示给用户看。课件 Slide 45 把这一点说得很直接:「每个结果都能关联到存储的规则或事实。」
Deep Blue:符号之路的工程极致
这条路的代表案例是 IBM 的国际象棋程序 Deep Blue。1997 年 5 月,它以 3.5–2.5 的总比分击败了世界冠军 Garry Kasparov,这是符号范式在「封闭世界」里能做到的极致。deepblue-paper
Deep Blue 内部做的事,本质上是把国际象棋的规则写下来、把棋类知识编码成评估函数(具体来说,AIJ 论文报告评估函数用了 8000 多个特征),然后在每一步行动前对未来的走法序列做大规模并行搜索(论文描述了 30 节点 RS/6000 SP 加上 480 颗专用 chess chip 的工程架构,配合 dual credit selective search、残局库和扩展棋谱)。deepblue-paper

图注:原图来自课件第 46 张幻灯片,用作 Deep Blue 1997 击败 Kasparov 的案例锚点图。它本身不展示论文级别的工程细节(论文 Figure 1 是 dual credit 伪代码,无法独立抽取),而是用课件的语言把这一历史事件放进「符号之路」的归属位置。deepblue-paper
符号之路的代价
但符号之路也有它的天花板。课件 Slide 47 直接点出:「大领域里手工写规则非常困难」——世界是开放的,但规则是闭门写出来的。领域一旦变大,规则集合就会爆炸;领域一旦变化,知识库必须跟改;缺失或过时的规则会让结论变弱甚至错。Deep Blue 能赢 Kasparov,是因为国际象棋规则是封闭的、状态空间是有限的;换成开放世界的真实业务,符号之路就力不从心了。
这条代价线埋了一个伏笔:能不能让机器自己「看到数据就把规则学出来」?能不能用一种比规则更灵活的表示去捕捉「相似」「相关」这些细微关系?接下来三节就要回答这两个问题。
从符号到数字:one-hot 守住了身份却丢掉了相似
为什么需要数字表示
符号表示写起来易读,但「可计算性」是它的短板——你没法对 fever 和 cough 这种字符串做加法或减法,更没法度量它们之间的距离。
最早让类别变得「可计算」的做法叫 one-hot 编码。它的核心想法很朴素:每个类别分配一个向量位置,这一位是 1、其他位都是 0。这样 fever 和 cough 就被映射成了完全不同的向量,机器就能区分它们。
为了把这一点讲明白,课件全程用 red / purple / yellow 三色作例子。
| 颜色 | one-hot 向量(3 维) |
|---|---|
| red | [1, 0, 0] |
| purple | [0, 1, 0] |
| yellow | [0, 0, 1] |
三个属性 vs 三个代价
每个类别拿到了自己的向量——这是 one-hot 最大的优点:身份保留。red 是 [1,0,0],purple 是 [0,1,0],任何两个不同颜色的向量都互不相同,模型可以在这些向量上做存储和计算。
但这个优点立刻对应着三个严重代价:
第一个代价:相似性丢失。 在 one-hot 向量空间里,任何两个不同类别的欧氏距离都相等(都是 √2)。red 和 purple 看起来一样远,red 和 yellow 也一样远。课件 Slide 25 给出结论:「one-hot 保留了身份,但丢失了语义距离。它无法表达『red 比 purple 离 yellow 更近』。」这对于推荐、聚类这类需要「相似」的算法是致命的。
第二个代价:维度爆炸。 每新增一个类别,就要新增一维向量。当类别数变成几万甚至几十万(一个商品目录、一本词典),one-hot 向量会变成极长的稀疏序列——绝大多数位置都是 0,只有极少数是 1。
第三个代价(隐含):无法学出新关系。 one-hot 的每个维度是硬分配的,机器没法从数据里调整它们之间的相对位置。要让 red 离 yellow 比离 purple 更近,one-hot 给不了任何调整空间。
合起来就一句话:one-hot 是「机器能听懂的标签 ID」,但它看不见类别之间的相似——这是为什么后面必须有稠密向量。
稠密向量与嵌入:让「相似」也能被算出来
从稀疏到稠密
one-hot 的「距离永远相等」听起来像是设计缺陷,但它其实是一道无解的题——只要每个类别独占一个独立维度,距离就不可能反映含义。要解开它,必须换一种思路:让多种相似性共同占用少数几个维度。
这就是稠密向量(dense vector),也叫嵌入(embedding)。它的关键改造是:每个类别用一组实数(不再是 0/1,而是连续小数)共同表示,比如 [0.3, -0.7, 1.2, 0.5] 这样。维度常常只有几十到几百,远少于类别的总数。
稠密向量解决了 one-hot 的三个代价:
- 身份还在:每个对象仍有自己的向量位置。
- 相似性回来了:含义相近的对象,距离应当更近。比如
purple在向量空间里可以放在red和blue之间,更接近其中一边。 - 维度可控:意思是「多大体量才合理」。几百维通常足够编码上万类别的相对关系。
让这一切成为可能的,是 2013 年 Mikolov 等人提出的 Word2Vec。这篇论文给出了两种极简的架构:CBOW 用上下文预测中心词、Skip-gram 用中心词预测上下文。两种都是单层投影加 softmax 分类,没有非线性隐藏层——简单到在大规模语料上一天就能训出 SOTA 向量。word2vec-paper

图注:原图来自 Word2Vec 论文(arXiv:1301.3781)的 Figure 1。上半部分是 CBOW:上下各四个上下文词节点 w(t±2±1) 经共享投影矩阵投影到隐藏层,经 SUM 合并后通过 softmax 预测中心词 w(t)。下半部分是 Skip-gram:中心词 w(t) 单独输入,通过投影层再通过 softmax 预测周围若干上下文词。两种架构都不含非线性隐藏层。这张图把「稠密词向量从 0 到 1」的工程拐点定调——一个词不再是一个长而稀疏的 0/1 串,而是一串实数。
「方向即关系」:向量位移的直觉
稠密向量有一个让人惊艳的特性:向量之间的位移(方向)可以编码关系。课件 Slide 32 给出的经典例子是:从 run 到 runner 的偏移,可以类比于从 swim 到 swimmer 的偏移。这两组向量之间的方向一致性,意味着向量空间中不仅能表达「相似」,还能表达「关系」。

图注:原图来自课件第 32 张幻灯片,标题是「Directions can encode learned relationships」。图里把
run → runner的偏移和swim → swimmer的偏移画在一起,强调两个位移方向是一致的。Word2Vec 论文报告的同类线性位移关系(比如biggest - big + small ≈ smallest)给出了更量化的证据。word2vec-paper
one-hot 与稠密的本质区别
到这里,one-hot 和稠密向量的对照就清楚了:
| 维度 | one-hot | 稠密向量 / Embedding |
|---|---|---|
| 维度数 | 等于类别数(往往上万) | 几十到几百 |
| 大多数位置 | 几乎都是 0 | 都是有意义的实数 |
| 保留了什么 | 身份(每类一个独立向量) | 身份 + 相似性 + 方向关系 |
| 能不能学 | 不能(维度是硬分配的) | 能(从数据里学出位置和方向) |
| 适合做什么 | 标签 ID、稀疏类别区分 | 推荐、检索、上下文编码 |
这也是课件 Slide 34 的提醒:稠密向量不是万能药。向量里的数字难以直接解释,学到的嵌入可能从训练数据里继承偏见或误导性模式。但即便有这些局限,稠密向量仍然是目前最主流的表示方式,因为它们强大且可扩展。
四类推理范式:规则路径、数据路径、关系路径、模式路径
表示决定推理。前面讲了两种表示(符号、向量),这一节要看四类不同的「表示 + 推理」组合,它们各自承担什么场景:
决策树:从数据学出的「类规则路径」
专家系统的规则靠人写。问题是:领域大到一定程度,规则集合就维护不动了。决策树(decision tree)保留了「类规则路径」的直觉,但从数据里把规则学出来。
它的工作方式很像一个 if-else 流程:每个节点问一个特征问题(年龄?性别?),每个答案选一条分支,最后的叶子给出一个预测。把多棵决策树的预测加在一起,就成了树集成(tree ensemble)。XGBoost(Chen & Guestrin, KDD 2016)是这条路在工业界的代表方法。xgboost-paper

图注:原图来自 XGBoost 论文的 Figure 1,标题是「Tree Ensemble Model. The final prediction for a given example is the sum of predictions from each tree」。图中画了两棵 CART 决策树(用年龄、日常使用电脑与否等特征分裂),红蓝箭头示意两个孩子命中不同叶子,最终预测是各棵树预测的求和。这张图把「多棵树相加 = 类规则路径的并联」说清楚。
决策树有一条非常实用的属性:对稀疏特征(含 one-hot 编码产物)天然友好。XGBoost 论文 Figure 4 解释了为什么——它为「特征缺失」的情况给每条分裂边都学出一个「默认方向」(default direction),当 one-hot 编码里大量维度是 0 时,模型仍然知道往哪边走。这恰好补上了 one-hot 维度爆炸的短板。xgboost-paper

图注:原图来自 XGBoost 论文的 Figure 4。单棵决策树的根节点是「Age missing?」,每个节点都有实线(特征存在走)和虚线(特征缺失走 = default direction)两条分支。这就是 XGBoost 对 one-hot 这类高维稀疏特征友好的机制——default direction 是学出来的分支方向,不是简单的 impute。xgboost-paper
课件 Slide 50 直接点出了这条路的应用:树模型在金融系统中仍被广泛使用——信用评分、贷款申请评估等任务,决策树路径可解释,又能在结构化数据上取得强性能,这就是它没被神经网络彻底替代的原因。
知识图谱:沿实体关系路径推理
决策树对一个样本提特征问题。但很多问题依赖实体之间的联系——比如「埃菲尔铁塔所在国家的首都是什么?」这需要知道埃菲尔铁塔在巴黎、巴黎在法国、法国的首都是巴黎。
知识图谱(Knowledge Graph, KG)把这些联系表示为节点和边。最小单元是三元组(triple):(Eiffel Tower, locatedIn, Paris)、(Paris, locatedIn, France)、(France, hasCapital, Paris)。多个三元组连起来就是一张图,沿图的边走就是推理。
但要让 KG 真正可用,光有边还不够,还需要约束和校验:实体和关系可以来自文本、数据库、API 或人工标注;schema 定义合法的实体类型和关系类型(比如「埃菲尔铁塔 hasCapital 法国」就不合法)。课件 Slide 55 把 KG 的工程流程画成了四步:Extract(抽取)→ Build(建图)→ Constrain(约束)→ Validation(校验)。

图注:原图来自课件第 55 张幻灯片。整张图分四块:左上 Extract(四个数据源图标:text / database / API / annotation)→ 中上 Build KG(Eiffel Tower → Paris → France 三元组图)→ 右上 Constrain Schema(合法实体类型 Landmark/City/Country)→ 下方 Validation(✓/✗ 示例)。一张图说清三元组 + Schema 约束 + 验证的完整工程流程。
KG 推理的卖点也是白盒可审查:节点和边具有人类可读的语义,系统可以展示哪些已知事实支撑了答案。Google Knowledge Graph 就是这条路的工业代表——它把人、地点、物品、概念表示为相连的实体,让搜索引擎能从关键词匹配升级到实体理解。
但 KG 的瓶颈是构建成本:实体与关系要么靠人工写、要么靠自动抽取自动抽取后再人工校验,开放世界的变化还会让图过时。能不能让关系也学进向量空间里去?这是 Bordes 等人 2013 年提出的 TransE 给出的答案:把三元组 (h, r, t) 解释为向量空间中的平移 h + r ≈ t,让关系推理也能用向量完成。这是「表示 ↔ 推理」边界模糊化的早期范例。transe-paper
神经网络:学到的模式 ≠ 显式路径
决策树保路径,KG 保关系,神经网络走另一条路:没有显式规则、没有显式三元组,每一层把上一层向量变换成「更与任务相关」的隐藏表示。
每一层都是一组学到的权重(W1, W2, ...)做的线性变换加一个非线性激活。推理时沿着这些权重一层一层算下去,最后一层把隐藏表示映射成任务相关的输出(分类概率、回归值)。
这条路最大的特征是学到的模式:参数里存的是从数据里抓出来的统计模式,不是人能读懂的规则。代价是难以审查——模型可能产出有用的输出,但没有显式推理路径可展示。这就是为什么课件 Slide 67 要强调「这带来了规模、性能与透明度之间的取舍」。
四类的对照
到这里,四类推理范式的对照就清楚了:
| 范式 | 表示形式 | 推理方式 | 优势 | 代价 |
|---|---|---|---|---|
| 专家系统 | 显式规则 + 知识库 | 规则匹配 + 链式推导 | 白盒可审查 | 大领域难维护 |
| 决策树 | 树结构(特征分裂) | 沿路径走到叶子 | 可解释、对稀疏特征友好 | 表达复杂模式有限 |
| 知识图谱 | 三元组(实体-关系-实体) | 沿图的边走(多跳推理) | 关系显式、可展示路径 | 构建成本高、开放世界难覆盖 |
| 神经网络 | 稠密向量 + 学到的权重 | 逐层前向变换 | 可扩展、能处理复杂数据 | 黑盒、不可审查 |
四种范式不是替代关系,是互补关系——不同任务、不同数据、不同可解释性要求,会挑不同的范式(甚至多种范式混用)。
LLM 的入口:文本怎么变进模型里
LLM 也是神经网络
把上一节的「神经网络逐层表示」放大到极致,再叠上前两节讲的「稠密向量编码含义」,就得到了大语言模型(Large Language Model, LLM)。课件 Slide 35 给出的定义很直接:「LLM 是用海量文本训练、用来理解和生成人类语言的 AI 模型。」它本质就是一个超大的神经网络 + 嵌入作为输入。
虽然 LLM 内部结构复杂(通常是数十层 Transformer),但入口链路非常具体。这就是理解 LLM 的入口:text → tokens → token IDs → embeddings → 多层 Transformer → 输出 token 概率分布。
一次预训练 + 轻量微调:BERT 的范式
要让 LLM 能用,必须先把**一套预训练权重 + 轻量输出层 + 全参数微调(fine-tune)**这条路钉死。Devlin 等人 2018 年提出的 BERT(NAACL 2019)是这条范式的学术锚点。bert-paper

图注:原图来自 BERT 论文的 Figure 1。左侧 Pre-training 框:token 序列经过 embedding 链进入 BERT 主体,顶部红色向上箭头分别指向两个无监督任务——NSP(下一句预测)和两个 Mask LM(掩码语言模型)。右侧 Fine-Tuning 框:同样的 BERT 主体处理 Question-Paragraph 对,顶部红色箭头输出 Start/End Span(用于 SQuAD 类抽取任务),三个层叠子框 MNLI / NER / SQuAD 表示同一套架构可以适配多个下游任务。三条灰色虚线箭头从左到右把预训练参数传到下游——「一次预训练,多任务复用」的范式就是这张图要钉的事。bert-paper
入口链路:token → ID → embedding
LLM 不直接吃字符串。它先把文本切成token(词、子词或字符),再把每个 token 映射为一个token ID,最后在嵌入表(embedding table)里把 token ID 查成一个稠密向量。
BERT 用的是 WordPiece 子词切分:高频词作为整体保留,低频词切成带 ## 前缀的子段(比如 playing 切成 play + ##ing)。这样既控制了词表规模(BERT 用 3 万词的 WordPiece 词表),又能处理 OOV(不在词表里)的词。bert-paper
更关键的是,BERT 的输入表示 = 三种 embedding 按位相加:
- token embedding:每个 token 在词表中的稠密向量
- segment embedding:区分两段句子(
E_A/E_B),让模型知道「这是问答对还是单句」 - position embedding:标记每个 token 在句子里的位置(
E_0, E_1, ..., E_10),让模型保留顺序信息
句首加一个特殊 token [CLS],句对之间加 [SEP]。这串向量就被送进多层 Transformer。bert-paper

图注:原图来自 BERT 论文的 Figure 2。四行结构:①token 行(
[CLS] my dog is cute [SEP] he likes play ##ing [SEP]);②Token Embeddings 行(浅黄,每个 token 一个稠密向量);③Segment Embeddings 行(浅绿,前 6 个E_A,后 5 个E_B);④Position Embeddings 行(浅灰,E_0到E_10)。行间+符号表示三者按位相加。##ing子词和[CLS] [SEP]特殊 token 都在图里可见。bert-paper
从静态嵌入到上下文相关嵌入
到这里,LLM 入口和第 4 节讲的稠密向量已经接上了。但有一个关键升级必须点破:Word2Vec 那种稠密向量是「静态嵌入」——一个词只有一个向量,跟上下文无关;BERT 这种稠密向量是「上下文相关嵌入」——同一个 token 在不同句子里会拿到不同的最终隐藏向量。bert-paper word2vec-paper
这意味着 LLM 不是「查表」——它把整个句子经过多层神经网络处理,每一层的隐藏表示都随着上下文变化。这是稠密向量从「能学相似性」升级到「能编码上下文」的关键一步,也是 LLM 之所以能在问答、翻译、摘要等任务上通用的根本原因。
推理模型与 Agent:思考链可读,闭环接环境
推理模型:先想再答
普通 LLM 是「问什么就直接生成答案」。2024 年开始出现的新一类模型——推理模型(reasoning model)——在最终答案前先生成一段思考过程。课件 Slide 73 点名 OpenAI o1 引入这一范式,DeepSeek-R1(DeepSeek-AI 团队,arXiv:2501.12948, 2025)以开源形式做了系统化推广。
这条路的核心思想叫测试时计算扩展(test-time scaling):让模型在回答时花更多算力(生成更多 token 来思考),而不是把所有算力压在训练阶段。DeepSeek-R1 论文给出了一个公开的训练范式。deepseekr1-paper
这张流程图是 DeepSeek-R1 论文 Figure 2 给出的多阶段训练流水线。中间产物 Dev1 / Dev2 / Dev3 是流水线内部的 checkpoint,不是三个独立模型。R1 论文自陈,R1 在生成最终答案前会先在 <think>...</think> 标签里输出思考内容——这就是测试时计算扩展的工程接口。deepseekr1-paper

图注:原图来自 DeepSeek-R1 论文(arXiv:2501.12948)的 Figure 2。从左到右:DeepSeek-V3-Base → 冷启动数据 → R1-Zero(RL)→ R1 Dev1(推理 RL checkpoint)→ 拒绝采样 → R1 Dev2(SFT 第二阶段)→ R1 Dev3(融合推理与非推理 SFT)→ 二阶段 RL(有用性 + 无害性 reward model)→ 最终 DeepSeek-R1。中间明确出现 Dev1 / Dev2 / Dev3 三个 checkpoint 节点。deepseekr1-paper
核心张力:思考链对用户可读(你能顺着文本核对推理),但模型整体仍是数十亿参数的 Transformer。这与第 2 节讲的 Deep Blue「白盒规则 + 评估函数 + 搜索」形成根本对照——白盒专家系统每一步都能追溯到具体规则,而推理模型的内部权重仍然是黑盒,能给你看的是「思考的文本」,不是「思考的机制」。deepseekr1-paper
Agent:闭环接环境
推理模型把思考过程显式地写了出来。但光有思考还不够——LLM 还需要跟环境交互。课件 Slide 76 点出:「Agent 把 LLM 从『文本生成』扩展到『与世界交互』。」它可以调用工具、搜索网页、读文件。
学术上把这种闭环命名为 ReAct(Yao 等人, ICLR 2023):Thought(思考) + Action(行动) + Observation(观察) 交错生成。CoT 只在脑内想,Act-Only 盲目行动;只有 ReAct 把「想」和「动」接回同一条轨迹,每一步 Action 后拿到真实的 Observation 反馈。react-paper

图注:原图来自 ReAct 论文的 Figure 1。上半部分 HotpotQA 任务的 4 列对比:Standard(直接给答案错)、CoT(推理但无外部信息错)、Act-Only(行动无推理错)、ReAct(推理 + 行动交错对)。下半部分 ALFWorld 任务的 2 列对比:Act-Only 盲目行动导致 Nothing happens、ReAct 用 Think 块做高层规划对。颜色编码一致:红 = 错/失败、绿 = 对/成功、蓝 = Think/Thought。react-paper
为什么只有 ReAct 能答对时间敏感的问题?看下面这个具体例子:原论文报告了 HotpotQA 同一问题的 4 种 prompting 对比,Standard 答错、CoT 答错、Act-Only 跑 5 步后 end without answer 错;只有 ReAct 通过 Thought 引导 Search 一步步查到最新数据才拿到正确答案。react-paper

图注:原图来自 ReAct 论文的 Figure 2。同一 HotpotQA 问题的 4 种 prompting 对比:(1a) Standard 答错;(1b) CoT 答错;(1c) Act-Only 跑到 Act 5 后
end without answer错;(1d) ReAct 通过 Thought 1-3 引导 Search → 拿到最新数据 → Finish 拿到正确答案。绿色高亮强调 Thought 引导 Action 的关键决策点。这张图把「工具型 Agent 把模糊目标分解为可核查的中间产物」具体化——每一步 Search 都对应可核查的环境反馈。react-paper
5 步闭环:课件的标准答案
课件 Slide 79 把 Agent 闭环画成了一个可以复述的工程示意:
- Goal:用户想要什么
- Observation:Agent 已知/观察到了什么
- Representation:当前任务状态
- Reasoning:下一步该做什么
- Action:调用工具、回答、生成文件,或停止
把这套循环用在「在咖啡馆选一杯咖啡」这类小任务上:目标 = 想喝咖啡 → 观察 = 当前在街角,看到 A/B/C/D 四家咖啡馆 → 表示 = 内部维护一个「咖啡馆清单」→ 推理 = 根据菜单、价格、距离选下一家 → 行动 = 进店点单。行动后又产生新的观察(点单结果、味道反馈),整个循环继续。
课件 Slide 80 还给了一个能立刻落到实操的案例:工具型 Agent 做课程项目。学生目标是「比较三个 AI 应用以完成小组项目」,Agent 可以把这种模糊目标分解成可核查的中间产物——查每个应用的介绍、生成对比表格、起草幻灯片大纲——每一步都对应一个工具调用和可核查的证据。

图注:原图来自课件第 79 张幻灯片。整张图分上下两部分:上半部分是 5 步闭环结构(Goal → Observe → Represent → Reason → Action),每个步骤用一个编号方块表示,底部有「Agent (thinking) | Chooses next action | Environment (gives feedback) | Representation updated | Repeat until goal is achieved」的字样说明;下半部分是咖啡馆选择示例,展示 Agent 在 A → B → C → D 四家咖啡馆之间的完整轨迹。这是复习者推荐的「可复述的考试答案」——5 步名称 + 一个生活化例子。
回到主线:表示 ↔ 推理的对偶原则
到这里,可以把第 5 节的「神经网络逐层变换」、第 6 节的「LLM 入口」和第 7 节的「推理模型 + Agent」三件事对回「表示 ↔ 推理」这条主线:
- 神经网络逐层变换 是「学到的模式 ≠ 显式路径」的代价点。
- LLM = 超大神经网络 + 嵌入作为输入,把稠密向量、上下文相关嵌入、Transformer 串起来。
- 推理模型 让 LLM 先想再答,思考链可读,但模型整体仍是黑盒。
- Agent 让系统在与环境的交互中持续更新内部表示,ReAct 把 thought 当作可更新的中间状态。
课件 Slide 9 一开始定下的「表示决定推理」原则,到这里被完整闭环——表示和推理从来不是孤立的两层,它们始终是一对相互制约的设计决策。
复习收尾:对照表 + 三个易混点自查
「表示形式 ↔ 推理方式」对照表
把全文 7 节的核心抓手收成一张考试可复述的对照表:
| 表示形式 | 典型载体 | 推理方式 | 代表案例 | 关键张力 |
|---|---|---|---|---|
| 符号化 | 规则 + 知识库 | 规则匹配 / 链式推导 | Deep Blue 1997 | 白盒可审查 vs 大领域难维护 |
| 数字(one-hot) | 稀疏 0/1 向量 | 标签 ID 计算 | 类别特征工程 | 守住身份 vs 丢失相似性 |
| 数字(稠密向量) | 嵌入(embedding) | 距离 / 方向 / 学到的模式 | Word2Vec、BERT | 编码含义 vs 数字难解释 |
| 树结构 | 决策树 / 树集成 | 沿路径 + 多树求和 | XGBoost(金融风控) | 可解释 vs 表达复杂模式有限 |
| 关系网络 | 知识图谱(三元组) | 沿图的边走(多跳推理) | Google Knowledge Graph、TransE | 关系显式 vs 构建成本高 |
| 多层神经网络 | 向量 + 学到的权重 | 逐层前向变换 | LLM(多层 Transformer) | 可扩展 vs 黑盒不可审 |
| 上下文相关嵌入(encoder 双向) | token + segment + position 三类 embedding 相加 | 多层双向 Transformer 自注意力 | BERT(句对输入 + NSP) | 静态 vs 上下文相关 |
| 上下文相关嵌入(decoder-only 因果) | token + position 两类 embedding 相加 | 多层 Transformer 带掩码自注意力(只看左侧上下文) | GPT 类 LLM | 静态 vs 上下文相关 |
| 环境交互 | 内部表示 + 工具调用 | Thought + Action + Observation 交错 | ReAct Agent | 想 + 动 + 看反馈接回同条轨迹 |
三个易混点自查
考试时最容易卡壳的就是这三个易混点,给出各自的直觉区分:
易混点 1:one-hot vs 稠密向量。 one-hot 是「机器能听懂的标签 ID」——每个类别一个独立维度、距离永远相等、维度数等于类别数。稠密向量是「能编码相似性的坐标」——多种相似性共用少量维度、距离反映含义、维度数远小于类别数。身份保留 vs 相似性编码就是这两条路的本质差别。
易混点 2:符号 vs 神经。 符号表示(规则 + 知识库)把知识显式写下来,每一步推理都能追溯到具体规则,白盒可审查但难扩展。神经表示(向量 + 权重)把模式隐式存在参数里,可扩展到海量数据但内部不可审。白盒显式 vs 黑盒学到的模式是这两条范式的核心对照轴——Deep Blue 是符号之路的代表,DeepSeek-R1 是神经之路的代表。
易混点 3:显式路径 vs 学到的模式。 决策树保路径(每个预测都沿着「年龄?性别?」这样的特征问题走过来)、知识图谱保关系(每个推理都沿「Eiffel Tower → Paris → France」这样的边走过来),它们都是显式路径——人能看到推理是怎么走的。神经网络(LLM)走的是学到的模式——参数里存的是从数据里抓出来的统计模式,没有显式路径可展示。这条对照轴解释了为什么「可解释性」会成为 LLM 时代的一个核心工程问题。
把上面这张对照表 + 三个易混点装进脑子里,这门课的复习任务就算完成了。
参考文献
本专题引用的核心资料如下,建议深入学习时阅读原文:
- Knowledge Representation and Reasoning (Chapter 5 lecture slides) — 用户课件
- AIMA Chapter 7 — Logical Agents (Russell & Norvig, 2nd ed., 2003) — aima.cs.berkeley.edu PDF
- Deep Blue (Campbell, Hoane, Hsu 2002, Artificial Intelligence) — ScienceDirect
- XGBoost: A Scalable Tree Boosting System (Chen & Guestrin, KDD 2016) — arXiv:1603.02754
- TransE: Translating Embeddings for Modeling Multi-relational Data (Bordes et al., NIPS 2013) — NeurIPS Proceedings
- Efficient Estimation of Word Representations in Vector Space (Mikolov et al., ICLR 2013) — arXiv:1301.3781
- BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (Devlin et al., NAACL 2019) — arXiv:1810.04805
- ReAct: Synergizing Reasoning and Acting in Language Models (Yao et al., ICLR 2023) — arXiv:2210.03629
- DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning (DeepSeek-AI, 2025, Nature) — arXiv:2501.12948