机器学习 第14章-概率图模型

机器学习 第14章-概率图模型

机器学习最重要的任务,是根据一些已观察到的证据(例如训练样本)来对感兴趣的未知变量(例如类别标记)进行估计和推测。概率模型(probabilisticmodel)提供了一种描述框架,将学习任务归结于计算变量的概率分布。在概率模型中,利用已知变量推测未知变量的分布称为"推断"(inference),其核心是如何基于可观测变量推测出未知变量的条件分布。具体来说,假定所关心的变量集合为 Y Y Y,可观测变量集合为 O O O,其他变量的集合为"生成式"(generative)模型考虑联合分布 P ( Y , R , O ) P(Y,R,O) P(Y,R,O),"判别式"(discriminative)模型考虑条件分布 P ( Y , R ∣ O ) P(Y,R|O) P(Y,R∣O)。给定一组观测变量值,推断就是要由 P ( Y , R , O ) P(Y,R,O) P(Y,R,O)或 P ( Y , R ∣ O ) P(Y,R|O) P(Y,R∣O)得到条件概率分布 P ( Y ∣ O ) P(Y|O) P(Y∣O)。

直接利用概率求和规则消去变量 R R R显然不可行,因为即便每个变量仅有两种取值的简单问题,其复杂度已至少是 O ( 2 ∣ Y ∣ + ∣ R ∣ ) O(2^{|Y|+|R|}) O(2∣Y∣+∣R∣)。另一方面,属性变量之间往往存在复杂的联系,因此概率模型的学习,即基于训练样本来估计变量分布的参数往往相当困难。为了便于研究高效的推断和学习算法,需有一套能简洁紧凑地表达变量间关系的工具。

概率图模型(probabilistic graphical model)是一类用图来表达变量相关关系的概率模型。它以图为表示工具,最常见的是用一个结点表示一个或一组随机变量,结点之间的边表示变量间的概率相关关系,即"变量关系图"。根据边的性质不同,概率图模型可大致分为两类:第一类是使用有向无环图表示变量间的依赖关系,称为有向图模型或贝叶斯网(Bayesian network);第二类是使用无向图表示变量间的相关关系,称为无向图模型或马尔可夫网(Markovnetwork)。

14.1 隐马尔可夫模型

隐马尔可夫模型(Hidden Markov Model,简称 HMM)是结构最简单的动态贝叶斯网(dynamic Bayesian network),这是一种著名的有向图模型,主要用于时序数据建模,在语音识别、自然语言处理等领域有广泛应用。

如图 14.1所示,隐马尔可夫模型中的变量可分为两组。第一组是状态变量 { y 1 , y 2 , . . . , y n } \{y_1,y_2,...,y_n\} {y1,y2,...,yn},其中 y i ∈ Y y_i∈Y yi∈Y表示第 i i i时刻的系统状态。通常假定状态变量是隐藏的、不可被观测的,因此状态变量亦称隐变量(hidden variable)。第二组是观测变量 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} {x1,x2,...,xn},其中 x i ∈ X x_i∈X xi∈X表示第 i i i时刻的观测值。在隐马尔可夫模型中,系统通常在多个状态 { s 1 , s 2 , . . . , s N } \{s_1,s_2,...,s_N\} {s1,s2,...,sN}之间转换,因此状态变量 y i y_i yi的取值范围 Y Y Y(称为状态空间)通常是有 N N N个可能取值的离散空间。观测变量 x i x_i xi可以是离散型也可以是连续型,为便于讨论,我们仅考虑离散型观测变量,并假定其取值范围 X X X为 o 1 , o 2 , ⋅ . . , o M {o_1,o_2,·..,o_M} o1,o2,⋅..,oM。

图 14.1中的箭头表示了变量间的依赖关系。在任一时刻,观测变量的取值仅依赖于状态变量,即 x t x_t xt由 y t y_t yt确定,与其他状态变量及观测变量的取值无关。同时, t t t时刻的状态 y t y_t yt仅依赖于 t − 1 t-1 t−1时刻的状态 y t − 1 y_{t-1} yt−1,与其余 n − 2 n-2 n−2个状态无关。这就是所谓的"马尔可夫链"(Markov chain),即:系统下一时刻的状态仅由当前状态决定,不依赖于以往的任何状态。基于这种依赖关系,所有变量的联合概率分布为
P ( x 1 , y 1 , ⋯   , x n , y n ) = P ( y 1 ) P ( x 1 ∣ y 1 ) ∏ i = 2 n P ( y i ∣ y i − 1 ) P ( x i ∣ y i ) P(x_1,y_1,\cdots ,x_n,y_n)=P(y_1)P(x_1|y_1)\prod_{i=2}^{n}P(y_i|y_{i-1})P(x_i|y_i) P(x1,y1,⋯,xn,yn)=P(y1)P(x1∣y1)i=2∏nP(yi∣yi−1)P(xi∣yi)

除了结构信息,欲确定一个隐马尔可夫模型还需以下三组参数:

状态转移概率:模型在各状态间转换的概率,通常记为矩阵 A = [ a i j ] N ∗ N A=[a_{ij}]{N*N} A=[aij]N∗N,其中
a i j = P ( y t + 1 = s j ∣ y t = s i ) a
{ij}=P(y_{t+1}=s_j|y_t=s_i) aij=P(yt+1=sj∣yt=si)

输出观测概率:根据状态输出获得各个观测值的概率,记为矩阵 B = [ b i j ] N ∗ M B=[b_{ij}]{N*M} B=[bij]N∗M,其中
b i j = P ( x t + o j ∣ y t = s i ) b
{ij}=P(x_t+o_j|y_t=s_i) bij=P(xt+oj∣yt=si)

初始状态概率:模型在初始时刻各状态出现的概率,记为 π = ( π 1 , π 2 , ⋯   , π N ) \pi = (\pi _1,\pi _2,\cdots,\pi _N) π=(π1,π2,⋯,πN),其中
π i = P ( y 1 = s i ) \pi _i=P(y_1=s_i) πi=P(y1=si)

通过指定状态空间 Y Y Y、观测空间 χ \chi χ和上述三组参数,就能确定一个隐马尔可夫模型,通常用其参数 λ = [ A , B , π ] λ=[A,B,π] λ=[A,B,π]来指代,给定隐马尔可夫模型λ,它按如下过程产生观测序列 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} {x1,x2,...,xn}:

1、设置 t = 1 t=1 t=1,并根据初始状态概率KaTeX parse error: Undefined control sequence: \p at position 1: \̲p̲i选择初始状态 y 1 y_1 y1

2、根据状态 y t y_t yt和输出观测概率 B B B选择观测变量取值 x t x_t xt

3、根据状态 y t y_t yt和状态转移矩阵 A A A转移模型状态,即确定 y t + 1 y_{t+1} yt+1

4、若 t < n t<n t<n,设置 t = t + 1 t=t+1 t=t+1,并执行第2步,否则停止

其中 y ∈ { s 1 , s 2 , . . . , s N } y∈ \{s_1,s_2,...,s_N\} y∈{s1,s2,...,sN}和 KaTeX parse error: Expected '}', got 'EOF' at end of input: ...1,o_2,...,o_M\}分别为第 t t t时刻的状态和观测值。

在实际应用中,人们常关注隐马尔可夫模型的三个基本问题:

1、如何评估模型与观测序列之间的匹配程度?

2、如何根据观测序列推断出隐藏的模型状态?

3、如何训练模型使其能最好的描述观测数据?

14.2 马尔可夫随机场

马尔可夫随机场(Markov Random Field,简称 MRF)是典型的马尔可夫网这是一种著名的无向图模型。图中每个结点表示一个或一组变量,结点之间的边表示两个变量之间的依赖关系。马尔可夫随机场有一组势函数(potentialfunctions),亦称"因子"(factor),这是定义在变量子集上的非负实函数,主要用于定义概率分布函数。

图14.2显示出一个简单的马尔可夫随机场。对于图中结点的一个子集,若其中任意两结点间都有边连接,则称该结点子集为一个"团"(clique)。若在一个团中加入另外任何一个结点都不再形成团,则称该团为"极大团"(maximalclique);换言之,极大团就是不能被其他团所包含的团。例如,在图14.2中 { x 1 , x 2 } , { x 1 , x 3 } , { x 2 , x 4 } , { x 2 , x 5 } , { x 2 , x 6 } , { x 3 , x 5 } , { x 5 , x 6 } 和 { x 2 , x 5 , x 6 } \{x_1,x_2\},\{x_1,x_3\},\{x_2,x_4\},\{x_2,x_5\},\{x_2,x_6\},\{x_3,x_5\},\{x_5,x_6\}和\{x_2,x_5,x_6\} {x1,x2},{x1,x3},{x2,x4},{x2,x5},{x2,x6},{x3,x5},{x5,x6}和{x2,x5,x6}都是团,并且除了KaTeX parse error: Expected '}', got 'EOF' at end of input: ..._6\}和{x_5,x_6\}之外都是极大团;但是,因为 x 2 x_2 x2和 x 3 x_3 x3之间缺乏连接, { x 1 , x 2 , x 3 } \{x_1,x_2,x_3\} {x1,x2,x3}并不构成团。显然,每个结点至少出现在一个极大团中。

在马尔可夫随机场中,多个变量之间的联合概率分布能基于团分解为多个因子的乘积,每个因子仅与一个团相关,具体来说,对于 n n n个变量 x = x 1 , x 2 , . . . , x n x={x_1,x_2,...,x_n} x=x1,x2,...,xn,所有团构成的集合为 C C C,与团 Q ∈ C Q∈C Q∈C对应的变量集合记为 x Q x_Q xQ,则联合概率 P ( x ) P(x) P(x)定义为
P ( x ) = 1 Z ∏ Q ∈ C Ψ Q ( x Q ) P(x)=\frac{1}{Z}\prod_{Q\in C}\Psi _Q(x_Q) P(x)=Z1Q∈C∏ΨQ(xQ)

其中 Ψ Q \Psi Q ΨQ为与团 Q Q Q对应的势函数,用于对团 Q Q Q中的变量关系进行建模,其中 Z = ∑ x ∏ Q ∈ C ψ Q ( x Q ) Z=\sum{x}\prod_{Q\in C}\psi _Q(x_Q) Z=∑x∏Q∈CψQ(xQ)为规范化因子。

在马尔可夫随机场中如何得到"条件独立性"呢?同样借助"分离"的概念,如图14.3所示,若从结点集 A A A中的结点到 B B B中的结点都必须经过结点集 C C C中的结点,则称结点集 A A A和 B B B被结点集 C C C分离, C C C称为"分离集"(separatingset)。

对马尔可夫随机场,有"全局马尔可夫性"(global Markov property):给定两个变量子集的分离集,则这两个变量子集条件独立。

也就是说,图14.3中若令 A A A, B B B和 C C C对应的变量集分别为 x A x_A xA, x B x_B xB和 x C x_C xC,则 x A x_A xA和 x B x_B xB在给定 x C x_C xC的条件下独立,记为 x A ⊥ x B ⊥ x C x_A⊥x_B⊥x_C xA⊥xB⊥xC。

由全局马尔可夫性可得到两个很有用的推论:

局部马尔可夫性(local Markov property):给定某变量的邻接变量,则该变量条件独立于其他变量。

成对马尔可夫性(pairwise Markov property):给定所有其他变量,两个非邻接变量条件独立。

14.3 条件随机场

条件随机场(Conditional Random Field,简称 CRF)是一种判别式无向图模型。14.1节提到过,生成式模型是直接对联合分布进行建模,而判别式模型则是对条件分布进行建模。前面介绍的隐马尔可夫模型和马尔可夫随机场都是生成式模型,而条件随机场则是判别式模型。

条件随机场试图对多个变量在给定观测值后的条件概率进行建模。具体来说,若令 x = { x 1 , x 2 , . . . , x n } x= \{x_1,x_2,...,x_n\} x={x1,x2,...,xn}为观测序列, y = { y 1 , y 2 , . . . , y n } y=\{y_1,y_2,...,y_n\} y={y1,y2,...,yn}为与之相应的标记序列,则条件随机场的目标是构建条件概率模型 P ( y ∣ x ) P(y|x) P(y∣x)。需注意的是标记变量 y y y可以是结构型变量,即其分量之间具有某种相关性。例如在自然语言处理的词性标注任务中,观测数据为语句(即单词序列),标记为相应的词性序列,具有线性序列结构,如图14.5(a)所示;在语法分析任务中,输出标记则是语法树,具有树形结构,如图14.5(b)所示。

令 G = < V , E > G =<V,E> G=<V,E>表示结点与标记变量 y y y中元素一一对应的无向图, y v y_v yv表示与结点 v v v对应的标记变量, n ( v ) n(v) n(v)表示结点 v v v的邻接结点,若图 G G G的每个变量 y y y都满足马尔可夫性,即
P ( y v ∣ x , y V / { v } ) = P ( y v ∣ x , y n ( v ) ) P(y_v|x, y_{V/\{v\}})= P(y_v|x, y_{n(v)}) P(yv∣x,yV/{v})=P(yv∣x,yn(v))

则 ( y , x ) (y,x) (y,x)构成一个条件随机场。

理论上讲,图G可以具有任意结构,只要能表示标记变量之间的条件独立性关系即可;但在现实应用之中,常用的为链式条件随机场,如图14.6所示

与马尔可夫随机场定义联合概率的方式类似,条件随机场使用势函数和图结构上的团来定义条件概率 P ( y ∣ x ) P(y|x) P(y∣x)。给定观测序列 x x x,图14.6所示的链式条件随机场主要包含两种关于标记变量的团,即单个标记变量 { y i } \{y_i\} {yi}以及相邻的标记变量 { y i − 1 , y i } \{y_{i-1},y_i\} {yi−1,yi}。选择合适的势函数,即可得到形如条件概率定义。

在条件随机场中,通过选用指数势函数并引入特征函数(feature function),条件概率被定义为
P ( y ∣ x ) = 1 Z e x p ( ∑ j ∑ i = 1 n − 1 λ j t j ( y i + 1 , y i , x , i ) + ∑ k ∑ i = 1 n μ k s k ( y i , x , i ) ) P(y|x)=\frac{1}{Z}exp(\sum_{j}\sum_{i=1}^{n-1}\lambda jt_j(y{i+1},y_i,x,i)+ \sum_{k}\sum_{i=1}^{n}\mu _ks_k(y_i,x,i)) P(y∣x)=Z1exp(j∑i=1∑n−1λjtj(yi+1,yi,x,i)+k∑i=1∑nμksk(yi,x,i))

其中 t j ( y i + 1 , y i , x , i ) t_j(y_{i+1},y_i,x,i) tj(yi+1,yi,x,i)是定义在观测序列的两个相邻标记位置上的转移特征函数(transition feature function),用于刻画相邻标记变量之间的相关关系以及观测序列对它们的影响, s k ( y i , x , i ) s_k(y_i,x,i) sk(yi,x,i)是定义在观测序列的标记位置 i i i上的状态特征函数(status feature function),用于刻画观测序列对标记变量的影响, λ j λ_j λj和 μ k μ_k μk为参数, Z Z Z为规范化因子,用于确保上式是正确定义的概率

14.4 学习与推断

基于概率图模型定义的联合概率分布,我们能对目标变量的边际分布(marginal distribution)或以某些可观测变量为条件的条件分布进行推断。条件分布我们已经接触过很多,例如在隐马尔可夫模型中要估算观测序列 x x x在给定参数入下的条件概率分布。边际分布则是指对无关变量求和或积分后得到结果,例如在马尔可夫网中,变量的联合分布被表示成极大团的势函数乘积,于是,给定参数 Θ Θ Θ求解某个变量 x x x的分布,就变成对联合分布中其他无关变量进行积分的过程,这称为"边际化"(marginalization)

对概率图模型,还需确定具体分布的参数,这称为参数估计或参数学习问题,通常使用极大似然估计或最大后验概率估计求解。但若将参数视为待推测的变量,则参数估计过程和推断十分相似,可以"吸收"到推断问题中。因此下面我们只讨论概率图模型的推断方法。

概率图模型的推断方法大致可分为两类。第一类是精确推断方法,希望能计算出目标变量的边际分布或条件分布的精确值;遗憾的是,一般情形下,此类算法的计算复杂度随着极大团规模的增长呈指数增长,适用范围有限。第二类是近似推断方法,希望在较低的时间复杂度下获得原问题的近似解;此类方法在现实任务中更常用。本节介绍两种代表性的精确推断方法,下一节介绍近似推断方法。

14.4.1 变量消去

精确推断的实质是一类动态规划算法,它利用图模型所描述的条件独立性来削减计算目标概率值所需的计算量。变量消去法是最直观的精确推断算法,也是构建其他精确推断算法的基础。

我们先以图 14.7(a)中的有向图模型为例来介绍其工作流程

通过利用乘法对加法的分配律,变量消去法把多个变量的积的求和问题,转化为对部分变量交替进行求积与求和的问题。这种转化使得每次的求和与求积运算限制在局部,仅与部分变量有关,从而简化了计算。

变量消去法有一个明显的缺点:若需计算多个边际分布,重复使用变量消去法将会造成大量的冗余计算。例如在图14.7(a)的贝叶斯网上,假定在计算 P ( x 5 ) P(x_5) P(x5)之外还希望计算 P ( x 4 ) P(x_4) P(x4),若采用 { x 1 , x 2 , x 5 , x 3 } \{x_1,x_2,x_5,x_3\} {x1,x2,x5,x3}的顺序,则 m 12 ( x 2 ) m_{12}(x_2) m12(x2)和 m 23 ( x 3 ) m_{23}(x_3) m23(x3)的计算是重复的。

14.4.2 信念传播

信念传播(Belief Propagation)算法将变量消去法中的求和操作看作一个消息传递过程,较好地解决了求解多个边际分布时的重复计算问题。具体来说,变量消去法通过求和操作

m i j ( x j ) = ∑ x i ψ ( x i , x j ) ∏ k ∈ n ( i ) / j m k i ( x i ) m_{ij}(x_j)=∑{x_i}ψ(x_i,x_j)\prod{k∈n(i)/j}m_{ki}(x_i) mij(xj)=xi∑ψ(xi,xj)k∈n(i)/j∏mki(xi)

消去变量 x i x_i xi,其中 n ( i ) n(i) n(i)表示结点 x i x_i xi的邻接结点。在信念传播算法中,这个操作被看作从 x i x_i xi向 x j x_j xj ;传递了一个消息 m i j ( x j ) m_{ij}(x_j) mij(xj)。这样,前面几个式子所描述的变量消去过程就能描述为图 14.7(b)所示的消息传递过程。不难发现,每次消息传递操作仅与变量 x i x_i xi及其邻接结点直接相关,换言之,消息传递相关的计算被限制在图的局部进行。

在信念传播算法中,一个结点仅在接收到来自其他所有结点的消息后才能向另一个结点发送消息,且结点的边际分布正比于它所接收的消息的乘积,即
P ( x i ) ∝ ∏ k ∈ n ( i ) m k i ( x i ) P(x_i)\propto \prod_{k\in n(i)}m_{ki}(x_i) P(xi)∝k∈n(i)∏mki(xi)

若图结构中没有环,则信念传播算法经过两个步骤即可完成所有消息传递进而能计算所有变量上的边际分布:

1、指定一个根结点,从所有叶结点开始向根结点传递消息,直到根结点收到所有邻接结点的消息;

2、从根结点开始向叶结点传递消息,直到所有叶结点均收到消息

14.5 近似推断

精确推断方法通常需要很大的计算开销,因此在现实应用中近似推断方法更为常用。近似推断方法大致可分为两大类:第一类是采样(sampling),通过使用随机化方法完成近似;第二类是使用确定性近似完成近似推断,典型代表为变分推断(variational inference)

14.5.1 MCMC采样

在很多任务中,我们关心某些概率分布并非因为对这些概率分布本身感兴趣,而是要基于它们计算某些期望,并且还可能进一步基于这些期望做出决策例如对图 14.7(a)的贝叶斯网,进行推断的目的可能是为了计算变量 x 5 x_5 x5的期望若直接计算或逼近这个期望比推断概率分布更容易,则直接操作无疑将使推断问题的求解更为高效,采样法正是基于这个思路。

给定连续变量 x ∈ X x\in X x∈X的概率密度函数 p ( x ) p(x) p(x),假定有函数 f : X → R f:X\rightarrow \mathbb{R} f:X→R,那么可以计算 f ( x ) f(x) f(x)的期望为
p ( f ) = E p [ f ( X ) ] = ∫ x f ( x ) p ( x ) d x p(f)=E_p[f(X)]=\int_{x}f(x)p(x)dx p(f)=Ep[f(X)]=∫xf(x)p(x)dx

若 x x x不是单变量而是一个高维多元变量 x x x,且服从一个非常复杂的分布,则对上式求积分通常很困难。为此,MCMC先构造出服从 p p p分布的独立同分布随机变量 x 1 , x 2 ,。。。, x N x_1,x_2,。。。,x_N x1,x2,。。。,xN,再得到上式的无偏估计

p ~ ( f ) = 1 N ∑ i = 1 N f ( x i ) \tilde{p}(f)=\frac{1}{N}\sum_{i=1}^{N}f(x_i) p~(f)=N1i=1∑Nf(xi)

然而,若概率密度函数 p(x)很复杂,则构造服从p分布的独立同分布样本也很困难。MCMC方法的关键就在于通过构造"平稳分布为p的马尔可夫链来产生样本:若马尔可夫链运行时间足够长(即收敛到平稳状态),则此时产出的样本x近似服从于分布p。

也就是说,MCMC方法先设法构造一条马尔可夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔可夫链来产生符合后验分布的样本,并基于这些样本来进行估计,这里马尔可夫链转移概率的构造至关重要不同的构造方法将产生不同的MCMC 算法。

Metropolis-Hastings(简称 MH)算法是 MCMC的重要代表。图14.9为算法步骤:

下面是算法示例:

python 复制代码
import numpy as np
import matplotlib。pyplot as plt

# 定义目标分布:标准正态分布
def target_distribution(x):
    return np。exp(-0<PERIOD>5 * x**2) / np。sqrt(2 * np.pi)

# Metropolis-Hastings 算法
def metropolis_hastings(n_samples, proposal_std=1<PERIOD>0):
    samples = np。zeros(n_samples)
    x = 0  # 初始值

    for i in range(1, n_samples):
        x_proposal = np。random。normal(x, proposal_std)  # 生成候选点

        # 计算接受概率
        alpha = min(1, target_distribution(x_proposal) / target_distribution(x))

        # 接受或拒绝候选点
        u = np。random。uniform(0, 1)
        if u < alpha:
            x = x_proposal

        samples[i] = x

    return samples

# 生成样本
n_samples = 10000
samples = metropolis_hastings(n_samples)

# 绘制结果
x = np。linspace(-4, 4, 1000)
plt。hist(samples, bins=50, density=True, alpha=0<PERIOD>6, color='g', label='Sampled')
plt。plot(x, target_distribution(x), 'r', label='Target Distribution')
plt。xlabel('x')
plt。ylabel('Density')
plt。legend()
plt。show()

实验图1 Metropolis-Hastings算法输出图

14.5.2 变分推断

变分推断通过使用已知简单分布来逼近需推断的复杂分布,并通过限制近似分布的类型,从而得到一种局部最优、但具有确定解的近似后验分布。

在学习变分推断之前,我们先介绍概率图模型一种简洁的表示方法--盘式记法(plate notation)。图14.10给出了一个简单的例子图14.10(a)表示 N N N个变量 { x 1 , x 2 , . . . , x N } \{x_1,x_2,...,x_N\} {x1,x2,...,xN}均依赖于其他变量 z z z。在图14.10(b)中,相互独立的、由相同机制生成的多个变量被放在一个方框(盘)内并在方框中标出类似变量重复出现的个数 N N N;方框可以嵌套。通常用阴影标注出已知的、能观察到的变量,如图14.10中的变量。在很多学习任务中,对属性变量使用盘式记法将使得图表示非常简洁。

14.6 话题模型

话题模型(topic model)是一族生成式有向图模型,主要用于处理离散型的数据(如文本集合),在信息检索、自然语言处理等领域有广泛应用。隐狄利克雷分配模型(Latent Dirichlet Allocation,简称 LDA)是话题模型的典型代表。

我们先来了解一下话题模型中的几个概念:词(word)、文档(document)和话题(topic)。具体来说,"词"是待处理数据的基本离散单元,例如在文本处理任务中,一个词就是一个英文单词或有独立意义的中文词。"文档"是待处理的数据对象,它由一组词组成,这些词在文档中是不计顺序的,例如一篇论文、一个网页都可看作一个文档;这样的表示方式称为"词袋"(bag-of-words)。数据对象只要能用词袋描述,就可使用话题模型。"话题"表示一个概念,具体表示为一系列相关的词,以及它们在该概念下出现的概率。

形象地说,如图14.11所示,一个话题就像是一个箱子,里面装着在这个概念下出现概率较高的那些词,不妨假定数据集中一共包含 K K K个话题和 T T T篇文档,文档中的词来自一个包含 N N N个词的词典。我们用 T T T个 N N N维向量 W = { w 1 , w 2 , . . . , w T } W=\{w_1,w_2,...,w_T\} W={w1,w2,...,wT}表示数据集(即文档集合), K K K个 N N N维向量 β k \beta_k βk表示话题,其中 w t ∈ R N w_t \in R^N wt∈RN 的第 n n n个分量 w t , n w_{t,n} wt,n表示文档 t t t中词 n n n的词频 β k ∈ R N β_k∈R^N βk∈RN的第 n n n个分量 β k , n β_{k,n} βk,n表示话题 k k k中词 n n n的词频。

在现实任务中可通过统计文档中出现的词来获得词频向量 w i ( i = 1 , 2 , . . . , T ) w_i(i=1,2,...,T) wi(i=1,2,...,T),但通常并不知道这组文档谈论了哪些话题,也不知道每篇文档与哪些话题有关。LDA 从生成式模型的角度来看待文档和话题。具体来说,LDA 认为每篇文档包含多个话题,不妨用向量 Θ t ∈ R K Θ_t \in R^K Θt∈RK表示文档 t t t中所包含的每个话题的比例, Θ t , k Θ_{t,k} Θt,k即表示文档 t t t中包含话题 k k k的比例,进而通过下面的步骤由话题"生成"文档 t t t:

1、根据参数为 α \alpha α的狄利克雷分布随机采样一个话题分布 Θ t \Theta _t Θt

2、在按下述步骤生成文档中的 N N N个词:

(a)根据 Θ t \Theta t Θt进行话题指派,得到文档 t t t中的词 n n n的话题 z t , n z{t,n} zt,n

(b)根据指派的话题所对应的词频分布 β k \beta _k βk随机采样生成词

图 14.11演示出根据以上步骤生成文档的过程。显然,这样生成的文档自然地以不同比例包含多个话题(步骤1),文档中的每个词来自一个话题(步骤2b),而这个话题是依据话题比例产生的(步骤 2a)。

图 14.12 描述了 LDA的变量关系,其中文档中的词频 w t , n w_{t,n} wt,n是唯一的已观测变量,它依赖于对这个词进行的话题指派 z t , n z_{t,n} zt,n,以及话题所对应的词频 β k \beta_k βk;同时,话题指派 z t , n z_{t,n} zt,n依赖于话题分布 Θ t Θ_t Θt, Θ t Θ_t Θt:依赖于狄利克雷分布的参数 α α α,而话题词频则依赖于参数 η η η。

于是,LDA 模型对应的概率分布为
p ( W , z , β , Θ ∣ α , η ) = ∏ t = 1 T p ( Θ t ∣ α ) ∏ t = 1 K p ( β k ∣ η ) ( ∏ n = 1 N P ( w t , n ∣ z t , n , β k ) P ( z t , n ∣ Θ t ) ) p(W,z,\beta ,\Theta |\alpha ,\eta )= \prod_{t=1}^{T}p(\Theta t|\alpha )\prod{t=1}^{K}p(\beta k|\eta )(\prod{n=1}^{N}P(w_{t,n}|z_{t,n},\beta k)P(z{t,n}|\Theta _t)) p(W,z,β,Θ∣α,η)=t=1∏Tp(Θt∣α)t=1∏Kp(βk∣η)(n=1∏NP(wt,n∣zt,n,βk)P(zt,n∣Θt))

给定训练数据 W W W,LDA 的模型参数可通过极大似然法估计,即寻找 α α α和 n n n以最大化对数似然

KaTeX parse error: Undefined control sequence: \, at position 36: ...sum_{t=1}^{T}ln\̲,̲ p(w_t|\alpha ,...

但由于 p ( e t ∣ α , η ) p(e_t|\alpha,\eta) p(et∣α,η)不易计算,上式难以直接求解,因此实践中常采用变分法来求取近似解。

若模型已知,即参数 α α α 和 n n n已确定,则根据词频 w t , n w_{t,n} wt,n来推断文档集所对应的话题结构(即推断 Θ t Θ_t Θt, β k β_k βk 和 z t , n z_{t,n} zt,n)可通过求解
p ( z , β , Θ ∣ W , α , η ) = p ( W , z , β , Θ ∣ α , η ) p ( W ∣ α , η ) p(z,\beta ,\Theta |W,\alpha ,\eta )=\frac{p(W,z,\beta ,\Theta |\alpha ,\eta )}{p(W|\alpha ,\eta )} p(z,β,Θ∣W,α,η)=p(W∣α,η)p(W,z,β,Θ∣α,η)

然而由于分母上的 p ( W ∣ α , η ) p(W|\alpha,\eta) p(W∣α,η)难以获取,上式难以直接求解,因此在实践中常采用吉布斯采样或变分法进行近似推断。

相关推荐
AI_NEW_COME22 分钟前
知识库管理系统可扩展性深度测评
人工智能
海棠AI实验室44 分钟前
AI的进阶之路:从机器学习到深度学习的演变(一)
人工智能·深度学习·机器学习
hunteritself1 小时前
AI Weekly『12月16-22日』:OpenAI公布o3,谷歌发布首个推理模型,GitHub Copilot免费版上线!
人工智能·gpt·chatgpt·github·openai·copilot
IT古董2 小时前
【机器学习】机器学习的基本分类-强化学习-策略梯度(Policy Gradient,PG)
人工智能·机器学习·分类
centurysee2 小时前
【最佳实践】Anthropic:Agentic系统实践案例
人工智能
mahuifa2 小时前
混合开发环境---使用编程AI辅助开发Qt
人工智能·vscode·qt·qtcreator·编程ai
四口鲸鱼爱吃盐2 小时前
Pytorch | 从零构建GoogleNet对CIFAR10进行分类
人工智能·pytorch·分类
蓝天星空2 小时前
Python调用open ai接口
人工智能·python
睡觉狂魔er2 小时前
自动驾驶控制与规划——Project 3: LQR车辆横向控制
人工智能·机器学习·自动驾驶
scan7242 小时前
LILAC采样算法
人工智能·算法·机器学习