论文部分内容阅读
在过去的几年中,随机变分推断在多种机器学习任务中显示出其强大能力,其应用涵盖自然语言处理和信息检索等各个领域。各领域应用不断收集待处理的数据,引发了大数据时代的到来。目前,数据的增长速度早已远超硬件能力的增长速度,因此分布式平台的使用成为大数据训练的主流解决方案。遗憾的是,关于随机变分推断的大多研究仍然停留在解决应用数学问题的阶段。而分布式随机变分推断的设计包含更多系统工程问题,如设计数据和模型的划分与聚合、算法复杂性、通信代价等许多方面。在面对大数据时,分布式随机变分推断面临以下新的挑战:1.首先,随着数据量和模型维度的增加,有必要利用分布式计算环境来加速对随机变分推断算法的训练。另一方面,分布式平台Apache Spark的日益普及,吸引了许多用户将数据放入其生态系统。然而,结合工业界经验和现有研究,Spark运行分布式机器学习算法的速度慢,其中也包括随机变分推断算法。一种现有的解决方案是,用户可以将训练任务切换到一个声称性能较好的专用系统,例如参数服务器,但用户必须经历将数据移入和移出Spark的痛苦过程,带来新的代价。2.其次,人们普遍认为分布式随机变分推断算法的通信效率过低。然而,在这方面的理论研究仍然是一片空白。同时,分布式随机变分推断算法的通信间隔对训练效率和推断质量有重要影响,但很难估计和选择合理的通信间隔。3.第三,尽管利用随机变分推断算法解决小型和静态数据集上的问题已被广泛和深入的研究。但在实际情况下,数据集通常非常庞大,并且是以流的形式收集的。在现实世界中,在海量流数据上运行机器学习算法,面临三个挑战:模型演化,数据动荡和实时推断。为此,本文的主要研究内容和研究成果如下:1.本文研究了分布式系统中随机变分推断算法效率问题。为了提高利用随机变分推断处理海量数据时的效率问题,本文以潜在狄利克雷分配(latent Dirichlet allocation,LDA)学习模型为例,重点分析了Spark官方处理机器学习的软件包MLlib中实现的分布式Online-LDA算法的性能瓶颈。本文论证了,Spark的性能劣势来源于求解方法不够合理,而并非控制Spark执行的BSP(bulk synchronous parallel)模型的基本缺陷导致的。本文通过利用模型平均(model averaging,MA)可以显著提高Spark中求解潜在狄利克雷分配问题的通信效率,以此设计的MA-LDA算法性能更好。本文实现这一改进是不需要改变Spark或MLlib的本质特性的,它仅需要在应用层进行少量的开发工作。并且本文通过使用其他系统优化策略,进一步提升了MA-LDA算法训练速度,使之与Spark上的现有算法相比提高几个数量级。实验评估结果表明,MA-LDA算法令Spark的计算速度可以与专用机器学习平台上最快的潜在狄利克雷分配算法相媲美,收敛后获得的模型质量更具优势。2.本文研究了分布式随机变分推断算法在理论上的收敛性和通信效率问题。成果1基于实验比较,表明了基本分布式随机变分推断(Spark中的Online-LDA)比模型平均随机变分推断(MA-LDA)具有更高的通信代价。但是,如何从理论上分析比较这些算法的收敛速率和通信效率,仍然是研究空白。为解决这一问题,本文提出了一种形式化的分析流程,用该流程可以从理论上分析各种分布式随机变分推断算法的通信效率。基于该分析流程,本文首先推导出,基本分布式随机变分推断算法具有线性通信复杂性O(T),其中是每个计算结点处理的数据量。之后本文通过分析得出,模型平均随机变分推断算法具有亚线性通信复杂性O(T3/4)。本文不但填补了从理论上分析比较不同分布式随机变分推断算法的研究空白,并且可以启发研究人员设计和分析更好的算法以提高训练效率。3.本文研究了分布式模型平均随机变分推断算法中通信间隔问题。成果1和成果2分别从应用和理论两方面论述了模型平均随机变分推断算法的优势,同时可知,通信间隔的合理设定十分必要,但非常困难。为了弥补固定通信间隔的固有缺陷,本文设计了一个新颖的通信间隔动态变化的算法,该算法的特点是,通信间隔会随着模型收敛而线性递减。本文从理论上证明了该算法的收敛速率和通信复杂性均为当前最优。与基本模型平均随机变分推断算法相比,该算法避免了固定通信间隔引发的问题。用该算法求解潜在狄利克雷分配问题的实验结果展示了其优势。4.本文研究了面向流数据的分布式随机变分推断算法高效训练和实时推断问题。为了应对现实世界流数据处理面临的三个挑战:主题演化,数据动荡和实时推理,本文提出了一种新颖的分布式随机变分推断算法来求解流数据上的潜在狄利克雷分配问题:StreamFed-LDA。该算法在支持终身学习的框架上实现,可捕获流数据上不断发展的主题。另一方面,该算法在学习最新数据特征同时,保留历史信息,以应对数据动荡情况。此外,其引入了可以降低计算和通信代价的技术,从而增加算法的吞吐量并减少等待时间,面对海量流数据可提供实时推断。本文在四个真实数据集上评估该算法,实验表明,StreamFed-LDA的训练性能明显优于其他的基准算法,推断延迟减少几个数量级。