浅析基于张量分解的隐变量模型参数学习

最近几年,有很多工作使用张量分解学习隐变量模型的参数:Tensor decompositions for learning latent variable models。这种方法最大的亮点是可以获得参数的全局最优解,因此最近几年获得广泛的关注。在此,对这种方法做一个简单介绍。

隐变量模型本质上是一个定义在两类变量上的概率分布:隐含变量和观测变量。隐变量模型中的两个最基本任务是:(1)给定观测变量,推断隐含变量,在概率图模型术语中,通常称这个任务为inference;(2)估计模型中的参数,通常称这个任务为learning。本文探讨的张量分解方法主要是用于解决第二个问题。我们在本科的数理统计课程中学过,给定观测样本,学习概率分布的参数,通常的方法有两种:最大似然估计和矩估计。在过去几十年,隐变量模型的参数学习使用最多的是最大似然估计:给定数据,写出似然函数,然后通过优化似然函数估计参数。最大似然估计简单直观、普遍适用、statistically efficient,一直是参数估计的主流方法。然而它有一个缺点是,隐变量模型的似然函数基本上都是非凸函数,很难获得全局最优解。优化似然函数的常用方法如EM和variational EM, 通常只能获得局部最优解。

为了解决这个问题,获得参数的全局最优解,很多人开始转向另外一种方法:矩估计。基于张量分解的方法就属于这一类。矩估计的基本思路是,求样本的低阶矩,写出一组方程,方程的左侧是empirical moments,右侧是模型参数的表达式,然后通过解方程组得到参数的值。例如,给定从一个高斯分布N(\mu , \sigma )中抽取的N个样本X_1, ..., X_N, 怎么用矩估计推断参数\mu\sigma呢?写出一阶和二阶矩,\frac{1}{N}\sum_{i=1}^{N}X_i=\mu, \frac{1}{N}\sum_{i=1}^{N}X_i^2=\mu^2+\sigma^2, 然后解这两个方程即可。张量分解的方法也是类似的思路,写出这样一组方程,然后求解。然而由于隐变量模型通常比较复杂,带来两个问题:(1)这样的方程不一定能写出;(2)即使写出,也很难解出来。由于第一个问题的存在,张量方法(目前)只适用于某些隐变量模型,如隐马尔可夫模型,话题模型,高斯混合模型,并不像最大似然方法那样普遍适用于任何模型。怎么写出这组方程本身是一个很值得研究的问题。对于第二个问题,张量分解就派上用场了,通过某种变换,将矩方程组的求解问题转化为张量分解问题,然后对得到的张量进行分解,得到components (components类似于矩阵谱分解的特征向量),再用这些components去恢复隐变量模型的参数。

张量分解本质上也是一个优化问题,而且是个非凸优化问题。那么问题就来了,如果在这个非凸优化中得到的是局部最优解,那么最终学到的模型参数不还是局部最优的吗?碰巧的是,如果张量是对称的,而且components 要求是正交的,尽管是非凸优化,也能获取全局最优解。这是基于张量分解的隐变量模型参数估计方法最核心的一点,是这类方法声称能够获得参数全局最优解的最根本原因。

至此,这类方法的基本思路就清楚了:

  1. 写出基于低阶矩的一组方程,方程组的解就是隐变量模型的参数
  2. 将方程组的求解转化为一个正交对称张量分解问题
  3. 对这个对称张量进行正交分解,获取components(能够保证获得全局最优解)
  4. 用获得的components恢复隐变量模型的参数

在上面四步中,1,2,4都是确定性的变换,第3步是个非凸优化问题,但是能够得到全局最优解。所以综合起来,可以获得隐变量参数的全局最优解。

这类方法被用于若干个模型,针对每个模型都有一篇文章,基本的思路都是上面列举的四点。但是针对不同的模型,如何完成1,2,4,也不是件容易的事,具体细节可以参考如下文献。

1.Tensor decompositions for learning latent variable models

2.A method of moments for mixture models and hidden Markov models

3.A spectral algorithm for latent dirichlet allocation

4.A tensor approach to learning mixed membership community models

5.Two svds suffice: Spectral decompositions for probabilistic topic modeling and latent dirichlet allocation

6.Generalization Bounds for Neural Networks through Tensor Factorization

编辑于 2015-10-11 09:29