有关机器学习的开源项目 Apache Mahout 三月份的时候推 出了它的0.3 版本,这个新版本在之前的基础上添加了一些新功能,比之前的版本更为稳定,性能也有相应的提升。InfoQ 采访了Apache Mahout 项目的开发者 Grant Ingersoll 和 Ted Dunning ,其中 Grant Ingresoll 也是该项目的创始人之一。
过去十年里,从大 量原始数据中解析出相关信息的需求急剧增长,以致于聚类(clustering)、协同过滤(collaborative filtering)和分类(categorization)等机器学习技术的需 求也是呈稳定增长势态。
Grant Ingersoll 这样介 绍 Mahout 项目:
- 将已知方法语境中的文档聚类 (Clustering)有助于把注意力集中到某些特定的聚类和内容上,从而避免在无关的内容上浪费精力。
- 推荐算法(协同过滤推荐算法 -Collaborative Filtering )常常用来向用户推荐书籍、音乐、电影等内容,也可以用于多用户协作的应用中精简所需关注的数 据。
- 模式匹配(朴素贝叶斯分类器 -Naïve Bayes Classifier 等分类算法)可用于归类之前没有见过的文档。归类新文档时,算法在模式中查找文档中涉及的词汇, 计算该文档属于各个模式的概率,最后文档将归于概率最大的模式,输入的结果往往都以数值来表示算法本身对这个结果的正确与否有多大的把握。
- Mahout 项目通过 Apache Hadoop 的支持来获 得伸缩性。
Mahout 另一个重点是,它提供一系列工 具把文本数据表示成矩阵形式。这也是采用Mahout 机器学习算法来处理数据的首要任务。
Mahout 项目是由 Apache Lucene (开源搜索项目)社区几 个热衷于聚类、分类等机器学习算法的技术人员所发起。社区最初的开发“追随”于 Ng et al. 发表的论文“支持多核之上的机器学习的 Map-Reduce 框架(Map-Reduce for Machine Learning on Multicore)”,自项目启动以来,社区也致力于各种机器学习算法、模式的开发。
最新 Apache Mahout 版本的亮点有:
- 新添功能:基于高性能的 Colt library 的 math、collections 模块
- 采用 FP-bonsai pruning 而实现更快的频 繁模式增长(Frequent Pattern Growtt)算法
- 并行计算 Dirichlet 聚 类算法(基于模型的聚类算法)
- 并行计算基于共现算法的推荐引擎
- 结合基于 LLR 的 ngram 生成算法并行处理文本文档 到向量的转换
- 并行 Lanczos SVD (奇异 值分解)计算
- 提供运行算法、工具以及范例的脚本程序
在问到这个版本中最激动人心的特性 时,Ingersoll 这样回答:
新添加的分布式奇异值分解(Singular Value Decomposition)计算非常令人期待,此外,还有那些方便用户把内容导入到 Mahout 的诸多工具。其中,最激动人心的其实并不是有形的,而是 Mahout 社区的成长。社区目前已吸引到数量客观的贡献者和用户。任何开源项目的发展过程当中,最初阶段往往都很惨淡,工作常常只有一两个人去做,一旦 当中有人离开甚至只是减缓开发速度,整个项目都有可能中途夭折。但我相信 Mahout 已经通过了这样的考验,现在已经有非常多非常活跃的社区成员正努力把 它变成一个真正令人激动的项目。
Mahout 项目的未来计划包括:
- 今年发布 1.0 版本
- 从 1.0 版本开始发布稳定的 API
- 实现诸如随机梯度下降 (Stochastic Gradient Descent - SGD)算法的在线学习功能
- 提供支持向量机 (Support Vector Machine - SVM)算法实现
SGD 和 SVM 的实现将适宜于文档挖掘以及其它一些与文本或重复归类数据相关的应用。尤其令人期待的是 SGD 系统将引入在线创建互动变量的 能力。
评论