オープンソースの機械学習プロジェクト Apache Mahoutが3月にバージョン0.3のリリースを アナウンスし 、機能性、安定性、パフォーマンスが改善された、と言う。 Apache Mahout プロジェクトの共同創立者でコミッタの Grant Ingersoll氏とコミッタの Ted Dunning氏にInfoQが聞いた
クラスタリング、協調フィルタリング そしてカテゴリー化のような 機械学習 の技術の必要性が、大量の生データを関連する情報に変換するアルゴリズムを必要とする、いくつかのソリューションといっしょに、この10年間に、着実に増えてきた。
Grant Ingersoll 氏によって 導入された Mahout プロジェクトが取り組むのは:
- コンテキスト認識の手法によって文書を一括クラスタリング することで、人は、たくさんの無関係な文書をかき分ける必要なしに、特定のクラスタや話に選択的に集中できる。
- 推薦(いわゆる 協調フィルタリング )は、しばしば本、音楽、映画のような消費アイテムを推薦するのに使われるが、複数のアクターが、データを絞り込むのに、協調する必要がある、他のアプリケーションでも使われる。
- パターンマッチング( Naïve Bayes Classifier や他)がまだ見たことがない 文書を分類するのに使われる。新しい文書が分類されると、文書中の言葉が,モデル中で調べられ、確率が計算されて、最高の結果が出力される。大抵は、結果の正確性に対する確かさを示す点数といっしょに、出力される。
- Mahoutプロジェクトは、スケーリングの目的に、Apache Hadoop の力を借りている。
Mahout ソリューションの他の重要な側面は、テキストデータのベクトル表現を作成する ツールセット だ、ということである。これは、Mahout の学習アルゴリズムがデータのベースを処理できるようになる、最初のステップである。
Mahoutプロジェクトは、 Apache Lucene (オープンソースの検索プロジェクト)コミュニティで、クラスタリングとカテゴリー化の機械学習アルゴリズムに強い興味を持っていた数人によって始められた。コミュニティは、当初、 Ng et al.の論文 Map-Reduce for Machine Learning on Multicore に触発されたが、その後、ずっと広範囲の機械学習アプローチを対象にするぐらいに進化した。
新しいApache Mahout リリースのハイライトは:
- 新しい:高パフォーマンスの Colt libraryをベースにした数学と収集のモジュール
- より高速な Frequent Pattern Growth (FPGrowth)、FP-bonsai 枝刈り を使用している
- 並行 Dirichlet プロセスクラスタリング(モデルベースのクラスタリングアルゴリズム)
- 並行な共起ベースの推薦機能
- LLRベースのnグラム生成を使用したテキスト文書のベクタへの並行変換
- 並行 Lanczos SVD (特異値分解)ソルバー
- アルゴリズムをより簡単に走らせるためのシェルスクリプト、ユーティリティと例
このリリースで最も興奮をおぼえるようなフィーチャは,何なのかを聞いた時、 Ingersoll氏が答えたのは:
分散型のSVDの導入は,多くのユーティリティと同様に、非常におもしろいですよ。人々が自分のコンテンツを Mahoutに入力するのがより簡単になります。最も興奮するフィーチャは、実のところ無形のものです、 Mahout コミュニティが、そのコントリビューターとユーザの数で存続のしきい値を超えたことです。どんなオープンソースの生涯でも、最初の段階では、非常に微妙で、わずか1人ないし2人がほとんどの開発を行い、もしそのうちの1人が開発を止めたり、あるいは遅らすだけで、そのプロジェクトは、挫折することになります。 Mahoutは、そのしきい値を超え、今や、多くの人々が積極的に、真に面白いものを作るために貢献しています。
Mahoutプロジェクトの将来の計画に含まれるのは:
- バージョン1.0が今年中にリリースされる
- 安定したAPIのセットは、1.0リリース以降になる
- Stochastic Gradient Descent (SGD) アルゴリズムのようなオンライン学習機能の実装
- Support Vector Machine (SVM) アルゴリズムの実装
SGDとSVMの実装は、文書マイニングとテキストや繰り返しカテゴリカルデータ に関係した他のアプリケーションに応用できるだろう。特に面白いのは、SGD システムは 相互作用変数 をまとめて作ることができる能力を導入する計画のあることである。