基于舆情实时数据流的自适应LDA主题模型训练系统
未命名
10-09
阅读:96
评论:0

基于舆情实时数据流的自适应lda主题模型训练系统
技术领域
1.本发明属于大数据分布式计算挖掘领域,尤其涉及基于舆情实时数据流的自适应lda主题模型训练系统。
背景技术:
2.随着云边计算、物联网和社交媒体等新理念、新技术和新服务的不断发展,全球数据量呈爆炸式增长,如何从海量实时数据中快速、准确、全面地挖掘出有价值的信息变得尤为重要,lda主题模型广泛地应用于主题挖掘、文本分类、文本检索和社交网络分析等领域。但是传统文本类lda模型训练中通常采用静态数据单机、离线训练,主题个数及超参数β基本也是事先人为设置的先验参数,存在无法适应动态数据集、主题分类不准确、延迟高及等问题。在基于lda模型的主题分析方法设计中,秉承的基本原则是:结合分布式计算、模型参数优化及增量模型训练等策略,提高主题挖掘应用的响应效率,及时地为企业提供决策,增加效益。
技术实现要素:
3.发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供基于舆情实时数据流的自适应lda主题模型训练系统,提高主题挖掘应用的响应效率,实现海量数据的降维处理,为下游数据进一步挖掘处理提供可靠的主题分类数据支撑,最终及时的为企业提供决策,增加效益。
4.本发明包括数据汇聚模块、数据预处理模块、自适应lda模型训练模块和增量式lda模型融合模块;
5.所述数据汇聚模块用于,对结构化、半结构化数据进行抽取和转换加载,并输入到分布式的消息总线kafka中;
6.所述数据预处理模块用于,对消息总线kafka中的数据进行预处理,最后形成加权词向量;
7.所述自适应lda模型训练模块用于,对消息总线kafka中的数据进行模型最优迭代处理,训练得到lda模型结果,并将训练结果进行合并;
8.所述增量式lda模型融合模块用于进行融合训练生成新一轮lda模型。
9.所述结构化数据包括关系型数据库,通过jdbc驱动实现不同关系型数据库数据全量、增量同步操作输入到消息总线kafka中;所述半结构化数据包括json、txt和自定义格式的数据,通过开发相应文件解析或者restful接口实现数据输入到消息总线kafka中。
10.所述数据预处理模块执行如下步骤:
11.步骤a1,利用tf-idf计算词权重,其中,采用如下公式计算词频:
12.13.其中m代表语料库的文档总数,代表每篇文章中的词数叠加后的总词数,ni代表第i篇文档出现的词数,f表示某一个词在所有文章中出现的次数,tf为计算后的词频;
14.采用如下公式计算逆文档频率:
[0015][0016]
其中d+1代表包含某一词的文档数,idf为计算后的逆文档频率;
[0017]
tf-idf计算公式如下:
[0018]
tf-idf=tf*idf (3)
[0019]
tf-idf值为某一个词在所有语料库中的权重值;
[0020]
步骤a2,计算词权重:
[0021]
采用如下半衰指数型衰减函数f(c):
[0022][0023]
其中c代表与当前时间相比经过的周期数,周期大小设置为1天;
[0024]
步骤a3,计算文本分词后的词权重:
[0025][0026]
其中,tf-idf
m,j
代表第m个文档第j个词的tf-idf权重值,fm(c)代表第m个文档的时效衰减权重值,weighti代表第i个词在整个语料库中的权重值。
[0027]
所述自适应lda模型训练模块基于传统lda模型gibbs sampling采样方法,加入特征词权重估计当前特征词wi的主题zi的后验分布;然后以hownet常识知识库计算词与主题topn单词间的语义相似度来动态调整每个词的超参数β;迭代训练得到不同主题数对应的模型结果,取主题间困惑度和平均相似度综合最小时模型作为最佳的lda模型结果;将加权自适应lda训练模型算法集成到flink并行流式计算框架中来提高模型的训练速度。
[0028]
所述基于传统lda模型gibbs sampling采样方法,包括:初始每个文档随机属于一个主题,α和β为先验分布超参数,采用gibbs采样求解lda,α和β为已知先验输入,求解目标θ
m,k
和,θ
m,k
和分别为文档-主题概率分布和主题-单词概率分布。
[0029]
所述自适应lda模型训练模块具体执行如下步骤:
[0030]
步骤b1,特征词加权估计主题概率分布,包括如下步骤:
[0031]
步骤b1-1,计算传统特征词主题后验概率;
[0032]
步骤b1-2,计算特征词权重主题后验概率;
[0033]
步骤b2,通过语义相似度改进lda模型;
[0034]
步骤b3,选择最佳lda模型;
[0035]
步骤b4,并行模型训练。
[0036]
步骤b1-1包括:
[0037]
步骤b1-1-1,传统计算lda特征词主题后验概率值:
[0038]
[0039]
其中,表示剔除其中第i个特征词对应主题变量;表示分配给主题k的特征词t的个数,表示文本m中特征词分配给主题k的个数;αk表示主题k的dirichlet先验分布,β
t
表示特征词t的dirichlet先验分布;当获得特征词所属主题标号,就得到lda模型中θ
m,k
和的后验估计值,p为特征词属于每个主题的概率分布。
[0040]
步骤b1-2包括:
[0041]
步骤b1-2-1,考虑特征词权重计算lda特征词主题后验概率值:
[0042][0043]
其中,weight(t,d)代表每个特征词在文档中的权重,p
weight
代表考虑特征词权重计算后的概率分布。
[0044]
步骤b2包括:
[0045]
采用每个文档超参数β用于嵌入当前单词与每个主题之间的相似性,将语义相似度集成到lda模型训练中主题-词分布计算中;
[0046]
根据hownet计算当前词与当前主题中topn的平均相似度,在每次gibbs采样迭代中根据相似度更新每个单词的β值,取topn消除最小化聚类的噪声,同时覆盖每个主题中权重值高的主题词,lda主题模型训练过程中,形成每个词属于各个主题的概率分布,每个主题中的词按照概率倒排,取topn词更能代表这个主题的关键词,同时加快迭代收敛速度;如果第i个单词的相似度较前一次迭代相比增加或减少,那么相应的β值做增加或减少,相似度增加或减少至少0.1时,β值同步增加或减少0.001,β值最大为1,最小为0.001。β值越大表明与当前主题相关度越高,反之越低;
[0047]
β先验参数向量用如下矩阵向量表示:
[0048][0049]
其中,wi表示训练样本集中第i单词,n为训练样本总词数,z表示主题,k表示主题的数目,β
ik
代表第i个词属于第k个主题对应的β值;如果第i个单词的相似度较前一次迭代相比增加或减少,则相应的β值做增加或减少;
[0050]
步骤b3包括:计算lda模型的困惑度:
[0051][0052]
其中,分母nd是训练集中每篇文档中词叠加总和,分子中p(z|d)表示的是一个
文档所属每个主题的概率,p(w|z)表示每一个候选词属于一个主题的概率,exp代表返回自然数底数e的参数次方,perplexity为lda模型训练结果困惑度;
[0053]
对于不同主题个数所训练出来的lda模型,计算相应困惑度,最小困惑度所对应的主题个数区间就是最优主题数区间;
[0054]
通过标准的向量余弦距离度量主题向量之间的相关性,主题向量相关性计算公式如下:
[0055][0056]
其中corre(zi,zj)代表不同主题概率分布向量之间的相关度值,用βi和βj分别代表第i个主题在v维词空间的概率分布向量和j个主题在v维词空间的概率分布向量,β
iv
和β
jv
分别代表第i个主题中第v个词的属于当前主题的概率值和j个主题中第v个词的属于当前主题的概率值;
[0057]
使用所有主题之间的平均相似度来度量主题结构的稳定性,平均相似度度量公式如下:
[0058][0059]
其中avg_corre(structure)代表平均相似度值,代表将主题概率分布corre(zi,zj)两两进行计算叠加,k代表主题个数,当主题困惑度和平均相似度综合最小时,对应的模型在主题数选择上最优;
[0060]
步骤b4包括:将步骤a1~步骤a3和步骤b1~步骤b3的方法集成到flink并行流式计算mapreduce架构中,通过map算子进行在线模型训练,再经过reduce算子将各节点各分区训练后的lda同一主题模型向量进行汇聚合并,最后将lda训练后的模型持久化保存到hdfs(hadoop distributed file system)中,作为下一轮增量式lda模型先验参数。
[0061]
所述增量式lda模型融合模块执行如下融合过程:首先,根据t
n-1
时刻形成的主题-词权重向量矩阵,每个主题取前topx关键词压缩组成k篇文本,关键词权重根据矩阵归一化设定,再根据t
n-1
时刻形成的主题-文档权重向量矩阵,得到每个文档所属主题,计算每个主题下用于设定每个主题的权重的文档的数量,最终将t
n-1
时刻lda模型形成带有权重的文本数据,与tn时刻新文本进行融合训练形成tn时刻新一轮lda模型,此后不断循环所述融合过程更新模型。
[0062]
本发明具体提供了一种在线并行自适应的lda模型训练系统oda-lda(online distribute adaptation topic analysis based on lda),考虑语料库中词权重,动态获取最佳主题个数及超参数β,在线增量式扩充lda模型。涉及到的jieba分词语料库、hownet常识知识库都做了积累扩充,实验结果表明,本发明从准确率及性能上都优于传统lda主题分析方法。
adaptation topic analysis based on lda),考虑语料库中词权重,动态获取最佳主题个数及超参数β,多节点多分区同时进行在线模型训练,最后将模型结果合并保存到hdfs中。实验结果表明,本发明从准确率及性能上都优于传统lda主题分析方法。
[0084]
(1)数据汇聚模块
[0085]
结构化数据源主要为关系型数据库,可通过jdbc驱动实现不同关系型数据库数据全量、增量同步操作输入到消息总线中;半结构化数据主要为json、txt或者自定义格式的数据,通过开发相应文件解析或者restful接口实现数据输入到消息总线中。
[0086]
(2)数据预处理
[0087]
通过分布式flink并行流式计算组件对不合规的数据进行过滤,按照舆情唯一性规则(平台类型+发布者+发布时间等)生成唯一键去重。对消息总线kafka中数据采用flink并行流式计算框架中filter、map、flatmap等算子进行过滤、去重、转换及jieba分词等操作,采用tf-idf进行去噪、加权及时效衰减等,最后形成加权词向量,最终取权重topn的词作为候选词组。权重计算步骤具体如下:
[0088]
步骤1,jieba工具利用tf-idf计算词权重
[0089]
其中,tf计算公式如下:
[0090][0091]
其中m代表语料库的文档总数,代表每篇文章中的词数叠加后的总词数,ni代表第i篇文档出现的词数,f表示某一个词在所有文章中出现的次数,tf为计算后的词频;
[0092]
idf计算逆文档频率计算公式如下:
[0093][0094]
其中d+1代表包含某一词的文档数,idf为计算后的逆文档频率;tf-idf计算公式如下:
[0095]
tf-idf=tf*idf (3)
[0096]
tf-idf值为某一个词在所有语料库中的权重值,可以看出权重值与在文档中出现的次数成正比,与在整个语料库中的出现次数成反比。
[0097]
步骤2,时效衰减计算词权重
[0098]
舆情数据对时效性要求较高,而其中时效衰减因素就是为防止流数据中陈旧数据产生的噪声问题。本发明采用半衰指数型衰减函数,公式如下:
[0099][0100]
本发明采用半衰型函数,其中c代表与当前时间相比第几个周期,例如:按1天作为一个周期,昨天的数据重要性就今天的数据降低一半,前天就为今天的1/4,以此类推。
[0101]
步骤3,计算文本分词后的词权重
[0102][0103]
其中,代表第m个文档第j个词的tf-idf权重值,代表第m个文档的时效衰减权重
值,weighti代表第i个词在整个语料库中的权重值。为了提高训练效率,取topn20%的词。
[0104]
(3)文本自适应lda训练
[0105]
首先,基于传统lda模型gibbs sampling采样方法,加入特征词权重估计当前特征词wi的主题zi的后验分布;其次,以hownet常识知识库计算词与主题topn(一般n取值为50)单词间的语义相似度来动态调整每个词的超参数β;接着,迭代训练得到不同主题数对应的模型结果,取主题间困惑度和平均相似度综合最小时模型作为最佳的lda模型结果;最后,将加权自适应最优lda训练模型算法集成到flink并行流式计算框架中来提高模型的训练速度。
[0106]
基于传统lda模型研究,初始每个文档随机属于一个主题,φ和θ分别代表主题-单词和文档-主题概率分布。α和β为先验分布超参数,相关文献说明在不损失一般性的情况下,可以对所有主题赋予相同的α值,通常取50/k。本发明采用gibbs采样求解lda,α和β为已知先验输入,求解目标θ
m,k
和分别为文档-主题概率分布和主题-单词概率分布,如图3权重+相似度lda模型训练框架图所示。
[0107]
具体包括如下步骤:
[0108]
步骤1,特征词加权估计主题概率分布
[0109]
(1)传统特征词主题后验概率计算
[0110]
a.lda特征词主题后验概率值:
[0111][0112]
其中,表示剔除其中第i个特征词对应主题变量;表示分配给主题k的特征词t的个数,表示文本m中特征词分配给主题k的个数;表示主题k的dirichlet先验分布,表示特征词t的dirichlet先验分布;当获得特征词所属主题标号,就得到lda模型中和的后验估计值,p为特征词属于每个主题的概率分布。如图2所示。
[0113]
(2)特征词权重主题后验概率计算
[0114]
a.lda特征词主题后验概率值:
[0115][0116]
本发明考虑特征词权重,其中,weight(t,d)代表每个特征词在文档中的权重,pweight代表考虑特征词权重计算后的概率分布。将特征词权重weight(t,d)与lda模型中θ和φ的后验估计值相结合,通过不同的特征词在不同主题下分配不同权重,改变模型生成特征词的概率,如图3所示。
[0117]
步骤2,语义相似度改进lda模型
[0118]
本发明采用每个文档超参数β用于嵌入当前单词与每个主题之间的相似性,基于清华大学hownet知网中文词库,将语义相似度集成到lda模型训练中主题-词分布φ计算中,以此来提高聚类的速度和准确度。
[0119]
根据hownet计算当前词与当前主题中top50的平均相似度,在每次gibbs采样迭代中根据相似度更新每个单词的β值。取top50消除最小化聚类的噪声,同时覆盖语料库中几
乎所有重要的主题词。如果平均相似度较大,表明这个词是相应主题的重要相关词,则对应的β赋予较高的值;反之,则β值较低。β值的高低能够引导lda聚类过程,通过修改概率分布获得更高效的主题聚类结果。β先验参数向量可以用如下矩阵向量表示:
[0120][0121]
其中,wi表示训练样本集中第i单词,n为训练样本总词数,z表示主题,k表示主题的数目,βik代表第i个词属于第k个主题对应的β值。如果第i个单词的相似度较前一次迭代相比增加或减少,那么相应的β值做增加或减少,动态调整β值过程中,相似度增加或减少至少0.1时,β值同步增加或减少0.001,β值最大为1,最小为0.001。
[0122]
步骤3,最佳lda模型选择
[0123]
lda模型困惑度通过perplexity计算得出最佳主题区间范围。困惑度可理解为一篇文章d训练后属于哪个主题的不确定性,这个不确定性程度就是困惑度。困惑度越低,说明聚类的效果越好,困惑度公式如下:
[0124][0125]
其中,分母是训练集中每篇文档中词叠加总和,分子中p(z|d)表示的是一个文档所属每个主题的概率,p(w|z)表示每一个候选词属于一个主题的概率,exp代表返回自然数底数e的参数次方,perplexity为lda模型训练结果困惑度。据相关文献理论和实验证明,最小困惑度所对应的主题个数区间就是最优主题数区间。
[0126]
通过标准的向量余弦距离度量主题向量之间的相关性,主题向量相关性计算公式如下:
[0127][0128]
其中corre(zi,zj)代表不同主题概率分布向量之间的相关度值,用βi和βj分别代表第i个主题在v维词空间的概率分布向量和j个主题在v维词空间的概率分布向量,βiv和βjv分别代表第i个主题中第v个词的属于当前主题的概率值和j个主题中第v个词的属于当前主题的概率值;使用所有主题之间的平均相似度来度量主题结构的稳定性。平均相似度度量公式如下:
[0129][0130]
其中avg_corre(structure)代表平均相似度值,代表将主题概率分布corre(zi,zj)两两进行计算叠加,k代表主题个数,当主题困惑度和平均相似度综合最小时,对应的模
型在主题数选择上最优;步骤4,并行模型训练
[0131]
数据源通过数据汇聚汇入到kafka消息总线中,经过flink并行流式计算框架进行数据预处理,map算子进行oda-lda在线模型训练,再经过reduce将各节点各分区训练后的lda模型向量进行汇聚合并(训练样本大大减少),最后将lda训练后的模型持久化保存到hdfs中,作为下一轮增量式lda模型先验参数流程如图4所示。
[0132]
(4)增量式lda模型融合
[0133]
首先,根据t
n-1
时刻形成的主题-词权重向量矩阵,每个主题取前top1024关键词压缩组成k篇文本,再根据t
n-1
时刻形成的主题-文档权重向量矩阵,得到每个文档所属主题,计算每个主题下共有多少篇文档来设定每个主题的权重,最终将t
n-1
时刻模型形成带有权重的文本数据,与tn时刻新文本(每篇文档权重为1)进行融合训练形成tn时刻新一轮lda模型。此后不断循环上述过程更新模型。增量式方法与传统方法对比如图5所示。增量式方法每次lda模型训练样本容量为m+k个文档,其中k为上一次训练后的模型向量m
kxm
,其中k为主题数,n为前top1024关键词。传统方法每次lda模型训练样本容量为m*t个文档,随着文档的增加,训练样本成倍增加。
[0134]
实施例:
[0135]
(1)实验数据
[0136]
本实验是从互联网上爬取的今日头条数据,共385688条数据,数据为json格式数据,由标题、摘要及人工标注主题和lda模型识别标签组成,共15个主题,具体详情组成如下表1所示。实验过程中会随机抽取一部分作为训练集,剩余部分为测试集,循环测试三次,取平均值作为最终实验结果。
[0137]
表1
[0138][0139][0140]
(2)实验环境
[0141]
实验环境主要分为单机和分布式实验环境。除了并行计算效果验证采用集群环境,其余实验都采用单机模式。
[0142]
a.单机环境
[0143]
本发明单机环境为window10 x64位机器环境,机器配置详情如下表2所示。
[0144]
表2
[0145][0146]
b.并行环境
[0147]
并行环境所在集群由1个主节点、3个计算节点及3个消息队列节点组成。
[0148]
表3
[0149][0150]
(3)实验过程
[0151]
本发明提供了一种基于舆情实时数据流的自适应lda主题模型训练方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
[0152]
以下所有实验lda模型先验参数α和β统一分别默认为2和0.01,迭代次数默认1000,burn-in次数为每50次迭代为周期更新词-主题概率分布和文档-主题概率分布,其他先验参数依各实验需求而定,实验过程中从各主题随机抽取一部分数据,剩余部分作为测试数据集。
[0153]
1、最优主题数方法验证
[0154]
从15个主题中随机抽取了6个主题数据culture、sports、car、tech、game、military进行实验。比较传统lda模型和本发明提出的oda-lda模型训练方法在设置不同主
题数情况下的困惑度(perplexity)和主题间平均相似度(avg_corre)。结果如图6、7所示,初始主题数k=6时,传统lda模型和oda-lda模型困惑度和主题间平均相似度都最低,验证了困惑度和主题间平均相似度最低情况下对应的主题数为最佳主题数;相同主题情况下,oda-lda模型训练方法结果困惑度和主题间平均相似度相较于传统lda模型都较低,并且oda-lda模型在迭代次数800就达到了收敛状态,而传统lda模型需要1000次迭代才达到收敛状态,表明oda-lda模型在准确率和收敛速度方面优于传统lda模型训练方法。
[0155]
2、主题模型分类效果对比
[0156]
表4
[0157][0158][0159]
从15个主题中随机抽取了5个主题数据entertainment、sports、car、culture、game进行实验,动态调整β值过程中,相似度增加或减少至少0.1时,β值同步增加或减少0.001,β值最大为1,最小为0.001。如表4不同主题形成的top10关键词所示(敏感词用代号表示),传统lda和加权lda模型训练得出的top10关键词出现相关性不大的错误词汇,相比较而言本发明提出的oda-lda和权重+相似lda模型结果产生了各主题最相关的特征关键词,除了本发明提出的oda-lda模型训练初始最佳主题数未知,其余都初始最佳主题k=5。
[0160]
本实验比较传统lda模型、特征词权重lda及特征词权重+相似lda三种lda模型训练进行召回率、准确率及f1值性能对比实验,实验结果如图8、9、10所示,结果表明随着特征训练词增加性能也增加,最终趋于稳定,说明全量训练样本中存在很多垃圾词汇,取tf-idf词权重topn即可,同时也能增加训练性能;本发明提出的特征词权重+相似度lda模型较快趋于稳定,并且在召回率、准确率及f1值性能方面最优,说明训练迭代过程中,引入词权重可以尽可能地将重要特征词附上较高的概率分布,同时通过特征词与当前不同主题的相似度来动态调整先验参数β,适当地提高当前特征词与相近主题概率分布值,提高了每次迭代
特征词概率分布效果;如图11所示,本发明在执行时间上耗时比较久,由于三种lda模型时间复杂度分别为o(skn),o(skn+n),o(s(k(n+v*t
similar
))),其中s代表迭代次数,k代表主题数,n代表特征词数,v代表不同特征词数,t
similar
代表每个特征词与各主题topn个词相似度计算耗时,经过各lda模型时间复杂度分析计算可知,本发明提出的权重+相似度lda模型时间复杂度较高,耗时较久,与实验结果相匹配。当初始主题个数k=3时,如图12所示,本发明引入自适应最佳主题识别方法oda-lda后,在f1值计算上,oda-lda主题模型分类效果最好,远高于另外三种模型分类,说明通过自适应方法找到了最佳主题数,能够取得较好的主题模型。
[0161]
3、增量与非增量模型训练效果对比
[0162]
将训练样本集先发入kafka消息队列,以1min为周期批次消费数据增量训练和时效衰减周期,如图13、14所示,本发明提出的oda-lda增量式训练模型相对于非增量式的准确率比、召回率比及f1值比随着周期进行相对平稳,增量训练样本量较小,不能更全面地代表语料库中主题分布,同时可能存在过拟合问题,因此相对于非增量(全量)训练效果较差,未引入时效衰减函数和引入时效衰减函数分别能达到非增量效果的0.82和0.86左右,增量式训练引入时效衰减函数效果更好;如图15所示,非增量(全量)训练方式耗时随着周期呈正比上涨,增量训练方式随着周期基本保持平稳趋势,在耗时上性能要远远大于非增量训练方式,原因在于训练的文档数增量式的时间复杂度为o(m+k),非增量式的时间复杂度为o(m*t),其中m,k分别代表每周期新引入的文档数,k代表每个周期训练后的k个主题特征向量。
[0163]
4、单机与并行模型训练效果对比
[0164]
从kafka中获取训练数据,如图16所示,随着周期的进行,训练样本也随之增加,并行计算与单机在准确率比、召回率比及f1值比性能上逐渐增加,开始时由于并行计算训练样本较少,效果可能较差,后面趋于平稳相近;如图17所示,随着训练样本特征词数量增加,训练时间随之增加,符合lda模型训练特征,在同等训练样本特征词数量情况下,flink计算并行度parallelism分别为1,3,6,9,12,15,随着并行度地增加耗时随之减少,说明通过并行度可以提高lda模型训练效率。
[0165]
本发明提供了基于舆情实时数据流的自适应lda主题模型训练系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
技术特征:
1.基于舆情实时数据流的自适应lda主题模型训练系统,其特征在于,包括数据汇聚模块、数据预处理模块、自适应lda模型训练模块和增量式lda模型融合模块;所述数据汇聚模块用于,对结构化、半结构化数据进行抽取和转换加载,并输入到分布式的消息总线kafka中;所述数据预处理模块用于,对消息总线kafka中的数据进行预处理,最后形成加权词向量;所述自适应lda模型训练模块用于,对消息总线kafka中的数据进行模型最优迭代处理,训练得到lda模型结果,并将训练结果进行合并;所述增量式lda模型融合模块用于进行融合训练生成新一轮lda模型。2.根据权利要求1所述的系统,其特征在于,所述结构化数据包括关系型数据库,通过jdbc驱动实现不同关系型数据库数据全量、增量同步操作输入到消息总线kafka中;所述半结构化数据包括json、txt和自定义格式的数据,通过开发文件解析或者restful接口实现数据输入到消息总线kafka中。3.根据权利要求2所述的系统,其特征在于,所述数据预处理模块执行如下步骤:步骤a1,利用tf-idf计算词权重,其中,采用如下公式计算词频:其中m代表语料库的文档总数,代表每篇文章中的词数叠加后的总词数,n
i
代表第i篇文档出现的词数,f表示一个词在所有文章中出现的次数,tf为计算后的词频;采用如下公式计算逆文档频率:其中d+1代表包含某一词的文档数,idf为计算后的逆文档频率;tf-idf计算公式如下:tf-idf=tf*idf (3)tf-idf值为一个词在所有语料库中的权重值;步骤a2,计算词权重:采用如下半衰指数型衰减函数f(c):其中c代表与当前时间相比经过的周期数;步骤a3,计算文本分词后的词权重:其中,tf-idf
m,j
代表第m个文档第j个词的tf-idf权重值,f
m
(c)代表第m个文档的时效衰减权重值,weight
i
代表第i个词在整个语料库中的权重值。4.根据权利要求3所述的系统,其特征在于,所述自适应lda模型训练模块基于传统lda
模型gibbs sampling采样方法,加入特征词权重估计当前特征词w
i
的主题z
i
的后验分布;然后以hownet常识知识库计算词与主题topn单词间的语义相似度来动态调整每个词的超参数β;迭代训练得到不同主题数对应的模型结果,取主题间困惑度和平均相似度综合最小时模型作为最佳的lda模型结果;将加权自适应lda训练模型算法集成到flink并行流式计算框架中来提高模型的训练速度。5.根据权利要求4所述的系统,其特征在于,所述基于传统lda模型gibbs sampling采样方法,包括:初始每个文档随机属于一个主题,α和β为先验分布超参数,采用gibbs采样求解lda,α和β为已知先验输入,求解目标θ
m,k
和θ
m,k
和分别为文档-主题概率分布和主题-单词概率分布。6.根据权利要求5所述的系统,其特征在于,所述自适应lda模型训练模块具体执行如下步骤:步骤b1,特征词加权估计主题概率分布,包括如下步骤:步骤b1-1,计算传统特征词主题后验概率;步骤b1-2,计算特征词权重主题后验概率;步骤b2,通过语义相似度改进lda模型;步骤b3,选择最佳lda模型;步骤b4,并行模型训练。7.根据权利要求6所述的系统,其特征在于,步骤b1-1包括:步骤b1-1-1,传统计算lda特征词主题后验概率值:其中,表示剔除第i个特征词对应主题变量;表示分配给主题k的特征词t的个数,表示文本m中特征词分配给主题k的个数;α
k
表示主题k的dirichlet先验分布,β
t
表示特征词t的dirichlet先验分布;当获得特征词所属主题标号,就得到lda模型中θ
m,k
和的后验估计值,p为特征词属于每个主题的概率分布。8.根据权利要求7所述的系统,其特征在于,步骤b1-2包括:步骤b1-2-1,考虑特征词权重计算lda特征词主题后验概率值:其中,weight(t,d)代表每个特征词在文档中的权重,p
weight
代表考虑特征词权重计算后的概率分布。9.根据权利要求8所述的系统,其特征在于,步骤b2包括:采用每个文档超参数β用于嵌入当前单词与每个主题之间的相似性,将语义相似度集成到lda模型训练中主题-词分布计算中;根据hownet计算当前词与当前主题中topn的平均相似度,在每次gibbs采样迭代中根据相似度更新每个单词的β值,取topn消除最小化聚类的噪声,同时覆盖每个主题中权重值
高的主题词;如果第i个单词的相似度较前一次迭代相比增加或减少,相应的β值做增加或减少;β先验参数向量用如下矩阵向量表示:其中,w
i
表示训练样本集中第i单词,n为训练样本总词数,z表示主题,k表示主题的数目,β
ik
代表第i个词属于第k个主题对应的β值;如果第i个单词的相似度较前一次迭代相比增加或减少,则相应的β值做增加或减少;步骤b3包括:计算lda模型的困惑度:其中,分母是训练集中每篇文档中词叠加总和,分子中p(z|d)表示的是一个文档所属每个主题的概率,p(w|z)表示每一个候选词属于一个主题的概率,exp代表返回自然数底数e的参数次方,perplexity为lda模型训练结果困惑度;对于不同主题个数所训练出来的lda模型,计算相应困惑度,最小困惑度所对应的主题个数区间就是最优主题数区间;通过标准的向量余弦距离度量主题向量之间的相关性,主题向量相关性计算公式如下:其中corre(z
i
,z
j
)代表不同主题概率分布向量之间的相关度值,用β
i
和β
j
分别代表第i个主题在v维词空间的概率分布向量和j个主题在v维词空间的概率分布向量,β
iv
和β
jv
分别代表第i个主题中第v个词的属于当前主题的概率值和第j个主题中第v个词的属于当前主题的概率值;使用所有主题之间的平均相似度来度量主题结构的稳定性,平均相似度度量公式如下:
其中avg_corre(structure)代表平均相似度值,代表将主题概率分布corre(z
i
,z
j
)两两进行计算叠加,k代表主题个数,当主题困惑度和平均相似度综合最小时,对应的模型在主题数选择上最优;步骤b4包括:将步骤a1~步骤a3和步骤b1~步骤b3的方法集成到flink并行流式计算mapreduce架构中,通过map算子进行在线模型训练,再经过reduce算子将各节点各分区训练后的lda同一主题模型向量进行汇聚合并,最后将lda训练后的模型持久化保存到hdfs中,作为下一轮增量式lda模型先验参数。10.根据权利要求9所述的系统,其特征在于,所述增量式lda模型融合模块执行如下融合过程:首先,根据t
n-1
时刻形成的主题-词权重向量矩阵,每个主题取前topx关键词压缩组成k篇文本,关键词权重根据矩阵归一化设定,再根据t
n-1
时刻形成的主题-文档权重向量矩阵,得到每个文档所属主题,计算每个主题下用于设定每个主题的权重的文档的数量,最终将t
n-1
时刻lda模型形成带有权重的文本数据,与t
n
时刻新文本进行融合训练形成t
n
时刻新一轮lda模型,此后不断循环所述融合过程更新模型。
技术总结
本发明提供了基于舆情实时数据流的自适应LDA主题模型训练系统,包括数据汇聚模块、数据预处理模块、自适应LDA模型训练模块和增量式LDA模型融合模块;数据汇聚模块用于对结构化、半结构化数据进行抽取和转换加载,并输入到分布式的消息总线kafka中;数据预处理模块用于对消息总线kafka中的数据进行预处理,最后形成加权词向量;自适应LDA模型训练模块用于训练得到LDA模型结果,并将训练结果进行合并;增量式LDA模型融合模块用于进行融合训练生成新一轮LDA模型。本发明从准确率及性能上都优于传统LDA主题分析方法,并应用于网络舆情领域事件检测、推荐、词云及检索等实际工程项目中,创造了商业价值。创造了商业价值。创造了商业价值。
技术研发人员:孟令伍 贺成龙 罗军舟 顾学海 丁灿 尹晓阳 李惠柯 刘蛰
受保护的技术使用者:东南大学
技术研发日:2023.06.07
技术公布日:2023/10/7
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/