论文部分内容阅读
主题模型(Topic Models)是一种可以从大规模语料中自动提取出隐含语义主题的生成概率模型。主题模型因为其优秀的可解释性,逐渐成为机器学习、自然语言处理、计算机视觉的重要研究课题,并在文本聚类、热点挖掘、情感分析、信息检索、推荐系统等领域取得了广泛的应用。隐含狄利克雷分配模型(latent Dirchlet allocation,LDA)是主题模型中应用最广泛的一种模型。然而,随着网络数据的爆炸性增长,分析语料库规模越来越大,主题模型需要分析的主题数目也越来越大,如何准确高效地训练如此大规模的语料库成为困扰学术界和业界的一大难题。在此背景下,本文聚焦于单机吉布斯采样算法的改进和大规模分布式LDA主题模型并行化的算法的研究与实现。针对LDA主题模型单机吉布斯采样复杂度高、收敛速度慢的特点,在深入分析了 SparseLDA、AliasLDA和LightLDA的采样方式和缺陷后,提出了一种全新的吉布斯采样公式分解方法ZenLDA。在采样过程中对每一个词项构建Alias Table和累计分布,将吉布斯采样的计算复杂度降为O(Kd),采样复杂度降为了O(logKd)。理论分析ZenLDA的计算复杂度和采样复杂度显著优于SparseLDA,AliasLDA和LightLDA。实验证明,ZenLDA在保证模型学习质量的前提下,显著提升了模型的收敛速度。大规模LDA主题模型面临突出的计算性能问题,为此需要研究实现分布并行化的LDA主题模型算法。已有LDA并行化算法存在的三个问题:1)每台采样机器的内存中始终要维护一个完整的“词项-主题”矩阵,机器的内存配置会严重限制LDA训练模型的规模;2)在每轮迭代之后,机器间需要进行大量的通信;3)每轮迭代结束之后,需要大量的时间来同步全局模型参数,降低LDA模型的收敛速度。针对上述问题,本文研究设计了基于MPI的分布式流水线LDA并行算法MPI-ZenLDA。该算法首先将机器划分为面向计算的采样机器和面向通信的通信机器,避免了每轮迭代之后的全局模型同步,并且降低了内存消耗和通信开销;然后,算法合理设计了分布式流水线方法使得采样时间隐藏在通信时间以内,大大提升了每轮迭代的速度;同时算法以改进的ZenLDA采样算法替换原有的标准吉布斯采样算法,进一步提升了采样迭代的速度。实验证明本文的MPI-ZenLDA算法在模型收敛速度和加速性能方面要显著优于已有AD-LDA算法。进一步,MPI-ZenLDA算法还存在模型学习质量不高以及不能充分利用计算资源的问题。为此,本文进一步研究提出一种基于参数服务器的分布式ZenLDA采样算法:Petuum-ZenLDA并行算法。Petuum-ZenLDA算法充分利用参数服务器的有界异步并行框架和SSP思想解决了模型学习质量不高的问题。并且,Petuum-ZenLDA算法设计了采样机器上的流式数据块读写和模型切片策略,在机器数目较少的时候也能训练大规模的主题模型。实验证明Petuum-ZenLDA算法在模型学习质量、收敛速度和加速性能方面要显著优于MPI-ZenLDA算法和LightLDA 算法。