本文转载自谢澎涛的知乎专栏。
最近几年,有很多工作使用张量分解学习隐变量模型的参数:Tensor decompositions for learning latent variable models。这种方法最大的亮点是可以获得参数的全局最优解,因此最近几年获得广泛的关注。在此,对这种方法做一个简单介绍。
隐变量模型本质上是一个定义在两类变量上的概率分布:隐含变量和观测变量。隐变量模型中的两个最基本任务是:
- (1)给定观测变量,推断隐含变量,在概率图模型术语中,通常称这个任务为inference;
- (2)估计模型中的参数,通常称这个任务为learning。本文探讨的张量分解方法主要是用于解决第二个问题。
我们在本科的数理统计课程中学过,给定观测样本,学习概率分布的参数,通常的方法有两种:最大似然估计和矩估计。在过去几十年,隐变量模型的参数学习使用最多的是最大似然估计:给定数据,写出似然函数,然后通过优化似然函数估计参数。最大似然估计简单直观、普遍适用、statistically efficient,一直是参数估计的主流方法。然而它有一个缺点是,隐变量模型的似然函数基本上都是非凸函数,很难获得全局最优解。优化似然函数的常用方法如EM和variational EM, 通常只能获得局部最优解。
为了解决这个问题,获得参数的全局最优解,很多人开始转向另外一种方法:矩估计。基于张量分解的方法就属于这一类。矩估计的基本思路是,求样本的低阶矩,写出一组方程,方程的左侧是empirical moments,右侧是模型参数的表达式,然后通过解方程组得到参数的值。例如,给定从一个高斯分布中抽取的N个样本
,怎么用矩估计推断参数μ和σ呢?写出一阶和二阶矩,
,
,然后解这两个方程即可。张量分解的方法也是类似的思路,写出这样一组方程,然后求解。然而由于隐变量模型通常比较复杂,带来两个问题:(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
本文来源于哈工大SCIR