上一篇介绍的伯努利、高斯和冯·米塞斯分布,都把一次观测看成一个整体。实际数据内部常有可以利用的依赖关系:疾病影响多项检查指标,词语在句子中按顺序出现,传感器读数由看不见的设备状态产生。若直接为所有变量建立一张完整联合分布表,参数数量会随变量数迅速增长,有限样本很难覆盖所有组合。

结构化概率模型用局部关系组织联合分布。图中的节点对应随机变量,边和因子说明联合概率怎样分解;条件独立性则说明,在已知一组变量后,哪些变量不再提供额外信息。本文从这套表示出发,用朴素贝叶斯和马尔可夫毯说明静态图中的局部推断,并把同一种思想展开到序列和潜变量模型。

概率图模型

X1,,XDX_1,\ldots,X_D 都是二元变量。没有任何结构假设时,联合分布要为 2D2^D 种取值组合分配概率。扣除概率和为 1 的约束,仍有 2D12^D-1 个自由参数。D=30D=30 时,组合数已经超过十亿,即使每个变量本身只有两个取值,也无法靠逐项计数稳定估计。

概率的链式法则总能把联合分布写成

p(x1,,xD)=p(x1)i=2Dp(xix1,,xi1).p(x_1,\ldots,x_D) =p(x_1)\prod_{i=2}^{D}p(x_i\mid x_1,\ldots,x_{i-1}).

这项恒等式还没有减少参数,因为第 ii 个条件分布仍依赖前面的全部变量。结构假设的作用是缩小每个条件分布需要查看的范围。若认为 XiX_i 在给定一组父节点 pa(i)\operatorname{pa}(i) 后,与更早的其他变量条件独立,就可以写成

p(x1,,xD)=i=1Dp ⁣(xixpa(i)).p(x_1,\ldots,x_D) =\prod_{i=1}^{D}p\!\left(x_i\mid x_{\operatorname{pa}(i)}\right).

有向无环图(directed acyclic graph,DAG)把这种分解画出来:每个变量是一个节点,从父节点指向子节点的边对应一个局部条件分布。图必须无环,才能按拓扑顺序定义完整的联合分布。若二元变量组成一条链 X1X2XDX_1\to X_2\to\cdots\to X_D,每个位置都有自己的转移参数时,只需 1+2(D1)1+2(D-1) 个自由参数。若各位置共享同一个转移规律,参数还会进一步减少。

概率图模型还有两种常见表示。它们表达的局部结构相近,归一化方式和边的语义并不相同。

表示联合分布的形式适合表达的关系
贝叶斯网络ip(xixpa(i))\prod_i p(x_i\mid x_{\operatorname{pa}(i)})有方向的生成顺序、局部条件分布
马尔可夫随机场1ZCψC(xC)\frac{1}{Z}\prod_C\psi_C(x_C)对称的相互作用、空间邻接或一致性约束
因子图变量节点与因子节点组成二部图直接显示每个乘积因子涉及哪些变量

马尔可夫随机场(Markov random field,MRF)使用无向图。ψC\psi_C 是定义在图中各个团上的非负势函数,未必各自归一化;配分函数

Z=xCψC(xC)Z=\sum_{\boldsymbol{x}}\prod_C\psi_C(x_C)

负责让离散联合分布的概率和为 1。连续变量时把求和改为积分。对严格为正的分布,图上的全局马尔可夫性质与按团分解之间可以建立对应关系;允许零概率后,需要额外检查支持集带来的约束。

图结构首先是一种概率分解。单凭一条有向边,不能断定父节点的干预会导致子节点变化。只有结合明确的因果假设、数据生成过程和混杂条件,有向图才可以按因果图解释。多个方向不同的 DAG 还可能蕴含同一组条件独立关系,因此仅凭观测分布通常无法确定所有箭头方向。

条件独立性

随机变量 XXYY 在给定 ZZ 后条件独立,记作 XYZX\perp Y\mid Z。对所有有定义的条件概率,它满足

p(x,yz)=p(xz)p(yz).p(x,y\mid z)=p(x\mid z)p(y\mid z).

等价地,知道 Z=zZ=z 后,再知道 Y=yY=y 不会改变 XX 的条件分布:p(xy,z)=p(xz)p(x\mid y,z)=p(x\mid z)。条件独立依赖所给的条件集合。两个变量可以边缘相关、条件独立,也可以边缘独立、条件相关。

有向图中任意复杂的连接都可以从三种基本路径理解。

三组有向图路径:链结构 X 指向 Z 再指向 Y,共同原因结构 Z 分别指向 X 和 Y,碰撞点结构 X 与 Y 都指向 Z
链和共同原因路径会在给定中间节点 Z 后被阻断;碰撞点路径默认阻断,给定 Z 或 Z 的后代反而会使路径连通。作者绘制

在链 XZYX\to Z\to Y 中,XXYY 的信息通过 ZZ 传递。给定 ZZ 后,路径被阻断。在共同原因结构 XZYX\leftarrow Z\to Y 中,ZZ 同时影响两侧;给定 ZZ 同样会阻断路径。若不控制共同原因,仅从 XXYY 的相关性推断直接关系,容易把共同原因造成的关联算到两者之间。

碰撞点结构 XZYX\to Z\leftarrow Y 的规则相反。路径在没有给定 ZZ 时已经被阻断,XXYY 可以边缘独立。观察到共同结果 ZZ 后,两侧会互相提供信息。若已知患者出现某种症状,排除一个可能病因会提高另一个病因的后验概率,这种现象称为解释消除(explaining away)。给定碰撞点的后代也会打开这条路径,因为后代携带了关于碰撞点的信息。

d 分离(d-separation)把三种规则推广到整张 DAG。先忽略箭头方向,枚举变量集合 AABB 之间的路径。给定条件集合 CC 后,一条路径在以下任一情况下被阻断:

  1. 路径上有一个非碰撞点属于 CC
  2. 路径上有一个碰撞点,并且该碰撞点及其所有后代都不属于 CC

AABB 之间的每条路径都被阻断,就称 AABBCC d 分离,记作 AGBCA\perp_G B\mid C。对任何按该 DAG 分解的分布,图上的 d 分离都蕴含对应的概率条件独立。这条结论可以直接用于删去无关变量和设计局部推断算法。

反方向需要更谨慎。某组具体参数可能恰好让两条影响相互抵消,使分布出现图结构没有强制要求的额外独立性。只有加入忠实性(faithfulness)等条件,才能把观测到的每一项条件独立都解释为图上的 d 分离。碰撞点还说明,增加条件变量未必会让变量更独立;控制了错误的变量,原本阻断的路径可能被打开。

朴素贝叶斯

朴素贝叶斯分类器把类别 YY 作为所有特征 X1,,XDX_1,\ldots,X_D 的共同父节点,并假设特征在给定类别后相互独立:

p(y,x)=p(y)j=1Dp(xjy).p(y,\boldsymbol{x}) =p(y)\prod_{j=1}^{D}p(x_j\mid y).

这里的“独立”带有条件。两项症状可以在总体人群中相关,只要在每一种疾病类别内部近似独立,模型的分解就仍可能合适。分类时类别尚未观测,需要比较后验概率。所有类别共享的证据项 p(x)p(\boldsymbol{x}) 可以省去,因此

y^=argmaxk[logp(Y=k)+j=1Dlogp(xjY=k)].\hat y =\arg\max_k \left[ \log p(Y=k) +\sum_{j=1}^{D}\log p(x_j\mid Y=k) \right].

求和形式避免了大量小概率相乘造成的数值下溢,也显示了每项特征怎样累加到类别分数中。先验 p(Y=k)p(Y=k) 保留了类别的基准比例,不能在类别不平衡时随意删除。

文本分类常使用多项式朴素贝叶斯。设 xjx_j 是词表中第 jj 个词在文档里的出现次数,文档总词数为 NN,类别 kk 下的词概率为 θkj\theta_{kj}。类条件分布为

p(xY=k)=N!jxj!j=1Dθkjxj.p(\boldsymbol{x}\mid Y=k) =\frac{N!}{\prod_j x_j!} \prod_{j=1}^{D}\theta_{kj}^{x_j}.

组合系数对所有类别相同,分类时可以约去,判别分数中只剩 jxjlogθkj\sum_j x_j\log\theta_{kj}。若训练集中某个词从未在类别 kk 出现,未经修正的极大似然估计会给它零概率,使整篇文档的类条件概率变为零。加性平滑用

θ^kj=Nkj+αv=1DNkv+αD,α>0,\hat\theta_{kj} =\frac{N_{kj}+\alpha} {\sum_{v=1}^{D}N_{kv}+\alpha D}, \qquad \alpha>0,

避免这个结果。NkjN_{kj} 是类别 kk 的训练文档中第 jj 个词的总计数。若按贝叶斯后验均值解释,这相当于为词概率选择每个分量参数都为 α\alpha 的对称 Dirichlet 先验。α=1\alpha=1 对应常说的 Laplace 平滑;平滑强度仍应结合数据规模和验证结果选择。

连续特征可以为每个类别和特征分别拟合一维高斯分布,这得到高斯朴素贝叶斯。它等价于在每个类别内使用对角协方差矩阵,因此无法表示给定类别后的特征相关性。多项式、伯努利和高斯版本改变的是局部条件分布,类别指向各特征的图结构没有变化。

朴素贝叶斯的主要代价来自重复计算相关证据。邮件中的“machine”和“learning”、医学检查中的两个同源指标,常在给定类别后仍高度相关;模型可能把同一条信息累加两次,得到过于极端的后验概率。分类边界仍可能有用,但概率校准和不确定性解释会受影响。是否采用这项假设,应同时检查分类误差、概率校准以及下游决策对概率的要求。

马尔可夫毯

若只关心图中的一个节点,没有必要把其他所有变量都放进条件集合。贝叶斯网络中,节点 XX 的马尔可夫毯(Markov blanket)由三部分组成:XX 的父节点、XX 的子节点,以及这些子节点的其他父节点。记父节点集和子节点集分别为 Pa(X)\operatorname{Pa}(X)Ch(X)\operatorname{Ch}(X),则

MB(X)=Pa(X)Ch(X)(YCh(X)Pa(Y)){X}.\operatorname{MB}(X) =\operatorname{Pa}(X) \cup\operatorname{Ch}(X) \cup\left( \bigcup_{Y\in\operatorname{Ch}(X)}\operatorname{Pa}(Y) \right)\setminus\{X\}.
以节点 X 为中心的贝叶斯网络,X 的两个父节点、两个子节点和子节点的其他父节点使用不同颜色标出,较远的祖先与孙节点显示为灰色
给定父节点、子节点和子节点的其他父节点后,X 与图中其余节点条件独立。灰色的远端祖先与孙节点不在 X 的马尔可夫毯内。作者绘制

给定这张毯子后,XX 与网络中的其余节点条件独立:

XV(MB(X){X})MB(X).X\perp V\setminus\bigl(\operatorname{MB}(X)\cup\{X\}\bigr) \mid\operatorname{MB}(X).

父节点控制进入 XX 的直接路径,子节点控制从 XX 离开的路径。子节点的其他父节点必须保留,因为一旦给定子节点,原本作为碰撞点的路径会被打开;共同指向同一子节点的其他父节点会影响 XX 的后验。这正是 d 分离规则在局部邻域中的结果。

马尔可夫毯可用于局部预测、Gibbs 采样和特征筛选。若目标变量是 YY,知道真实的 MB(Y)\operatorname{MB}(Y) 后,其余变量不会进一步改变 p(YMB(Y))p(Y\mid\operatorname{MB}(Y))。从有限观测数据估计马尔可夫毯仍依赖模型族、样本量和忠实性等条件;找到一组预测充分的特征,也不能自动得到因果关系。无向图中的情况更简单,一个节点的马尔可夫毯就是与它直接相邻的节点集合。

序列模型

对长度为 TT 的序列,链式法则给出

p(x1:T)=p(x1)t=2Tp(xtx1:t1).p(x_{1:T}) =p(x_1)\prod_{t=2}^{T}p(x_t\mid x_{1:t-1}).

这是任何序列分布都满足的分解,没有规定历史信息要保留多久。自回归模型可以用固定窗口、循环状态或注意力机制参数化右侧的条件分布。不同模型的区别在于,它们怎样概括历史,以及训练和生成时怎样计算这些条件概率。

一阶马尔可夫假设把整个历史压缩为最近一个状态:

p(xtx1:t1)=p(xtxt1).p(x_t\mid x_{1:t-1})=p(x_t\mid x_{t-1}).

联合分布随之变成

p(x1:T)=p(x1)t=2Tp(xtxt1).p(x_{1:T}) =p(x_1)\prod_{t=2}^{T}p(x_t\mid x_{t-1}).

图上是一条有向链。给定当前状态 XtX_t 后,过去 X1:t1X_{1:t-1} 与未来 Xt+1:TX_{t+1:T} d 分离。若状态取有限的 KK 个值,可以用转移矩阵 AA 表示一步转移,其中

Aij=p(Xt=jXt1=i).A_{ij}=p(X_t=j\mid X_{t-1}=i).

一阶性只规定依赖最近一步。若还假设 AA 不随 tt 改变,才得到时间齐次马尔可夫链。设备老化、季节变化或策略更新都可能破坏时间齐次性;需要时可以让转移参数随时间或外部变量改变。

马尔可夫阶数也是建模选择。把最近 mm 个观测组合成一个扩展状态,可以把 mm 阶过程改写成一阶过程;离散观测的扩展状态数会随 mm 指数增长。局部依赖换来了可计算性,也限制了模型能保留的长期信息。

潜变量

潜变量(latent variable)是模型引入但没有直接观测的随机变量。最简单的混合模型先抽取潜在类别 ZZ,再根据 ZZ 生成观测 XX

p(x)=zp(z)p(xz).p(x)=\sum_z p(z)p(x\mid z).

观测数据的概率需要把所有可能的潜在取值边缘化。连续潜变量对应积分。给定观测后,推断目标则变成后验 p(zx)p(z\mid x)。这两个方向分别回答“模型给观测分配了多少概率”和“哪些潜在状态可以解释观测”。

隐马尔可夫模型(hidden Markov model,HMM)把混合模型的潜在类别连成马尔可夫链。ZtZ_t 表示时刻 tt 的隐藏状态,XtX_t 是该状态产生的观测。

隐马尔可夫模型展开图,上方五个隐藏状态 Z1 到 Z5 依次相连,每个隐藏状态向下指向同一时刻的观测 X1 到 X5
隐藏状态形成一阶马尔可夫链,每个观测只直接依赖同一时刻的状态。重复的局部结构使动态规划可以复用相邻时刻的计算结果。作者绘制

HMM 的联合分布为

p(z1:T,x1:T)=p(z1)p(x1z1)t=2Tp(ztzt1)p(xtzt).p(z_{1:T},x_{1:T}) =p(z_1)p(x_1\mid z_1) \prod_{t=2}^{T} p(z_t\mid z_{t-1})p(x_t\mid z_t).

它包含两项核心假设:隐藏状态满足一阶马尔可夫性,观测 XtX_t 在给定当前状态 ZtZ_t 后,与其他状态和观测条件独立。发射分布 p(xtzt)p(x_t\mid z_t) 可以是类别分布、高斯分布或适合观测空间的其他模型。

隐藏状态链是一阶的,边缘观测序列通常不满足一阶马尔可夫性。过去的多个观测会共同改变当前隐藏状态的后验,而这个后验又影响未来观测。直接用 p(xtxt1)p(x_t\mid x_{t-1}) 代替 HMM,会丢掉由状态不确定性携带的历史信息。

潜变量提供了紧凑的中间表示,也带来可辨识性问题。交换两个隐藏状态的编号,不会改变 HMM 对观测序列的分布;不同参数还可能在有限数据上给出近似相同的观测概率。状态编号本身没有语义,只有结合发射模式、外部标注和领域知识,才能把某个状态解释为“故障”“晴天”或某种语言成分。

动态规划

若 HMM 有 KK 个隐藏状态,长度为 TT 的序列共有 KTK^T 条隐藏路径。逐条求和无法处理长序列。前向算法把到达同一当前状态的所有历史合并。记 HMM 的转移概率为 Ajk=p(Zt=kZt1=j)A_{jk}=p(Z_t=k\mid Z_{t-1}=j),并定义

αt(k)=p(x1:t,Zt=k).\alpha_t(k)=p(x_{1:t},Z_t=k).

初始值和递推式为

α1(k)=p(Z1=k)p(x1Z1=k),\alpha_1(k)=p(Z_1=k)p(x_1\mid Z_1=k), αt(k)=p(xtZt=k)j=1Kαt1(j)Ajk.\alpha_t(k) =p(x_t\mid Z_t=k) \sum_{j=1}^{K}\alpha_{t-1}(j)A_{jk}.

最后对终点状态求和即可得到观测序列的边际似然:

p(x1:T)=k=1KαT(k).p(x_{1:T})=\sum_{k=1}^{K}\alpha_T(k).

在稠密转移矩阵下,计算复杂度为 O(TK2)O(TK^2),远小于枚举路径的 O(KT)O(K^T)。这项加速来自图上的条件独立:给定 ZtZ_t 后,更早的路径只需通过到达各状态的累计概率影响后续。实际实现通常在每一步缩放 αt\alpha_t,或在对数域使用 log-sum-exp,避免长序列概率连续相乘而下溢。

同一张图支持几种不同的推断问题:

任务目标典型用途
滤波p(Ztx1:t)p(Z_t\mid x_{1:t})在线估计当前状态
预测p(Zt+hx1:t)p(Z_{t+h}\mid x_{1:t})根据当前证据预测未来
平滑p(Ztx1:T)p(Z_t\mid x_{1:T})用后续观测修正过去状态
解码argmaxz1:Tp(z1:Tx1:T)\arg\max_{z_{1:T}}p(z_{1:T}\mid x_{1:T})寻找整条最可能状态路径

前向后向算法把前向消息与从序列末端传回的后向消息结合,用于平滑和计算状态转移的后验期望。Viterbi 算法把前向递推中的求和换成最大值并保存回溯指针,用于求整条路径的最大后验解。逐时刻选择边缘后验最大的状态,未必组成联合概率最大的合法路径,这两个目标不能混用。

期望最大化与 Baum–Welch 算法

若训练数据没有隐藏状态标签,HMM 参数不能靠直接统计已知状态之间的转移次数得到。对参数 θ\theta,边际对数似然为

(θ)=n=1Nlogz1:Tnpθ(x1:Tn(n),z1:Tn).\ell(\theta) =\sum_{n=1}^{N} \log\sum_{z_{1:T_n}} p_\theta(x_{1:T_n}^{(n)},z_{1:T_n}).

对数外的求和使直接优化比完整数据情形更困难。期望最大化(expectation-maximization,EM)算法交替处理两件事。E 步用当前参数计算潜变量后验,并据此得到初始状态、状态占用和状态转移的期望计数;M 步把这些期望计数当作加权充分统计量,重新估计转移概率与发射分布。HMM 上的这一过程通常称为 Baum-Welch 算法,E 步所需的后验量由前向后向算法计算。

标准的精确 EM 每次迭代都不会降低观测数据的似然。即使算法收敛,终点也可能是局部极大值或鞍点,结果会受到初始化、状态数和模型设定影响。增加隐藏状态通常会提高训练似然,也会增加过拟合和状态难以解释的风险。应使用验证数据、信息准则或带先验的模型比较选择复杂度,并检查模型生成的序列和状态持续时间是否符合任务。

时间齐次 HMM 中,状态持续时间由固定自转移概率决定,因而服从几何分布。真实状态若有明显的最短时长或非几何持续时间,可以使用显式时长的隐半马尔可夫模型。若观测依赖更长历史、转移随输入变化,或任务只关心给定输入后的标签序列,还可以采用自回归模型、条件随机场、状态空间模型或神经序列模型。它们延续了局部因子和消息传递的部分思想,但条件独立假设与训练目标并不相同。

结构化概率模型

概率图模型通过分解联合分布,把高维组合问题改写成一组局部条件分布或势函数。d 分离给出读取有向图条件独立性的规则,也提醒我们碰撞点会让“控制更多变量”产生反效果。朴素贝叶斯用强条件独立假设换取简单稳定的局部估计;马尔可夫毯进一步指出,推断单个节点时真正需要保留的是哪一圈变量。

同样的分解进入序列后,马尔可夫假设把历史压缩为有限状态,HMM 再用潜变量表示无法直接观测的动态过程。前向后向和 Viterbi 算法能够高效计算,原因在于图结构允许复用局部消息。结构选得不合适时,参数更少也无法弥补错误的独立性、持续时间或发射分布假设。建立模型时应同时回答三个问题:图中哪些路径应当存在,哪些变量可以在给定条件后忽略,以及任务需要边缘概率、单点后验还是整条最优路径。

参考文献

  1. J. Pearl. Probabilistic Reasoning in Intelligent Systems. Morgan Kaufmann, 1988. DOI: 10.1016/C2009-0-27609-4
  2. D. Geiger, T. Verma, and J. Pearl. Identifying Independence in Bayesian Networks. Networks, 1990. DOI: 10.1002/net.3230200504
  3. M. J. Wainwright and M. I. Jordan. Graphical Models, Exponential Families, and Variational Inference. Foundations and Trends in Machine Learning, 2008. DOI: 10.1561/2200000001
  4. P. Domingos and M. Pazzani. On the Optimality of the Simple Bayesian Classifier under Zero-One Loss. Machine Learning, 1997. DOI: 10.1023/A:1007413511361
  5. L. R. Rabiner. A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. Proceedings of the IEEE, 1989. DOI: 10.1109/5.18626
  6. L. E. Baum, T. Petrie, G. Soules, and N. Weiss. A Maximization Technique Occurring in the Statistical Analysis of Probabilistic Functions of Markov Chains. The Annals of Mathematical Statistics, 1970. DOI: 10.1214/aoms/1177697196
  7. A. P. Dempster, N. M. Laird, and D. B. Rubin. Maximum Likelihood from Incomplete Data via the EM Algorithm. Journal of the Royal Statistical Society: Series B, 1977. DOI: 10.1111/j.2517-6161.1977.tb01600.x