一种LDA并行优化方法与流程

文档序号:11250862阅读:601来源:国知局
一种LDA并行优化方法与流程

本发明涉及的是一种lda(latentdirichletallocation潜在狄里克雷分布)并行优化算法。



背景技术:

在大数据时代下,随着互联网和信息技术的快速发展和广泛应用,产生了与人们生活息息相关的各种海量数据。其中在这些纷乱混杂的数据中,非结构化的文本信息占主要部分。面对如此巨大的文本数据,人们很难迅速地获取自身有用的信息。如何快速地处理和发掘这些数据信息成为当前面临的一大难题,这也促进了文本分类相关技术的深入研究广泛运用。文本分类是数据挖掘范围中十分重要和热门的技术,文本分类技术可以把数量巨大的非结构化文本数据采用计算机能理解的方法进行计算,从而帮助人们更好、快速地获取真正需要的信息,广泛应用在舆情分析、和个性化推荐等领域中。

在文本分类过程中,传统的特征提取的方法主要有文档词频、卡方、互信息、信息增益等。这些方法的一个共同特点是假设词与词之间是相互独立的,通过计算词项与类型之间存在的关系,对特征词进行筛选,从而达到降维的目的,这类方法忽视了词与词之间关系,不能挖掘词与词之间的语义关系。

lda主题模型是近年来研究比较热门的方向,通过对文本集进行建模,自动分析每个文档,发掘出文中潜在的语义,将文本语料库从词空间维度映射到文本的主题空间维度上,得到文本的主题概率分布,同时能很好地解决传统方法无法解决的一词多义、和一义多词等问题。利用lda模型良好的降维效果和文本表示能力进行文本表示,在得到的文本表示基础上构建分类器模型,进行文本的分类识别任务。

传统的ad-lda(approximatedistributionlda)模型,这是一个基于吉布斯采样的近似分布同步框架lda并行算法。其核心思想是先将文档均匀分布到每台处理器上,假设文档集总共有n篇文档,按文档数均匀分配到每个处理器上,假设共有p台处理器,这样每台处理器大约包含有n/p篇文档,分割后的每个小数据集用xi表示,其中i∈n。这样就可以在每台处理器上对分割后的数据集xi分别进行一次gibbs采样。在gibbs采样之前,需要对模型中的计数赋初值,其中nm(k)表示文档m中归入主题k的次数,nk(t)表示词归入主题k的次数,nm表示文档m中全部的词个数,nk表示文档集中归入主题k的总次数。在模型的并行过程中,需要在每次迭代后,同步更新模型的参数,即词-主题矩阵nwk。在每台处理器的采样结束后,将每个子数据集对应的局部参数nwkp传输到主节点进行一次合并,得到一组新的计数,然后再将汇总后得到的全局参数分发到各个处理器上,最后再进行下一次迭代,直到模型收敛或达到模型设定的最大迭代次数。传统的ad-lda具体包括:

输入:文档集x,迭代次数t,处理器数p,模型超参数α和β。

输出:文档-主题分布θm,k和主题-词分布

1:将文档集x均匀分配到p台处理器上;

2:对模型参数赋初值,将文档中的每一个词随机赋予一个主题编号k;

3:设置模型迭代次数,在模型每次迭代过程中

4:对于每台处理器分别执行下述步骤

5:将全局参数nwk广播给每台处理器局部参数nwkp:nwkp←nwk;

6:使用吉布斯采样公式更新本地相关统计计数nm(k),nk(t),nm,nk;

7:循环结束;

8:等待所有处理器达到同步;

9:更新全局参数nwk←nwk+∑p(nwkp-nwk);

10:直至达到终止条件,输出模型参数θm,k和

在上述算法流程可以发现,在lda算法的并行求解中有一个重大开销,即每次吉布斯采样后,都需要将p台处理器中每个子数据集xi所对应要更新的局部参数nwkp矩阵传输到主节点上进行汇总计算,之后再将计算后的结果作为全局参数nwk,传输到p台处理器上。

模型的通信时间由两部分构成:其一是处理器间相互等待的时间,其二是处理器间数据通信的所花费的实际通信时间。而处理器间的等待时间取决于最快完成采样的处理器等待最慢完成采样处理器所花费的时间。这部分时间与文档集的划分策略有关,关联到每台处理器上的负载均衡问题。而一般情况下认为输入的文本都是均匀分配,同时在相同配置的处理器的计算能力下,所以处理器间的等待时间问题这里暂不考虑。

而现实中的通信时间分别与处理器数和需要通信的数据量有关。在海量文本数据下模型并行算法由于并行过程中通信开销大、空间复杂度高而导致模型训练时间长,导致lda模型求解效率不高的问题,无法很好的应用到海量的大数据集上。



技术实现要素:

本发明的目的在于提供一种能降低通信开销,缩短在海量数据下模型训练时间的lda并行优化方法。

本发明的目的是这样实现的:

输入包括:文档集x、迭代次数t、处理器数p、词频划分块n、模型超参数α和β;

输出包括:文档-主题概率分布θm,k和主题-词概率分布

具体包括以下步骤:

1:将文档集x均匀划分到p台处理器上;

2:初始化计数,将相关计数nm(k),nk(t),nm,nk初始化置为0,将文档块中每篇文档中的每一个词随机赋予一个主题编号k;

3:设置模型迭代次数,在模型每次迭代过程中

4:对于每台处理器分别执行下述步骤;

5:全局参数复制给局部参数:

6:采用基于高斯函数的词加权方法对文档集中的词赋予一个权重值,使用吉布斯采样公式更新本地相关统计计数nm(k),nk(t),nm,nk;

7:循环结束;

8:等待所有处理器达到同步;

9:更新全局参数

10:直至达到终止条件,输出模型参数:θm,k和

所述采用基于高斯函数的词加权方法对文档集中的词赋予一个权重值具体包括:

输入包括:文档集x,模型超参数α和β

输出包括:词-主题矩阵nwk

1:初始化吉布斯采样中的计数为0;

2:m为文档集中文档的数量,对于每篇文档编号m∈[1,m];

3:nm为第m篇文档中词的个数,对于每篇文档中第n∈[1,nm]个词wm,n=wi;

4:为每个词随机采样赋予一个主题编号zm,n∈[1,k],k为设定的主题数;

5:计数nm(k)加上词wm,n对应的权重其中

6:计数nm加上词wm,n对应的权重其中

7:计数nk(t)加上词wm,n对应的权重其中

8:计数nk加上词wm,n对应的权重其中

9:初始化过程结束;

10:计数nm(k)减去词wm,n对应的权重

11:计数nm减去词wm,n对应的权重

12:计数nk(t)减去词wm,n对应的权重

13:计数nk减去每词wm,n对应的权重

14:采样得到词wm,n在每个主题k∈[1,k]上的概率分布;

15:根据采样公式进行采样;

16:计数nm(k)加上词wm,n对应的权重其中

17:计数nm加上词wm,n对应的权重其中

18:计数nk(t)加上词wm,n对应的权重其中

19:计数nk加上词wm,n对应的权重其中

20:直至达到结束条件,输出nwk。

本发明主要针对经典的lda并行算法ad-lda进行深入研究,提出了一种新颖的lda并行优化算法。主要针对在大规模数据集下,现有lda模型的并行算法通信开销和空间复杂度过高;如何快速、精确地进行文本表示,并在其基础上实现文本分类的并行化等关键问题。本发明的技术要点主要包括co-plda并行优化算法和基于高斯函数的词加权方法。

(1)co-plda并行优化算法

本发明为了解决现有lda并行算法ad-lda中通信开销大,在海量数据下模型训练时间长等问题,提出了一种新的lda并行算法co-plda(communicationoptimizationparallellda,co-plda),通过采用齐普夫定律的通信优化策略和一种改进的词权重计算方法,在文本表示精度不受影响的前提下,提高文本的表示效率。

(2)一种基于高斯函数的词加权方法

lda主题模型研究中采用词袋模型的形式表示文本,在文本表示过程中,同等对待每个词,默认每个词都有相同的权重。lda算法在求解过程中,对文档集中每篇文档中的每一个词进行采样,显然高频词采样的次数会高于低频词。使得模型学习到的主题分布向高频词倾斜。因此需要找出一种合适的词权重计算方法,针对lda模型算法的特点,对lda中词权重计算方法进行改进,以提高文本表示的精度。

传统的词加权方法有很多,其中应用最广的是tf-idf方法。在tf-idf词加权方法的使用中,词的权重会随着它在文档中出现的次数成正比关系,随着在文档集中出现的频次成反比。这样会导致词频跟权重成反比,词频高的词权重相对较低,而词频低的词权重较高。而模型中改进词加权方法的目的:是适当地降低高频词的权重,同时对低频词权重不造成影响。经过研究发现这些传统的词权重计算方法均不能达到文中的要求。这里通过采用一种基于高斯函数的词权重方法,来达到降低高频词的权重,而不对低频词的权重造成影响。

其中高斯函数的应用十分地广泛,在社会科学、自然科学以及工程学中领域都有它的用处。高斯函数形式如下:

其中a,b与c为实数常数,a表示曲线的高度,b是曲线在x轴的中心,c与曲线的宽度有关,函数图像如图1所示。

在图形上,高斯函数图像是一种钟形曲线,越接近图形中心点时,函数取值越大,越远离图形中心点,函数取值就越小。可以借助高斯函数的这种性质,对lda模型中词进行加权。本发明提出一种采用改进的高斯函数词权重计算方法,对文档中的每个词wi进行加权,其中词加权公式如下:

其中和c2公式如下:

其中是词wi在文档集中出现的次数,fmax为文档集所有词中词频最大数,fmin为文档集中词频最小的数,通过这种的词权重计算方式,可以保证在使低频词权重不受影响的前提下,很好地降低高频词的权重,适当地提高中频词的权重。

(3)基于齐普夫定律的通信优化策略

通过分析lda模型更新参数的过程和原理可以发现,文档中高频词的更新状态很大程度上决定了模型参数的更新状态。也就是说,高频词对模型参数训练的结果贡献较大。为了减少模型的通信开销,可以减小处理器间每次迭代后的通信数据量nwk。本发明提出采用基于齐普夫定律的通信频率划分来减小模型通信开销,通过采用这种划分方法进行模型并行的通信优化。

齐普夫定律是美国哈佛大学g.k.齐普夫(g.k.zipf)通过对文献中词频的研究所提出的一种词频分布定律。它可以表述为:将某一篇文章中每个词出现的次数依次统计起来,按照词频递减顺序排列,从高到底对这些词基于词频的大小进行编号,若用f表示频次,r表示等级编号,其中频次和等级编号呈现某种数量关系。数量关系如公式所示。

f×r=c

其中c是正常数,可以发现某一个词出现的频次f与它在文档集频次表中的排名r成反比。由于高频词对模型训练的贡献较大,可以通过主要更新高频词来减少通信开销。算法中将文档集预处理后得到的词按词频的大小,从高频到低频划分为n等份,每个等份包含相同数量的词频块,词频块的排名设为r(r∈[1,n]),则每个词频块中按照如下的通信频率公式进行通信。

communicationrate=r

根据上面的公式,每个词频块在模型训练中对应的通信更新次数为这里不妨假设模型训练需要进行的迭代次数t为100,那么当r=1时,划分到词频块1中的词在每次迭代中都需要进行通信更新;当r=15时,划分到词频块15中的词,只有在迭代次数为{15,30,45,60,75,90}才进行通信。

模型每次迭代中,通信的数据量nwk就相应减少,模型通信的总开销下降很多。模型的通信总开销公式如下所示。

这里假设k=100,p=30,v=60000,迭代次数t=1000,n=16,nwk矩阵中的每一个计数为int类型,占4个字节。那么在所有迭代完成后总的通信开销约为287.5g,通信开销仅仅约为ad-lda并行算法通信开销的21%,可见算法大大减少了模型并行带来的通信开销。

本发明的有益效果为:

本发明中提出的co-plda模型的计算时间和通信时间都要优于ad-lda,其中co-plda模型的通信开销约为ad-lda的20%,计算时间约为ad-lda的70%左右。可见,co-plda在不失文本表示精度的前提下,有效地提高了模型的文本表示效率,降低了模型并行的通信开销,同时也适当降低了模型的计算时间。通过实验证明了co-plda算法文本表示效果要比ad-lda更好。

附图说明

图1为高斯函数的图像;

图2为co-plda和ad-lda算法通信时间对比;

图3为co-plda和ad-lda算法计算时间对比;

图4为co-plda和ad-lda算法困惑度值对比。

具体实施方式

下面举例对本发明做更详细的描述。

本发明提出了一种基于高斯函数的词加权度量方法,用来提高文本表示精度,这种词加权方法对现有算法的改进主要集中在吉布斯算法中的初始化和迭代采样中。在改进的高斯函数词加权方法下,给出了吉布斯采样算法,算法如下所示。

算法:基于高斯函数的词加权方法

输入:文档集x,模型超参数α和β;

输出:词-主题矩阵nwk。

1:初始化吉布斯采样中的计数为0;

2:m为文档集中文档的数量,对于每篇文档编号m∈[1,m];

3:nm为第m篇文档中词的个数,对于每篇文档中第n∈[1,nm]个词wm,n=wi;

4:为每个词随机采样赋予一个主题编号zm,n∈[1,k],其中k为模型设定的主题数;

5:计数nm(k)加上词wm,n对应的权重其中

6:计数nm加上词wm,n对应的权重其中

7:计数nk(t)加上词wm,n对应的权重其中

8:计数nk加上词wm,n对应的权重其中

9:初始化过程结束;

10:计数nm(k)减去词wm,n对应的权重

11:计数nm减去词wm,n对应的权重

12:计数nk(t)减去词wm,n对应的权重

13:计数nk减去每词wm,n对应的权重

14:采样得到词wm,n在每个主题k∈[1,k]上的概率分布;

15:根据采样公式进行采样;

16:计数nm(k)加上词wm,n对应的权重其中

17:计数nm加上词wm,n对应的权重其中

18:计数nk(t)加上词wm,n对应的权重其中

19:计数nk加上词wm,n对应的权重其中

20:直至达到结束条件,输出nwk。

步骤1-9是算法的初始化阶段,首先将所有用于计数的矩阵和数组的值初始化为0,之后为文档集中的每篇文档m,文档中的第n个词wm,n随机分配一个主题编号k。在原始lda算法中,将对应的nm(k),nk(t),nm,nk计数的值加1,而改进后的词加权方法中则是加上每个词对应的权重至此,算法的初始化工作已经完成。

步骤10-19是gibbs采样算法的核心过程,首先将每篇文档中的每个词wm,n当前所属的主题编号k赋给t,将对应的nm(k),nk(t),nm,nk的计数减去每个词所对应的权重然后根据采样公式,计算出词wm,n在分配到每个主题编号下的概率,在多项概率分布上得到一个新的主题编号zm,n,将采样得到的新的主题编号赋给t,然后再将相对应的nm(k),nk(t),nm,nk加上词wm,n所对应的权重最后在模型达到收敛或者执行到最大迭代次数时,输出模型参数,即nwk词-主题矩阵。

在上述分析的基础上,针对如何通过优化lda模型并行时的通信开销问题,快速、高效地进行文本表示,给出了基于齐普夫定律的通信优化算法,co-plda完整算法步骤如下所示。

算法:co-plda算法

输入:文档集x,迭代次数t,处理器数p,词频划分块n,模型超参数α和β;

输出:文档-主题概率分布θm,k和主题-词概率分布

1:将文档集x均匀划分到p台处理器上;

2:初始化计数,将nm(k),nk(t),nm,nk等相关计数初始化置为0,将文档块中每篇文档中的每一个词随机赋予一个主题编号k;

3:设置模型迭代次数,在模型每次迭代过程中

4:对于每台处理器别执行下述步骤;

5:全局参数复制给局部参数:

6:采用基于高斯函数的词加权方法对文档集中的词赋予一个权重值,使用吉布斯采样公式更新本地相关统计计数nm(k),nk(t),nm,nk;

7:endfor;

8:等待所有处理器达到同步;

9:

10:until达到终止条件,输出模型参数θm,k和

实验结果与分析:

(一)数据集的选取

本发明所使用的实验语料是由搜狗实验室提供的文本分类新闻数据集,从中筛选了包括美食、科技、娱乐、体育等十个类别的新闻数据,得到了320126条新闻数据,为了方便在实验中进行对比实验,将这些新闻数据拆分为10000、20000、40000、80000、160000条记录的4个子数据集。在拆分过程中,使各数据集中各类别的数据量样本均匀。为了充分验证本发明所提出的基于lda的文本分类并行化方法,设置了一组对比实验:将本发明提出的co-plda并行算法同ad-lda算法在模型通信时间、计算时间和困惑度值上进行比较。

(二)评价方法

针对如何评估lda模型的文本表示精度问题,这里采用模型的困惑度perplexity进行度量,perplexity是一种用来衡量模型对于测试语料建模能力好坏的指标。其中perplexity的公式如下:

(三)结果及分析

(1)提出的co-plda算法同现有的ad-lda算法的对比实验

为了证明本发明提出的co-plda算法在并行文本表示上的效果,本发明进行了co-plda算法和ad-lda算法的对比实验。其中,ad-lda是lda并行算法中最经典一种算法。本实验将从模型的通信时间、计算时间和困惑度值上进行比较。

为了不失一般性,首先需要对lda模型的参数赋予统一的默认值。由于模型中的超参数α和β对模型的最终效果影响不大,这里均设为默认的经验值α=50/k,β=0.01,迭代次数设为1000,其中k为模型中设定的主题个数。

co-plda算法同ad-lda算法在不同主题k值下的模型通信时间、计算时间和模型的预测困惑度值分别如图2、3、4所示。

由实验结果可知,co-plda模型的困惑度和ad-lda的困惑度值精度相差不大,说明本发明提出的co-plda算法的精度和原始lda并行算法的精度几乎一致,但是co-plda模型的计算时间和通信时间都要优于ad-lda,其中co-plda模型的通信开销约为ad-lda的20%,计算时间约为ad-lda的70%左右。可见,co-plda在不失文本表示精度的前提下,有效地提高了模型的文本表示效率,降低了模型并行的通信开销,同时也适当降低了模型的计算时间。通过实验证明了co-plda算法文本表示效果要比ad-lda更好。

(四)结论:

在海量文本数据下,如何有效地提高文本分类的精度和效率是当前面临的主要问题。本发明仔细分析了文本分类的相关技术,针对lda模型良好的文本表示能力,对当前lda模型的并行算法进行了研究。本发明提出了一种新颖的lda并行算法以提高文本的表示效率,从而提高在海量数据集下文本分类的效率。本发明主要完成以下几点工作:

(1)提出利用lda模型良好的降维和文本表示能力来进行文本表示。在当前海量文本数据下,如何快速精确地进行文本表示,对lda模型目前并行算法进行深入分析,在此基础上,提出了一种新颖的lda并行优化算法。

(2)针对lda模型现有词加权方法的不足之处,本发明提出了一种基于高斯函数的词权重计算方法,避免了文本表示过程中向高频词倾斜,使得能够表示文本主题信息的词描述被少量的高频词掩盖,有效提高了文本表示精度。

(3)针对ad-lda算法中模型通信时间过长等问题,本发明提出了一种基于齐普夫定律的模型通信频率划分策略,来减小模型并行训练中的通信开销。通过这种划分策略,有效降低了每次通信过程中传输的数据量,改进后的算法的通信开销约为ad-lda的20%,计算时间约为ad-lda的70%左右。

在文本分类中,文本表示文本分类过程中的重要环节。本发明提出的一种新颖的lda并行优化算法具有一定的创新和使用价值。但是由于时间有限,本发明提出的并行化方法还有局限和不足之处,所提出的算法本身也还有可以继续优化的地方。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1