Noise-contrastive estimation 噪声对比估计
目录 Noise-contrastive estimation 噪声对比估计
这份简短的NCE博文是对自然语言处(四) 词向量编码 word2vec 的一个小补充或额外资料吧.
在统计中, 估计非标准化的模型参数是非常困难的,或都计算复杂度太高,或者因没有积分解析形式.
基本的估计模型可如下定义:
观测变量(X in mathbb{R}^n) 服从某一未知概率分布(probability density function, pdf) (p_m(.; alpha)), 其中(alpha) 为待估参数(向量). 对于(alpha)的某一估计(hat{alpha}), 其需要满足:
理论上, 我们总可以找到满足此性质的概率密度分布函数,只需要重新定义下pdf:
上面的公式中,(p_m^0(.;alpha)) 为某一普通函数, 比上标准化常数(normalization constant, 也称为配分函数, partition function) (Z(alpha)) 后, 令(p_m(.;alpha)) 等于这个比值,作为概率密度函数, 即满足积分为1的性质. 然而, 配分函数的出现使得参数估计变得复杂, 其或计算复杂度太高,或没有积分解析形式. 处理(Z(alpha)) 的一个直观的方法是将看成一个额外的参数, 不过就不能再用最大似然估计(Maximum Likelihood Estimation, MLE)了. 因为如果(Z(alpha))趋近于0时,似然值会变得非常大. NCE在此就显示出其优越性了. NCE的基本思想是将概率密度函数的参数估计问题建模为一个判别问题, 判别数据是来源于兴趣数据集还是人为制造的噪声. 这也是NCE名字的由来.
如果将配分函数当作额外参数(比如 c), 可以改写(p_m(.;alpha)):
其中待估参( heta = {alpha, c}), c其实为(-ln Z(alpha)). 设(X= (x_1, x_2, ...,x_T))为观测变量, (Y= (y_1, y_2,..., y_T)) 为人工噪声,其分布为(p_n(.)), 将X, Y 合并成一个数据集(U = (u_1,u_2,...,U_{2T})), 并为U的每条数据分配一个标签(C_t), 比如 (C_t=1, if u _tin X), 或者(C_t = 0, if u_t in Y), 这样:
我们在构建噪声数据集时,数量与目标数据量相等,这不是必需的,可以是目标数据集的k 倍,只是这里k=1,则.
于是, 关于( heta)的对数似然:
则估计(hat{ heta}_T) 可从如何下目标函数得到:
其中
有几个性质定理就不写了,是对估计的进一步阐述.
[1]: Gutmann, M., & Hyvärinen, A. (2010). Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. Journal of Machine Learning Research, 9, 297–304.