分布式机器学习的故事(三):LD...-头条网TouTiao.pdfVIP

分布式机器学习的故事(三):LD...-头条网TouTiao.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分布式机器学习的故事(三):LD...-头条网TouTiao.pdf

分布式机器学习的故事 (三 ):LDA和MapReduce——可扩 展的基础是数据并行 2014-02-19 22 08  王益5856261 因为MPI在可扩展性上的限制 , 我们可以大致理解为什么Google的并行计算架构上没有 实现经典的MPI。同时 ,我们自然的考虑Google里当时最有名的并行计算框架MapReduce。 MapReduce的风格和MPI截然相反。MapReduce对程序的结构有严格的约束——计算过程 必须能在两个函数中描述 :map和reduce ;输入和输出数据都必须是一个一个的records ;任 务之间不能通信 ,整个计算过程中唯一的通信机会是map phase和reduce phase之间的 shuffuling phase ,这是在框架控制下的 ,而不是应用代码控制的。 pLSA模型的作者Thomas Hoffmann提出的机器学习算法是EM。EM是各种机器学习 inference算法中少数适合用MapReduce框架描述的——map phase用来推测 (inference)隐含 变量的分布 (distributions of hidden variables),也就是实现E­step ;reduce phase利用上述 结果来更新模型 ,也即是M­step。 但是2008年的时候 ,pLSA已经被新兴的LDA掩盖了。LDA是pLSA的generalization :一方 面LDA的hyperparameter设为特定值的时候 ,就specialize成pLSA了。从工程应用价值的角度 看 ,这个数学方法的generalization ,允许我们用一个训练好的模型解释任何一段文本中的语 义。而pLSA只能理解训练文本中的语义。 (虽然也有ad hoc的方法让pLSA理解新文本的语 义 ,但是大都效率低 ,并且并不符合pLSA的数学定义。 )这就让继续研究pLSA价值不明显 了。 另一方面 ,LDA不能用EM学习了 ,而需要用更generalized inference算法。学界验证效果 最佳的是Gibbs sampling。作为一种Markov Chain Monte Carlo (MCMC)算法 ,顾名思义 , Gibbs sampling是一个顺序过程 ,按照定义不能被并行化。 但是2007年的时候 ,UC Irvine的David Newman团队发现 ,对于LDA这个特定的模型 , Gibbs sampling可以被并行化。具体的说 ,把训练数据拆分成多份 ,用每一份独立的训练模 型。每隔几个Gibbs sampling迭代 ,这几个局部模型之间做一次同步 ,得到一个全局模型 ,并 且用这个全局模型替换各个局部模型。这个研究发表在NIPS上 ,题目是 :Distributed Inference for Latent Dirichlet Allocation。 上述做法 ,在2012年Jeff Dean关于distributed deep leearning的论文中 ,被称为data parallelism (数据并行 )。如果一个算法可以做数据并行 ,很可能就是可扩展 (scalable)的 了。 David Newman团队的发现允许我们用多个map tasks并行的做Gibbs sampling ,然后在 reduce phase中作模型的同步。这样 ,一个训练过程可以表述成一串MapReduce jobs。我用 了一周时间在Google MapReduce框架上实现实现和验证了这个方法。后来在同事Matthew Stanton的帮助下 ,优化代码 ,提升效率。但是 ,因为每次启动一个MapReduce job ,系统都 需要重新安排进程 (re­schedule);并且每个job都需要访问GFS ,效率不高。在当年的 Google MapReduce系统中 ,1/3的时间花在这些杂碎问题上了。后来实习生司宪策在Hadoop 上也实现了这个方法。我印象里Hadoop环境下 ,杂碎事务消耗的时间比例更大。 随后白红杰在我们的代码基础上修改了数据结构 ,使其更适合MPI的AllReduce操作。这样 就得到了一个高效率的LDA实现。我们把用MapReduce和MPI实现的LDA的Gibbs sampling算法 发表在这篇论文里了。 当我们踌躇于MPI的扩展性不理想而MapReduce的效率不理想时 ,Google

文档评论(0)

wuyouwulu + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档