第四章 实体识别:图模型基础
实战:https://blog.csdn.net/weixin_42486623/article/details/118347853
代码:https://github.com/daiyizheng/NER-Set/tree/master/hmm
概率模型
机器学习
最重要的任务是根据已观察到的证据(例如训练样本)对感兴趣的未知变量(例如类别标记)进行估计和推测。
概率模型(probabilistic model)
提供了一种描述框架,将任务归结为计算变量的概率分布。在概率模型中,利用已知的变量推测未知变量的分布称为“推断(inference)",其核心在于基于可观测的变量推测出未知变量的条件分布,即由 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)。
- 生成式:计算联合分布 P ( Y , R , O ) P(Y,R,O) P(Y,R,O)
- 判别式:计算条件分布 P ( Y , R I O ) P(Y,RIO) P(Y,RIO)
符号约定
- y为未知变量的集合,O为可观测变量集合,R为其他变量集合
如何由 P ( Y , R , O ) P(Y,R,O) P(Y,R,O)或 P ( Y , R I O ) P(Y,RIO) P(Y,RIO)得到 P ( Y ∣ O ) P(Y|O) P(Y∣O)
思路:直接利用概率求和规则消去变量。
可行性:不可行!即便未知变量集合Y和其他变量集合R中,每个变量只有简单的两种取值,则该方法的时间和空间复杂度为指数级别 O ( 2 ∣ Y ∣ + ∣ R ∣ ) O(2^{|Y|+|R|}) O(2∣Y∣+∣R∣)。
概率图模型分类
- 有向图:贝叶斯网(适合为有单向依赖的数据建模)
- 无向图:马尔可夫网(适合实体之间互相依赖的建模
有向图概率
概率乘法公式
联合概率
无向图概率
联合概率
用因子分解将p(Y)写为若干个联合概率的乘积
隐马尔可夫模型(Hidden Markoy Model,HMM)
组成
-
状态变量: { y 1 , y 2 … , y n } \{y_1,y_2…,y_n\} {y1,y2…,yn}通常假定是隐藏的,不可被观测的
- 系统通常在多个状态 { S 1 , S 2 , … , S N } \{S_1,S_2,…,S_N\} {S1,S2,…,SN}之间切换,因此,状态变量 y i y_i yi的取值范围(状态空间)通常有N个可能取值的离散空间;
-
观测变量: { x 1 , x 2 , … , x n } \{x_1,x_2,…,x_n\} {x1,x2,…,xn}表示第刻的观测值集合
- 观测变量可以为离散或连续型(本章中只讨论离散型观测变量), x i x_i xi取值范围为 { o 1 , o 2 , … , o w } \{o_1,o_2,…,o_w\} {o1,o2,…,ow},即观测变量通常有M个可能取值的离散空间。
t时刻,观测变量 x t x_t xt的取值仅依赖于状态变量 y t y_t yt;
t时刻,状态 y y y,仅依赖于 t − 1 t-1 t−1时刻状态 y t − 1 y_{t-1} yt−1,与其余 n − 2 n-2 n−2个状态无关
HMM的基本组成
- 确定一个HMM需要三组参数 λ = [ A , B , T ] \lambda=[A,B,T] λ=[A,B,T]
状态转移概率:模型在各个状态间转换的概率
表示在任意时刻 t t t,若状态为 s i s_i si;,下一状态为 s j s_j sj的概率;
A = [ a i j ] N × N A=[a_{ij}]_{N \times N} A=[aij]N×N a i j = p ( y t + 1 = s j ∣ y t = s i ) , 1 ≤ i , j ≤ N a_{ij}=p(y{t+1}=s_j|y_t=s_i), 1≤i,j≤N aij=p(yt+1=sj∣yt=si),1≤i,j≤N
N表示隐藏状态可能取值的离散空间
输出观测概率:模型根据当前状态获得各个观测值的概率
在任意时刻 t t t,若状态为 s i s_i si;,则其对应的输出变量为 o j o_j oj的概率;
B = [ b i j ] N × N b i j = p ( x t = o j ∣ y t = s i ) , 1 ≤ i ≤ N , 1 ≤ j ≤ M B=[b_{ij}]_{N \times N} b_{ij}=p(x_t=o_j|y_t=s_i), 1≤i≤N,1≤j≤M B=[bij]N×Nbij=p(xt=oj∣yt=si),1≤i≤N,1≤j≤M
M表示观测变量可能取值的离散空间
初始状态概率:模型在初始时刻各个状态出现的概率
π = [ π 1 , … , π n ] π i = P ( y 1 = s i , 1 ≤ i ≤ N \pi=[\pi_1,…,\pi_n] \pi_i=P(y_1=s_i, 1≤i≤N π=[π1,…,πn]πi=P(y1=si,1≤i≤N
P ( x 1 , y 1 , … , x n , y n ) = P ( y 1 ) P ( x 1 ∣ y 1 ) ∏ n i = 2 P ( y i ∣ y i − 1 ) P ( x i ∣ y i ) P(x_1,y_1,…,x_n,y_n)=P(y_1)P(x_1 |y_1)\prod_{n}^{i=2}P(y_i|y_{i-1})P(x_i|y_i) P(x1,y1,…,xn,yn)=P(y1)P(x1∣y1)∏ni=2P(yi∣yi−1)P(xi∣yi)
HMM的生成过程
通过指定状态空间 y y y,观测空间X和上述三组参教,就能确定一个隐马尔可夫模型。给定 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π],它按如下过程生成观察序列:
- 设置 t = 1 t=1 t=1,并根据初始状态m选择初始状态 y 1 y_1 y1;
- 根据状态 y t y_t yt,和输出观测概率B选择观测变量取值 x t x_t xt;
- 根据状态 y y y,和状态转移矩阵A转移模型状态,即确定 y t + 1 y_{t+1} yt+1;
- 若 t < n tt<n,设置 t = t + 1 t=t+1 t=t+1,并转到第2步,否则停止。
对于模型 A = [ A , B , π ] A=[A,B,\pi] A=[A,B,π],给定观测序列 x = { x 1 , x 2 . . X n } x=\{x_1,x_2..X_n\} x={x1,x2..Xn}
- 概率计算问题:评估模型和观测序列之间的匹配程度,有效计算观测序列其产生的概率 P ( x ∣ A ) P(x|A) P(x∣A);
- 预测问题:根据观测序列“推测”隐藏的模型状态 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;
- 参数学习问题:如何调整模型参数 λ = [ A , B , π ] \lambda=[A,B,\pi] λ=[A,B,π]以使得该序列出现的概率 P ( x ∣ π ) P(x|\pi) P(x∣π)最大。
具体应用
- 根据以往的观测序列 x = { x 1 , x 2 . . . , x n } x=\{x_1,x_2...,x_n\} x={x1,x2...,xn}预测当前时刻最有可能的观测值。
- 语音识别:根据观测的语音信号推测最有可能的状态序列(即:对应的文字)。
- 通过数据学习参数(模型训练)。
基于马尔可夫的条件独立性,隐马尔可夫模型的这三个问题均能高效解决(动态规划)
马尔可夫随机场
马尔可夫随机场(Markov Random Field,MRF)
图模型表示
- 结点表示变量(集),边表示依赖关系;
- 有一组势函数(Potential Functions),亦称“因子”(factor),这是定义在变量子集上的非负实函数,主要用于定义概率分布函数。
分布形式化
- 使用基于极大团的势函数(因子)
- 对于图中结点的一个子集,若其中任意两结点间都有边连接,则称该结点子集为一个“团”(clique)。若一个团中加入另外任何一个结点都不再形成团,则称该团为“极大团”(maximal clique)。
- 图中(x1,x2],{x2,x6},{x2,x5,x6]等为团,但{x2,x6)不是极大团,因为(x2,x5,x6}也是一个团。
- 每个结点至少出现在一个极大团中。
- 多个变量之间的连续分布可基于团分解为多个因子(势函数)的乘积。
基于极大团的势函数
- 联合概率分布可以使用极大团定义;
- 假设所有极大团构成的集合为 C ∗ C* C∗,则
图模型的联合概率分布
马尔可夫随机场中的分离集
- 马尔可夫随机场中得到“条件独立性"。
- 借助“分离”的概念,若从结点集A中的结点到B中的结点都必须经过结点集C中的结点,则称结点集A与B被结点集C分离,称C为分离集(separating set)。
马尔可夫随机场–全局马尔可夫性
- 借助“分离”的概念,可以得到:
- 全局马尔可夫性(global Markov property):在给定分离集的条件下,两个变量子集条件独立。
比如,令A,B,C对应的变量集分别为 x A , x B , x C x_A, x_B, x_C xA,xB,xC,则在给定 x C x_C xC的条件下, x A x_A xA和 x B x_B xB独立,记为 x A ⊥ x B ∣ x C x_A \bot x_B|x_C xA⊥xB∣xC
全局马尔可夫性的验证
- 全局马尔可夫性(global Markov property):在给定分离集的条件下,两个变量子集条件独立。
- 图模型简化:- 图模型的联合概率为:
- 条件概率
- 验证
马尔可夫随机场中的条件独立性
由全局马尔可夫性可以导出:
- 局部马尔可夫性(local Markov property):在给定邻接变量的情况下,一个变量条件独立于其它所有变量;
- 令 V V V为图的结点集, n ( v ) n(v) n(v)为结点 v v v在图上的邻接节点,
(这是因为 n ( v ) n_{(v)} n(v)是 x v x_v xv与 x V \ n ∗ ( v ) x_{V\backslash n^*(v)} xV\n∗(v)的分离集)
- 成对马尔可夫性(pairwise Markov property):在给定所有其它变量的情况下,两个非邻接变量条件独立。
- 令 V V V为图的结点集,边集为 E E E,对图中的两个结点 u u u, v v v,若 < u , v ∉ E <u,v∈/E,有 x u ⊥ x v ∣ x V \ < u , v > x_u \bot x_v|x_{V\backslash } xu⊥xv∣xV\<u,v>。
马尔可夫随机场中的势函数
势函数 φ Q ( x Q ) \varphi_Q(x_Q) φQ(xQ)中变量的相关关系,应为非负函数,且在所偏好的变量取值上有较大的函数值。
上图中,假定变量均为二值变量,定义势函数:
说明模型偏好 x A x_A xA与 x C x_C xC有相同的取值, x B x_B xB与 x C x_C xC有不同的取值,换言之, x A x_A xA与 x C x_C xC正相关, x B x_B xB与 x C x_C xC负相关。所以令 x A x_A xA与 x C x_C xC相同且 x B x_B xB与 x C x_C xC不同的变量值,联合概率取值较高。
势函数 φ Q ( x Q ) \varphi_Q(x_Q) φQ(xQ)的作用是定量刻画变量集 x Q x_Q xQ中变量的相关关系,应为非负函数,且在所偏好的变量取值上有较大的函数值。
为了满足非负性,指数函数常被用于定义势函数,即:
其中, H Q ( x Q ) H_Q(x_Q) HQ(xQ)是一个定义在变量 x Q x_Q xQ上的实值函数,常见形式为:
其中, α u v \alpha_{uv} αuv和 β v β_v βv,是参数,上式第一项考虑每一对结点的关系,第二项考虑单结点。
条件随机场(CRF)
CRF是一种判别式无向图模型,条件随机场对多个变量给定相应观测值后的条件概率进行建模,若令 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为对应的标记序列,CRF的目标是构建条件概率模型 P ( y ∣ x ) P(y|x) P(y∣x)。
标记变量y可以是结构型变量,它各个分量之间具有某种相关性。
- 词性标注任务中,观测数据为单词序列,标记为相应的词性序列,具有线性序列结构;
- 语法分析任务中,观测数据为单词序列,输出标记是语法树,具有树形结构。
令 G = < V , E > G= G=<V,E>表示结点与标记变量 y y y中元素一一对应的无向图。无向图中, y v y_v yv表示与节点 v v v对应的标记变量, n ( v ) n_{(v)} n(v)表示结点的邻接结点,若图 G G G中的每个结点都满足马尔可夫性,
则 ( y , x ) (y,x) (y,x)构成条件随机场。
- CRF使用势函数和图结构上的团来定义 P ( y ∣ x ) P(y|x) P(y∣x)。
- 考虑链式条件随机场(chain-structured CRF),如下所示:
包含两种关于标记变量的团:
- 相邻的标记变量,即 { y i − 1 , y } \{y_{i-1},y\} {yi−1,y};
- 单个标记变量, { y i } \{y_i\} {yi}。
链式条件随机场
条件概率可被定义为:
其中,
t i ( y i + 1 , x , i ) t_i(y_{i+1,x,i}) ti(yi+1,x,i):观测序列的两个相邻标记位置上的转移特征函数,用于刻画相邻标记变量之间的相关关系以及观测序列对它们的影响;
s k ( y i , x , i ) s_k(y_i,x,i) sk(yi,x,i):观测序列的标记位置i上的状态特征函数,用于刻画观测序列对标记变量的影响;
λ j , u k \lambda_j, u_k λj,uk为参数, Z Z Z为规范化因子。
通常特征函数 t j t_j tj,和 s k s_k sk取值为1或0;当满足特征条件时取1,否则为0。
CRF特征函数的直观理解
特征函数通常是实值函数,用于刻画数据中一些大概率成立或者期望成立的经验特性。特征函数本质上是一种规则。
以词性标注任务为例:
某一特征函数:
表示第 i i i个观测值x为单词’knock’时,相应的标记 y , y i + 1 y,y_{i+1} y,yi+1很可能分别为 [ V ] , [ P ] [V],[P] [V],[P]。
其实,该特征函数定义了一个规则,该规则为 “ x i “x_i “xi为单词knock时,其词性 y i y_i yi;为动词,且该单词后面一个词的标签需要是介词"。
特征函数本质上是一种规则,一个训练好的模型可以看作是多个规则的集合。
那么,每个规则在这个模型中的价值(重要性)都是相同的吗?这就是权值 λ j , u k \lambda_j,u_k λj,uk的意义,即衡量不同规则的重要程度。
示例
MRF与CRF的对比
MRF
- 使用团上的势函数定义概率
- 对联合概率建模
CRF
- 使用团上的势函数定义概率
- 有观测变量,对条件概率建模