文章目录
概率图模型是一类用图来表达变量相关关系的概率模型。
简介
常见图模型
NLP中概率图模型演变
隐马尔可夫模型
- 有向图
- 生成式模型
马尔科夫链
系统的下一个时刻的状态仅有当前状态决定,不依赖于以往任何状态
参数
- 状态转移概率
- 输出观测概率
- 初始状态概率
三个基本问题
- 求观测序列概率
- 由观测序列求隐藏模型状态
- 由观测序列对参数估计使得观测序列出现概率最大
存在的问题
- 在很多序列标注任务中,当不能枚举观察输出时,需要用大量的特征来刻画观察序列。也就是说需要用特征对观察输出参数化。如任务中当出现未登录的公司名字,除了传统的单词识别方法外,还需要额外的特征信息,如大写字母、结尾词、词性等等。
- 许多NLP任务需要解决的是已知观察序列求状态序列,HMM采用的生成式联合概率模型来求解这种条件概率问题,这种方法不适合用很多特征描述观察序列的情况(因为生成式模型的特征需要提前给定,而判别式会从观测中提取特征)。
随机场
A stochastic process is a family of random variables X ( t ) t ∈ T {X(t)}_{t\in T} X(t)t∈Twhere for each t t t, X ( t ) X(t) X(t) is a random variable, and t t t varies in the set T T T called the index set. Theoretically, the definition does not put any restriction on the index set T T T, it can be any set. However, when we say stochastic process, 99% of time we are actually thinking t t t as the time, hence, T T T must be the real line or the set of integers or a part of them.
When this is not the case, most commonly, when
T
T
T is actually a higher dimensional Euclidean space or a part of it, or something like that (a “manifold”), then
X
(
t
)
t
∈
T
{X(t)}_{t\in T}
X(t)t∈Tis called a random field. The idea is that since the index is no longer one-dimensional, we can not think it as time, so we think it as space. As a result, we don’t get a
“process”, we get a “field”. Thus what we get is a random surface, or a random multivariate function.
马尔可夫随机场
- 无向图
- 生成式模型
- 也称为概率无向图
势函数
定义在变量子集上的非负实函数,主要用于定义概率分布函数,作用是定量刻画变量集 x Q x_Q xQ中变量之间的相关关系
团&最大团
- 团:结点集合中的任意两点都有边相连
- 最大团:团加入另外一个结点后不再形成团
基于最大团定义的联合概率
P ( x ) = 1 Z ∗ ∏ Q ∈ C ∗ ψ Q ( x Q ) P(x)=\frac{1}{Z^*}\prod_{Q\in C^*}\psi_Q(x_Q) P(x)=Z∗1∏Q∈C∗ψQ(xQ)
分离集
若从结点集A中的结点到B中的结点都必须经过结点集C中的结点,则称A和B被C分离
性质
- 全局马尔科夫性
给定两个变量子集的分离集,则这两个变量子集条件独立 - 局部马尔科夫性
给定某变量的邻接变量,则该变量条件独立于其他变量 - 成对马尔科夫性
给定所有其他变量,两个非邻接变量条件独立
最大熵马尔科夫随机场
最大熵马尔科夫随机场又称条件马尔科夫模型,结合了HMM与ME模型的共同特点,用于处理序列标注问题。
MEMM是有向图和无向图的混合模型,其主体还是有向图框架。
上面提到HMM存在的两个问题,因此MEMM直接采用条件概率模型 P ( S T ∣ O T ) P(S_T|O_T) P(ST∣OT),从而使观察输出可以用特征表示,借助最大熵框架进行特征选取。
HMM与MEMM的区别
实线箭头表示所指结点依赖于箭头起始结点,虚线箭头表示箭头所指的是起始结点条件。
- 在HMM中,当前时刻的观察值仅取决于当前状态
- 在MEMM中,当前时刻的观察还可能取决于前一时刻的状态
优点
与HMM相比,最大的优点是允许使用任意特征刻画观察序列,有利于针对特定任务充分利用领域知识设计特征。
缺点
标记偏置问题
- 原因一是熵低的状态转移分布会忽略它们的观察输出
- 原因二是参数的训练过程是从左向右依据前面已经标注的标记进行的,一旦实际过程中前面的标记不能确定时,MEMM往往难以处理
条件随机场
https://www.cnblogs.com/pinard/p/7048333.html
CRF是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,特点是假设输出随机变量构成马尔科夫随机场。
- 无向图
- 判别式模型
- 可以看做给定观测值的马尔科夫随机场
- 也可看做对率回归的扩展
参数化形式
三个基本问题
- 特征选取
- 参数训练,可在训练集上基于对数似然函数的最大化进行
- 解码
优点
- 相比HMM,主要优点在于条件随机性,只需要考虑当前已经出现的观测状态的特性,没有独立性的严格要求,对于整个序列内部的信息和外部观测信息均可有效利用,避免了MEMM和其他线性序列条件马尔科夫模型会出现的标记偏置问题
与马尔科夫随机场区别
从公式上看二者均使用团上的势函数定义概率
- 条件随机场处理的是条件概率,马尔科夫随机场处理的是联合概率
与MEMM区别
CRF具有MEMM一切优点,关键区别在于
- MEMM使用每一个状态的指数模型来计算前一个状态下当前状态的条件概率
- CRF使用单个指数模型来计算给定观测序列下与整个标记序列的联合概率
近似推断
采样
MCMC
设法构造一条马尔科夫链,使其收敛至平稳分布恰为待估计参数的后验分布,然后通过这条马尔科夫链来产生符合后验分布的样本,并基于这些样本进行估计。
假定平稳马尔科夫链 T T T的状态转移概率(从状态 x x x转移到 x ′ x' x′的概率)为 T ( x ′ ∣ x ) T(x'|x) T(x′∣x), t t t时刻状态分布为 p ( x t ) p(x^t) p(xt),则若某个时刻马尔科夫链满足平稳条件
p ( x t ) T ( x t − 1 ∣ x t ) = p ( x t − 1 ) T ( x t ∣ x t − 1 ) p(x^t)T(x^{t-1}|x^t)=p(x^{t-1})T(x^t|x^{t-1}) p(xt)T(xt−1∣xt)=p(xt−1)T(xt∣xt−1)
则 p ( x ) p(x) p(x)是该马尔可夫链的平稳分布,且马尔可夫链在满足该条件时已收敛到平稳状态。
不同的构造方法将产生不同的MCMC算法。
Metropolis-Hastings
基于拒绝采样来逼近平稳分布
根据上一轮采样结果 x t − 1 x^{t-1} xt−1来采样获取候选状态样本 x ∗ x^* x∗,但是候选样本会以一定概率被拒绝。假定从状态 x t − 1 x^{t-1} xt−1转移到 x ∗ x^* x∗的转移概率为 Q ( x ∗ ∣ x t − 1 ) A ( x ∗ ∣ x t − 1 ) Q(x^*|x^{t-1})A(x^*|x^{t-1}) Q(x∗∣xt−1)A(x∗∣xt−1),其中 Q ( x ∗ ∣ x t − 1 ) Q(x^*|x^{t-1}) Q(x∗∣xt−1), A ( x ∗ ∣ x t − 1 ) A(x^*|x^{t-1}) A(x∗∣xt−1)为 x ∗ x^* x∗被接受的概率,若 x ∗ x^* x∗最终收敛到平稳状态则
p ( x t − 1 ) Q ( x ∗ ∣ x t − 1 ) A ( x ∗ ∣ x t − 1 ) = p ( x ∗ ) Q ( x t − 1 ∣ x ∗ ) A ( x t − 1 ∣ x ∗ ) p(x^{t-1})Q(x^*|x^{t-1})A(x^*|x^{t-1})=p(x^*)Q(x^{t-1}|x^{*})A(x^{t-1}|x^{*}) p(xt−1)Q(x∗∣xt−1)A(x∗∣xt−1)=p(x∗)Q(xt−1∣x∗)A(xt−1∣x∗)
为了达到平稳状态,只需要将接受率设置为
A ( x ∗ ∣ x t − 1 ) = min ( 1 , p ( x ∗ ) Q ( x t − 1 ∣ x ∗ ) p ( x t − 1 ) Q ( x ∗ ∣ x t − 1 ) ) A(x^*|x^{t-1})=\min(1,\frac{p(x^*)Q(x^{t-1}|x^*)}{p(x^{t-1})Q(x^{*}|x^{t-1})}) A(x∗∣xt−1)=min(1,p(xt−1)Q(x∗∣xt−1)p(x∗)Q(xt−1∣x∗))
吉布斯采样
可视为MH算法的特例
假定 x = { x 1 , ⋯   , x N } \mathbf{x}=\{x_1,\cdots,x_N\} x={x1,⋯,xN},目标分布为 p ( x ) p(\mathbf{x}) p(x),在初始化 x \mathbf{x} x的取值后,通过循环执行以下步骤
- 随机或以某个次序选取某变量 x i x_i xi
- 根据 x \mathbf{x} x中除 x i x_i xi以外的变量的现有取值,计算条件概率 p ( x i ∣ x i ˉ ) p(x_i|\mathbf{x}_{\bar{i}}) p(xi∣xiˉ),其中 x i ˉ = { x 1 , ⋯   , x i − 1 , x i + 1 , ⋯   , x N } \mathbf{x}_{\bar{i}}=\{x_1,\cdots,x_{i-1},x_{i+1},\cdots,x_N\} xiˉ={x1,⋯,xi−1,xi+1,⋯,xN}
- 根据 p ( x i ∣ x i ˉ ) p(x_i|\mathbf{x}_{\bar{i}}) p(xi∣xiˉ)对 x i x_i xi进行采样,用采样值代替原值