大规模作者主题模型训练
随着网络和科技的快速发展,电子科技文献呈爆炸式增长。利用数据挖掘和文本分析等技术对科技文献语料进行分析挖掘,研究人员可以发现热点研究领域,了解领域热点研究方向变化,查找相似文献,分析领域专家的研究主题和发现领域专家等,因此科技文献分析研究具有重要的研究意义和良好的应用价值。
作者主题分析是其中一个基础任务,通过对科技文献进行作者主题分析可以发现领域专家,查找相似作者和构建作者研究主题变化图。对于作者主题分析任务,作者主题模型ATM(Author Topic Model)能对语料作者和单词同时建模,从而解决作者主题分析任务,探索作者与文献主题之间的相关性。然而巨大的文献数量给作者主题分析工作带来了难度。一方面作者主题模型训练复杂度高,耗时长,需要改进其采样算法来降低复杂度。另一方面随着语料规模增大,单机无法训练,需要借助大数据技术进行并行化训练。然而目前主题模型的并行化训练主要集中在LDA主题模型上,作者主题模型的并行化训练仍是空白。
作者主题模型的求解通常采用吉布斯采样算法求解,其每一轮迭代对语料中每个单词的采样公式如公式 (2-1) 所示。
其中,\(\alpha, \beta\)表示作者主题模型的超参数,K表示主题数,V表示语料不同单词总数。\(n^{k}_{a,\neg i}\)表示作者a的单词中属于主题k的个数,\(n_{a,\neg i}\)表示作者a的所有单词个数,\(n^{w}_{k,\neg i}\)表示单词w的主题为k的个数,\(n_{k,\neg i}\)表示语料中属于主题k的总单词个数,每个计数中的\(\neg i\)均表示计数统计是在剔除了当前单词的作者和主题信息之后的统计结果。
在作者主题模型的标准吉布斯采样算法中,每采样出一个文档的单词,需对全局计数进行更新,并且后续单词的采样依赖于更新后的全局计数。此种采样方式不适合作者主题模型的并行化训练。
同时对于每一个单词w,算法需要采样单词的作者和主题,是二维采样问题,其计算和采样复杂度均为\(O(|a_{d}|K)\),复杂度高。\(|a_{d}|\)表示单词w所属文档d的作者集\(a_{d}\)中作者的个数,K表示作者主题模型的主题个数。
由此,在大规模科技文献语料的作者主题分析任务中,对作者主题模型进行采样优化,需要解决两大问题:
- 改进作者主题模型采样算法,避免实时更新全局计数。
- 降低每个单词采样算法的复杂度。
采样优化之后,再借助Spark大数据平台实现大规模作者主题模型的训练过程。
大规模作者主题模型训练的总体架构图如图3.1所示。
图3.1 大规模作者主题模型训练框架图
本文的大规模作者主题模型训练基于Spark平台,数据存储在分布式文件系统HDFS中,主要分为全局计数更新和传递模块以及并行采样模块。
在并行采样模块,在分析了标准吉布斯采样算法用于作者主题模型训练之后,本文研究提出了作者主题模型的延迟更新采样思想及相应的采样算法MCATM,并在此基础之上针对其采样复杂度高的问题提出两种优化采样算法:基于Metropolis-Hastings采样的MHATM采样优化算法和基于全遍历的ErgodicATM改进算法。
此小节从两大块加以介绍:作者主题模型采样算法优化和大规模作者主题模型训练。
4.1 作者主题模型采样算法优化
本文提出的作者主题模型延迟更新采样思想在每轮迭代过程中不更新全局计数,每轮迭代完成之后统一更新全局计数,其相应的采样算法MCATM如算法4.1所示。
MCATM算法很好地避免了全局计数信息的实时更新过程,然而单个单词的采样复杂度并没有降低。本文提出一种MHATM优化采样算法,利用Metropolis-Hastings采样方法,选取q分布\(q(a,k)=(n^{k}_{a,\neg i}+a)\cdot\frac{n^{w}_{k,\neg i}+\beta}{n_{k,\neg i}+V\beta}\)来替代原始采样分布\(p(a,k)\),并以接受率\(accept=min(1,\frac{n_{a,\neg i}+K\alpha}{n_{a',\neg i}+K\alpha})\)来接受从q分布中采样得到的样本。同时针对q分布,通过将采样公式进行拆分并利用拆分结构的复用以及数据的稀疏性来降低采样复杂度,其拆分方法和算法复杂度分析如表4.1所示。
表4.1 MCATM中q分布采样复杂度分析
其中alias表示采用别名表采样方法采样,\(K_{a}\)表示作者a的相关主题数。由表4.1可知,通过大量的复用Alias表以及利用作者主题模型的稀疏性,可以将采样复杂度从\(O(|a_{d}|K)\)降至\(O(\sum_{a\in a_{d}}K_{a})\),提高采样效率。
MCATM算法和MHATM算法在采样时同时采样作者和主题,本文提出ErgodicATM采样算法将此二维采样问题进行分解。首先分析在知道单词w的作者a的情况下,算法只需采样得到单词的主题即可,采样主题k的公式如公式 (4-1) 所示。
由此当单词w所属文档的作者数为\(|a_{d}|\)时,进行\(|a_{d}|\)次随机采样,每次随机选定一个作者,此种方式满足了作者维度的遍历性。利用公式 (4-1) 采样得到主题k,满足了主题维度的遍历性。此时只需要保证算法采样得到的 (a,k) 倾向于概率高的作者和主题即可。公式 (4-1) 在已知单词的作者a时采样单词的主题,采样要求倾向于概率高的作者和主题,即需要采样得到与作者a较为相关的主题或者与单词w较为相关的主题。利用Metropolis-Hastings采样思想,分别定义\(q_{a}(k)=\frac{n^{k}_{a,\neg i}+\alpha}{n_{a,\neg i}+K\alpha}\),\(q_{w}(k)=\frac{n^{w}_{k,\neg i}+\beta}{n_{k,\neg i}+V\beta}\),将\(q_{a}(k),q_{w}(k)\)同时作为替代的q分布交替采样出主题k,则采样算法满足上述要求(2)。这就是ErgodicATM采样算法的思想。
在ErgodicATM采样算法中,每一轮迭代对于语料中的单词w,记其文档的作者集为\(a_{d}\),作者数目为\(|a_{d}|\)。每一个单词做\(|a_{d}|\)次采样,每次首先从\(a_{d}\)中随机选取一名作者,选定作者之后根据作者的主题分布和主题单词分布采样得到相应的主题。在采样得到单词的作者后采样主题的复杂度如下表4.2所示。
表4.2 ErgodicATM单轮根据作者采样主题分析
由此分析可知,根据作者采样主题复杂度为O(2),ErgodicATM总的采样复杂度为\(O(2|a_{d}|)\),降低了采样复杂度。
4.2 大规模作者主题模型训练
在研究得到了作者主题模型的延迟更新采样算法MCATM和相应的优化采样算法MHATM和ErgodicATM之后,大规模作者主题模型训练基于上述三种采样方式进行并行化训练。其并行化训练流程图如图4.1所示。在图4.1中,1,2步骤为预处理步骤。作者主题模型的训练是迭代过程,迭代按照3-8步骤进行。8步骤结束之后更新DataRDD的单词的作者和主题,以便于继续进行下一轮的迭代。
图4.1作者主题模型并行化训练流程图
在性能评估分析中,首先验证本文提出算法的正确性,其次评估大规模作者主题模型训练的性能,主要从数据扩展性、主题扩展性以及节点扩展性三方面评估MCATM、MHATM和ErgodicATM的性能。
5.1 算法正确性
正确性通过计算模型迭代过程中的混淆度值(perplexity)值来判断不同算法是否最终收敛到同一精确度。试验选用toydata和Citation-network-5000语料来进行测试,结果如图5.1所示,参照标准为作者主题模型的标准吉布斯采样算法ATM。
图5.1 toydata和Citation-network-5000语料正确性测试
从图5.1可知,ATM,MCATM,MHATM和ErgodicATM经过一定轮次的迭代后收敛到同一精度,证明了MHATM和ErgodicATM,MCATM算法的正确性。
5.2 数据扩展性
在数据扩展性实验中,本文选择不同规模的数据在不同的采样算法上进行训练,统计迭代时长来分析在不同规模数据下算法的扩展性,数据扩展性在并行环境下进行。实验环境设置核数均为256,每个executor分配核数8个,模型的主题统一设置为1000,超参数alpha为0.01,beta为0.01。统计前50轮迭代的平均时间,实验结果如图5.2所示。
图5.2 数据扩展性实验结果
从图5.2可知,ErgodicATM算法具有很好的语料扩展性。MHATM增长幅度缓于MCATM算法,有良好的语料扩展性能。MCATM算法随着语料增大每轮迭代时间基本呈线性增长趋势。
5.3 主题扩展性
在主题扩展性实验中,当主题数不断增大时,不同算法表现的性能不同。为了测试不同算法的主题维度扩展性,在citation-network-50000语料中,分别设置主题数为100,500,1000,3000,5000,7000,10000观察三种算法的性能,实验结果如图5.3所示。
图5.3 主题扩展性实验结果
图5.3验证了ErgodicATM具有最好的主题扩展性性能,随着主题数增加迭代时间涨幅最慢。MCATM算法基本上每轮采样时间随着主题数增加呈线性增长,符合MCATM算法的特性,而MHATM算法利用了作者主题分布的稀疏性,随着主题数的增加,其增长幅度远低于MCATM算法,拥有良好的主题扩展性。
5.4 节点扩展性
此小节中主要研究MHATM和ErgodicATM的节点扩展性,在节点扩展性实验中,本文分别选择3,6,9,12和15个节点实验,总核数分别设置为48,96,144,192和240个,时间选择前50轮迭代的平均迭代时间。实验结果如图5.4所示,证明在大规模数据下MHATM和ErgodicATM有着良好的节点扩展性。
图5.4 DBLPOnly数据集节点扩展性实验结果
针对作者主题模型,本文提出了一种作者主题模型的延迟更新采样思想以及相应的吉布斯采样优化算法MCATM算法。随后在此基础之上研究提出了两大优化算法,MHATM和ErgodicATM算法。通过理论分析,MHATM能将采样复杂度从原始\(O(|a_{d}|K)\)降到\(O(\sum_{a\in a_{d}}K_{a})\),而ErgodicATM能将采样复杂度降至和主题数目无关的级别\(O(2|a_{d}|)\)。实验结果表明,本文提出的MCATM、MHATM和ErgodicATM采样优化算法,能和原始作者主题模型的吉布斯采样算法达到同样的收敛程度,证明了本文提出的三种采样算法的正确性。
同时在Spark大数据平台上设计实现了大规模作者主题模型的并行化采样算法框架,并在此框架上设计实现了MCATM、ErgodicATM和MHATM并行化算法。通过实验分析,本文提出的作者主题模型的并行化采样框架能有效地解决大规模语料的作者主题模型采样问题,由此完成大规模主题分析任务;同时通过实验表明,本文提出的ErgodicATM算法和MHATM算法相比于MCATM算法有效地提升了采样效率,并且MHATM和ErgodicATM有着较好的数据扩展性,主题扩展性和节点扩展性。