作者简介:辛宇(1987-),男,博士研究生.研究方向:数据与知识工程.E-mail:xinyu@hrbeu.edu.cn
由于LDA模型需要预先给定话题个数 k,因此在进行最优话题个数 k选取时需要对语料库进行 k值循环计算,从而加剧了算法的复杂度。针对LDA模型的最优 k值选取问题,提出LDA话题增量训练算法。该方法首先以词-话题概率熵值作为LDA迭代过程中模糊单词的选取标准,并将抽取模糊单词归入新话题;其次,增加LDA变分推理过程中全局参数 β(单词 -话题概率矩阵)和 α(狄利克雷分布参数)的维数及话题个数 k;再次,将变换后的全局参数 β、 α和 k作为输入进行变分训练;最后,循环调用LDA话题增量训练算法并在似然函数值收敛时停止循环过程,完成 k的增量训练。此外,通过对真实数据集的实验分析验证了本文算法对最优 k值选取的有效性和可行性。
As the number of topics k should be given in advance in LDA model, therefore, to choose the optimal number of topics k cyclical calculation is needed, which will increases the complexity of the algorithm. To solve the problem of choosing the optimal topics k, the LDA topic increments training algorithm is proposed. First, the entropy of word-topic probability is taken as the extract standard of fuzzy word in the iterative process, and a new topic is generated by the extracted fuzzy word. Second, the dimension of the global parameter β (word-topic probability matrix), dirichlet parameter α, and number of topics k, are increased in the process of variational inference. Third, the variational training algorithm is executed with the transformed global parameters β, α and k. Finally, the LDA topic increment training algorithm is executed cyclically, which is stopped while the likelihood is converged to complete the increment training of k. The effectiveness and feasibility of the proposed algorithm for optimal topics number k is verified by experimental analysis on real datasets.
LDA(Latent dirichlet allocation, LDA)模型是近些年来话题提取的通用模型[1]。目前, 话题模型相关的工作大多是对LDA模型进行修改, 或者是将LDA模型作为整个概率模型的一个部件。在LDA模型中, 假设每个文档的主题概率分布服从Dirichlet分布, 并没有对不同主题之间相关性进行刻画。然而, 在真实的语料中, 不同主题之间存在相关性的现象很普遍[2]。
在面向LDA模型演化研究方面, 2004年, Blei等[3]提出了主题间为树结构的层级(Hierarchical LDA)。在该模型中, 树中的每个节点代表一个主题, 该模型还有一个特点是可以从语料中估计出主题的个数, 并与使用LDA模型在不同主题数下重复实验得到的最佳主题个数一致。Blei等[4, 5]于2006年又在层级LDA的基础上提出了相关主题模型(Correlated topic model, CTM), 与LDA不同的是, CTM从对数正态分布中对主题概率分布进行采样。Li等[6]针对CTM只考虑两个主题间关系的不足, 提出了PAM模型(Pachinko allocation model, PAM), 该模型的特点是把主题之间的关系表示成一个有向无环图, 其中叶子节点是单词, 可以看成是由所包含的子节点(主题或单词)构成。之后Mimno等[7]又在PAM的基础上提出了层级PAM模型, 该模型可以看成是把层级LDA和PAM结合起来, 使得PAM模型中的非叶子节点也具有单词的概率分布。Wang等[8]向模型中添加了一个作为观测值的时间随机变量后得到了主题随时间变化的主题模型(Topic over time, TOT), 该模型认为主题概率分布受到时间信息的影响, 且时间变量服从beta分布。
在面向上下文信息分析的话题提取方面, 通常主题模型假设单词序列中的单词是可交换的, 即单词的顺序和模型的训练结果无关, 在考虑当前节点和其他节点的关系时, 就破坏了LDA的可交换性假设。Griffiths等[9]认为可以通过HMM来捕捉句法结构信息, 通过LDA来提示语义关系, 并将两者结合在一起提出了HMM-LDA模型。Wallach[10]认为语料库生成过程中, 一个单词除了依赖于其对应的主题外还与前一个单词有关, 提出超越词袋(Beyond bag-of-words)的主题模型。张晨逸[11]等人提出利用MB-LDA进行微博主题挖掘, 该模型在挖掘出微博主题的同时还可挖掘出联系人关注的主题, 并将LDA模型推广到了社交网络中。韩晓晖[12]等人提出了一种基于LDA的低质量回贴检测方法, 利用检测回贴质量的二元分类性训练SVM分类器, 以区分出质量回贴。
在面向特定任务研究方面, Blei等[13]针对分类问题提出了有监督LDA模型(Supervised latent dirichlet allocation, sLDA), 该模型将训练语料中的文档类别标记为观测值加入LDA模型, 且类别标号服从一个与文档主题概率分布有关的正态线性分布。Steyvers等[14]提出作者主题模型(Author topic, AT), 认为每个作者有一个主题概率分布。McCallum等[15]又在AT模型的基础上, 提出了作者接受者主题模型(Author recipient topic, ART)以判定个人的社会角色。
以上模型的话题个数k均需预先给定, 若要确定最优话题个数k* 则需要循环探测, 其复杂度过高。文献[5]和文献[7]的实验表明, 当k的个数超过某一数据时, k* 的选择开始变得模糊, 导致LDA的最优话题个数选择方法复杂度高且结果不精确。因此, 设计一种高效可行的最优话题个数选择方法是LDA研究的关键问题。本文针对LDA模型的最优k值选取问题, 提出LDA话题增量训练算法, 并通过对真实数据集的实验分析验证了本文算法对最优k值选取的有效性和可行性。
LDA模型是以单词-话题-参数先验关系构成的3层贝叶斯模型, 三者之间的关系表达模型如图1所示, 其中M为语料库中的文档个数, N为单词表中的单词个数, zdn为文档d中单词n所属话题的概率, θ d为文档d中话题zdn分布的先验参数, α 为语料库中θ 的全局先验参数, β 为k× N单词-话题概率矩阵, 其中k为话题个数, β i, j=p(w=j|z=i)且β i, * =1。根据上述条件概率关系, 文档-单词的数学模型可表示为:
语料库-单词的数学模型可表示为:
LDA的生成模型可假设如下:
(1)p(θ |α )~Dir(α )。其表达式为:
(2)p(z|θ )~ Multinomial(θ )。
(3)p
根据式(3)(4), 式(2)可表示为:
式中:
加入文档内部估计参数γ 和φ , γ 为β 的文档样本估计值, φ 为文档内部话题的后验概率, φ i, j=p(z=j|w=i)。
假设γ 和φ 相互独立。利用变量β 和z建立文档内部隐含参数的估计模型如下:
变分推理以极大化单词-话题分布的似然函数p(w|α , β )为目标, 通过在似然函数中加入样本估计参数γ 和φ , 实现对全局参数α 和β 的优化。为此, 式(5)的似然函数表达式如下:
式中:Eq为利用估计参数γ 和φ 计算的期望, 由于Dirichlet分布属于一种指数分布族, 根据文献[1]可知:
变分推理的优化过程即寻找L(γ , φ ; α , β )的极值过程。根据式(8)可得:
根据式(9)可得:
式(11)包含了(α , β , γ , φ )4个参数, 其中
式(12)~(15)分别对(α , β , γ , φ )求零值导数可得到(α , β , γ , φ )的极值关系式如下:
根据式(16)~(19)变分推理的参数训练过程分为文档内部参数循环训练过程(训练γ , φ )和语料库总体参数训练过程(训练α , β )。文档内部参数循环训练过程是语料库总体参数过程的子过程。图2为训练过程的盘子模型图, 其中黄色箭头线表示文档内部参数训练过程, 参数γ , φ 根据式(17)和(19)以α , β 为参数进行循环迭代以优化参数γ , φ ; 棕色箭头表示语料库总体参数训练过程, 在语料库内所有文档完成对参数γ , φ 的训练后, 根据式(16)和(18)调整全局参数α , β ; 蓝色箭头表示LDA模型的似然函数的计算过程。
LDA话题提取存在两方面问题需要改进:
(1)由于LDA算法在初始运行时需要人为给定话题个数k(较小的整数), k与最佳话题个数k* 的偏离度决定了LDA话题发现的质量, 若k< k* 会导致话题训练的欠拟合, 若k> k* 会导致话题训练的过拟合, 如何选择k值是LDA话题发现尚未解决的问题。
(2)LDA在样本的训练过程中缺少对β 中“ 模糊单词” (即话题归属不确定的单词)的处理, 导致β 矩阵中各话题间的模糊化, 并使得后续的训练结果出现相似的话题结果, 影响话题分类的有效性。
为说明以上两方面问题, 本文统计了CNN网站中的50组话题, 建立了50个样本话题, 并在每组话题中选择词频最高的5个名词作为样本话题词汇, 如表1所示。随机选择2~5组样本话题构成文档, 并以1000个随机文档为单位, 建立40组语料库。
本文对40组语料库建立10~70个话题的LDA跟踪运算, 所得的likelihood值如图3所示, 其中横坐标为话题个数, 纵坐标为likelihood值。由于本文所建立的40组语料库是50个话题的混合, 因此理想状态下50个话题的likelihood值应为极值, 且50个话题的各每组样本likelihood值的偏差应该较小。但图3所示的结果说明LDA算法在话题个数大于40时, 出现likelihood值的模糊化, 无法根据likelihood值判断最优话题个数k* 。
本文对第1、8、15、22、29、36组语料库LDA训练后的β 值进行分析, 由于表1数据集中属于同一话题的单词编号邻近, 因此属于同一话题的单词在β 矩阵的位置邻近, 可将β 矩阵元素中的最大值进行聚类以分析LDA的分类效果。β 矩阵的聚类轮廓图如图4所示, 其中x轴为话题号, y轴为单词号。由于表1数据集中各样本话题单词无重复, 因此理想状态下β 矩阵聚类轮廓图的每行每列仅有一个话题聚类簇, 从图4中可直观看到语料库中第1、8、15、22组数据的LDA分析结果较差。
另外, 图4中LDA算法所挖掘出的编号相邻的话题相似度较大, 且有效识别个数最多为40(语料库36)。为了提高LDA的话题精度, 降低话题间的相似度, 本文提出LDA话题增量训练算法, 在提高话题分类精度的同时增量挖掘优化话题个数k* 。
变分推理的执行过程中, 以文档内部话题-单词的后验概率φ 作为α 和β 训练的中间变量φ i, j=p(z=j|w=i), 若话题个数为k(k< k* , k* 为最优话题个数), 必存在某一单词的话题不确定度较高, 即φ i, * 的熵值entropy(φ i, * )较大, 其中某一单词wi的熵值表达式为:
entropy(φ i, * )是对单词wi的不确定性度量, entropy(φ i, * )越大则wi的不确定性越高, 当前的k个话题对wi的划分越不合理。此时, 可提取entropy值较大的单词重新组合为一个新的话题, 并复用之前的迭代结果。由于话题的增加需要进行一次语料库总体参数训练(增加参数α 和β 的维数), 为此LDA话题增量训练算法对参数α 和β 的修改如下:
(1)增加β 矩阵的维数。引入熵的阈值参数σ , 选择entropy(φ i, * )大于σ 的wi构成新的话题, 并将新话题按熵值归一化, 加入β 矩阵。
β k+1, i=
其中
(2)增加α 的维数。以新的β 和α 作为初始参数执行新一次迭代。
α k+1=
在LDA的执行过程中, 迭代次数越高参数β 和α 的训练越充分, 为防止LDA话题增量训练算法在β 和α 尚未充分训练的条件下进行φ 的熵值选择, 导致LDA训练不充分而影响话题发现质量, 需要在LDA迭代过程中加入迭代参数c, 每进行c次迭代时执行一次LDA话题增量训练算法。
图5为LDA话题增量训练算法的参数训练过程, 其中绿色箭头为LDA话题增量训练算法对α 和β 的增量训练过程。
具体的算法描述如下:
功能:利用LDA话题增量训练算法对训练最优话题个数k*
输入:初始话题个数k
输出:最优话题个数k* 及语料库参数α 和β
count=0;
k* =k;
repeat
initialize
initialize γ i:=α i+N/k* for all i
for every document
repeat
for n=1 to n
for i=1 to k*
end for
normalize
until convergence
β ij=β ij+
end for
α = newton_raphson(γ t+1); //using the newton_raphson method
β =mnormalize(β );
count=count+1;
if count == c
α k+1=
β k+1, i=δ
k* =k* +1;
count=0;
end if
until convergence(likelihood)
图6为语料库13的LDA迭代跟踪过程(语料库13共进行57次迭代), 从中可以直观发现LDA算法对66~70号单词“ makeup” 话题的识别较差, 其原因在于LDA迭代过程中未能在β 矩阵中提取“ makeup” 话题, 使得“ makeup” 单词的话题隶属度相对模糊, 影响了β 后序训练过程中对“ makeup” 话题的识别。
本文利用大量模拟实验验证了LDA话题增量训练算法参数的有效范围分别为σ =(0~1.6), c=(3~12), 并在4.3节分析了参数σ 和c的最优取值问题, 图7为利用本文LDA话题增量训练算法(以10为初始k值, σ =0.3, c=5)对语料库13的增量迭代过程, 该图直观显示了话题个数从10增量训练到50的过程中, 话题间的独立逐渐增强, 相比于图6中LDA话题增量训练算法更趋于理想状态。
图8为40组语料库在本文算法下的likelihood值(以10为初始值, σ =0.3, c=5), 该图显示了本文算法的最佳话题发现个数集中在40~50之间。
在数据集的选择方面, 本文采用有明确文档分类的数据集, 以分析本文算法对话题个数选取的有效性, 本文分别选取了自然语言处理中常用的3组数据集, 各数据集的介绍如下:
(1)所选择的数据库包括第36届加拿大国会记事录Aligned Hansards of the 36th Parliament
of Canada(AHPC) a卷(共40个议案)和b卷(共40个议案), 总单词量约为1 300 000个。将每个议案的章节作为LDA分析的“ 文档” , 由于同一议案趋近于同一话题, 因此该数据集的理想话题个数均为40。
(2)兰卡斯特新闻书籍语料库The Lancaster Newsbooks Corpus, 本文算法取其中25类(500本书)书籍为数据集, 以每本书的摘要作LDA分析的“ 文档” , 由于同一类书籍的新闻话题近似, 因此该数据集的理想话题个数为25。
(3)路透社经典文档分类语料库Reuters 21578 Classic text categorization corpus (共50类), 以每本书的摘要作LDA分析的“ 文档” , 该数据集已将各文档进行了分类, 因此该数据集的理想话题个数为50。
本文算法对上述数据分别利用LDA和LDA话题增量训练算法(σ =0.3, c=5)进行40次实验, 其对比结果如图9所示, 其中蓝色为LDA算法的分析结果, 红色为本文算法的分析结果, 从结果可直观判断本文算法的likelihood高于LDA算法, 验证了本文算法的话题分类合理性高于LDA算法。在话题个数识别方面, 各组数据的话题个数分别为40、45、23、55, 接近于理想话题个数。
本文利用LDA话题增量训练算法对第36届加拿大国会记事录Aligned Hansards of the 36th Parliament of Canada(AHPC)a卷(共40个议案)作为数据集进行200次迭代, 每次迭代进行15次实验, 其中参数分别为σ =(0.1∶ 0.1∶ 1.5), c=5, 每次将话题个数收敛于38~42的结果判定为正确(共有1036次正确分类), 其统计直方图如图10(a)所示。以AHPC数据集进行200次迭代, 每次迭代进行8次实验, 其中参数分别为σ =0.3, c=(3∶ 1∶ 10), 每次将话题个数收敛于38~42的结果判定为正确(共有966次正确分类), 其统计直方图如图10(b)所示。通过图10(a)与(b)的分析可知:当σ > 1.5时分类的趋于无效, 且c的最优取值区间为(3, 10)。图11为AHPC的三维stem图, 其中LDA话题增量训练算法的最优值为σ =0.45, c=6。
本文利用LDA话题增量训练算法, 创新采用以单词-话题概率熵值作为LDA迭代过程中模糊单词选择标准, 将所选择模糊单词归入新的话题优化LDA的迭代过程, 以提高话题独立性为手段提高各单词的合理化分类; 所提出的LDA话题增量训练算法可在实现LDA话题分类优化的同时对最优话题个数k进行增量训练, 最后通过实验对比验证了本文算法在话题分类合理度likelihood与k自动选择方面的优越性, 对深入研究话题分类模型具有一定的理论和实际意义。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|