最大熵模型 Maximum Entropy——统计建模技术之一

/ NLP / 没有评论 / 1229浏览

最大熵原则

英文名:Principle of Maximum Entropy

最大熵模型是一种统计建模技术

如果对不了解,请查看熵(Entropy)与信息量详细介绍——统计机器学习核心概念

如果对统计建模不了解,请查看统计建模(Statistical Modeling)——统计机器学习建模介绍

对于词性标注,一个词语,可能有多种标记
比如“把”,可以是介词,动词,量词, 名词
对于每一种词性,并不知道占多大比例,也就是 P(介词) = ?
但一定满足约束条件:$\sum p=1$

对于上述例子,在没有任何语料支持的情况下,可以使用熵最大的均匀分布,即

p(介词) = p(动词) = p(量词) = p(名词) = 1/4

这就是所谓的最大熵原则

最大熵原则描述

为什么用最大熵原则

基于最大熵原则构建的统计模型称为最大熵模型

利用最大熵原则进行统计建模的方法称为最大熵方法

最大熵模型

对于上述词性标注的例子,“把”的词性是一个集合 Y ={介词,动词,量词,名词}
统计建模后一定会输出一个 $y \in Y$, y 表示建模后得到的“把”的词性
输出 y 的过程中,可能受上下文信息的影响,我们把这个语境因素定义为 x, x 形成的集合为 X

X 表示句子出现在“把”周围的所有词汇

我们需要构建一个模型,该模型的任务是在给定上下文 x 的情况下,输出 y 的概率 $p(y|x)$

经验分布函数

为了得到模型,需要收集大量的语料样本 {$(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{n}, y_{n})$}

但无论怎样,都只能收集一定数量的样本

我们引入一个新的经验分布函数 $\tilde{p}$ 来表示训练样本

$$\tilde{p}(x, y) = \frac{c(x,y)}{N}$$

特征函数

除了经验分布函数以及一些约束条件外,还可以考虑上下文依赖信息,这个信息叫做特征

该特征刻画了 x 与 y 之间的某种共现关系

特征实际上是关于(x,y)的一个二值函数

对于上述词性标注的例子,我们可以定义一个函数 $f(x,y)$.
x:"一"出现在“把”之前
y:量词
则 $f(x,y)=1$,表示这两个条件共现

特征函数的期望

特征 f 关于经验分布$\tilde{p}(x,y)$, 在训练样本中出现的期望(观察值)为:

$$E_{\tilde{p}}f = \sum_{x \in X, y \in Y} \tilde{p}(x,y)f(x,y), \qquad \tilde{p}(x, y) = \frac{c(x,y)}{N}$$

最大熵方法

方法描述

存在样本数据 O = { $(x_{1}, y_{1}),(x_{2}, y_{2}), ..., (x_{n}, y_{n})$ }, $x_{i} \in X, y_{i} \in Y$

求解模型分布 $P(x, y)$, 该分布应该满足下面两个条件

$$p^* = arg \max_{p} H(p)$$

约束条件

特征 $f(x, y)$ 的模型期望可表示为

$$E_{p}f = \sum_{x \in X, y \in Y} p(x,y)f(x,y)$$

最大熵方法认为,为了使模型分布符合样本中的统计,特征的模型期望应该与特征的观察期望值一致

$$E_{p}f = E_{\tilde{p}}f$$

若共有k个特征, 则

$$E_{p}f_{j} = E_{\tilde{p}}f_{j}, \qquad 1 \leq j \leq k$$

P = { $p | E_{p}f_{j} = E_{\tilde{p}}f_{j}, \quad 1 \leq j \leq k$ }

求解最大熵模型就成为一个约束最优化问题。

约束最优化

所有的约束条件如下

$$p^{*} = \underset{p \in P}{\mathrm{argmax}} H(p), \qquad H(p) = -\sum_{x \in X, y \in Y}p(x,y)\log p(x,y)$$

$$E_{p}f_{j} = E_{\tilde{p}}f_{j}, \qquad 1 \leq j \leq k$$

$$\sum_{x \in X, y \in Y}p(x, y) = 1$$

运用拉格朗日乘数法,构建拉格朗日函数

$$L(p, \wedge, \alpha) = H(p) + \sum_{j}\lambda_{j}(E_{p}f_{j}-E_{\tilde{p}f_{j}}) + \alpha(\sum_{x \in X,y \in Y}p(x,y)-1), \quad \wedge = (\lambda_{1}, \lambda_{2},..., \lambda_{k})$$

拉格朗日函数针对 p 求微分,并令其为 0,有

$$p(x,y) = \frac{1}{Z}exp(\sum_{i}\lambda_{i}f_{i}(x,y))$$

特征 $f_{i}$ 对分布的影响通过拉格朗日乘数 $\lambda_{i}$ 来体现
Z 是归一常数

$$Z=\sum_{x \in X,y \in Y}exp(\sum_{i}\lambda_{i}f_{i}(x,y))$$

上述分布即为符合最大熵原则的概率分布形式

最大熵模型是一种对数线性模型,其中指数部分表述为特征的一种线性加权组合

最大熵模型总结

最大熵方法的优点

特征选择策略

对于样本数据,可以设计出成千上万的特征,并非所有特征的样本期望值都是可靠的,很多特征的样本期望值带有偶然性,与特征的真实期望并不一致,引入这样的特征无益于统计建模工作,所以需要有特征选择策略

模型训练方法

可以采用数值最优化算法,两种考虑方式

二者训练结果是一致的, 即

$$p^{*} = \underset{p \in P}{\mathrm{argmax}} H(p) = \underset{q \in Q}{\mathrm{argmax}} L(q)$$

目前提出的用于训练最大熵模型的算法有(迭代)