论文部分内容阅读
混合模型是指一个大的分布是由多个子分布混合而成,每个子分布可以被认为是一个隐变量,即该变量无法被直接观测到,但又能真切的影响到整体分布中观测变量的取值。混合模型参数估计,即要挖掘该模型中的子分布,根据一定的先验知识对子分布做出假设,并根据实际的样本数据来估计其每一个子分布的参数。传统的混合模型参数估计的求解方法主要分为两类:统计学习类算法和矩估计。统计学习类算法,如期望最大算法(EM,Expectation Maximum),该类算法用极大似然估计的思想,通过“求最大似然”和“求期望”两个步骤进行迭代,逐渐接近最终求解值。该类算法计算简单,但容易陷入局部最优值,因此学者们考虑用矩估计的思想来解决该问题,主要运用张量建模样本矩来近似样本的真实矩。张量是向量矩阵在高维空间的自然扩展,向量只有一行数据(一维数据),矩阵具有行和列(二维数组),张量则是多维数组的形式。张量得益于高维空间的数据结构,可以描述多个变量之间的复杂函数对应关系。本文用张量分解来对混合模型的参数估计问题进行求解,属于矩估计的范畴。根据样本数据求出其二阶和三阶矩,用张量分解的方式,直接求得待估计的参数。本文首先阐述了张量分解、混合模型等基本的概念及张量分解在混合模型参数估计领域的应用。之后,以提高张量分解求解混合模型参数的效率为目的,将传统张量分解算法与“分而治之”的思想相结合,提出了本文的块张量分解算法(PTD,Partitioned Tensor Decomposition),并通过实验详细论证了该算法的有效性。同时,本文又进一步设计并实现了基于Spark平台的PTD算法,使得该算法能够满足工业界应对大规模数据的挑战。本文的主要贡献有以下三个方面:(1)提出了“锚张量”的概念,通过锚张量的共享,将一个大张量划分为几个小的子张量,可以对每个子张量进行并行分解,大大提高了分解的效率。同时通过本文提出的匹配机制,可以将每个子张量的分解结果,精确的合并为待估计的混合模型参数。(2)改进张量分解算法。通过对传统张量分解算法中迭代公式的研究和推导,提出了“负值置0”和“加入极小正值”两个操作,既保证了张量分解结果的非负性,又提高了该算法的鲁棒性。(3)通过Mapreduce机制在Spark平台设计实现并测试了本文的算法。通过对Mapreduce思想的研究,将本文改进的算法PTD在Spark上实现,使得该算法具有应对大数据的能力。实验结果表明,相比于传统的串行算法,本文的改进确实能提高张量分解的效率,能够在保证准确率的基础上,更加高效的进行张量分解,同时,Mapreduce化算法的实现,使得该算法具有应对大数据的能力。