2. 南京审计大学 管理科学与工程学院, 南京 211815
2. School of Management Science and Engineering, Nanjing Audit University, Nanjing 211815, China
大数据时代, 网络信息纷繁复杂, 需要我们从众多网络数据中提取出高价值的隐含信息, 挖掘出的分类信息可用于内容推荐、针对性营销以及实时预测等功能. 而其中主题分类又是现今网络信息时代的一大研究热点, 传统的主题分类主要是以基本分类方法以及人工标签来实现, 但是人工干预过多势必影响到最终的分类结果, 这就需要我们寻求一个无监督的方法, 从文档信息的采集到最后的结果输出无需人工参与.
LDA (Latent Distributed Allocation)主题模型便是一个无监督的数据挖掘方法, 该模型可从大规模数据中进行文档主题的抽取, 能够出色地完成挖掘文本的潜在关系、判别关联性等工作, 显著提高信息的分类及利用效率. LDA模型参数计算的空间以及时间复杂度较高, 并且对软硬件需求也提出高要求, 所以模型参数求解优化一直是研究热点. Blei等人采用“变分推断-EM”算法进行LDA模型参数计算, 在单机模式下, 随机变分推断快速而准确, 但是在分布式计算中因交互过高而显疲态[1]; 批量变分推断具有很高的交互效率, 但在计算E-step时并行效率差强人意[2]; 马尔可夫链在分布式同步和异步计算方面体现出较好的移植性, 但其计算效率过低还有待优化[3]; 唐晓波等人采用热度进行模型参数计算的优化, 通过求解微博的热度来实现信息的分类工作, 其结果也更加直观, 但是其热度的计算方法比较单一, 并不适用于其他的网络数据的分类工作[4].
而在LDA模型的针对性使用方案方面也进行了大量研究, Ramage等人提出Labeled LDA模型进行有监督的主题分类, 在主题建模中添加文档的标签, 克服了原始模型强制分配主题的缺陷, 但是也使得计算量翻倍增加[5]; 桂思思等人融入多时间节点函数进行用户兴趣的预测, 但是时间差值的确定比较主观, 偏差不可避免[6]; 关鹏等人采用生命周期理论同主题模型结合, 能够展现所观察文本的随时间所发生的变化, 然而参数的计算没有改进为适合生命周期理论的方法[7].
上述国内外对于LDA主题模型的改进都针对特定的数据分类, 而在处理数据量大、维度较高的网络信息时效率、准确性等问题便凸显出来, 且上述研究大部分都是单机下进行实验, 平台移植性较差. LDA主题模型涵盖了大量的数据以及变量, 构成了高维数据问题, 在时间轴上产生了大量的多元数据, 其中也包含很多数据噪声, 而张量分解方法能够通过数据降维以及张量近似的方法来优化计算. 本文通过随机奇异值分解和白化变换将主题模型参数计算转化为三阶张量的CP分解, 加之以ALS算法以及数据处理技术, 极大地提高了并行化和准确性, 可达到更高的收敛率以及抗干扰性. 本文实验在Spark集群上进行, 充分发挥Spark作为轻量级大数据处理框架的特点, 及其大规模数据的计算效率明显优于Hadoop的特性. 改进后的LDA计算模型适用于大数据时代复杂且高维的信息特点, 能够出色地完成巨量网络信息的分类工作, 适用于搜索引擎、文本解读、信息推送等数据应用领域.
1 相关基础理论在国内外学者的讨论当中, LDA主题模型暴露出其不足的方面, 单机模式下, 模型训练时间长, 精确度不高, 并且对于模型超参求解的要求较高, 这些都对模型的发展应用提出了挑战. 现被广泛使用的LDA参数求解方法有变分推断和马尔可夫链, 但数据量较大的情况下, 两种方法的计算效率还是比较低下, 这就需要我们采用“分治”思想, 选用张量分解的方法来优化模型参数计算, 采用更高效率和精确度的降维计算方法, 同时使用分布式计算模式来提升模型训练的效率, 以适用于网络大数据量文本的主题分类推荐.
1.1 LDA主题模型潜在狄利克雷分布模型LDA由Blei等人于2003年提出后, 便被广泛应用于观点挖掘、主题相关性和信息检索等领域[8]. LDA通过对离散数据集的建模, 从中提取文本隐含主题, 能在海量网络数据中自动寻找信息间的语义主题, 克服传统信息检索中文档相似度计算方法的缺陷. LDA主题模型属于词袋模型, 它认为文本中包含着无序的词语, 参数空间的规模与训练文档数量无关, 适合处理大规模语料库. 同时作为全概率生成模型, LDA主题模型的突出优点是具有清晰的层次结构[9], LDA是一个三层的贝叶斯框架模型, 每一层都有相应的随机变量或者参数控制, 包含词汇、主题、文档的三层结构, 数据集中的文档被看作是有限个隐含主题所构成的混合分布, 而相应的每个主题也都是对应的数据集中一组特征词汇的混合分布, 模型的概率图如图1所示.
图1中, 只有
$P\left( {\theta ,z,w|\alpha ,\beta } \right) = P\left( {\theta |\alpha } \right)\prod\limits_{n = 1}^N {P\left( {{z_n}|\theta } \right)P\left( {{w_n}|{z_n},\beta } \right)} $ | (1) |
LDA模型训练便是求得参数
CP分解, 即Candecomp/Parafac分解, 是传统矩阵分解的拓展, 广泛应用于信号传输、数据分析等领域, 它是把张量分解为一系列rank-one张量的计算过程, 对于一个三阶张量
$\chi = \sum\limits_{r = 1}^R {{a_r} \otimes {b_r} \otimes {c_r}} $ | (2) |
其中,
${\chi _{ijk}} \approx \sum\limits_{r = 1}^R {{a_{ir}}{b_{ir}}{c_{ir}}} $ | (3) |
式中,
CP分解具有唯一性, 其实质上指的是张量的秩分解是唯一的, 而传统的矩阵分解并不是唯一的[10]. 目前已有多种方法可以计算CP分解, 其中最简单有效的是交替最小二乘法(Alternating Least Square, ALS), 也是本文所选用的张量分解方法. 对于三阶张量
$\begin{array}{ll}{\text{迭代目标}}:&\mathop {min}\limits_{A,B,C} \left\| {\chi - \left( {C \odot B} \right){A^{\rm{T}}}} \right\|;\\{\text{初始化}}:&B = \hat B{\text{和}}C = \hat C;\\{\text{迭代}}:&{{\hat A}^{\rm{T}}} = \left( {\hat C \odot \hat B} \right){X^{(1)}}\\&{{\hat B}^{\rm{T}}} = \left( {\hat A \odot \hat C} \right){X^{\left( 2 \right)}}\\&{{\hat C}^{\rm{T}}} = \left( {\hat A \odot \hat B} \right){X^{\left( 3 \right)}}\end{array}$ | (4) |
式中, 符号⊙表示Khatri-Rao积, 当满足一定的迭代条件时, 迭代终止. 因为ALS算法需多次迭代才收敛, 所以我们将算法应用到Spark平台中进行分布式计算, 以求快速的求得全局的最优参数, 减少大量的实验时间, 这也是分布式计算在现今模型求解中的优势之处.
2 基于张量分解的主题分类模型 2.1 基于张量分解的LDA主题分类主体模型在LDA主题模型中, 每篇文档都存在着K个潜在的主题, 第k个主题具有“主题-词语”的条件分布概率
传统的LDA主题模型的参数估计方法包括变分推断, 马尔可夫链等, 本文采用矩量法将参数估计转化为张量分解的方式进行迭代. 主题为
${M_1}: = E\left[ {{x_1}} \right]$ | (5) |
${M_2}: = E\left[ {{x_1} \otimes {x_2}} \right] - \frac{{{\alpha _0}}}{{{\alpha _0} + 1}}{M_1} \otimes {M_1}$ | (6) |
$\begin{aligned}{{M}_{3}}:= & E\left[ {{x}_{1}}\otimes {{x}_{2}}\otimes {{x}_{3}} \right]-\frac{{{\alpha }_{0}}}{{{\alpha }_{0}}+2}\Bigg( E\left[ {{x}_{1}}\otimes {{x}_{2}}\otimes {{M}_{1}} \right] \\ & + \Bigg. E\left[ {{x}_{1}}\otimes {{M}_{1}}\otimes {{x}_{3}} \right]+E\left[ {{M}_{1}}\otimes {{x}_{2}}\otimes {{x}_{3}} \right] \\ & + \left. \frac{2{{\alpha }_{0}}^{2}}{\left( {{\alpha }_{0}}+2 \right)\left( {{\alpha }_{0}}+1 \right)}{{M}_{1}}\otimes {{M}_{1}}\otimes {{M}_{1}} \right) \\ \end{aligned}$ | (7) |
其中,
${M_2} = \mathop \sum \limits_{k = 1}^K {\alpha _k}{\varphi _k}{\varphi _k}$ | (8) |
${M_3} = \mathop \sum \limits_{k = 1}^K {\alpha _k}{\varphi _k}{\varphi _k}{\varphi _k}$ | (9) |
其中,
在进行
模型最终会生成“文档-主题”、“主题-词语”概率分布, 根据“文档-主题”矩阵可选取概率最大的主题为该文档的第一候选主题, 而通过“主题-词语”矩阵可推断是该主题的具体含义, 结合文档中已经得出的候选主题, 便可实现该文档的主题分类.
2.2 模型的关键技术
2.1小节中基于张量分解的LDA主题分类模型可拆分为3个重要阶段, 第1阶段为数据预处理, 第2阶段为基于ALS算法的CP分解, 第3阶段为主题分类计算.
(1) 数据预处理
网络信息不同于普通文本信息, 数据形式、结构均有差异, 所以预处理的首要工作便是进行分词等一系列操作, 数据预处理完成后, 需对数据进行向量化以及降维操作, 以便大量减少参数迭代时的计算量. 在进行张量形式的多维数组操作时, 数据维数的大小直接决定了矩阵操作的计算量大小, 尤其是在处理自然语言这种高维数据时, 在内存中进行三阶矩的存储操作的运算量都是极大的. 数据稀疏化是其中一类方法, 更好的则是进行线性降维, 加之以张量乘积的形式来避免直接生成张量, 能够大幅度减少计算规模, 并且对于张量的操作也是高效的[14].
在此首先进行张量白化变换(Whitening Transfor-mation), 低秩正交分解二阶矩
随机奇异值分解算法可以总结为两步计算, 第一阶段构造一个正交基, 其值域接近于
由随机奇异值分解可得
$\begin{aligned}\hat \varphi {{\hat \varphi }^{\rm{T}}} & = {\Sigma ^{ - 0.5}}{U^{\rm{T}}}\mu {\rm{Diag}}\left( {\alpha _i^{0.5}} \right){\rm{Diag}}\left( {\alpha _i^{0.5}} \right){\mu ^{\rm{T}}}U{\Sigma ^{ - 0.5}}\\& = {\Sigma ^{ - 0.5}}{U^{\rm{T}}}U\Sigma {U^{\rm{T}}}U{\Sigma ^{ - 0.5}} = {W^{\rm{T}}}{M_2}W = {I_K}\end{aligned}$ |
最后使用公式(7)可计算生成维数为
(2) 基于ALS算法的张量分解
$\mathop {min}\limits_{{{\hat M}_3}} {\tilde M_3} - {\hat M_3} \leftarrow {\hat M_3} = \mathop \sum \limits_{i = 1}^K {\lambda _i}{a_i}{b_i}{c_i} = \lambda ;A,B,C$ | (10) |
其中,
$\mathop {min}\limits_{\hat X} {\tilde M_3} - \hat X\left( {{{\left( {C \odot B} \right)}^{\rm{T}}}} \right)\;\;{\rm{s.t.}}\;\;\hat X = X \cdot Dia{\rm{g}}\left( \lambda \right) = {\tilde M_3}{\left[ {{{\left( {C \odot B} \right)}^{\rm{T}}}} \right]^{\dagger} }$ | (11) |
将
$\begin{array}{c}\left( {\lambda ,A} \right) \leftarrow \mathop {min}\limits_{\lambda \in {{\mathbb{R}}^k},X \in {{\mathbb{R}}^{k \times k}}} X \cdot Dia{\rm{g}}\left( \lambda \right){\left( {C \odot B} \right)^{\rm{T}}} - {{\tilde M}_3}\\{\rm{s.t.}}\;\;\forall k:{X_k} = 1,{\lambda _k} \ge 0\end{array}$ | (12) |
其中, ⊙表示Khatri-Rao积, 每次迭代都进行
${\left( {C \odot B} \right)^{\dagger} } = {\left( {\left( {{C^{\rm{T}}}C} \right)*\left( {{B^{\rm{T}}}B} \right)} \right)^{\dagger} }{\left( {C \odot B} \right)^{\rm{T}}}$ | (13) |
式中,
(3) 模型主题分类计算
张量分解收敛后, 采用反白化变换, 计算原文档集中的狄利克雷先验分布
给定CP分解后的
①
②原词汇空间的狄利克雷先验参数
③
由反白化变化可推导出
实验包括模型对比和主题分布分析, 实验数据通过WebMagic爬虫技术在网络上自动抓取, 通过对页面的分析来下载相应的新闻信息文本, 主要采集于各大新闻网站的新闻信息数据, 如“中国新闻网”、“凤凰网”等, 主要涉及经济、军事、文化等领域, 在进行文本的白噪声处理后, 筛选出1800条作为原始分析数据. 为保证实验的可靠性以及可识别性, 需定义停用词表, 词表中包含常用词、常见语气词、助词等高频率出现的词语, 同时根据中文文本的特殊性, 还进行了繁简转换, 保证实验数据的格式统一, 通过该停用词典可剔除大部分的噪声词语[19].
实验使用Scala作为编程语言, 在Spark集群模式上进行模型训练与预测, 主节点master进行任务调度, 从节点worker进行同步的运算. worker之间交替的计算更新的参数, 广播参数至其他的节点, 最后进行数据的同步. 而master则负责检查是否实时的检验是否需要结束运算以及负责各节点资源之间的调度, 实验集群均为Centos 7系统, 每个节点内存均为4 G, 实验主要步骤如图3所示.
3.2 实验结果与分析
实验首先将模型训练时间和困惑度同基于EM算法的LDA模型进行对比, 其中, 模型生成时间是体现模型计算是否高效的重要指标之一, 而困惑度则是衡量模型是否同原始数据相吻合的重要检验标准, 最后通过网络新闻数据的预测, 来说明基于张量分解的LDA主题模型适用于网络数据的分类工作.
(1) 训练时间对比
在相同运行环境下, 设置迭代次数为500次, 主题数为50, 将本文模型同基于EM算法的主题模型进行训练对比, 通过增加计算节点数来对比模型训练时间长短, 结果显示基于张量分解的主题模型在时间方面显现出极大的优势, 如图4所示.
从图中可以看出, 基于张量分解的主题模型在训练时间明显优于基于EM算法的LDA主题模型. 增加节点数对于运算时间的减少是明显的, 体现出Spark大数据平台在各节点内存不变的情况下, 节点个数对于运行时间是成反比的. 两个算法开始增加节点数对于时间的优化更是相当显著, 但随着节点数的增加, 增益效果降低, 同基于EM算法的LDA主题模型相比, 基于张量分解的LDA模型在节点数增加时, 其计算时间下降幅度更大, 表明基于张量分解的LDA主题模型对多节点的集群有更好的计算能力, 更加表现出模型对于大运算量的适应性.
(2) 困惑度对比
困惑度作为文本建模中常用的评价指标, 其值越小, 模型对于上下文的约束能力就越强, 表明语言模型吻合度越好[8]. 其公式如下所示:
$perplexity\left( {{D_{\rm{test}}}} \right) = {\text{exp}}\left\{ { - \frac{{\mathop \sum \nolimits_{m = 1}^M \log p\left( {{W_m}} \right)}}{{\mathop \sum \nolimits_{m = 1}^M {N_m}}}} \right\}$ | (14) |
式中,
在相同的语料和参数设置下, 计算基于EM算法的LDA主题模型和基于张量分解的主题模型, 两种方法困惑度随隐含主题数目的变化情况如图5所示.
通过图5可得到, 随着主题数量的不断增加, 两个模型的困惑度都在相应的降低, 在达到最低点时, 主题抽取的个数各不相同, 基于张量分解的LDA主题模型在该训练文档集中主题数为50时困惑度最小. 在数据量较大、主题较多时, 本文模型困惑度明显低于基于EM算法的LDA主题模型.
(3) 主题分布分析
将预处理的新闻信息通过本文LDA主题分类模型进行训练, 针对新闻文本的特殊性, 在定义特征词时, 进行数据预处理时加入了时间等词的停用, 设置主题数为50,
表2可以看出, 每篇文档根据文中词语的分布, 不局限于单个主题, 但第一个主题的概率较大, 可以整体概括整篇文档的大概主题方向. 例如文档5中主题1的概率为0.777 85, 相对应, 主题一中出现的都是企业发展类的词汇, 则主题1便为企业主题, 进一步的将文档5便可分类到企业模块.
表3清晰地展现出不同主题其中的含义, 可读性强, 同时本文实证数据来源于网络新闻信息, 从中可窥探社会热点. 主题1涉及企业发展, 其大部分的词语均是企业在现代社会发展所重视的方面, 同时也是企业发展中强调的高频词. 而主题30则是经济类, 通过各经济词语的罗列, 能够对部分的金融的专业用词有一定的了解, 可运用于新闻定位推送, 同时在新闻里出现, 更能说明媒体以及公众对于经济的关注. 最后主题48则为文化产业电影类, 新闻中能够涉及到如下的词语, 说明人们在现今生活高压力下对于电影、文化的关注. 以上的“主题-词语”分布能够说明主题模型对于网络数据分类的高效性, 显性地挖掘网络信息中所蕴含的内涵, 可充分适用于信息推荐、搜索引擎当中.
4 结论与展望本文将张量分解引入到LDA主题模型的训练中, 利用矩量法将数据转换为张量分解的计算形式, 运行基于交替最小二乘法的CP分解进行参数迭代, 最后使用网络数据在大数据平台Spark中验证分析, 实验表明, 基于张量分解的LDA主题模型在网络数据主题、词汇生成方面同基础主题模型更有优势, 更加适用于网络数据主题的分类. 当然, 网络数据的预处理准确性有待提高, 对于主题模型的原始输入以及计算优化是我们下一阶段需要研究的内容.
[1] |
Hoffman MD, Blei DM, Wang C, et al. Stochastic variational inference. Journal of Machine Learning Research, 2013, 14(5): 1303-1347. |
[2] |
Nallapati R, Cohen W, Lafferty J. Parallelized variational em for latent dirichlet allocation: An experimental evaluation of speed and scalability. Proceedings of 2007 Seventh IEEE International Conference on Data Mining Workshops (ICDMW 2007). Omaha, NE, USA. 2007. 349–354.
|
[3] |
Griffiths TL, Steyvers M. Finding scientific topics. Proceedings of the National Academy of Sciences of the United States of America, 2004, 101(S1): 5228-5235. |
[4] |
唐晓波, 向坤. 基于LDA模型和微博热度的热点挖掘. 图书情报工作, 2014, 58(5): 58-63. DOI:10.11925/infotech.1003-3513.2014.05.08 |
[5] |
Ramage D, Hall D, Nallapati R, et al. Labeled LDA: A supervised topic model for credit attribution in multi-labeled corpora. Proceedings of 2009 Conference on Empirical Methods in Natural Language Processing. Singapore. 2009. 248–256.
|
[6] |
桂思思, 陆伟, 黄诗豪, 等. 融合主题模型及多时间节点函数的用户兴趣预测研究. 现代图书情报技术, 2015(9): 9-16. DOI:10.11925/infotech.1003-3513.2015.09.02 |
[7] |
关鹏, 王曰芬. 基于LDA主题模型和生命周期理论的科学文献主题挖掘. 情报学报, 2015, 34(3): 286-299. |
[8] |
Blei DM, Ng AY, Jordan MI. Latent dirichlet allocation. Journal of Machine Learning Research, 2003, 3(4/5): 993-1022. |
[9] |
李湘东, 胡逸泉, 黄莉. 采用LDA主题模型的多种类型文献混合自动分类研究. 图书馆论坛, 2015, 35(1): 74-80. |
[10] |
Sidiropoulos ND, Bro R. On the uniqueness of multilinear decomposition of N-way arrays. Journal of Chemometrics, 2000, 14: 229-239. DOI:10.1002/(ISSN)1099-128X |
[11] |
Kolda TG, Bader BW. Tensor decompositions and applications. SIAM Review, 2009, 51(3): 455-500. DOI:10.1137/07070111X |
[12] |
Anandkumar A, Foster DP, Hsu D, et al. A spectral algorithm for latent dirichlet allocation. Algorithmica, 2015, 72(1): 193-214. DOI:10.1007/s00453-014-9909-1 |
[13] |
Halko N, Martinsson PG, Tropp JA. Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions. SIAM Review, 2010, 53(2): 217-288. |
[14] |
Anandkumar A, Ge R, Hsu D, et al. Tensor decompositions for learning latent variable models. The Journal of Machine Learning Research, 2014, 15(1): 2773-2832. |
[15] |
Liu SZ, Trenkler G. Hadamard, khatri-rao, kronecker and other matrix products. International Journal of Information and Systems Sciences, 2008, 4(1): 160-177. |
[16] |
Valiant LG. A bridging model for parallel computation. Communications of the ACM, 1990, 33(8): 103-111. DOI:10.1145/79173.79181 |
[17] |
Wang YN, Tung HY, Smola A J, et al. Fast and guaranteed tensor decomposition via sketching. Proceedings of 2015 Advances in Neural Information Processing Systems (NIPS). Montreal, Canada. 2015. 991–999.
|
[18] |
Macausland R. The moore-penrose inverse and least squares[Thesis]. Tacoma, Washington, USA: University of Puget Sound, 2014.
|
[19] |
冯永, 李华, 钟将, 等. 基于自适应中文分词和近似SVM的文本分类算法. 计算机科学, 2010, 37(1): 251-254, 293. |