还记得11月9日Google Research推出第二代开源机器学习软件库TensorFlow吧,谷歌称在建立和训练神经网络方面,TensorFlow速度要比第一代系统快5倍,可支持 CPU、GPU、桌面机、服务器和移动计算等平台。TensorFlow吸引了开发者广泛的眼球。
就在同一天,微软亚洲研究院也开源了分布式机器学习工具包DMTK。开源版DMTK包含了目前世界上最大规模的主题模型和分布式词向量模型,据称比同类模型高了好几个数量级。以至于有开发者惊呼,怎么微软也能把这样的核心技术给开源了?
那么,什么是DMTK分布式机器学习包?这还要从DMTK的开发历史说起。DMTK的主要研发负责人、微软亚洲研究院人工智能研究组首席研究员、美国卡耐基·梅隆大学(CMU)博士生导师刘铁岩告诉记者,
近年来全球机器学习领域主要有三大趋势:更大规模的机器学习、更深度的机器学习以及更强交互性的机器学习,这些都是基于大数据与云计算的兴起。
微软亚洲研究院从两年前开始研发DMTK分布式机器学习系统。首先,DMTK通过分布式计算部署的方式满足了大规模机器学习的要求。由于云计算和高性能处理器的普及,让机器学习从单机环境扩展到多机环境甚至是集群系统。分布式机器学习就是通过在更为廉价的集群系统上部署机器学习的算法,把原来单机的计算能力扩展到成千上万台服务器上。
DMTK开源版提供了简单高效的分布式机器学习框架,它由参数服务器和客户端软件开发包(SDK)两部分构成。开发者只需要简单几行代码,就可以非常容易地把自己开发的机器学习算法从单机环境扩展到多机或集群环境。这大幅降低了机器学习的门槛,无论是高校研究者或是商用机器学习开发商,都能基于微软DMTK开源版轻松扩展机器学习算法的计算环境和计算资源,从而实现基于大数据的大规模机器学习。
其次,DMTK还提供了丰富的机器学习算法,以满足更为深度、更为快速的机器学习。目前开源版的DMTK包含了其中两款独具特色的机器学习算法:LightLDA主题模型和分布式词向量模型。
什么是主题模型呢?互联网和社交平台等催生了庞大的文本内容,通过机器学习对这些内容进行数据挖掘,可以得出相关的主题(Topic),这是机器学习和文本理解的基础。据刘铁岩介绍,DMTK提供的LightLDA算法是当前世界上唯一一款能训练超过100万个主题的机器学习算法,它仅用20台服务器(300余个CPU内核)就能训练如此庞大的主题模型,这让其它同类系统望尘莫及。
去年曾经获得国际数据挖掘大会(KDD)最佳论文奖的AliasLDA算法,要用多达1万个CPU内核才能完成2000个主题的训练。 LightLDA算法之所以能够用比AliasLDA少很多的计算资源训练出高若干数量级的模型,是因为它具有一种独创的、让运算复杂度与主题数目无关的高效采样方法。这样一来,即使训练再多的主题数,也无需更大规模的计算资源。据了解,LightLDA已经帮助微软的很多关键产品实现了性能的飞跃。
另一个更为神奇的分布式词向量训练模型算法,能够更好地计算两个词之间的“距离”。简单地说,过去通过搜索引擎搜索内容,主要依靠搜索关键词的精确匹配。如果在被搜索的网页上出现了与搜索关键词相同的词汇,被搜索网页链接就会出现在搜索结果页面。但在广告展示、话题探索、垂直搜索等应用领域,更多需要的是语义级别匹配,也就是在语义方面的相关性匹配。词向量模型通过挖掘文本数据,为每一个词训练出上千个相关指标(维度),而带有上千个维度的一个词即为一个向量,通过数学方式计算两个词向量之间的距离,即可以有效地表征两个词之间的语义相关度。
DMTK中包含的分布式词向量模型是目前市面上唯一的一款词向量模型的多机版,它可以把单机计算资源扩展到多机或集群中,从而更快、更高效地学习词向量。分布式词向量模型把“搜索”推进到了“探索”阶段,这有望给整个搜索和相关产业带来颠覆性变化。
据了解,DMTK已经被应用到了微软的必应搜索引擎、广告、小冰等多款在线产品当中,实现了更强交互性的机器学习。以微软小冰为例,作为聊天机器人,人类用户与小冰的平均每次对话轮数达到了18轮,而此前最领先同类机器人的平均轮数仅有1.5至2轮。这就说明微软小冰在与人类对话中对相关词汇的“命中率”远高于同类技术,创造了更好的交互性机器学习体验。
DMTK开源版在Github开源社区发布一周以来始终保持在Top 10的位置,DMTK官网目前的访问量已经突破百万,DMTK可执行文件下载量达到十余万次,而GitHub开发人员也是在一周之内就给DMTK上千颗星,这是很多同类开源项目几年都无法达到的热度。
同一天开源的TensorFlow和DMTK之间到底有什么区别呢?记者了解到,谷歌目前开源出来的TensorFlow,作为单机深度学习工具并不支持分布式计算,而微软DMTK开源版则支持分布式、异构、异步计算集群环境部署。另外,谷歌的TensorFlow主要是系统实现,并不包含算法方面的创新;而DMTK则两者兼顾,因此可以用更少的资源,训练出大N个数量级的模型。
那么为何科技巨头们纷纷将机器学习技术开源?这一方面是为了推进整个机器学习应用的普及,通过开源高端算法和软件,为人工智能和机器人产业打开新的机遇之门。另一方面则是在更深层次拉动各自的软件与算法生态,从战略技术制高点布局下一代产业格局。