收藏 分享(赏)

语义分析的一些方法.doc

上传人:精品资料 文档编号:9922052 上传时间:2019-09-19 格式:DOC 页数:56 大小:3.06MB
下载 相关 举报
语义分析的一些方法.doc_第1页
第1页 / 共56页
语义分析的一些方法.doc_第2页
第2页 / 共56页
语义分析的一些方法.doc_第3页
第3页 / 共56页
语义分析的一些方法.doc_第4页
第4页 / 共56页
语义分析的一些方法.doc_第5页
第5页 / 共56页
点击查看更多>>
资源描述

1、语义分析的一些方法(上篇)人工智能 林 17 小时前 70 0 评论作者:火光摇曳语义分析的一些方法(上篇)语义分析的一些方法(中篇)语义分析的一些方法(下篇)语义分析,本文指运用各种机器学习方法,挖掘与学习文本、图片等的深层次概念。wikipedia 上的解释:In machine learning, semantic analysis of a corpus is the task of building structures that approximate concepts from a large set of documents(or images)。工作这几年,陆陆续续实践过一些

2、项目,有搜索广告,社交广告,微博广告,品牌广告,内容广告等。要使我们广告平台效益最大化,首先需要理解用户,Context(将展示广告的上下文)和广告,才能将最合适的广告展示给用户。而这其中,就离不开对用户,对上下文,对广告的语义分析,由此催生了一些子项目,例如文本语义分析,图片语义理解,语义索引,短串语义关联,用户广告语义匹配等。接下来我将写一写我所认识的语义分析的一些方法,虽说我们在做的时候,效果导向居多,方法理论理解也许并不深入,不过权当个人知识点总结,有任何不当之处请指正,谢谢。本文主要由以下四部分组成:文本基本处理,文本语义分析,图片语义分析,语义分析小结。先讲述文本处理的基本方法,这

3、构成了语义分析的基础。接着分文本和图片两节讲述各自语义分析的一些方法,值得注意的是,虽说分为两节,但文本和图片在语义分析方法上有很多共通与关联。最后我们简单介绍下语义分析在广点通“用户广告匹配”上的应用,并展望一下未来的语义分析方法。1 文本基本处理在讲文本语义分析之前,我们先说下文本基本处理,因为它构成了语义分析的基础。而文本处理有很多方面,考虑到本文主题,这里只介绍中文分词以及Term Weighting。1.1 中文分词拿到一段文本后,通常情况下,首先要做分词。分词的方法一般有如下几种: 基于字符串匹配的分词方法。此方法按照不同的扫描方式,逐个查找词库进行分词。根据扫描方式可细分为:正向

4、最大匹配,反向最大匹配,双向最大匹配,最小切分(即最短路径);总之就是各种不同的启发规则。 全切分方法。它首先切分出与词库匹配的所有可能的词,再运用统计语言模型决定最优的切分结果。它的优点在于可以解决分词中的歧义问题。下图是一个示例,对于文本串“南京市长江大桥”,首先进行词条检索(一般用 Trie 存储),找到匹配的所有词条(南京,市,长江,大桥,南京市,长江大桥,市长,江大桥,江大,桥),以词网格(word lattices)形式表示,接着做路径搜索,基于统计语言模型(例如 n-gram)18找到最优路径,最后可能还需要命名实体识别。下图中“南京市 长江 大桥”的语言模型得分,即 P(南京市

5、,长江,大桥)最高,则为最优切分。图 1. “南京市长江大桥”语言模型得分 由字构词的分词方法。可以理解为字的分类问题,也就是自然语言处理中的 sequence labeling 问题,通常做法里利用 HMM,MAXENT,MEMM,CRF等预测文本串每个字的 tag62,譬如 B,E,I,S,这四个 tag 分别表示:beginning, inside, ending, single,也就是一个词的开始,中间,结束,以及单个字的词。 例如“南京市长江大桥”的标注结果可能为:“南(B)京(I)市(E)长(B)江(E)大(B)桥(E)”。由于 CRF 既可以像最大熵模型一样加各种领域 featu

6、re,又避免了 HMM 的齐次马尔科夫假设,所以基于 CRF的分词目前是效果最好的,具体请参考文献61,62,63。除了 HMM,CRF 等模型,分词也可以基于深度学习方法来做,如文献910所介绍,也取得了 state-of-the-art 的结果。图 2. 基于深度学习的中文分词上图是一个基于深度学习的分词示例图。我们从上往下看,首先对每一个字进行 Lookup Table,映射到一个固定长度的特征向量(这里可以利用词向量,boundary entropy,accessor variety 等);接着经过一个标准的神经网络,分别是 linear,sigmoid,linear 层,对于每个字,

7、预测该字属于 B,E,I,S 的概率;最后输出是一个矩阵,矩阵的行是 B,E,I,S 4 个tag,利用 viterbi 算法就可以完成标注推断,从而得到分词结果。一个文本串除了分词,还需要做词性标注,命名实体识别,新词发现等。通常有两种方案,一种是 pipeline approaches,就是先分词,再做词性标注;另一种是 joint approaches,就是把这些任务用一个模型来完成。有兴趣可以参考文献962等。一般而言,方法一和方法二在工业界用得比较多,方法三因为采用复杂的模型,虽准确率相对高,但耗时较大。1.2 语言模型前面在讲“全切分分词”方法时,提到了语言模型,并且通过语言模型,

8、还可以引出词向量,所以这里把语言模型简单阐述一下。语言模型是用来计算一个句子产生概率的概率模型,即 P(w_1,w_2,w_3w_m),m 表示词的总个数。根据贝叶斯公式:P(w_1,w_2,w_3 w_m) = P(w_1)P(w_2|w_1)P(w_3|w_1,w_2) P(w_m|w_1,w_2 w_m-1)。最简单的语言模型是 N-Gram,它利用马尔科夫假设,认为句子中每个单词只与其前 n1 个单词有关,即假设产生 w_m 这个词的条件概率只依赖于前 n1 个词,则有 P(w_m|w_1,w_2w_m-1) = P(w_m|w_m-n+1,w_m-n+2 w_m-1)。其中 n 越大

9、,模型可区别性越强,n 越小,模型可靠性越高。N-Gram 语言模型简单有效,但是它只考虑了词的位置关系,没有考虑词之间的相似度,词语法和词语义,并且还存在数据稀疏的问题,所以后来,又逐渐提出更多的语言模型,例如 Class-based ngram model,topic-based ngram model,cache-based ngram model,skipping ngram model,指数语言模型(最大熵模型,条件随机域模型)等。若想了解更多请参考文章18。最近,随着深度学习的兴起,神经网络语言模型也变得火热4。用神经网络训练语言模型的经典之作,要数 Bengio 等人发表的A N

10、eural Probabilistic Language Model3,它也是基于 N-Gram 的,首先将每个单词 w_m-n+1,w_m-n+2 w_m-1映射到词向量空间,再把各个单词的词向量组合成一个更大的向量作为神经网络输入,输出是 P(w_m)。本文将此模型简称为ffnnlm(Feed-forward Neural Net Language Model)。ffnnlm 解决了传统 n-gram 的两个缺陷:(1)词语之间的相似性可以通过词向量来体现;(2)自带平滑功能。文献3不仅提出神经网络语言模型,还顺带引出了词向量,关于词向量,后文将再细述。图 3. 基于神经网络的语言模型从最

11、新文献看,目前 state-of-the-art 语言模型应该是基于循环神经网络(recurrent neural network)的语言模型,简称 rnnlm56。循环神经网络相比于传统前馈神经网络,其特点是:可以存在有向环,将上一次的输出作为本次的输入。而 rnnlm 和 ffnnlm 的最大区别是:ffnnmm 要求输入的上下文是固定长度的,也就是说 n-gram 中的 n 要求是个固定值,而 rnnlm 不限制上下文的长度,可以真正充分地利用所有上文信息来预测下一个词,本次预测的中间隐层信息(例如下图中的 context 信息)可以在下一次预测里循环使用。图 4. 基于 simple

12、RNN(time-delay neural network)的语言模型如上图所示,这是一个最简单的 rnnlm,神经网络分为三层,第一层是输入层,第二层是隐藏层(也叫 context 层),第三层输出层。 假设当前是 t 时刻,则分三步来预测 P(w_m): 单词 w_m-1映射到词向量,记作 input(t) 连接上一次训练的隐藏层 context(t1),经过 sigmoid function,生成当前 t 时刻的 context(t) 利用 softmax function,预测 P(w_m)参考文献7中列出了一个 rnnlm 的 library,其代码紧凑。利用它训练中文语言模型将很简

13、单,上面“南京市 长江 大桥”就是 rnnlm 的预测结果。基于 RNN 的 language model 利用 BPTT(BackPropagation through time)算法比较难于训练,原因就是深度神经网络里比较普遍的 vanishing gradient 问题55(在 RNN 里,梯度计算随时间成指数倍增长或衰减,称之为 Exponential Error Decay)。所以后来又提出基于 LSTM(Long short term memory)的language model,LSTM 也是一种 RNN 网络,关于 LSTM 的详细介绍请参考文献54,49,52。LSTM 通过

14、网络结构的修改,从而避免 vanishing gradient 问题。图 5. LSTM memory cell如上图所示,是一个 LSTM unit。如果是传统的神经网络 unit,output activation bi = activation_function(ai),但 LSTM unit 的计算相对就复杂些了,它保存了该神经元上一次计算的结果,通过 input gate,output gate,forget gate 来计算输出,具体过程请参考文献53,54。1.3 Term WeightingTerm 重要性对文本分词后,接下来需要对分词后的每个 term 计算一个权重,重要的

15、term应该给与更高的权重。举例来说,“什么产品对减肥帮助最大?”的 term weighting 结果可能是: “什么 0.1,产品 0.5,对 0.1,减肥 0.8,帮助 0.3,最大 0.2”。Term weighting 在文本检索,文本相关性,核心词提取等任务中都有重要作用。 Term weighting 的打分公式一般由三部分组成:local,global 和normalization 1,2。即TermWeight=L_i,j G_i N_j。L_i,j是 term i 在 document j 中的local weight,G_i 是 term i 的 global weigh

16、t,N_j 是 document j 的归一化因子。常见的 local,global,normalization weight 公式2有:图 6. Local weight formulas图 7. Global weight formulas图 8. Normalization factorsTf-Idf 是一种最常见的 term weighting 方法。在上面的公式体系里,Tf-Idf 的 local weight 是 FREQ,glocal weight 是 IDFB,normalization 是None。tf 是词频,表示这个词出现的次数。df 是文档频率,表示这个词在多少个文档中

17、出现。idf 则是逆文档频率,idf=log(TD/df),TD 表示总文档数。Tf-Idf 在很多场合都很有效,但缺点也比较明显,以“词频”度量重要性,不够全面,譬如在搜索广告的关键词匹配时就不够用。除了 TF-IDF 外,还有很多其他 term weighting 方法,例如Okapi,MI,LTU,ATC,TF-ICF59等。通过local,global,normalization 各种公式的组合,可以生成不同的 term weighting 计算方法。不过上面这些方法都是无监督计算方法,有一定程度的通用性,但在一些特定场景里显得不够灵活,不够准确,所以可以基于有监督机器学习方法来拟合

18、term weighting 结果。图 9. Okapi 计算公式 利用有监督机器学习方法来预测 weight。这里类似于机器学习的分类任务,对于文本串的每个 term,预测一个0,1的得分,得分越大则 term 重要性越高。既然是有监督学习,那么就需要训练数据。如果采用人工标注的话,极大耗费人力,所以可以采用训练数据自提取的方法,利用程序从搜索日志里自动挖掘。从海量日志数据里提取隐含的用户对于 term 重要性的标注,得到的训练数据将综合亿级用户的“标注结果”,覆盖面更广,且来自于真实搜索数据,训练结果与标注的目标集分布接近,训练数据更精确。下面列举三种方法(除此外,还有更多可以利用的方法)

19、:o 从搜索 session 数据里提取训练数据,用户在一个检索会话中的检索核心意图是不变的,提取出核心意图所对应的 term,其重要性就高。o 从历史短串关系资源库里提取训练数据,短串扩展关系中,一个term 出现的次数越多,则越重要。o 从搜索广告点击日志里提取训练数据,query 与 bidword 共有term 的点击率越高,它在 query 中的重要程度就越高。通过上面的方法,可以提取到大量质量不错的训练数据(数十亿级别的数据,这其中可能有部分样本不准确,但在如此大规模数据情况下,绝大部分样本都是准确的)。有了训练数据,接下来提取特征,基于逻辑回归模型来预测文本串中每个term 的重

20、要性。所提取的特征包括:o term 的自解释特征,例如 term 专名类型,term 词性,term idf,位置特征,term 的长度等;o term 与文本串的交叉特征,例如 term 与文本串中其他 term 的字面交叉特征,term 转移到文本串中其他 term 的转移概率特征,term的文本分类、topic 与文本串的文本分类、topic 的交叉特征等。核心词、关键词提取 短文本串的核心词提取。对短文本串分词后,利用上面介绍的 term weighting 方法,获取 term weight 后,取一定的阈值,就可以提取出短文本串的核心词。 长文本串(譬如 web page)的关键

21、词提取。这里简单介绍几种方法。想了解更多,请参考文献69。o 采用基于规则的方法。考虑到位置特征,网页特征等。o 基于广告主购买的 bidword 和高频 query 建立多模式匹配树,在长文本串中进行全字匹配找出候选关键词,再结合关键词 weight,以及某些规则找出优质的关键词。o 类似于有监督的 term weighting 方法,也可以训练关键词weighting 的模型。o 基于文档主题结构的关键词抽取,具体可以参考文献71。参考文献1.Term-weighting approaches in automatic text retrieval,Gerard Salton et.2.N

22、ew term weighting formulas for the vector space method in information retrieval3.A neural probabilistic language model 20034.Deep Learning in NLP-词向量和语言模型5.Recurrent neural network based language models6.Statistical Language Models based on Neural Networks,mikolov博士论文7.Rnnlm library8.A survey of nam

23、ed entity recognition and classification9.Deep learning for Chinese word segmentation and POS tagging10.Max-margin tensor neural network for chinese word segmentation11.Learning distributed representations of concepts12.Care and Feeding of Topic Models: Problems, Diagnostics, and Improvements13.Ligh

24、tLda14.word2vec15.Efficient Estimation of Word Representations in Vector Space16.Deep Learning 实战之 word2vec17.word2vec 中的数学原理详解 出处 218.斯坦福课程-语言模型19.Translating Videos to Natural Language Using Deep Recurrent Neural Networks20.Distributed Representations of Sentences and Documents21.Convolutional Neu

25、ral Networks 卷积神经网络22.A New, Deep-Learning Take on Image Recognition23.Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition24.A Deep Learning Tutorial: From Perceptrons to Deep Networks25.Deep Learning for Computer Vision26.Zero-shot leanring by convex combination of semanti

26、c embeddings27.Sequence to sequence learning with neural network28.Exploting similarities among language for machine translation29.Grammar as Foreign Language Oriol Vinyals, Lukasz Kaiser, Terry Koo, Slav Petrov, Ilya Sutskever, Geoffrey Hinton, arXiv 201430.Deep Semantic Embedding31.张家俊. DNN Applic

27、ations in NLP32.Deep learning for natural language processing and machine translation33.Distributed Representations for Semantic Matching34.distributed_representation_nlp35.Deep Visual-Semantic Alignments for Generating Image Descriptions36.Convolutional Neural Networks for Sentence Classification37

28、.Senna38.ImageNet Large Scale Visual Recognition Challenge39.Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks40.Gradient-Based Learning Applied to Document Recognition41.Effetive use of word order for text categorization with convolutional neural

29、 network,Rie Johnson42.Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation43.Show and Tell: A Neural Image Caption Generator44.Deep Image: Scaling up Image Recognition45.Large-Scale High-Precision Topic Modeling on Twitter46.A. Krizhevsky. One weird trick fo

30、r parallelizing convolutional neural networks. arXiv:1404.5997, 201447.A Brief Overview of Deep Learning48.Going deeper with convolutions. Christian Szegedy. Google Inc. 阅读笔记49.Long Short-Term Memory Recurrent Neural Network Architectures for Large Scale Acoustic Modeling50.Semi-Supervised Learning

31、Tutorial51.http:/ SHORT-TERM MEMORY BASED RECURRENT NEURAL NETWORK ARCHITECTURES FOR LARGE VOCABULARY SPEECH RECOGNITION53.LSTM Neural Networks for Language Modeling54.LONG SHORT-TERM MEMORY55.Bengio, Y., Simard, P., Frasconi, P., “Learning long-term dependencies with gradient descent is difficult”

32、IEEE Transactions on Neural Networks 5 (1994), pp. 15716656.AliasLDA57.Gibbs sampling for the uninitiated58.Learning classifiers from only positive and unlabeled data59.TF-ICF: A New Term Weighting Scheme for Clustering Dynamic Data Streams60.LDA 数学八卦61.Chinese Word Segmentation and Named Entity Rec

33、ognition Based on Conditional Random Fields Models62.Conditional Random Fields: Probabilistic Models for Segmenting and Labeling Sequence Data63.Chinese Segmentation and New Word Detection using Conditional Random Fields64.Gregor Heinrich. Parameter estimation for text analysis65.Peacock:大规模主题模型及其在腾

34、讯业务中的应用66.L. Yao, D. Mimno, and A. McCallum. Efficient methods for topic model inference on streaming document collections. In KDD, 2009.67.David Newman. Distributed Algorithms for Topic Models68.Xuemin. LDA 工程实践之算法篇69.Brian Lott. Survey of Keyword Extraction Techniques70.Yi Wang, Xuemin Zhao, Zhenl

35、ong Sun, Hao Yan, Lifeng Wang, Zhihui Jin, Liubin Wang, Yang Gao, Ching Law, and Jia Zeng. Peacock: Learning Long-Tail Topic Features for Industrial Applications. TIST2015.71.刘知远. 基于文档主题结构的关键词抽取方法研究72.Hinton. Reducing the Dimensionality of Data with Neural Networks73.Samaneh Moghaddam. On the design

36、 of LDA models for aspect-based opinion mining;74.The FLDA model for aspect-based opinion mining: addressing the cold start problem75.Ross Girshick et. Rich feature hierarchies for accurate object detection and semantic segmentation76.J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Select

37、ive search for object recognition. IJCV, 2013.77.Baidu/UCLA: Explain Images with Multimodal Recurrent Neural Networks78.Toronto: Unifying Visual-Semantic Embeddings with Multimodal Neural Language Models79.Berkeley: Long-term Recurrent Convolutional Networks for Visual Recognition and Description80.

38、Xinlei Chen et. Learning a Recurrent Visual Representation for Image Caption Generation81.Hao Fang et. From Captions to Visual Concepts and Back82.Modeling Documents with a Deep Boltzmann Machine83.A Deep Dive into Recurrent Neural Nets84.Xiang zhang et. Text Understanding from Scratch文章出处: 语义分析的一些方

39、法(一)语义分析的一些方法(中篇)人工智能 林 16 小时前 192 0 评论作者:火光摇曳语义分析的一些方法(上篇)语义分析的一些方法(中篇)语义分析的一些方法(下篇)2 文本语义分析前面讲到一些文本基本处理方法。一个文本串,对其进行分词和重要性打分后(当然还有更多的文本处理任务),就可以开始更高层的语义分析任务。2.1 Topic Model首先介绍主题模型。说到主题模型,第一时间会想到 pLSA,NMF,LDA。关于这几个目前业界最常用的主题模型,已经有相当多的介绍了,譬如文献60,64。在这里,主要想聊一下主题模型的应用以及最新进展(考虑到 LDA 是 pLSA 的generaliza

40、tion,所以下面只介绍 LDA)。LDA 训练算法简单介绍LDA 的推导这里略过不讲,具体请参考文献64。下面我们主要看一下怎么训练 LDA。在 Blei 的原始论文中,使用 variational inference 和 EM 算法进行 LDA 推断(与 pLSA 的推断过程类似,E-step 采用 variational inference),但 EM 算法可能推导出局部最优解,且相对复杂。目前常用的方法是基于 gibbs sampling来做57。 Step1: 随机初始化每个词的 topic,并统计两个频率计数矩阵:Doc-Topic 计数矩阵 N(t,d),描述每个文档中的主题频率

41、分布;Word-Topic 计数矩阵 N(w,t),表示每个主题下词的频率分布。 Step2: 遍历训练语料,按照概率公式(下图所示)重新采样每个词所对应的 topic, 更新 N(t,d)和 N(w,t)的计数。 Step3: 重复 step2,直到模型收敛。对文档 d 中词 w 的主题 z 进行重新采样的公式有非常明确的物理意义,表示为P(w|z)P(z|d),直观的表示为一个“路径选择”的过程。图 10. gibbs sampling 过程图以上描述过程具体请参考文献65。对于 LDA 模型的更多理论介绍,譬如如何实现正确性验证,请参考文献68,而关于 LDA 模型改进,请参考 Newm

42、an 团队的最新文章Care and Feeding of Topic Models12。主题模型的应用点 在广点通内部,主题模型已经在很多方面都得到成功应用65,譬如文本分类特征,相关性计算,ctr 预估,精确广告定向,矩阵分解等。具体来说,基于主题模型,可以计算出文本,用户的 topic 分布,将其当作pctr,relevance 的特征,还可以将其当作一种矩阵分解的方法,用于降维,推荐等。不过在我们以往的成功运用中,topic 模型比较适合用做某些机器学习任务的特征,而不适合作为一种独立的方法去解决某种特定的问题,例如触发,分类。Blei 是这样评价 lda 的:it can easil

43、y be used as a module in more complicated models for more complicated goals。 为什么 topic model 不适合作为一种独立的方法去解决某种特定的问题(例如分类,触发等)。o 个人总结,主要原因是 lda 模型可控性可解释性相对比较差:对于每个 topic,不能用很明确的语义归纳出这个 topic 在讲什么;重新训练一遍 lda 模型,每个 topic id 所对应的语义可能发生了变化;有些 topic 的准确性比较好,有些比较差,而对于比较差的 topic,没有特别好的针对性的方法去优化它;o 另外一个就是 to

44、pic 之间的重复,特别是在 topic 数目比较多的情况,重复几乎是不可避免的,当时益总(yiwang)在开发 peacock 的时候,deduplicate topic 就是一个很重要的任务。如果多个 topic 描述的意思一致时,用 topic id 来做检索触发,效果大半是不好的,后来我们也尝试用 topic word 来做,但依旧不够理想。主题模型最新进展首先主题模型自 PLSA, LDA 后,又提出了很多变体,譬如 HDP。LDA 的 topic number 是预先设定的,而 HDP 的 topic number 是不固定,而是从训练数据中学习得到的,这在很多场景是有用的,具体参

45、考 hdp vs lda。想了解更多 LDA模型的升级,请参考文献73,74。深度学习方面,Geoff Hinton 及其学生用 Deep Boltzmann Machine 研究出了类似 LDA 的隐变量文本模型82,文章称其抽取的特征在文本检索与文本分类上的结果比 LDA 好。heavenfireray 在其微博评论道:lda 结构是 word-hidden topic。类 lda 结构假设在 topic 下产生每个 word 是条件独立而且参数相同。这种假设导致参数更匹配长文而非短文。该文章提出 word-hidden topic-hidden word,其实是(word,hidden

46、word)-hidden topic,增加的 hidden word 平衡了参数对短文的适配,在分类文章数量的度量上更好很自然。其次,随着目前互联网的数据规模的逐渐增加,大规模并行 PLSA,LDA 训练将是主旋律。大规模主题模型训练,除了从系统架构上进行优化外,更关键的,还需要在算法本身上做升级。variational 方法不太适合并行化,且速度相对也比较慢,这里我们着重看 sampling-base inference。 collapsed Gibbs sampler57:O(K)复杂度,K 表示 topic 的总个数。 SparseLDA66:算法复杂度为 O(Kd + Kw),Kd 表

47、示文档 d 所包含的topic 个数,Kw 表示词 w 所属的 topic 个数,考虑到一个文档所包含的topic 和一个词所属的 topic 个数是有限的,肯定远小于 K,所以相比于collapsed Gibbs,复杂度已有较大的下降。 AliasLDA56:利用 alias table 和 Metropolis-Hastings,将词这个维度的采样复杂度降至 O(1)。所以算法总复杂度为 O(Kd)。 Metropolis-Hastings sampler13:复杂度降至 O(1)。这里不做分析了,具体请参考文献13主题模型并行化在文献67中,Newman 团队提出了 LDA 算法的并行化

48、版本 Approximate distributed-LDA,如下图所示:图 11. AD-LDA 算法在原始 gibbs sampling 算法里,N(w,t)这个矩阵的更新是串行的,但是研究发现,考虑到 N(w,t)矩阵在迭代过程中,相对变化较小,多个 worker 独立更新N(w,t),在一轮迭代结束后再根据多个 worker 的本地更新合并到全局更新N(w,t),算法依旧可以收敛67。那么,主题模型的并行化(不仅仅是主题模型,其实是绝大部分机器学习算法),主要可以从两个角度来说明:数据并行和模型并行。 数据并行。这个角度相对比较直观,譬如对于 LDA 模型,可以将训练数据按照 work

49、er 数目切分为 M 片(M 为 worker 数),每个 worker 保存一份全局的 N(w,t)矩阵,在一轮迭代里,各个 worker 独立计算,迭代结束后,合并各个 worker 的本地更新。这个思路可以借用目前通用的并行计算框架,譬如 Spark,Hadoop,Graphlab 等来实现。 模型并行。考虑到矩阵 N(w,t)在大规模主题模型中相当巨大,单机内存不可能存下。所以直观的想法,可以将 N(w,t)也切分成多个分片。N(w,t)可以考虑使用全局的 parameter server 来存储,也可以考虑存储在不同worker 上,利用 MPI AllReduce 来通信。数据与模型并行,可以形象的描述为一个棋盘。棋盘的行按照数据划分,棋盘的列按照模型划分。LDA 的并行化,就是通过这样的切分,将原本巨大的,不可能在单机存储的矩阵切分到不同的机器,使每台机器都能够将参数存储在内存。再接着,各个 worker 相

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报