有任何的书写错误、排版错误、概念错误等,希望大家包含指正。
部分推导和定义相关的佐证资料比较少,供参考。讨论的过程中我会加入自己的理解,难免存在错误,欢迎大家讨论。
在阅读本篇之前建议先学习:
隐马尔可夫模型系列
最大熵马尔可夫模型
由于字数限制,分成五篇博客。
【自然语言处理】条件随机场【Ⅰ】马尔可夫随机场
【自然语言处理】条件随机场【Ⅱ】条件随机场概述
【自然语言处理】条件随机场【Ⅲ】条件随机场估计问题
【自然语言处理】条件随机场【Ⅳ】条件随机场学习问题
【自然语言处理】条件随机场【Ⅴ】条件随机场解码问题
最大熵马尔可夫模型(即条件马尔可夫模型)存在一个严重的问题,标注偏置(label bias)问题。观察图 3 3 3,局部转移概率表明,状态 1 1 1 倾向于转移到状态 2 2 2,状态 2 2 2 倾向于转移到状态 2 2 2 本身。但是根据维特比算法计算得到的最大概率路径为 1 → 1 → 1 → 1 1\to 1\to 1\to 1 1→1→1→1,状态 1 1 1 并没有转移到状态 2 2 2。详细来说,时刻 t = 1 t=1 t=1 处于状态 1 1 1 倾向于转移到状态 2 2 2,时刻 t = 2 t=2 t=2 处于状态 2 2 2 倾向于转移到状态 2 2 2 本身,时刻 t = 3 t=3 t=3 也是。所以路径 1 → 2 → 2 → 2 1\to 2\to2\to2 1→2→2→2 更符合我们上面对于图中转移倾向性的理解,但是由于从状态 2 2 2 转移出去可能的状态包括 1 1 1、 2 2 2、 3 3 3、 4 4 4 和 5 5 5,概率在可能的状态上分散了,而状态 1 1 1 转移出去的可能状态仅仅为状态 1 1 1 和 2 2 2,概率更加集中。由于局部归一化的影响,隐状态会倾向于转移到那些后续状态可能更少的状态上,以提高整体的后验概率。这就是标注偏置问题。为了处理此问题,提出了条件随机场。
图 3 标注偏置示意图
条件随机场(Conditional Random Field,CRF)是给定随机变量 X X X 条件下,随机变量 Y Y Y 的马尔可夫随机场,属于判别式无向图模型。
一般条件随机场的定义。设 X X X 与 Y Y Y 是随机变量, P ( Y ∣ X ) P(Y\mid X) P(Y∣X) 是在给定 X X X 的条件下 Y Y Y 的条件概率分布。若随机变量 Y Y Y 构成一个由无向图 G = ( V , E ) G=(V,E) G=(V,E) 表示的马尔可夫随机场,即
P ( Y v ∣ X , Y w , w ≠ v ) = P ( Y v ∣ X , Y w , w ∼ v ) P(Y_v\mid X,Y_w,w\ne v) = P(Y_v\mid X, Y_w,w\sim v) P(Yv∣X,Yw,w=v)=P(Yv∣X,Yw,w∼v)
对任意结点 v v v 成立,则称条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X) 为条件随机场。式中 w ∼ v w \sim v w∼v 表示在图 G = ( V , E ) G= (V,E) G=(V,E) 中与结点 v v v 有边连接的所有结点 w w w; w ≠ v w≠v w=v 表示结点 v v v 以外的所有结点; Y v Y_v Yv, Y u Y_u Yu 与 Y w Y_w Yw 为结点 v v v, u u u 与 w w w 对应的随机变量。
理论上来说,图 G G G 可以具有任意结构,只要能表示标记变量之间的条件独立性关系即可,但在现实应用中,尤其是处理序列标注问题时,常用图 4 4 4 所示的链式结构,即线性链条件随机场(linear chain conditional random field);有时也会进一步假设 X X X 和 Y Y Y 有相同的图结构,如图 5 5 5 所示。我们主要考虑无向图为如图 4 4 4 和图 5 5 5 所示的线性链的情况,即
G = ( V = { 1 , 2 , … , T } , E = { ( i , i + 1 ) } ) , i = 1 , 2 , … , T − 1 G = (V = \{1,2,\dots,T\}, E = \{(i,i+1)\}), \space\space\space\space i=1,2,\dots, T-1 G=(V={1,2,…,T},E={(i,i+1)}), i=1,2,…,T−1
图 4 线性链条件随机场
图 5 X 和 Y 有相同的图结构的线性链条件随机场
在此情况下, X = ( X 1 , X 2 , … , X T ) X=(X_1,X_2,…,X_T) X=(X1,X2,…,XT), Y = ( Y 1 , Y 2 , … , Y T ) Y =(Y_1, Y_2,…,Y_T) Y=(Y1,Y2,…,YT),最大团是相邻两个结点的集合。线性链条件随机场有下面的定义。
设 X X X 和 Y Y Y 均为线性链表示的随机变量序列,若在给定随机变量序列 X X X 的条件下,随机变量序列 Y Y Y 的条件概率分布 P ( Y ∣ X ) P(Y\mid X) P(Y∣X) 构成条件随机场,即满足马尔可夫性
P ( Y i ∣ X , Y 1 , … , Y i − 1 , Y i + 1 , … , Y T ) = P ( Y i ∣ X , Y i − 1 , Y i + 1 ) i = 1 , 2 , … , n ( 在 i = 1 和 n 时只考虑单边 ) P(Y_i\mid X,Y_1,\dots, Y_{i-1},Y_{i+1},\dots, Y_T) = P(Y_i\mid X,Y_{i-1},Y_{i+1}) \\ i = 1,2,\dots, n\space\space (在\space i =1\space 和\space n \space 时只考虑单边) P(Yi∣X,Y1,…,Yi−1,Yi+1,…,YT)=P(Yi∣X,Yi−1,Yi+1)i=1,2,…,n (在 i=1 和 n 时只考虑单边)
则称 P ( Y ∣ X ) P(Y\mid X) P(Y∣X) 为线性链条件随机场。在标注问题中, X X X 表示输入观测序列, Y Y Y 表示对应的输出标记序列或状态序列。
注意,我们下面讨论的均为线性链条件随机场,是一种特殊的、简化的条件随机场。
与马尔可夫随机场定义联合概率的方式类似,条件随机场使用势函数和图结构上的团来定义条件概率 P ( Y ∣ X ) P(Y\mid X) P(Y∣X)。根据 Hammersley-Clifford 定理,可以给出线性条件随机场 P ( Y ∣ X ) P(Y\mid X) P(Y∣X) 的因子分解式,各因子是定义在相邻两个结点(最大团)上的势函数。
设 P ( Y ∣ X ) P(Y\mid X) P(Y∣X) 为线性链条件随机场,则在随机变量 X X X 取值为 x x x 的条件下,随机变量 Y Y Y 取值为 y y y 的条件概率具有如下形式:
P ( y ∣ x ) = 1 Z ( x ) exp ( ∑ t , i λ i t i ( y t − 1 , y t , x , t ) + ∑ t , j μ j s j ( y t , x , t ) ) (6) P(y\mid x) = \frac{1}{Z(x)}\exp\left( \sum_{t, i}\lambda_i t_i(y_{t-1},y_t, x, t)+\sum_{t, j}\mu_j s_j(y_t, x, t) \right) \tag{6} P(y∣x)=Z(x)1exp(t,i∑λiti(yt−1,yt,x,t)+t,j∑μjsj(yt,x,t))(6)
其中,
Z ( x ) = ∑ y exp ( ∑ t , i λ i t i ( y t − 1 , y t , x , t ) + ∑ t , j μ j s j ( y t , x , t ) ) (7) Z(x) =\sum_y\exp\left( \sum_{t, i}\lambda_i t_i(y_{t-1},y_t, x, t)+\sum_{t, j}\mu_j s_j(y_t, x, t) \right) \tag{7} Z(x)=y∑exp(t,i∑λiti(yt−1,yt,x,t)+t,j∑μjsj(yt,x,t))(7)
势函数对最大团的描述包括两个方面,单个标记变量 { y i } \{y_i\} {yi} 以及相邻的标记变量 { y i − 1 , y i } \{y_{i-1},y_i\} {yi−1,yi}。 t i t_i ti 是定义在边上的特征函数,称为转移特征函数(transition feature function),依赖于当前和前一个时刻,用于刻画相邻状态变量之间的相关关系以及观测序列对它们的影响; s j s_j sj 是定义在结点上的特征函数,称为状态特征函数(status feature function),依赖于当前时刻,用于刻画观测序列对状态变量的影响。 t i t_i ti 和 t j t_j tj 都依赖于时刻,是局部特征函数。 λ i \lambda_i λi 和 μ j \mu_j μj 为参数, Z ( x ) Z(x) Z(x) 为规范化因子。条件随机场完全由特征函数 t i t_i ti, s j s_j sj 和对应的权重 λ i \lambda_i λi, μ j \mu_j μj 确定。
注意区分下标 t t t 和特征函数 t i t_i ti 。
看一个简单的例子。设有一标注问题:输入观测序列为 X = ( X 1 , X 2 , X 3 ) X=(X_1,X_2,X_3) X=(X1,X2,X3),输出状态序列为 Y = ( Y 1 , Y 2 , Y 3 ) Y=(Y_1,Y_2,Y_3) Y=(Y1,Y2,Y3), Y 1 Y_1 Y1, Y 2 Y_2 Y2, Y 3 Y_3 Y3 取值于 { 1 , 2 } \{1,2\} {1,2}。只表明特征值为 1 1 1 的条件,取值为 0 0 0 的条件忽略。比如
t 1 ( y 1 = 1 , y 2 = 2 , x , 2 ) , λ 1 = 1 t_1(y_1=1,y_2=2,x, 2),\space\space\space\space \lambda_1=1 t1(y1=1,y2=2,x,2), λ1=1
表明当 y 1 = 1 y_1=1 y1=1, y 2 = 2 y_2=2 y2=2 时,满足特征函数 t 1 t_1 t1,即 t 1 ( y 1 = 1 , y 2 = 2 , x , 2 ) = 1 t_1(y_1=1,y_2=2,x, 2)=1 t1(y1=1,y2=2,x,2)=1,对应的权重 λ 1 = 1 \lambda_1=1 λ1=1。类似地写出全部取值为 1 1 1 的特征函数及其对应的权重:
t 1 ( y 1 = 1 , y 2 = 2 , x , 2 ) , λ 1 = 1 t 2 ( y 2 = 1 , y 3 = 2 , x , 3 ) , λ 2 = 1 t 3 ( y 1 = 1 , y 2 = 1 , x , 2 ) , λ 3 = 0.6 t 4 ( y 2 = 2 , y 3 = 1 , x , 3 ) , λ 4 = 1 t 5 ( y 1 = 2 , y 2 = 1 , x , 2 ) , λ 5 = 1 t 6 ( y 2 = 2 , y 3 = 2 , x , 3 ) , λ 6 = 0.2 s 1 ( y 1 = 1 , x , 1 ) , μ 1 = 1 s 2 ( y 1 = 2 , x , 1 ) , μ 2 = 0.5 s 3 ( y 2 = 2 , x , 2 ) , μ 3 = 0.5 s 4 ( y 2 = 1 , x , 2 ) , μ 4 = 0.8 s 5 ( y 3 = 1 , x , 3 ) , μ 5 = 0.8 s 6 ( y 3 = 2 , x , 3 ) , μ 6 = 0.5 \begin{array}{l} t_1(y_1=1,y_2=2,x, 2),& \lambda_1=1 \\ t_2(y_2=1,y_3=2,x, 3),& \lambda_2=1 \\ t_3(y_1=1,y_2=1,x, 2),& \lambda_3=0.6 \\ t_4(y_2=2,y_3=1,x, 3),& \lambda_4=1 \\ t_5(y_1=2,y_2=1,x, 2),& \lambda_5=1 \\ t_6(y_2=2,y_3=2,x, 3),& \lambda_6=0.2 \\\\ s_1(y_1=1,x,1), & \mu_1=1 \\ s_2(y_1=2,x,1), & \mu_2=0.5 \\ s_3(y_2=2,x,2), & \mu_3=0.5 \\ s_4(y_2=1,x,2), & \mu_4=0.8 \\ s_5(y_3=1,x,3), & \mu_5=0.8 \\ s_6(y_3=2,x,3), & \mu_6=0.5 \\ \end{array} t1(y1=1,y2=2,x,2),t2(y2=1,y3=2,x,3),t3(y1=1,y2=1,x,2),t4(y2=2,y3=1,x,3),t5(y1=2,y2=1,x,2),t6(y2=2,y3=2,x,3),s1(y1=1,x,1),s2(y1=2,x,1),s3(y2=2,x,2),s4(y2=1,x,2),s5(y3=1,x,3),s6(y3=2,x,3),λ1=1λ2=1λ3=0.6λ4=1λ5=1λ6=0.2μ1=1μ2=0.5μ3=0.5μ4=0.8μ5=0.8μ6=0.5
对给定的观测序列 x x x,求状态序列为 y = ( y 1 , y 2 , y 3 ) = ( 1 , 2 , 2 ) y=(y_1,y_2,y_3)=(1,2,2) y=(y1,y2,y3)=(1,2,2) 的非规范化条件概率(即没有除以规范化因子的条件概率)。由式 ( 6 ) (6) (6) 可得,线性链条件随机场模型为
P ( y ∣ x ) ∝ exp [ ∑ i = 1 6 λ i ∑ t = 2 3 t i ( y t − 1 , y t , x , t ) + ∑ j = 1 6 μ j ∑ t = 1 3 s j ( y t , x , t ) ] P(y\mid x)\propto \exp\left[ \sum_{i=1}^6 \lambda_i \sum_{t=2}^3 t_i(y_{t-1},y_t, x, t) + \sum_{j=1}^6\mu_j \sum_{t=1}^3 s_j(y_t, x, t) \right] P(y∣x)∝exp[i=1∑6λit=2∑3ti(yt−1,yt,x,t)+j=1∑6μjt=1∑3sj(yt,x,t)]
对给定的观测序列 x x x,状态序列 y = ( 1 , 2 , 2 ) y = (1,2,2) y=(1,2,2) 的非规范化条件概率为
P ( y 1 = 1 , y 2 = 2 , y 3 = 2 ∣ x ) ∝ exp ( λ 1 + λ 6 + μ 1 + μ 2 + μ 3 ) = exp ( 3.2 ) P(y_1=1, y_2=2,y_3=2\mid x) \propto \exp(\lambda_1 + \lambda_6 + \mu_1 + \mu_2 + \mu_3) = \exp(3.2) P(y1=1,y2=2,y3=2∣x)∝exp(λ1+λ6+μ1+μ2+μ3)=exp(3.2)
条件随机场还可以由向量表示,这使得条件随机场的形式更加简洁。注意到条件随机场式 ( 6 ) (6) (6) 中同一特征在各个时刻都有定义,可以对同一个特征在各个时刻求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式。
为简便起见,首先将转移特征函数和状态特征函数及其权值用统一的符号表示。设有 K 1 K_1 K1 个转移特征函数, K 2 K_2 K2 个状态特征函数, K = K 1 + K 2 K = K_1+K_2 K=K1+K2,记
f k ( y t − 1 , y t , x , t ) = { t i ( y t − 1 , y t , x , t ) , k = i ; i = 1 , 2 , … , K 1 s j ( y t , x , t ) , k = K 1 + j ; j = 1 , 2 , … , K 2 f_k(y_{t-1},y_t,x,t) = \left\{\begin{array}{l} t_i(y_{t-1},y_t,x,t),& k=i;i = 1,2, \dots, K_1 \\ s_j(y_t, x, t),&k = K_1+j;j = 1,2,\dots, K_2 \end{array}\right. fk(yt−1,yt,x,t)={ti(yt−1,yt,x,t),sj(yt,x,t),k=i;i=1,2,…,K1k=K1+j;j=1,2,…,K2
对转移与状态特征在各个时刻 t t t 求和,记作
f k ( y , x ) = ∑ t = 1 T f k ( y t − 1 , y t , x , t ) , k = 1 , 2 , … , K f_k(y, x) = \sum_{t=1}^T f_k(y_{t-1},y_t, x, t), \space\space\space\space k=1,2, \dots, K fk(y,x)=t=1∑Tfk(yt−1,yt,x,t), k=1,2,…,K
用 w k w_k wk 表示特征 f k ( y , x ) f_k(y, x) fk(y,x) 的权重,即
w k = { λ i , k = i ; i = 1 , 2 , … , K 1 μ j , k = K 1 + j ; j = 1 , 2 , … , K 2 w_k = \left\{\begin{array}{l} \lambda_i, & k=i;i = 1,2, \dots, K_1 \\ \mu_j, & k=K_1+j ; j = 1, 2, \dots, K_2 \end{array}\right. wk={λi,μj,k=i;i=1,2,…,K1k=K1+j;j=1,2,…,K2
因此,条件随机场式 ( 6 ) (6) (6) 和式 ( 7 ) (7) (7) 可以表示为
P ( y ∣ x ) = 1 Z ( x ) exp ∑ k = 1 K w k f k ( y , x ) Z ( x ) = ∑ y exp ∑ k = 1 K w k f k ( y , x ) P(y\mid x) = \frac{1}{Z(x)} \exp \sum_{k=1}^K w_k f_k(y, x) \\ Z(x) = \sum_y \exp\sum_{k=1}^K w_k f_k(y, x) P(y∣x)=Z(x)1expk=1∑Kwkfk(y,x)Z(x)=y∑expk=1∑Kwkfk(y,x)
若以 w w w 表示权重向量,即
w = ( w 1 , w 2 , … , w K ) T w = (w_1, w_2, \dots, w_K)^T \\ w=(w1,w2,…,wK)T
以 F ( y , x ) F(y, x) F(y,x) 表示全局特征向量,即
F ( y , x ) = ( f 1 ( y , x ) , f 2 ( y , x ) , … , f K ( y , x ) ) T F(y, x) = \left( f_1(y, x), f_2(y, x), \dots, f_K(y, x) \right)^T F(y,x)=(f1(y,x),f2(y,x),…,fK(y,x))T
则条件随机场可以写成向量 w w w 与 F ( y , x ) F(y, x) F(y,x) 的内积形式:
P w ( y ∣ x ) = exp ( w ⋅ F ( y , x ) ) Z w ( x ) P_w(y\mid x) = \frac{\exp\left(w · F(y,x) \right )}{Z_w(x)} Pw(y∣x)=Zw(x)exp(w⋅F(y,x))
其中,
Z w ( x ) = ∑ y exp ( w ⋅ F ( y , x ) ) Z_w(x) = \sum_y \exp \left(w · F(y, x) \right) Zw(x)=y∑exp(w⋅F(y,x))
可以看出线性链条件随机场是对数线性模型(log linear model)。
条件随机场还可以由矩阵表示。假设可能的状态集合 Q = { q 1 , q 2 , … , q N } Q=\{q_1, q_2, \dots, q_N\} Q={q1,q2,…,qN}。对每个状态序列引进特殊的起点和终点状态标记 y 0 = q s t a r t y_0 = q_{\rm start} y0=qstart 和 y T + 1 = q s t o p y_{T+1} = q_{\rm stop} yT+1=qstop,这时状态序列的概率 P w ( y ∣ x ) P_w(y\mid x) Pw(y∣x) 可以通过矩阵形式表示并有效计算。
对观测序列 x x x 的每一个时刻 t = 1 , 2 , … , T + 1 t=1,2,\dots, T+1 t=1,2,…,T+1,由于 y t − 1 y_{t-1} yt−1 和 y t y_t yt 均可能取到 N N N 种状态取值中的任意一种情况,因此可以定义一个 N N N 阶矩阵随机变量
M t = [ M t ( y t − 1 , y t ) ] N × N M_t = [M_t(y_{t-1}, y_t)]_{N\times N} Mt=[Mt(yt−1,yt)]N×N
矩阵随机变量的元素为
M t ( y t − 1 , y t ) = exp ( W t ( y t − 1 , y t ) ) W t ( y t − 1 , y t ) = ∑ k = 1 K w k f k ( y t − 1 , y t , x , t ) M_t(y_{t-1}, y_t) = \exp \left( W_t(y_{t-1}, y_t) \right) \\\\ W_t(y_{t-1}, y_t) = \sum_{k=1}^K w_k f_k (y_{t-1}, y_t, x, t) Mt(yt−1,yt)=exp(Wt(yt−1,yt))Wt(yt−1,yt)=k=1∑Kwkfk(yt−1,yt,x,t)
其中, y t − 1 y_{t-1} yt−1 和 y t y_t yt 是状态随机变量 Y t − 1 Y_{t-1} Yt−1 和 Y t Y_t Yt 的取值。
注意区别 y i y_i yi 和 q i q_i qi 在理解角度和粒度上的不同。
这样,给定观测序列 x x x,相应状态序列 y y y 的非规范化概率可以通过从该序列 T + 1 T+1 T+1 个矩阵中各挑选一个合适元素并相乘表示,即 ∏ t = 1 T + 1 M t ( y t − 1 , y t ) \prod\limits_{t=1}^{T+1} M_t(y_{t-1},y_t) t=1∏T+1Mt(yt−1,yt)。于是,条件概率 P w ( y ∣ x ) P_w(y\mid x) Pw(y∣x) 为
P w ( y ∣ x ) = 1 Z w ( x ) ∏ t = 1 T + 1 M t ( y t − 1 , y t ) P_w(y\mid x) = \frac{1}{Z_w(x)} \prod\limits_{t=1}^{T+1} M_t(y_{t-1},y_t) Pw(y∣x)=Zw(x)1t=1∏T+1Mt(yt−1,yt)
其中, Z w ( x ) Z_w(x) Zw(x) 为规范化因子,是 T + 1 T+1 T+1 个矩阵的乘积且位于 ( s t a r t , s t o p ) (\rm start, stop) (start,stop) 位置的元素,即
Z w ( x ) = [ M 1 M 2 … M T + 1 ] s t a r t , s t o p Z_w(x) = [M_1M_2\dots M_{T+1}]_{\rm start, stop} Zw(x)=[M1M2…MT+1]start,stop
注意, y 0 = q s t a r t y_0 = q_{\rm start} y0=qstart 与 y T + 1 = q s t o p y_{T+1} = q_{\rm stop} yT+1=qstop 表示开始状态与终止状态,规范化因子 Z w ( x ) Z_w(x) Zw(x) 是以 q s t a r t q_{\rm start} qstart 为起点 q s t o p q_{\rm stop} qstop 为终点通过状态的所有路径 y 1 y 2 … y T y_1y_2\dots y_T y1y2…yT 的非规范化概率 ∏ t = 1 T + 1 M t ( y t − 1 , y t ) \prod\limits_{t=1}^{T+1} M_t(y_{t-1},y_t) t=1∏T+1Mt(yt−1,yt) 之和。通过下面的例子来理解矩阵形式。
图 6 状态路径
给定一个由图 6 6 6 所示的线性链条件随机场,观测序列 x x x,状态序列 y y y, T = 3 T=3 T=3,状态 y i ∈ { 1 , 2 } y_i\in \{1,2\} yi∈{1,2},假设 y 0 = q s t a r t = 1 y_0 = q_{\rm start}=1 y0=qstart=1, y 4 = q s t o p = 1 y_4 = q_{\rm stop}=1 y4=qstop=1,各个时刻的随机变量矩阵 M 1 M_1 M1, M 2 M_2 M2, M 3 M_3 M3, M 4 M_4 M4 分别为
M 1 = [ a 01 a 02 0 0 ] M 2 = [ b 11 b 12 b 21 b 22 ] M 3 = [ c 11 c 12 c 21 c 22 ] M 4 = [ 1 0 1 0 ] M_1 = \left[\begin{matrix} a_{01} & a_{02} \\ 0 & 0 \\ \end{matrix}\right] \\ M_2 = \left[\begin{matrix} b_{11} & b_{12} \\ b_{21} & b_{22} \\ \end{matrix}\right] \\ M_3 = \left[\begin{matrix} c_{11} & c_{12} \\ c_{21} & c_{22} \\ \end{matrix}\right] \\ M_4 = \left[\begin{matrix} 1 & 0 \\ 1 & 0 \\ \end{matrix}\right] \\ M1=[a010a020]M2=[b11b21b12b22]M3=[c11c21c12c22]M4=[1100]
计算图 6 6 6 中从 s t a r t \rm start start 到 s t o p \rm stop stop 对应于 y = ( 1 , 1 , 1 ) y=(1,1,1) y=(1,1,1), y = ( 1 , 1 , 2 ) y=(1,1,2) y=(1,1,2), … \dots …, y = ( 2 , 2 , 2 ) y=(2,2,2) y=(2,2,2) 各路径的非规范化概率分别是
( 1 , 1 , 1 ) : a 01 b 11 c 11 ( 1 , 1 , 2 ) : a 01 b 11 c 12 ( 1 , 2 , 1 ) : a 01 b 12 c 21 ( 1 , 2 , 2 ) : a 01 b 12 c 22 ( 2 , 1 , 1 ) : a 02 b 21 c 11 ( 2 , 1 , 2 ) : a 02 b 21 c 12 ( 2 , 2 , 1 ) : a 02 b 22 c 21 ( 2 , 2 , 2 ) : a 02 b 22 c 22 \begin{array}{l} (1,1,1):&a_{01} b_{11}c_{11} \\ (1,1,2):&a_{01} b_{11}c_{12} \\ (1,2,1):&a_{01} b_{12}c_{21} \\ (1,2,2):&a_{01} b_{12}c_{22} \\ (2,1,1):&a_{02} b_{21}c_{11} \\ (2,1,2):&a_{02} b_{21}c_{12} \\ (2,2,1):&a_{02} b_{22}c_{21} \\ (2,2,2):&a_{02} b_{22}c_{22} \\ \end{array} (1,1,1):(1,1,2):(1,2,1):(1,2,2):(2,1,1):(2,1,2):(2,2,1):(2,2,2):a01b11c11a01b11c12a01b12c21a01b12c22a02b21c11a02b21c12a02b22c21a02b22c22
计算取矩阵乘积 M 1 M 2 M 3 M 4 M_1M_2M_3M_4 M1M2M3M4 位于 ( s t a r t , s t o p ) (\rm start, stop) (start,stop) 位置的元素作为规范化因子,其第 1 1 1 行第 1 1 1 列的元素为
a 01 b 11 c 11 + a 02 b 21 c 11 + a 01 b 12 c 21 + a 02 b 22 c 22 + a 01 b 11 c 12 + a 02 b 21 c 12 + a 01 b 12 c 22 + a 02 b 22 c 21 a_{01}b_{11}c_{11} + a_{02}b_{21}c_{11} + a_{01}b_{12}c_{21} + a_{02}b_{22}c_{22} + a_{01}b_{11}c_{12} + a_{02}b_{21}c_{12} + a_{01}b_{12}c_{22} + a_{02} b_{22}c_{21} a01b11c11+a02b21c11+a01b12c21+a02b22c22+a01b11c12+a02b21c12+a01b12c22+a02b22c21
恰好等于从 s t a r t \rm start start 到 s t o p \rm stop stop 的所有路径的非规范化概率之和,即规范化因子 Z ( x ) Z(x) Z(x)。