专栏首页腾讯开源的专栏基于腾讯开源 Angel 的 LDA* 入选国际顶级学术会议 VLDB
原创

基于腾讯开源 Angel 的 LDA* 入选国际顶级学术会议 VLDB

2017年8月27日-9月1日, 数据库领域的国际顶级学术会议VLDB(Very Large DataBase) 在德国慕尼黑召开。 腾讯开源项目Angel团队的论文《LDA*:A Robust and Large-scale Topic Modeling System》,入选了今年VLDB的research track,并获邀在大会上进行Oral Presentation。

Angel:高性能分布式机器学习平台

Angel是腾讯对外开源的第一个AI项目,是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习平台。它由Java和Scala开发,能在社区的Yarn上直接调度运行,并支持Spark on Angel,未来将会支持图计算和深度学习框架集成。

Angel于2017年6月16日开源,Star数三天过千,受到了广泛的用户好评,吸引了来自华为、微博、小米和上海外企的开发者参与项目,并在2017 全球机器学习技术大会、Strata China 2017、新浪微博机器学习团队等线下分享,吸引了大量的机器学习爱好者。

Angel由腾讯TEG数据平台部和北京大学联合开发,兼顾了工业界的高可用性和学术界的创新性。之前已经在SIGMOD、NSR、ICDE等顶级国际会议上发表了多篇论文,这次在VLDB发表Paper,是又一个重要的标志性事件。

LDA* : 基于Angel的大规模高性能主题模型系统

主题模型是一个对文本建模的概率图模型。在主题模型中,每个文档被看成一个话题(Topic) 的分布,将每个话题看成是一个在词语上的分布(Topic Distribution of Words)。通过主题模型对文本进行建模,文档被表示成一个话题分布(Topic Probability),从而可以对文档进行聚类等分析。

主题模型的应用场景非常广泛,可以用于多个领域,比如推荐系统、广告CTR预估,用户兴趣分类……但是在工业界的场景下训练主题模型,经常会遇到三个问题:

  1. 训练的数据规模非常大,2T大小的样本,3000亿个Token,要求在几个小时内跑出结果
  2. 数据和参数复杂,在各种各样的数据和参数配置下,都必须要有较好的性能
  3. 系统需要具有较高的可扩展性和鲁棒性,才能应对现网集群中的复杂情况

为了解决这些问题,LDA 基于Angel,从模型和工程上都进行了针对性优化,得益于Angel开放的参数服务器架构、良好的扩展性以及优秀的编程接口设计,解决了在复杂的数据环境中采样性能的鲁棒性以及*词倾斜分布带来的巨大网络通信流量这两个难题,具备了广泛的适用性和良好的性能,可以轻松处理TB级别的数据和十亿维度的主题模型。

优化1:基于吉布斯采样的Hybrid Sampler

吉布斯采样是一种基于马尔科夫蒙特卡罗的采样方法,常常用于求解大规模主题模型,但是在大规模数据以及话题个数较多的情况下,吉布斯采样的求解效率非常低下。

目前业界已有的解决方法,包括Sparse-Aware Samplers(简称SA)和Metropolis Hastings Samplers(简称MH)。SA采样法使得采样复杂度降低到O(Kd),Kd的上限是文档的长度L_d和话题个数K中的较小值;MH采样法的采样复杂度为O(1),但是因为存在接受率π,概率上需要O(1/π)次采样才能得到一个样本;而SA采样法每次采样都能够产生一个样本。

因此,SA采样法和MH采样法之间存在一个tradeoff。Angel团队做了详尽的实验找到了SA、MH两种采样法的交叉点,LDA* 有效地将F+LDA(SA采样法)和WarpLDA(MH采样法)结合起来,设计了一个新的Hybrid Sampler。

它采用了两个启发式的规则来构建这个Hybrid Sampler。在第一个规则中,将数据集分成两个部分,文档较长的数据集和文档较短的数据集,然后使用F+LDA来采样较短的文档集合,使用WarpLDA采样较长的文档集合;在第二个规则中,将两个具有不同收敛速度的sampler结合起来,在一次迭代中,每个token话题的采样都能产生一个样本,因此对于WarpLDA来说,需要动态地设定其MH步长,而对于F+LDA来说,则不需要进行任何改变。

根据实验,Hybrid Sampler在所有的数据集上和参数配置下,都能获得最好的性能。

优化2:非对称架构,实现模型并行

主题模型的训练常常需要大规模的数据集和较大的话题个数,因此分布式训练常常用于进行大规模的主题模型训练。已有的系统,包括LightLDA,YahooLDA和Petuum,其实都是采用参数服务器的架构来进行分布式训练,但是由于词分布的倾斜特性,标准的参数服务器架构会在Worker端产生较大的网络通信开销,因此每个worker几乎都需要把整个词-话题(Word-Topic)矩阵模型从PSServer上拉取下来,这个对性能会有很大的影响。

在实际的测试下,由于词分布的倾斜性,导致大部分的网络开销都产生于长尾的词语,这些长尾的词语产生的网络开销造成了在数据量和模型参数较大时带来的性能损失。因此,LDA 对于这类长尾词语进行了特殊的处理,将一部分长尾词语的采样推送到PSServer端进行,从而避免了对词-话题矩阵的拉取操作。由于在这样的架构中,PSServer不仅仅作为一个分布式存储,还参与了一定的计算任务,从而某种程度上实现了模型并行,这种架构为非对称架构。依托于Angel良好的接口设计和psFunc功能,LDA的这种非对称架构可以非常轻松的实现,而不用对Core进行任何的修改。

性能数据:在腾讯真实的推荐数据集上最高是原有系统的 9 倍

为了进行全面的评测,LDA 和之前开源的Petuum,以及微软的LightLDA,在2个数据集上进行对比。一个是开源的PubMED,一个是腾讯真实的推荐数据集。实验结果表明,在数据量越大的情况下,LDA 的优势越明显。

  • PubMED数据集上,LDA*的速度,分别是Petuum和LightLDA的5倍
  • 在腾讯真实的推荐数据集上,LDA* 是Petuum的9倍,是lightLDA的2.6倍。

大规模生产数据 为了更好的体现LDA 的性能,在腾讯内部生产集群上,LDA 使用更大的数据集进行训练。从下图的数据集可以看到,最大的一个数据集有3000亿个token,大约1.8TB的数据量。在所有的任务中,话题数设置为8000。

  • 数据集规模如下
  • 测试性能如下 LDA* 能够在资源充足的情况下,能得到非常好的扩展性,并且能够扩展至数千个worker,即便对TB级别的数据进行训练,时间可以控制在小时级别,很好的满足了生产系统的需要。

请在Github上Star Angel项目,与我们探讨

除了LDA算法,Angel还提供了Logistic Regression、Matrix Factorizaiton、GBDT等业内常用的高性能算法。未来,伴随着Angel开源的发展和推广,希望业界会有更多的公司,能够从Angel中受益,轻松拥有构建大规模模型的能力。也欢迎对机器学习有兴趣的同仁一起贡献代码。

Github: https://github.com/tencent/angel

转载自【腾讯开源】公众号,腾讯官方开源资讯,期待您的关注。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 道器相融,由 Angel 谈一个优秀机器学习平台的自我修养(下)

    随着人工智能时代来临,大数据平台发生了新的变化,也提出了更高的要求。Spark等大数据平台多是为通用数据处理而设计的,并非专用于机器学习任务,企业该如何更好地利...

    腾讯开源
  • 【直播报名】Linux顶级AI开源项目-Angel图计算技术沙龙

    7月8日-9日,每天19:00,连续两天的腾讯大数据技术沙龙《Angel图计算》直播专场将于线上举办。活动邀请了北京大学王选研究所教授、腾讯信息安全专家、腾讯...

    腾讯开源
  • 【开源公告】腾讯第三代高性能计算平台Angel 正式全面开源

    Angel 项目简介 Angel是一个基于参数服务器(Parameter Server)理念开发的高性能分布式机器学习框架,在其之上,用户能轻松开发适用于高维度...

    腾讯开源
  • 如何通过EDI提升企业采购管理水平?

    采购占据供应链管理的重要地位,采购的发展水平一定程度上与企业生产力发展水平息息相关。产品的生产周期中,采购往往占据较多时间,并且不确定因素很多。如何与供应商及时...

    知行软件EDI
  • 力扣题目汇总(丑数,重复N的元素,求众数)

    你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

    小小咸鱼YwY
  • 【译】设计优雅的 Rust 库 API

    原文见:https://deterministic.space/elegant-apis-in-rust.html

    MikeLoveRust
  • MLK | 机器学习的降维"打击"

    ? 在机器学习中,我们有的时候会遇到维度灾难,当模型的训练入参有很多的时候,往往是需要很多的时间和资源去训练的,而这不是我们想要看到的结果。一般情况下,我们都是...

    Sam Gor
  • 读书|《Mastering Machine Learning with Python in Six Steps》

    蜗牛最近精力真是有限,很快就要大考了,不过读书不能停。 接下来几天读一读 《Mastering Machine Learning with Python in ...

    杨熹
  • Facebook 开源 FAISS;MIT 开发机器学习数据合成系统 SDV | 开发者头条

    更高效的聚类、相似性搜索算法库,Facebook 开源 FAISS MIT 黑科技,合成数据也能用于机器学习 机器学习算法成功预测人造地震 每日推荐阅读 Vi...

    AI研习社
  • 注意!有人正在计算你今天会出现在哪里,并尝试左右你的行为

    导读:很多网友都怀疑手机在偷听我们的日常对话,这甚至已经算不上新鲜事。有知乎网友提到,跟同事聊起蛋糕店后,贴吧app上赫然出现了85°C的加盟广告!另有贴吧网友...

    华章科技

扫码关注云+社区

领取腾讯云代金券