课程/M09/马尔可夫链与稳态分布
M09 · 概率与统计核心约 35 分钟

9.5 马尔可夫链与稳态分布

本节位置:模块 9 · 概率与统计 | 前置:6.6 幂迭代与 PageRank、9.1 概率与随机变量 | 预计:35 分钟

一句话:把「下一步去哪」写成一张行和为 1 的转移矩阵,反复左乘当前分布,它就会收敛到与起点无关的稳态分布。

0. 场景引入

客服平台每天进 4.2 万张工单,平均在库 12.6 万张。注意这里有个容易漏掉的账:其中很大一部分是当天就关闭的短工单,不进入下面这条长期链;把长期积压的旅程压成两个状态:处理中(P)、待客户确认(W)。过去 90 天的状态快照给出

读法:今天在处理中的工单,明天 90% 还在处理中、10% 转去等客户;在等客户的,每天 20% 被客户回信拉回处理中。

的稳态是 :长期有 1/3 的工单卡在 W,即 4.2 万张。运营总监周一要定:花 18 万元上「自动催办」,把 从 0.2 提到 0.3;还是花 36 万元/月加 30 名客服,每人每天处理 110 张。

前一个方案把 W 的份额从 33% 压到 25%,少 1.05 万张在库;后一个方案只加快处理速度,不动 这个概率——稳态份额一点不变。

还要算时间账:第二特征值是 ,从当前分布走到稳态、偏差降到 1 个百分点以内要 10 天。上线三天就评估,看到的还是过渡态。

读完本节,你能回答的三个问题是:

  1. 为什么长期份额只由转移概率决定,与今天积压多少无关?
  2. 不可约、非周期各排除了哪一种「算错」?
  3. 混合时间怎么估,为什么它决定活动该等几天再评估?

1. 直觉

这种「下一步只依赖当前状态」的随机过程叫马尔可夫链(Markov chain)。把状态画成节点,把转移概率画成带权有向边,就是一个最小的三状态玩具——青蛙在三片荷叶间跳:

stateDiagram-v2 A --> A: 0.5 A --> B: 0.5 B --> B: 0.2 B --> C: 0.8 C --> A: 0.6 C --> C: 0.4

站在某个节点,按出边的概率随机走一步。走很多步后,你在每个节点停留的时间比例会稳定下来——这就是稳态分布(stationary distribution)。

  • 图强连通(从任何节点都能到任何节点)时,稳态唯一;
  • 图有周期性(A→B→A→B)时,分布来回振荡,不收敛;
  • 图分成几个互不连通的区域时,稳态不唯一,取决于起点。

💡 一句话直觉:稳态是「流入每个节点的概率流量等于流出」的平衡;它不是某个吸引点,而是一种全局比例。

1.1 它在现实世界里对应什么

把青蛙换成工单,每个符号就都有一张具体的脸:

数学对象客服工单系统里的对应物
状态 工单所处的阶段:处理中 / 待客户确认 / 已解决(可被重开)
转移概率 今天在 的工单,明天转到 的比例
行和为 1每张工单第二天一定落在某个状态,不会凭空消失
分布 第 天在库工单里各状态占的比例
稳态 长期看各状态的工单占比——排班与 SLA 的基数
第二特征值 一次流程改动要几天才能在报表上显现
不可约「已关闭」必须还能被重开,否则积压不会自己回来

青蛙的「停留时间比例」和工单的「在库占比」之所以是同一个量,是因为两者都在数长期访问频率。这就是为什么一张转移矩阵能同时回答「青蛙在哪片叶子多」和「该给哪个状态排多少人」。

1.2 这个类比在哪里失效

「访问频率」变成「在库占比」需要一个额外假设。 单张工单的链只告诉你它平均在每个状态待多久;要把份额换算成绝对张数,得假设到达率恒定、工单之间互不影响。旺季到达率翻倍时,占比不变,绝对数量却翻倍——人力需求是「到达率 × 停留时间」(Little 定律),不是只看份额。

马尔可夫性本身是假设。 客户可能记住「上次是谁把我气到了」,于是转移概率依赖更早的历史。这时要加状态(把「投诉过」单列)或换成半马尔可夫链,否则 只是把不同人群的概率平均在一起。

状态划分太粗会失真。 把「已解决但等评价」和「待客户确认」混成一个状态,两种完全不同的停留时间被平均掉, 也就失去了运营含义。

1.3 量级直觉

时,每步误差乘 0.7,10 步降到 1 个百分点以内;(流程几乎不动)时要 116 步。混合速度和「流程有多黏」成正比,和状态数关系不大。

状态数上到 1 万时,直接解 的线性方程组是 ,走不通;幂迭代每步只要 ,一次稀疏矩阵乘就够。网页图有几十亿个节点、边数约为节点数的 10 倍,一次迭代约 次乘加——这正是 PageRank 必须用迭代、不能用消元的原因。

2. 定义

2.1 转移矩阵

状态空间大小为 ,转移矩阵(transition matrix) 定义为 ,要求 且 (对每个 )。

每行和为 1,称为行随机矩阵(row-stochastic matrix)。第 行是「在状态 时下一步去哪」的完整分布。

2.2 多步转移与分布演化

步转移概率是 的元素:。若当前分布是行向量 ,则 ,。

这里左乘行向量,与「每行是条件分布」的约定配套。若把分布写成列向量,则要写成 。第 6.6 节用的是列随机矩阵 ,满足 ;本节用行随机 ,满足 。两者互为转置,稳态相同。

2.3 稳态分布

若概率行向量 满足 、、,则称 为稳态分布(stationary distribution)。等价地, 是 的特征值 1 对应的特征向量。

2.4 不可约与非周期

  • 不可约(irreducible):从任意状态可以经若干步到达任意状态,即图强连通。
  • 非周期(aperiodic):每个状态返回自身的步数最大公约数为 1;有自环()通常就非周期。

有限状态链若不可约且非周期,则稳态唯一,且从任意初始分布出发都有 。

2.5 混合速度与 PageRank

收敛速度(混合速度,mixing)由第二大特征值的模 控制:。 越接近 1,混合越慢;若 所有行相同,则 秩 1,,一步到位。

PageRank(网页排名) 把网页链接写成行随机 ,再加阻尼:,其中 是阻尼因子(damping factor)(常用 )。读法:以概率 沿链接走,以概率 随机跳到任意网页。 仍行随机,PageRank 向量是它的稳态。

3. 为什么这样定义

为什么每行和为 1? 在状态 时,「下一步去某个状态」是一个概率分布,总和必须为 1。行和为 1 等价于 ,即全 1 向量是 的特征值 1 的右特征向量;这保证 至少有一个稳态(左特征向量)。

为什么稳态是左特征向量? 分布演化是 ;稳态要求 ,即 在 下不变。它不是右特征向量,而是左特征向量;转置后就是 的普通特征向量。

为什么需要不可约和非周期? 不可约保证「哪都能去」,避免多个封闭子集各自形成稳态;非周期避免奇偶震荡。反例: 不可约但周期 2,稳态是 ,从 出发却永远在 与 间跳。

为什么 PageRank 要加阻尼? 真实网页图可能有悬挂节点(没有出链)和不连通分量。加「以 概率随机跳转」的均匀项后, 的所有元素为正;由 Perron–Frobenius 定理,主特征值 1 唯一,且 ,幂迭代必收敛。

3.1 反事实:列当成行、或忽略不可约性,稳态会算错

稳态的两个错误都能用 §0 的 矩阵手算出来。

反事实 A:把转移矩阵的列当成行。

正确写法是 。「列当成行」等于把方程写成 ,也就是 。仍取

设 。正确方程的第一个分量是 ,解得 。错误方程的第一个分量是 ,解得 。

两个答案差 16.7 个百分点。换算到 §0 的规模:,也就是把积压算成 6.3 万张(真值 4.2 万),多出的 2.1 万张比自动催办省下的 1.05 万张还多一倍。看到这个数,运营会以为「流程没救、只能加人」,18 万的改造预算直接被砍掉——一个转置就把决策方向带偏了。

反事实 B:把「已关闭」当成吸收态,忽略不可约性。

如果工单一旦关闭就永不重开,链条变成

解 :前两行给出 ,第三行 对 没有任何约束。也就是说稳态不是唯一的,而是一整条直线 ,;稳态族本身只是「所有平稳分布」的集合;从某个初值出发最终停在哪一点,取决于它被各个吸收态吸走的概率。若按「工单最终都会关闭」取 ,得到 :报表上待客户确认归零,积压「自愈」。

现实里 8% 的关闭工单会被客户重开。把那条 的边补回去,链重新不可约,稳态才唯一,报表才有排班价值。一个缺失的边,能让「稳态」退化成「随便哪个」。

反事实 C:忽略周期性。 的稳态是 ,但从 出发,偶数步是 、奇数步是 ,永远不收敛。只看单日快照,会分别读出「100% 在处理中」和「100% 在待确认」,两个都不等于稳态。

三个反例共用一个教训:稳态方程本身只保证「不变」,不保证「唯一」,也不保证「从任意初值都会到达」。「不变」由方程本身保证,「唯一」靠不可约,「从任意初值到达」靠非周期。

4. 性质与推导

4.1 二状态稳态方程

设 ,,。由 的第一个分量得 ,即 ,故 。归一化得

读法:稳态在状态 1 的份额,等于「从 2 流回 1 的概率」除以「两边来回概率之和」,即流量平衡。

4.2 收敛与特征值

把初始分布写成左特征向量的组合 ,其中 ,。则 。由于 (),后一项按 衰减;归一化后 ,所以 。若链有吸收态,稳态不唯一,长期行为要用吸收概率描述。

4.3 PageRank 方程

设 是 的稳态,则 ,即 。读法:每个网页的分数 = 沿链接传来的分数 + 均匀随机跳转的分数。可写成迭代 ,就是幂迭代。

4.4 细致平衡与 MCMC

若存在 使 对所有 成立,则称链满足细致平衡(detailed balance)、可逆(reversible), 是稳态。读法:每条边上两个方向的概率流量相等。MCMC 的 Metropolis–Hastings 就是构造一个满足细致平衡的 ,让目标分布成为稳态,然后采样。

5. 例子

5.1 手算:两状态工单链

把 §0 的链写成状态 1 = 处理中、状态 2 = 待客户确认,。

稳态:,由 4.1 得 。

特征值:,,所以特征值为 与 。

从处理中出发:,,,。通式

混合时间:要让偏差 小于 1 个百分点,解 ,得 ,即第 10 天。 时 ,,离 只差 0.9 个百分点。所以 §0 那个自动催办项目,评估窗口至少 10 天。

改流程会同时改终点和速度:把 从 提到 ,稳态变成 ,第二特征值变成 。从 出发,通式变为 ; 时 ,只差 1.9 个百分点;同样降到 1 个百分点,7 天就够——评估窗口从 10 天缩到 7 天。

若把 改成 ,第二特征值约 ,同样降到 1 个百分点要 116 步——流程越黏,评估窗口越长。

5.2 手算:三页的 PageRank(无阻尼)

三个页面 A、B、C,链接为 A→B、A→C、B→C、C→A。行随机矩阵(行顺序 A,B,C):

设 ,解 :,,第三式自动成立。归一化得 ,。C 被 A 和 B 同时链接,所以和 A 并列最高;B 只被 A 链接一半,分数最低。

5.3 场景:文本生成

把「已生成的 token 序列」当作状态,下一个 token 的分布由模型给出:。温度 改变转移矩阵,但不改变「给定当前状态,下一步只依赖当前状态」这一马尔可夫结构。

固定 prompt 反复采样时,长期 token 分布会趋于某个稳态;但自然语言没有全局稳态,所谓「稳态」只在固定上下文假设下有意义。这也是长文本会重复的原因:某些循环在转移矩阵里形成了高概率闭环。

5.4 场景闭环:18 万元的自动催办,10 天后才看得见

输入:12.6 万在库、每天 4.2 万新单;90 天状态快照约 条转移记录。矩阵只有 2 个自由参数(两行各一个),估起来很便宜——难的是确认它这一周仍然成立。

计算:,,10 天到 1 个百分点内。改造后 :,,7 天到位。份额差 ;把 12.6 万在库按这个份额折算(近似,见 §1.2 的边界),得 1.05 万张。

输出:决策——先上自动催办,10 天后 W 份额从 33% 降到 25%,在库少 1.05 万张;加 30 人只提高处理速度、不动 ,份额不变,除非同时把「客服主动回访」写进流程(那才是在改 )。

成本:少 1.05 万张在库,按每张每天 0.5 分钟跟进算, 人天/天,折约 13 万元/月;18 万改造费约 1.4 个月回本。但前 10 天报表几乎不动,项目在第 3 天被砍,是最常见的死法。

失败条件与兜底:

  • 非平稳:大促时客户回信率 从 0.2 掉到 0.12,稳态变成 ,在库 5.7 万张,比基线多 1.5 万张——比自动催办省下的还多 50%。兜底:按渠道、时段分群估 ,滚动 7 天窗口,别拿一份年度矩阵套所有场景。
  • 吸收态:把「已关闭」设成不可重开,稳态退化成一条直线,报表显示积压会自愈。兜底:强制保留 8% 的重开边,或给所有状态加一个小概率的随机跳转(PageRank 的阻尼就是这么干的)。
  • 状态定义漂移:新增「等待物流」状态后,旧矩阵不可比, 的分子分母都变了。兜底:矩阵版本化,改状态就重估并重算历史基线。
  • 单日快照:周末与工作日的 不同,用一天数据估出来的 只代表那一天。兜底:至少按周聚合并分「工作日/周末」两套。

6. 常见误区

  1. 误区:稳态就是 ,和 一样。纠正:行随机约定下是 (左乘); 对应列随机,两者差一个转置。
  2. 误区:只要存在稳态,从任意初始分布都会收敛到它。纠正:还需要不可约且非周期;周期链有稳态,但从 出发永远振荡。
  3. 误区:稳态与初始分布无关,所以可以随便设初值。纠正:不可约非周期时极限与初值无关;但有限步分布、混合速度、多稳态链的归宿都依赖初值。
  4. 误区: 是「长期停留在 的概率」。纠正:它只是一步转移概率;长期频率是稳态 。例如 的 ,但一步转移概率是 0 或 1。

7. 概念网络

8. 通往大模型:自回归生成就是一条马尔可夫链

出现位置:解码。给定 prompt,模型每一步输出词表上的分布,采样一个 token,把它接回输入,再算下一步。状态是「当前上下文」,转移是「下一个 token 的条件分布」。

形状:词表 常见为 量级,上下文长度 。每一步 logits 形状 ,只取最后一个位置得到 ,softmax 后得到 的概率行。完整的 转移矩阵不会显式存储——它由网络对每个上下文现算,参数量远小于 。

为什么需要:马尔可夫结构让「逐步采样」成为可能:不需要一次算出整段文本的联合分布,只要反复条件采样。KV Cache 缓存历史 token 的 ,正是把「过去」压缩成足够统计量,使每一步的转移只依赖当前状态。

可检验结论:温度 时, 退化为 one-hot,链变成确定性映射,容易陷入循环; 时趋于均匀分布,混合最快但输出无意义。 不改变马尔可夫性,只改变转移矩阵的谱。若固定 prompt 且 ,同一输入总产生同一输出; 时输出是随机变量。

import numpy as np
P = np.array([[0.9, 0.1],
              [0.2, 0.8]])          # 0=处理中,1=待客户确认
pi = np.array([1.0, 0.0])           # 行向量,从处理中出发
for _ in range(50):
    pi = pi @ P
print(pi)                            # 接近 [2/3, 1/3]
print(np.linalg.eigvals(P))          # [1, 0.7]

与 PageRank 的关系:两者都是「行随机矩阵 + 幂迭代」。PageRank 在网页图上做随机游走,稳态是重要性分数;语言模型在 token 图上做条件随机游走,稳态(若存在)是长期 token 频率。区别在于 PageRank 的 固定且稀疏,语言模型的转移随上下文变化,状态空间是序列而非单个 token。

如果这一步算错,下游看到什么现象:马尔可夫链的错误不会让程序崩,它只会让报表「看起来很正常」。

  • 矩阵转置:排班按 而不是 算,W 队列少排约 张对应的人力(按每人每天 110 张算约 190 人),首响 SLA 立刻破。这个错不会在任何单元测试里暴露——矩阵形状对、行和也对。
  • 忽略不可约性:报表显示积压会自愈,预算被砍;实际上 8% 的重开率让积压稳在 1/3,越攒越多。
  • 忽略混合时间:改版第 3 天评估,偏差还有 11 个百分点,看起来要么「完全没效果」、要么「效果爆炸」,于是误判并回滚。
  • 只在 采样:确定性链进入 2-周期循环,输出复读同一句——这不是「模型没学会」,是转移矩阵的谱退化成了 。
  • 逼近 1:幂迭代要上万步才收敛,看板刷新一次算不完;兜底是加阻尼把 压到 ,或直接解线性方程组。

9. 练习

  1. 概念:为什么行随机矩阵要求每行和为 1?如果某行和为 0.9,意味着什么?
  2. 计算:,求稳态分布、特征值;从 出发,求 5 步后的分布。
  3. 计算:用 5.2 的 ,验证 满足 ,并解释为什么 C 的分数不低于 A。
  4. 概念/计算: 的稳态是什么?从 出发, 如何变化?这说明了什么?
  5. 开放:温度 如何改变转移矩阵?为什么低温度更容易重复?截断上下文窗口后,马尔可夫性还严格成立吗?
参考答案
  1. 在任一状态,下一步必然落到某个状态,所有出边概率之和必须为 1。若某行和为 0.9,说明有 0.1 的概率「消失」,模型不完整;和为 1.1 则概率超支。
  2. ,;,,特征值 。从 :, 时 。
  3. 。C 被 A 和 B 各链接一次,A 只被 C 链接,但 C 还额外获得 B 的全部流量。
  4. 稳态 。从 出发,奇数步为 、偶数步为 ,不收敛。说明「有稳态」不等于「会收敛」;该链周期为 2。
  5. 。 小则分布尖锐,高概率 token 被反复选中,链容易进入循环; 大则平坦,混合快但连贯性差。截断窗口后状态不含完整历史,严格马尔可夫性被破坏。

10. 一页速记

  • 行随机:,;分布左乘,。
  • 稳态:,,是 的特征值 1 特征向量;二状态 。
  • 不可约 + 非周期 → 稳态唯一、与初值无关;速度由 控制,,10 天到 1 个百分点。
  • 两个手算反例:转置给 (真值 );把「已关闭」当吸收态,稳态退化成一条直线。
  • 物理意义 / 现实对应:稳态是「流入 = 流出」的流量平衡,像水箱水位;在工单系统里它就是各状态的长期占比,决定排班与 SLA 的基数。

11. 参考文献与致谢

这一页的知识不是凭空来的。下面列出本页直接借用的原始工作与权威整理;正文中的人名、定理名已链接到对应条目。链接优先指向 DOI、arXiv 或可长期访问的原文存档。

  • 佩龙(Oskar Perron, 1907):Zur Theorie der Matrices。证明正矩阵的主特征值唯一且模严格大于其余特征值,这是 Perron–Frobenius 定理的正矩阵情形;本页用它说明 PageRank 的 与幂迭代收敛。Mathematische Annalen(DOI)
  • Brin 与 Page(Sergey Brin & Lawrence Page, 1998):The Anatomy of a Large-Scale Hypertextual Web Search Engine。给出 PageRank 的阻尼随机游走与幂迭代,本页的 就是它的矩阵形式。Computer Networks(DOI)
  • Levin 与 Peres(David A. Levin & Yuval Peres, 2017):Markov Chains and Mixing Times。系统给出混合时间的谱刻画,本页 的收敛界与「 越接近 1 越慢」的判断来自这套理论。AMS(DOI)

下一篇 → M10 数值线性代数

返回 M09 导览去练习场

随堂测 · 6 题

数值难度 2第 1 / 6 题
转移矩阵 的稳态分布中,状态 1 的概率是多少?保留三位小数。

源文件:09-概率与统计/05-马尔可夫链.md

输入关键词开始搜索