概率图表示之贝叶斯网络
我们先从 表示 这一主题开始:我们如何选择概率分布来模拟真实世界中我们感兴趣的方面?提出一个好的模型并不容易:我们在导言中看到,一个简单的垃圾邮件分类模型需要我们指定一系列参数,这些参数随着英语单词数呈指数级增长!
本章中,我们将学习一种避免此类复杂情况的方法。我们将:
- 学习一种仅使用少量参数参数化概率分布的有效且通用的技术。
- 考察如何通过有向无环图(DAG)优雅地描述结果模型。
- 研究DAG的结构与其描述分布做出的建模假设之间的联系;这不仅会使这些建模假设更加明确,还将帮助我们设计更高效的推理算法。
我们这里用到的模型被称为贝叶斯网络。下一章我们将看到第二种方法–马尔可夫随机场(MRF),主要作用于无向图。贝叶斯网络有效地反映了因果关系,而马尔可夫随机场不能。因此,对于随机变量之间没有明确因果关系的问题,马尔可夫随机场更适用。
贝叶斯网络概率模型
有向图模型(又称贝叶斯网络)是一类概率分布,它让有向图可以自然地描述紧凑参数化。
这种参数化背后的一般思想非常简单。
回想一下链式法则,我们可以将任何概率 p p p写成:
p ( x 1 , x 2 , … , x n ) = p ( x 1 ) p ( x 2 ∣ x 1 ) ⋯ p ( x n ∣ x n − 1 , … , x 2 , x 1 ) p(x_1, x_2, \dotsc, x_n) = p(x_1) p(x_2 \mid x_1) \cdots p(x_n \mid x_{n-1}, \dotsc, x_2, x_1) p(x1,x2,…,xn)=p(x1)p(x2∣x1)⋯p(xn∣xn−1,…,x2,x1)
紧凑贝叶斯网络是一种分布,其右侧的每个因子仅依赖于少量祖先变量 x A i x_{A_i} xAi:
p ( x i ∣ x i − 1 , … , x 1 ) = p ( x i ∣ x A i ) p(x_i \mid x_{i-1}, \dotsc, x_1) = p(x_i \mid x_{A_i}) p(xi∣xi−1,…,x1)=p(xi∣xAi)
例如,在一个具有5个变量的模型中,我们可以选择用 p ( x 5 ∣ x 4 , x 3 ) p(x_5 \mid x_4, x_3) p(x5∣x4,x3) 近似表示因子 p ( x 5 ∣ x 4 , x 3 , x 2 , x 1 ) p(x_5 \mid x_4, x_3, x_2, x_1) p(x5∣x4,x3,x2,x1)。这个例子中,我们写做 x A 5 = { x 4 , x 3 } x_{A_5} = \{x_4, x_3\} xA5={x4,x3}。
当变量是离散变量时(我们要考虑的问题中通常是这种情况),我们可以将因子 p ( x i ∣ x A i ) p(x_i\mid x_{A_i}) p(xi∣xAi) 视为概率表,其中行对应于 x A i x_{A_i} xAi 的赋值,列对应于 x i x_i xi 的值;每一项包含实际概率 p ( x i ∣ x A i ) p(x_i\mid x_{A_i}) p(xi∣xAi)。如果每个变量取 d d d 个取值,并且最多有 k k k 个祖先,则整个表最多将包含 O ( d k + 1 ) O(d^{k+1}) O(dk+1) 个项。由于每个变量对应一个表,所以完整地概率分布仅需要 O ( n d k + 1 ) O(nd^{k+1}) O(ndk+1) 个参数就可以紧凑地(相比于 O ( d n ) O(d^n) O(dn)这种朴素的方法)描述。
图表示
这种形式的分布可以自然地表示为有向无环图,其中顶点对应于变量 x i x_i xi,边表示依赖关系。特别是,我们将每个节点 x i x_i xi 的父节点设为其祖先 x A i x_{A_i} xAi。
举个例子,考虑一个学生考试成绩 g g g 的模型。考试成绩依赖于考试难度 d d d 和学生智力 i i i,同时还影响授课老师的推荐信质量 l l l。学生智力 i i i 还影响SAT分数 s s s。除了变量 g g g 有3个取值,其他变量都只有2个取值。5个变量的联合概率分布自然分解如下:
p ( l , g , i , d , s ) = p ( l ∣ g ) p ( g ∣ i , d ) p ( i ) p ( d ) p ( s ∣ i ) . p(l, g, i, d, s) = p(l \mid g)\, p(g \mid i, d)\, p(i)\, p(d)\, p(s \mid i). p(l,g,i,d,s)=p(l∣g)p(g∣i,d)p(i)p(d)p(s∣i).
这个分布的图形表示是一个有向无环图(DAG),它直观地指明了随机变量之间的相互依赖关系。图清楚地表明,推荐信取决于成绩,而成绩又取决于学生的智力和考试难度。
另一种解释有向图的方法是数据是如何生成的过程。在上面的例子中,为了确定推荐信的质量,我们可以首先抽样调查智力水平和考试难度;然后,给定这些参数,对学生的成绩进行抽样;最后,根据该等级生成推荐信。
在前面的垃圾邮件分类例子中,我们隐式假设电子邮件是根据两步过程生成的:首先,我们选择垃圾邮件/非垃圾邮件标签 y y y;然后,我们分别采样每个单词是否存在于该标签。
正式定义
形式地讲,贝叶斯网络是一个有向图 G = ( V , E ) G = (V,E) G=(V,E),与
- 每个节点 i ∈ V i \in V i∈V 对应一个随机变量 x i x_i xi;
- 每个节点具有一个条件概率分布(CPD) p ( x i ∣ x A i ) p(x_i \mid x_{A_i}) p(xi∣xAi),表明 x i x_i xi 的概率取决于它的父节点的值。
因此,贝叶斯网络定义了概率分布 p p p。相反,我们可以说,如果一个概率 p p p 可以分解为图 G G G 中因子的乘积,那么它就是DAG G G G 的因子分解。
不难发现贝叶斯网络表示的概率是有效的:显然,它是非负的,并可用归纳法(并使用CPD是有效概率这一事实)证明所有变量赋值的和为1。相反,我们也可以通过反证法证明,当 G G G包含循环时,其相关概率之和可能不等于1。
贝叶斯网络的依赖
总之,贝叶斯网络表示的概率分布可以通过较小的局部条件概率分布(每个变量一个)的乘积形成。通过这种形式表示概率,我们在模型中引入了某些变量是独立的假设。
这就产生了一个问题:我们使用一个由 G G G 描述的具有给定结构的贝叶斯网络模型,到底做了哪些独立性假设?这个问题之所以重要,有两个原因:我们应该准确地知道我们所做的模型假设(以及它们是否正确);此外,这些信息将有助于我们以后设计更有效的推理算法。
让我们用符号 I ( p ) I(p) I(p) 来表示联合分布 p p p 的所有独立性集合。例如,如果 p ( x , y ) = p ( x ) p ( y ) p(x,y) = p(x) p(y) p(x,y)=p(x)p(y),我们说 x ⊥ y ∈ I ( p ) x \perp y \in I(p) x⊥y∈I(p)。
用有向图描述独立性
事实证明,贝叶斯网络 p p p 非常优雅地描述了 I ( p ) I(p) I(p) 中的许多独立性;通过查看三种类型的结构,可以从图中恢复这些独立性。
为了简单起见,我们先看一个具有3个节点 X , Y , Z X, Y, Z X,Y,Z 的贝叶斯网络 G G G。在这个案例中, G G G 本质上只有三种可能的结构,每种结构都会导致不同的独立性假设。感兴趣的读者可以用一些代数方法很容易地证明这些结果。
- 共父: 如果
G
G
G 是
X
←
Z
→
Y
X \leftarrow Z \rightarrow Y
X←Z→Y 这种形式,且
Z
Z
Z 被观察到,那么
X
⊥
Y
∣
Z
X \perp Y \mid Z
X⊥Y∣Z。
相反,如果 Z Z Z 没被观察到,则 $X \not\perp Y。直觉上,这是因为 Z Z Z 包含了决定 X X X 和 Y Y Y 结果的所有信息;一旦它被观察到,就没有其他因素会影响这些变量的结果。 - 级联: 如果
G
G
G 是
X
→
Z
→
Y
X \rightarrow Z \rightarrow Y
X→Z→Y 这种形式, 且
Z
Z
Z 被观察到,那么
X
⊥
Y
∣
Z
X \perp Y \mid Z
X⊥Y∣Z。
相反,如果 Z Z Z 没被观察到, 则 X ⊥̸ Y X \not\perp Y X⊥Y。这里,直觉上 Z Z Z 同样包含了决定 Y Y Y 结果的所有信息;因此, X X X 取什么值并不重要。 - v结构(也叫 explaining away): 如果 G G G 是 X → Z ← Y X \rightarrow Z \leftarrow Y X→Z←Y 这种形式,那么了解 Z Z Z 需要 X X X 和 Y Y Y。换句话来说,如果 Z Z Z 没被观测到,则 X ⊥ Y X \perp Y X⊥Y;但如果 Z Z Z 被观测到,则 X ⊥̸ Y ∣ Z X \not\perp Y \mid Z X⊥Y∣Z。
后一种情况需要进一步解释一下。假设
Z
Z
Z 是一个布尔变量,表示某天早上草坪是否潮湿;
X
X
X 和
Y
Y
Y 对其潮湿的2个解释:要么下雨了(由
X
X
X表示),要么洒水器打开了(由
Y
Y
Y表示)。如果我们知道草坪是湿的(
Z
Z
Z为true),且洒水器没打开(
Y
Y
Y为false),那么
X
X
X为true的概率一定为1,因为这是唯一的解释。
因此,当给定
Z
Z
Z 时,
X
X
X 和
Y
Y
Y 不独立。
这些结构清楚地描述了由3变量贝叶斯网编码的独立性。我们可以通过在任何较大的图上递归地应用它们,将它们扩展到一般网络。这就引出了一个称为 d d d分离的概念(其中 d d d表示定向)。
设 Q Q Q、 W W W和 O O O是贝叶斯网络 G G G中的三组节点。如果 Q Q Q 和 W W W 之间没有活跃路径联结,则我们说 Q Q Q 和 W W W 在给定 O O O (例如 O O O被观测到)的情况下是 d d d分隔的。给定观测变量 O O O,如果路径上的变量 X X X、 Y Y Y、 Z Z Z的每一个连续三元组,对下列其中一个情况成立:
- X ← Y ← Z X \leftarrow Y \leftarrow Z X←Y←Z, 且 Y Y Y 未被观测 Y ∉ O Y \not\in O Y∈O
- X → Y → Z X \rightarrow Y \rightarrow Z X→Y→Z, 且 Y Y Y 未被观测 Y ∉ O Y \not\in O Y∈O
- X ← Y → Z X \leftarrow Y \rightarrow Z X←Y→Z, 且 Y Y Y 未被观测 Y ∉ O Y \not\in O Y∈O
- X → Y ← Z X \rightarrow Y \leftarrow Z X→Y←Z, 且 Y Y Y 或其任意后代被观测到
则G中的该无向路径称为活动路径。
举个例子,如下图:
给定 X 2 , X 3 X_2, X_3 X2,X3, X 1 X_1 X1 和 X 6 X_6 X6 是 d d d分离的。然而,给定 X 1 , X 6 X_1, X_6 X1,X6, X 2 X_2 X2 和 X 3 X_3 X3 不是 d d d分离的,因为我们可以找到一条活跃路径 ( X 2 , X 6 , X 5 , X 3 ) (X_2, X_6, X_5, X_3) (X2,X6,X5,X3)。
有人创建了一个交互式网页模拟器来检测 d d d分离。你可以随意使用它,如果遇到任何bug或反馈,请通过web应用程序上的“反馈”按钮提交。
d
d
d分离这一概念很有用,它可以让我们能够描述模型中的大部分依赖关系。
设
I
(
G
)
=
{
(
X
⊥
Y
∣
Z
)
:
X
,
Y
是
d
-分离的,当给定
Z
时
}
I(G) = \{(X \perp Y \mid Z) : X,Y \text{是} d\text{-分离的,当给定} Z 时\}
I(G)={(X⊥Y∣Z):X,Y是d-分离的,当给定Z时}表示一组在
G
G
G中
d
d
d分隔的变量。
事实: 如果 p p p是 G G G上因式分解,则 I ( G ) ⊆ I ( p ) I(G) \subseteq I(p) I(G)⊆I(p)。在这种情况下,我们说 G G G 是 p p p 的 I I I-map(独立映射)。
换句话说, G G G 中编码的所有独立性都是: G G G 中 d d d分隔的变量在 p p p 中是真正独立的。然而,反之则不然: 分布在 G G G 上可分解,但具有 G G G 中未捕获的独立性。
在某种程度上,这几乎是一个微不足道的陈述。如果 p ( x , y ) = p ( x ) p ( y ) p(x,y) = p(x)p(y) p(x,y)=p(x)p(y),那么这个分布仍然在图上分解为 y → x y \rightarrow x y→x,因为我们总是可以用CPD p ( x ∣ y ) p(x\mid y) p(x∣y) 把它写成 p ( x , y ) = p ( x ∣ y ) p ( y ) p(x,y) = p(x\mid y)p(y) p(x,y)=p(x∣y)p(y),其中 x x x的概率实际上并不随 y y y变化。然而,我们可以通过简单地删除不必要的边来构造与 p p p 结构匹配的图。
有向图的表示能力
这引出了我们最后一个或许也是最重要的问题:有向图能表示任意分布 p p p 的所有独立性吗?更正式地说,给定一个分布 p p p,我们能构造一个这样满足 I ( G ) = I ( p ) I(G) = I(p) I(G)=I(p) 的图 G G G 吗?
首先,请注意,构造满足 I ( G ) ⊆ I ( p ) I(G) \subseteq I(p) I(G)⊆I(p) 的 G G G 很容易。一个全连接的DAG G G G 是任意分布的 I I I-map,因为 I ( G ) = ∅ I(G) = \emptyset I(G)=∅。
一个更有趣的问题是我们是否可以找到 p p p 的最小 I I I-map G G G,例如一个即使从 G G G 中删除一条边也会导致它不再是 I I I-map的 I I I-map G G G。这很容易:我们可以从一个全连接的 G G G 开始,删除边,直到 G G G 不再是 I I I-map。一种实现方法是遵循图的自然拓扑顺序,删除节点的祖先,直到不能删除;在课程最后,我们将在学习结构学习时重新讨论这种修剪方法。
然而,我们真正感兴趣的是判断任意概率分布 p p p 是否总是存在一个满足 I ( p ) = I ( G ) I(p)=I(G) I(p)=I(G) 的完美映射 G G G。不幸的是,答案是否定的。例如,考虑以下3个变量 X X X、 Y Y Y、 Z Z Z的分布 p p p:我们从伯努利分布中采样到 X , Y ∼ Ber ( 0.5 ) X,Y \sim \text{Ber}(0.5) X,Y∼Ber(0.5),且我们设 Z = X xor Y Z = X \text{ xor } Y Z=X xor Y(我们称之为噪声异或示例)。我们可以用代数方法检验得到 { X ⊥ Y , Z ⊥ Y , X ⊥ Z } ∈ I ( p ) \{X \perp Y, Z \perp Y, X \perp Z\} \in I(p) {X⊥Y,Z⊥Y,X⊥Z}∈I(p) 但 Z ⊥ { Y , X } ∉ I ( p ) Z \perp \{Y,X\} \not\in I(p) Z⊥{Y,X}∈I(p)。因此 X → Z ← Y X \rightarrow Z \leftarrow Y X→Z←Y 是 p p p 的 I I I-map,但我们讨论的三节点图结构都不能完美地描述 I ( p ) I(p) I(p),因此,这个分布没有一个完美的映射。
一个相关的问题是完美映射存在时是否是唯一的。同样,情况并非如此,因为 X → Y X \rightarrow Y X→Y 和 X ← Y X \leftarrow Y X←Y 编码的是同一独立性,只是图不同罢了。更一般地说,如果两个贝叶斯网络 G 1 G_1 G1 和 G 2 G_2 G2 编码相同的依赖 I ( G 1 ) = I ( G 2 ) I(G_1) = I(G_2) I(G1)=I(G2),则它们是 I I I-等价的。
什么时候两个贝叶斯网络是 I I I-等价的?要回答这个问题,让我们回到有三个变量的简单示例。下面的每个图都有相同的骨架,也就是说,如果我们去掉箭头的方向,下面每种情况都会得到相同的无向图。
级联结构(a、b)明显对称,箭头的方向无关紧要。事实上,(a,b,c)编码的依赖完全相同。我们可以改变箭头的方向,只要我们不把它们变成V结构(d)。然而,当我们有了一个V结构时,我们不能改变任何箭头:结构(d)是唯一描述依赖关系 X ⊥̸ Y ∣ Z X \not\perp Y \mid Z X⊥Y∣Z 的结构。这些例子为以下关于 I I I-等价的一般结果提供了直观的证据。
事实:如果 G , G ′ G,G' G,G′ 具有相同的骨架和相同的v结构,那么 I ( G ) = I ( G ′ ) I(G) = I(G') I(G)=I(G′)。
同样的,凭直觉很容易理解为什么这是对的。如果变量之间的 d d d-分离相同,则两个图是 I I I-等价的。我们可以翻转任何边的方向,只要不形成v结构,图的 d d d连通性将保持不变。