Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

machine learning & apache mahout

10,355 views

Published on

an introduction of machine learning & Apache Mahout

Published in: Technology, Education
  • Be the first to comment

machine learning & apache mahout

  1. 1. 機械学習と Apache Mahout
  2. 2. Apache Mahout とは ・ ASF (Apache Software Foundation) による新し いオープンソース・プロジェクト ・目標は、 Apache ライセンスの下、無料で使用 できるスケーラブルな機会学習な機械学習アル ゴリズムを作成すること ・ Mahout : 象を飼う人、象を使う人   Apache Hadoop ( ロゴは黄色い象 ) を使ってス ケーラビリティとフォルト・トレランスを実現 していることに由来します。
  3. 3. Apache Mahout ・ Apache Lucene( オープンソースの検索 ) コミュ ニティーに関係していた数人によって開始され ました。 ・一般的な機械学習アルゴリズムを、確実かつ、 十分にドキュメントを整備した上で、スケーラ ブルに実装することを志向しています。 ・特徴  スケーラブル。 hadoop を利用した並列演算。   Java ライブラリであること。 (UI やパッケージ 化されたサーバ等はありません )
  4. 4. 機械学習とは 機械学習(きかいがくしゅう、 Machine learning )  ・人工知能における研究課題の一つで、人間が 自然に行っている学習能力と同様の機能をコン ピュータで実現させるための技術・手法のこと  ・ある程度の数のサンプルデータ集合を対象に 解析を行い、そのデータから有用な規則、ルー ル、知識表現、判断基準などを抽出する
  5. 5. 機械学習はどんなところで使われているか (1) ・ Amazon などのサイトで過去の購買履歴に基づ いてユーザに商品を推薦するシステム
  6. 6. 機械学習はどんなところで使われているか (2) ・指定された日付における類似のニュース記事をす べて見つけるシステム
  7. 7. 機械学習はどんなところで使われているか (3) ・ web ページをジャンル ( スポーツ、経済など ) にしたがって自動的にカテゴリー分けする ・ E メールからスパム・メールを検出 ・クレジット詐欺の発見、不正の検出 ・株式市場の分析
  8. 8. 機械学習で使われる手法 ・教師あり学習:  ラベルつきの訓練データから機能を学習し、有 効な任意の入力の値を予測します。 ・教師なし学習:  何が正しいか正しくないかの例を使わずにデー タの意味を推測します。
  9. 9. 教師あり学習 ・一般的な例:    E メールからスパムを分類する場合。    web ページをジャンルに従ってラベル付けす る場合。   手書き文字を認識する場合。 ・よく使われるアルゴリズム   単純ベイズ分類器   ニューラルネットワーク    SVM ( サポートベクターマシン )
  10. 10. 教師なし学習 ・教師なし学習がよく使われる例:   類似の入力を論理的なグループに分類する場 合。 ・一般的な手法    K 平均法   階層型クラスタリング   自己組織化マップ
  11. 11. よく使用される機械学習タスク ・以下の 3 つは実際のアプリケーションで非常に よく使われるタスクです。   ・協調フィルタリング   ・クラスタリング   ・カテゴリー分け
  12. 12. 協調フィルタリング ・協調フィルタリング (CF: Collaborative Filtering) で は、ユーザ情報(評価、クリック数、購入履歴な ど)を使用して、他のサイト・ユーザに対してリコ メンデーションを行います。  ・ユーザ・ベース:類似のユーザを見つけることで アイテムを推薦します。  ・アイテム・ベース:アイテム間の類似性を計算し 、レコメンデーションを行います。 どの CF 手法も最終的には、ユーザおよびユーザが評 価したアイテムどうしの類似性を計算することにな ります。
  13. 13. レコメンデーションの例 これをクリックしたら同じようなテーマの商品が推薦されました。
  14. 14. レコメンデーションの応用例 2010 年 8 月に、 JR 品川駅に登場した 次世代自動販売機 オムロンが開発した属性判定センサお よび人感センサを連動させることで、 自販機の前に誰も居ない状態のときに は、デジタルサイネージのネットワー ク (WiMAX) を用い、コンテンツを配信 する。 また、人が自販機の前に立って、商品 購入をしようという場合は、顧客属性 ( 年齢、性別 ) を判定し、属性ごと にお 勧め商品の表示を行ったり、季節や時 間帯、環境に応じた商品の提案といっ た 1 人ひとりを見分けた " 高度なマーケ ティング " が行われる。
  15. 15. クラスタリング クラスタリングとは、類似のアイテムをグループ 化することです。 多くの実装では以下のようにクラスタリングしま す。 (1) 集合の中のアイテムを n 次元空間のベクトル として表現 (2) 2 つのアイテム間の距離を計算 ( 距離はユー クリッド距離、マンハッタン距離、コサイン類 似度など ) (3) 距離が近いアイテムどうしをグループ化 (4) (2), (3) を繰り返す
  16. 16. ブログをクラスタリングする場合 まず、それぞれのブログのフィードに現れる特 定の単語の頻度を計算します。 " c hina" " kids " " mus ic " " yahoo" … Gothamis t 2 3 3 0 GigaOM 6 0 0 2 Quic k Online Tips 1 2 2 22 …
  17. 17. ブログをクラスタリングする場合 この例だと “ Gothamist” ”と Quick Online Tips” の 距離が一番近いのでこの 2 つが最初にグループ 化されます。 “china” の頻度 “kids” の頻度 GigaOM Gothamist Quick Online Tips
  18. 18. 階層的クラスタリング 階層的クラスタリングでは、最も似ている 2 つの グループをまとめることを繰り返すことによっ て、グループの階層を作り上げます。 ① ② ③ ④ ① 最も距離が近い a と b の 2 つのアイテム がまとめられ、 a と b の間の位置に新しい グループとしてまとめられます。 ② 新しいグループは c と一緒にまとめられ ます。 ③ この場合 d と e が最も近いアイテムとな るのでこれらはまとめられて新たなグループ を形成します。 ④ 残っている 2 つのグループがまとめられ 、全体が一体となります。
  19. 19. ブログをクラスタリングした例
  20. 20. クラスタリングの例 (2) 人々が欲しい物のリストからクラス タリング 一般の人々が欲しい物のリストをクラスタリングしました。 ユーザ1 ユーザ2 ユーザ3 … watc h 1 0 0 je ans 1 1 1 s hoe s 1 0 1 … ※ 欲しい: 1   欲しくない: 0 クラスタリング
  21. 21. カテゴリー分け カテゴリー分けの手法のうち、ここではベイズ分 類器による迷惑メール(スパム・メール)フィ ルタを説明します。 例えばタイトルに「無料お試し」という言葉が含 まれているとき、そのメールが迷惑メールであ る確率をどうやって計算すればよいでしょうか ?
  22. 22. 迷惑メールとタイトルの関係 ③ = (①かつ②) タイトルに「無料お試し」 が含まれていて、かつ迷惑 メールである。 ② 迷惑メールであ る。 割合 ( 確率) : P( 迷 惑 ) ① タイトルに「無料お試 し」が含まれている。 割合 ( 確率 ): P( 無料お試 し ) この割合(確率)を知りたい。
  23. 23. ベイズの定理 ベイズの定理は条件付き確率をひっくり返す方法で す。 ※ 条件付き確率 P(A|B) は、「 B が起こったとい う条件のもとで A が起こる確率」と定義されて います。 P(A | B) = P(B | A) × P(A) / P(B)
  24. 24. ベイジアンフィルタ (1) 過去のメールのデータを調べたところ、以下のようになりまし た。  ・迷惑メールの割合は全メールの 20%    ⇒ P( 迷惑 ) = 0.2  ・迷惑メールで、タイトルに「無料お試し」を含むもの割合 は 60%    ⇒ P( 無料お試し | 迷惑 ) = 0.6  ・迷惑メールでないメールのうち、タイトルに「無料お試 し」を含むものは 1%    ⇒ P( 無料お試し | 迷惑でない ) = 0.01
  25. 25. ベイジアンフィルタ (2) P( 迷惑 | 無料お試し) ← ここでベイズの定理を使用します = P( 無料お試し | 迷惑 ) × P( 迷惑 ) / P( 無料お試し ) = P( 無料お試し | 迷惑 ) × P( 迷惑) / { P( 迷惑 )×P( 無料お試し | 迷惑 )+P (迷惑でない )×P( 無料お試し | 迷惑 でない ) } = 0.6 × 0.2 / (0.6 × 0.2 + 0.4 ×0.01) = 0.12 / (0.12 + 0.004) = 約 96.8 %   → 迷惑メールの可能性が高い! P( 迷惑 ) 、 P( 無料お試し | 迷惑 ) 、 P( 無料お試し | 迷惑でな い ) は実際のメールでトレーニングを続けていくことができ ます。
  26. 26. 機械学習とスケーラビリティ ・機械学習では大量の入力データを処理するだけでなく 、素早く処理する必要があります。 (Picasa, amazon, Google News 等 ) ・また、機械学習ではしきい値等のパラメータを調整し て何度も計算を行い、最適なものを選ぶということが よくあります。 ⇒ これらのデータはたとえ高性能のコンピュータであっ ても一台のコンピュータで扱うことは不可能です。 ⇒ そこで Mahout ではスケーラビリティを重視 し、 Hadoop を使って処理を複数のコンピュータに容 易に分散させることを志向しています(現時点では対 応できていないアルゴリズムもあります)
  27. 27. MapReduce
  28. 28. Mahout で実装されている機能 ・ Taste CF 。 CF のためのオープンソース・プロジェクト であり、 SourceForge の Sean Owen によって開始され、 2008 年に Mahout に寄贈されました。 ・ Map-Reduce に対応した、いくつかのクラスタリング実 装( K 平均法、ファジィ K 平均法、 Canopy 、ディリク レ、平均シフトなど) ・分散型単純ベイズ分類器と補完型単純ベイズ分類器の実装 ・進化的プログラミングのための分散型適応度関数機能 ・ニューラルネットワーク ・ランダム決定木 ・サポートベクターマシン
  29. 29. Mahout はどんなところで使われているか (1) ・ Booz Allen Hamilton( アメリカのコンサルティング会社 ) で はバイオメトリックス ( 指紋、網膜パターン等 ) のデータ ベースに Hadoop と Mahout を使用するシステムを研究し ています。 (http://www.slideshare.net/ydn/3-biometric-hadoopsummit2010)
  30. 30. Mahout はどんなところで使われているか (2) ● Yahoo! の anti spam (http://www.slideshare.net/hadoopusergroup/mail-antispam?from=ss_embed) 【難点】 ・ 250 億のコネクション、 50 億のメール送信、 4.5 億のメ ールボックス ・スパマーからの、ターゲットに特化した攻撃 ・ボットネットの使用する IP アドレスはすぐに変動する ⇒ スパマーの作戦を調査、洞察するためのシステムを開発 ・ Hadoop: MapReduce + 分散ストレージ ・ Pig: データの分析と管理 ・ Mahout: データマイニングのために使用
  31. 31. Mahout はどんなところで使われているか (3) ● Kauli 日本のアドネットワーク会社 (http://kau.li/) 以下、ニュースリリー スより。 ・複数のアドネットワークから最も広告収益の高い広告を自動的に選択。機 械学習の手法によって最も広告収益が高い広告アドネットワークの広告 を計算する ・アドネットワークごとにサイト訪問者の広告閲覧回数や広告に対する行為 などの計測結果を、再帰的に利用して学習するロジックを採用している ため、継続して利用するほど収益性が向上
  32. 32. 参考文献 ・ Apache Mahout のホームページ (http://mahout.apache.org/) ・「集合知プログラミング」 Toby Segaran, オライリー・ ジャパン、 2008 (機械学習の Python による実装が参考 になりました) ・「 Apache Mahout の紹介」 Grant Ingersoll (http://www.ibm.com/developerworks/jp/java/library/j- mahout/), 2009 ・「 Mahout in Action 」 Sean Owen & Robin Anil, Manning, 2010 (http://www.manning.com/owen/) ・「食える数学」 神永 正博、ディスカヴァー・トゥエンテ ィワン、 2010 ( ベイジアンフィルタのところで参考にしま した) ・マイコミジャーナルの記事

×