実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference Japan 2014

12,340 views

Published on

機械学習は、増え続けるデータをもとに、事業戦略の判断やより正確な予測、関連性の推定を行うための、重要なツールです。機械学習の中でも、最も幅広く活用されているアプリケーションはレコメンデーションエンジンです。スケーラブルな機械学習ライブラリであるMahoutは、レコメンデーションの生成とデータの扱いをシンプルなものにしてくれます。本講演では、より構築が簡単なレコメンデーションエンジンのデザインと、そのイノベーティブな実装方法を活用した場合の利点を紹介します。2014年7月8日に開催されたHadoop Conference Japan 2014での講演資料です。

Published in: Technology
1 Comment
64 Likes
Statistics
Notes
No Downloads
Views
Total views
12,340
On SlideShare
0
From Embeds
0
Number of Embeds
4,175
Actions
Shares
0
Downloads
160
Comments
1
Likes
64
Embeds 0
No embeds

No notes for slide

実践機械学習 — MahoutとSolrを活用したレコメンデーションにおけるイノベーション - 2014/07/08 Hadoop Conference Japan 2014

  1. 1. ® © 2014 MapR Technologies 1 ® © 2014 MapR Technologies 実践機械学習  — MahoutとSolrを活⽤用した レコメンデーションにおけるイノベーション 草薙  昭彦 MapR Technologies
  2. 2. ® © 2014 MapR Technologies 2 本⽇日のトピック •  レコメンデーションとは? •  レコメンデーションをユーザーに提供するには? •  ⾳音楽レコメンデーションの例例 •  よりよいレコメンデーションにするには?
  3. 3. ® © 2014 MapR Technologies 3 実践機械学習 レコメンデーションにおけるイノベーション 無料料  eBook Ted  Dunning,  Ellen  Friedman 著 マップアール・テクノロジーズ株式会社    草薙  昭彦 監修 株式会社ブレインパッド    太⽥田  満久、下⽥田  倫倫⼤大、増⽥田  康彦 ⽟玉川  ⻯竜司 訳 ダウンロードは http://hadoop-‐‑‒times.com/ml-‐‑‒pdf-‐‑‒ebook.html Apache  Mahout  と  Solr  を活⽤用した、シ ンプルながらも強⼒力力なレコメンデーショ ンエンジンのデザインと実装を解説
  4. 4. ® © 2014 MapR Technologies 4® © 2014 MapR Technologies 背景について
  5. 5. ® © 2014 MapR Technologies 5 機械学習ってどういうもの?
  6. 6. ® © 2014 MapR Technologies 6 機械学習アルゴリズムとその実装 A1 A2 ! " # $ T A1 A2 ! " # $= A1 T A2 T ! " % % # $ & & A1 A2 ! " # $ = A1 T A1 A1 T A2 AT 2A1 AT 2A2 ! " % % # $ & & r1 r2 ! " % % # $ & & = A1 T A1 A1 T A2 AT 2A1 AT 2A2 ! " % % # $ & & h1 h2 ! " % % # $ & & r1 = A1 T A1 A1 T A2 ! "% # $& h1 h2 ! " % % # $ & &O(κ k d + k3 d) = O(k2 d log n + k3 d) for small k, high quality O(κ d log k) or O(d log κ log k) for larger k, looser quality でも今⽇日は、強⼒力力だけれどもそれをシンプルに実現する⽅方法について お話しします
  7. 7. ® © 2014 MapR Technologies 7 レコメンデーション •  データ: ⼈人々の⾏行行動(ユーザー)とアイテムとのインタラクション –  データはレコメンデーションモデルの学習に使われる •  追加の適切切なもしくは望ましいインタラクションを提案することが⽬目的 •  アプリケーションの例例: 映画、⾳音楽、地図ベースのレストラン選択、eスト アやレジレシートでの販売商品の提案
  8. 8. ® © 2014 MapR Technologies 8 Google Maps: レストランのレコメンデーション
  9. 9. ® © 2014 MapR Technologies 9 Google Maps: テクノロジー企業のレコメンデーション
  10. 10. ® © 2014 MapR Technologies 10® © 2014 MapR Technologies レコメンデーションのしくみ (または「I want a pony」)
  11. 11. ® © 2014 MapR Technologies 11 I want a pony! 費⽤用や⼿手間を考えず、無茶茶な要求をする様を 揶揄して表現するフレーズ
  12. 12. ® © 2014 MapR Technologies 12 ⼀一番はじめの質問: 正しいデータを使っていますか?
  13. 13. ® © 2014 MapR Technologies 13 レコメンデーション 群衆の⾏行行動は、個⼈人の⾏行行動を 予測するのを助けてくれる
  14. 14. ® © 2014 MapR Technologies 14 レコメンデーション アリスはリンゴと⼦子⽝犬を購⼊入 チャールズは⾃自転⾞車車を購⼊入 アリス チャールズ
  15. 15. ® © 2014 MapR Technologies 15 レコメンデーション アリスはリンゴと⼦子⽝犬を購⼊入 チャールズは⾃自転⾞車車を購⼊入 ボブはリンゴを購⼊入 アリス ボブ チャールズ
  16. 16. ® © 2014 MapR Technologies 16 レコメンデーション ボブは他に何を欲しがる? アリス ボブ チャールズ ?
  17. 17. ® © 2014 MapR Technologies 17 レコメンデーション ⼦子⽝犬、もちろん! アリス ボブ チャールズ
  18. 18. ® © 2014 MapR Technologies 18 レコメンデーションがどのように ⾏行行われるかわかりましたか?
  19. 19. ® © 2014 MapR Technologies 19 ところで、みんなと同じく、 ボブもポニーが欲しいんです
  20. 20. ® © 2014 MapR Technologies 20 レコメンデーション 全員がポニーを購⼊入したらどうな る? アリス ボブ チャールズ アメリア 他に何をアメリアにおすすめすればい い? ?
  21. 21. ® © 2014 MapR Technologies 21 レコメンデーション アリス ボブ チャールズ アメリア もし全員がポニーを購⼊入したら、 ポニーは他のものを予測するのに 役に⽴立立たない... ?
  22. 22. ® © 2014 MapR Technologies 22 素の共起データの問題 •  ⾮非常に⼈人気のアイテムはすべてと共起する (皆がポニーが欲しい という情報は役に⽴立立たない…) –  例例:  ウェルカムドキュメント、エレベーターの⾳音楽 •  広範囲な出現は⾯面⽩白みがない –  かみそりの刃  (とかポニー)  のような絶えず望まれるアイテムを提供し たいのでない限り •  欲しいのは例例外的な共起 –  これこそが興味深い好みの指標の情報源であり、レコメンデーション の基礎となる
  23. 23. ® © 2014 MapR Technologies 23 ⾏行行動から役に⽴立立つ指標を得るには •  ログファイルを使ってユーザー x アイテムの履履歴マトリクスを 作成 –  注:  このインタラクションの履履歴は全ての潜在的な組み合わせと⽐比べる と疎なデータである •  アイテム x アイテムの共起マトリクスに変換 •  例例外的な共起を探し、役に⽴立立つインジケーターを⾒見見つけてイン ジケーターマトリクスを作成 –  対数尤度度⽐比  (LLR)  はどの共起が好みのインジケーターとして使えるか を確信を持って判断するのに助けになる –  Apache Mahout の  RowSimilarityJob  は  LLR  を使う
  24. 24. ® © 2014 MapR Technologies 24 Apache Mahout •  オープンソース Apache プロジェクト  http://mahout.apache.org •  Mahout version 0.9 は 2014年年2⽉月にリリース •  機械学習のためのスケーラブルなアルゴリズムのライブラリ –  Apache Hadoop で動くものもあれば、Hadoop 不不要のものもある –  ⼩小さいスケールでのみ動くものもある –  並列列実⾏行行するものもあれば、シーケンシャルなものもある •  下記のものを含む –  クラスタリング & 関連技術 –  分類 –  レコメンデーション –  Mahout Math ライブラリ
  25. 25. ® © 2014 MapR Technologies 25 ログファイル アリス ボブ チャールズ アリス ボブ チャールズ アリス
  26. 26. ® © 2014 MapR Technologies 26 ログファイル u1 u3 u2 u1 u3 u2 u1 t1   t4   t3   t2   t3   t3   t1  
  27. 27. ® © 2014 MapR Technologies 27 履履歴マトリクス: ユーザー/アイテム アリス ボブ チャールズ ✔ ✔ ✔ ✔ ✔ ✔ ✔
  28. 28. ® © 2014 MapR Technologies 28 共起マトリクス: アイテム/アイテム - 1   2   1   1   1   1   2   1   どの共起が役に⽴立立つかわかりますか?. 0   0   0   0  
  29. 29. ® © 2014 MapR Technologies 29 共起マトリクス: アイテム/アイテム LLR 検定を使⽤用して共起をインジケーターに変換… - 1   2   1   1   1   1   2   1   0   0   0   0  
  30. 30. ® © 2014 MapR Technologies 30 共起バイナリマトリクス 1   1  not   not   1  
  31. 31. ® © 2014 MapR Technologies 31 例例外を⾒見見つける A not A B 13 1000 not B 1000 100,000 A not A B 1 0 not B 0 2 A not A B 1 0 not B 0 10,000 A not A B 10 0 not B 0 100,000 それぞれの状況からどんな結論論が導ける?
  32. 32. ® © 2014 MapR Technologies 32 例例外を⾒見見つける •  ルート LLR はおおよそ標準偏差に近い •  Apache Mahout では  RowSimilarityJob が LLR を利利⽤用 A not A B 1 0 not B 0 2 A not A B 1 0 not B 0 10,000 A not A B 10 0 not B 0 100,000 1.95 4.52 14.3 それぞれの状況からどんな結論論が導ける? A not A B 13 1000 not B 1000 100,000 0.90
  33. 33. ® © 2014 MapR Technologies 33 共起マトリクス つまり: LLR 検定を使⽤用して共起をインジケーターに変換 - 1   2   1   1   1   1   2   1   0   0   0   0  
  34. 34. ® © 2014 MapR Technologies 34 インジケーターマトリクス: 例例外的な共起 ✔   ✔   結果: マークされた⾏行行がアイテムドキュメントのインジケーターフィ ールドに追加される…
  35. 35. ® © 2014 MapR Technologies 35 どうやってユーザーにレコメンデーションを 提⽰示すればよいでしょうか?
  36. 36. ® © 2014 MapR Technologies 36 シンプルさを追求 イノベーション: レコメンデーションシステムを 実装するために検索索技術を利利⽤用
  37. 37. ® © 2014 MapR Technologies 37 その前に、検索索エンジンがどう動くか ⾒見見てみましょう
  38. 38. ® © 2014 MapR Technologies 38 Apache Solr/Apache Lucene •  Apache Solr/Lucene: オープンソースのパワフルな検索索エンジン –  柔軟かつ複雑にインデックスされたデータへのクエリ –  フルテキスト、地理理データ、統計的に重み付けされたデータ •  Lucene –  検索索のコア機能を提供 –  低レベルライブラリ •  Solr –  Lucene を包む  Web ベースのラッパー –  Web インターフェースで接続できるため、連携が容易易
  39. 39. ® © 2014 MapR Technologies 39 LucidWorks •  Solr/Lucene をベースにしたエンタープライズ向けプラット フォーム –  Solr を包むラッパー –  フリーのバージョンが  MapR  に付属 •  LucidWorks は  Solr の機能はそのままに、Solr の運⽤用管理理を容 易易にすることで、Lucene を簡単に利利⽤用できるようにしている
  40. 40. ® © 2014 MapR Technologies 40 Solr/Lucene/LucidWorks の関係
  41. 41. ® © 2014 MapR Technologies 41 ドキュメントとフィールドに対する検索索 •  データはドキュメントの集合 •  ドキュメントは⼀一般的にタイトル、著者、キーワード、本⽂文の フィールドを持つ •  ⼀一般的なシンタックス –  field:(単語1 単語2) •  または –  field:(単語1 OR 単語2) field:(“単語1 単語2” ~ 5) field:(単語1 AND 単語 2)
  42. 42. ® © 2014 MapR Technologies 42 インジケーターマトリクス ✔ id: t4 title: puppy desc: The sweetest little puppy ever. keywords: puppy, dog, pet indicators: (t1) インジケーターマトリクスの1⾏行行が Solr ドキュメントのインジケーターフ ィールドになり、レコメンデーションエンジンの実装に利利⽤用される 注: インジケーターフィールドは Solr インデックスのドキュメントのメタデータ に直接追加される。インジケーターのための別のインデックスを作る必要はない
  43. 43. ® © 2014 MapR Technologies 43 実際の例例: ⾳音楽レコメンデーション
  44. 44. ® © 2014 MapR Technologies 44
  45. 45. ® © 2014 MapR Technologies 45 ユーザーの⾏行行動: ジャズの名曲「Take the A Train」を 聴く
  46. 46. ® © 2014 MapR Technologies 46 ⾏行行動をベースにレコメンデーションを提⽰示
  47. 47. ® © 2014 MapR Technologies 47 ⾳音楽レコメンダーの内側を⾒見見てみましょう
  48. 48. ® © 2014 MapR Technologies 48 検索索ドキュメントのデータセットとなる楽曲のメタ データ •  MusicBrainz のデータ •  データにはアーティスト ID、MusicBrainz ID、アーティスト名、 グループ/個⼈人、出⾝身(地域名)、性別のような情報が含まれる
  49. 49. ® © 2014 MapR Technologies 49 ユーザー⾏行行動履履歴の例例: 視聴ログファイル ハイライトしている 部分でユーザー119 は何をしていますか? ジャズミュージシャン Duke Ellingtonの アーティストID 時刻 イベント タイプ ユーザーID アーティストID トラックID
  50. 50. ® © 2014 MapR Technologies 50 レコメンダーエンジンの内部 50  
  51. 51. ® © 2014 MapR Technologies 51 レコメンダーエンジンの内部 51  
  52. 52. ® © 2014 MapR Technologies 52 ⾳音楽レコメンデーションの Lucene ドキュメント •  トレーニングされた Mahout レコメンダーモデルのインジケー ターマトリクスのデータが、アーティストデータセットのド キュメント中の indicator フィールドに追加されている id 541902 mbid 983d4f8f-473e-4091-8394-415c105c4656 ame Charlie Winston area United Kingdom gender None Indicator_artists 997727,815,830794,59588,900,2591,1344,696268 id 1710 mbid 592a3b6d-c42b-4567-99c9-ecf63bd66499 ame Chck Berry area United States gender Male Indicator_artists 386685,875994,637954,3418,1344,789739,1460
  53. 53. ® © 2014 MapR Technologies 53 オフライン学習 アイテム メタデータ ユーザー履履歴 ログファイル Mahout を 使った分析 検索索 テクノロジー インジケーター
  54. 54. ® © 2014 MapR Technologies 54 MapR を使ったリアルタイムレコメンデーション アイテム メタデータ ログファイル Mahout を 使った分析 Web ティア 検索索 テクノロジー Pig Python 新しいユーザー履履歴 レコメンデーション NFS 経由のデータ投⼊入 NFS 経由 NFS  経由で  Python を使⽤用して投⼊入 MapR クラスタ
  55. 55. ® © 2014 MapR Technologies 55 シンプルに •  h を⾏行行ったユーザー(ユーザーがやり取りした事象のベクトル) •  レコメンデーションを⾏行行うには Ah AT Ah( ) AT A( )h ユーザー中⼼心のレコメンデーション (転置は事象へと戻す変換) アイテム中⼼心のレコメンデーション (操作の順番を変更更) A は事象をユーザーへ変換
  56. 56. ® © 2014 MapR Technologies 56 アーキテクチャ上の優位性 AT Ah( ) AT A( )h ユーザー中⼼心のレコメンデーション アイテム中⼼心のレコメンデーション 1つ⽬目の設計では、まずリアルタイムの計算が必要(括弧の中)。 事前計算はできないため、⾮非効率率率で低速。 2つ⽬目の設計では、オフラインで(夜間に)事前計算が可能。 新しいユーザーのベクトル(h)の⼩小さい計算のみをリアルタイムで ⾏行行えばよい。このため応答が⾮非常によくなる。
  57. 57. ® © 2014 MapR Technologies 57® © 2014 MapR Technologies よりよいレコメンデーションにするには
  58. 58. ® © 2014 MapR Technologies 58 マルチモーダルレコメンデーション
  59. 59. ® © 2014 MapR Technologies 59 マルチモーダルレコメンデーション
  60. 60. ® © 2014 MapR Technologies 60 例例 •  ユーザーがクエリ (A) を⼊入⼒力力 –  (⾏行行動主体  =  ユーザー,  アイテム  =  クエリ)   •  ユーザーがビデオ (B) を視聴 –  (⾏行行動主体  =  ユーザー,  アイテム  =  ビデオ) •  ATA はクエリのレコメンデーションを提⽰示 –  “こちらをお探しだったのではないでしょうか” •  BTB はビデオのレコメンデーションを提⽰示 –  “これらの動画が好きではないですか”
  61. 61. ® © 2014 MapR Technologies 61 ⼤大事なところ •  BTA はクエリに対する動画をリコメンド –  (あれ、これ検索索エンジンじゃなかったっけ?) –  (いや違うな、コンテンツやメタデータは⾒見見てないし)
  62. 62. ® © 2014 MapR Technologies 62 実際の例例 •  クエリ: “Paco de Lucia” (スペインのギタリスト) •  従来のメタデータ検索索結果: –  “hombres de paco” (スペインのコメディTV番組)  400件 –  他はほとんどなし •  レコメンデーションベース検索索: –  フラメンコギターとダンサー –  スペイン語、クラシックギター –  Van Halen がクラシックな フラメンコのリフを演奏
  63. 63. ® © 2014 MapR Technologies 63 もっと効率率率よくできないか?
  64. 64. ® © 2014 MapR Technologies 64 対称性によりクロスレコメンデーションを⽣生成 AT A( )h BT A( )h オフラインラーニングを利利⽤用した 従来型のレコメンデーション クロスレコメンデーション
  65. 65. ® © 2014 MapR Technologies 65 Aユーザー 事象
  66. 66. ® © 2014 MapR Technologies 66 A1 A2 ! " # $ ユーザー 事象 タイプ1 事象 タイプ2
  67. 67. ® © 2014 MapR Technologies 67 A1 A2 ! " # $ T A1 A2 ! " # $= A1 T A2 T ! " % % # $ & & A1 A2 ! " # $ = A1 T A1 A1 T A2 AT 2A1 AT 2A2 ! " % % # $ & & r1 r2 ! " % % # $ & & = A1 T A1 A1 T A2 AT 2A1 AT 2A2 ! " % % # $ & & h1 h2 ! " % % # $ & & r1 = A1 T A1 A1 T A2 ! "% # $& h1 h2 ! " % % # $ & &
  68. 68. ® © 2014 MapR Technologies 68 おまけ: 悪い⽅方が良良い場合
  69. 69. ® © 2014 MapR Technologies 69 最初の実装後の現実の問題 •  閲覧の範囲 → ユーザーはトップページしか⾒見見ない •  多様性 → 毎回同じ結果だと飽きられてしまう •  学習速度度 → それ以上学習しなくなってしまう •  決して最後の些細な問題ではない
  70. 70. ® © 2014 MapR Technologies 70 結果のディザリング •  レコメンデーション結果の順番を⼊入れ替えるためにディザリン グが使われる –  順番の⼊入れ換えはランダムに⾏行行う •  ディザリングは  確実に  オフライン性能を悪化させる •  ディザリングは同時に実際の性能をより良良くするパーフェクト に近い実績がある
  71. 71. ® © 2014 MapR Technologies 71 結果のディザリング •  レコメンデーション結果の順番を⼊入れ替えるためにディザリン グが使われる –  順番の⼊入れ換えはランダムに⾏行行う •  ディザリングは  確実に  オフライン性能を悪化させる •  ディザリングは同時に実際の性能をより良良くするパーフェクト に近い実績がある “他のどんな変更更よりも⼤大きな違いが出る”
  72. 72. ® © 2014 MapR Technologies 72 なぜディザリングが必要?
  73. 73. ® © 2014 MapR Technologies 73 シンプルなディザリングアルゴリズム •  ランクの対数にガウス分布を加えた合成スコア •  適切切なレベルの⼊入れ替えを⾏行行うノイズのスケールを選択 •  普通はこのくらい •  また … floor(t/T) をシードとして使う s = logr + N(0,logε) ε ∈ 1.5,3[ ] Δr r ∝ε
  74. 74. ® © 2014 MapR Technologies 74 例例えば… ε = 2 1 2 8 3 9 15 7 6 1 8 14 15 3 2 22 10 1 3 8 2 10 5 7 4 1 2 10 7 3 8 6 14 1 5 33 15 2 9 11 29 1 2 7 3 5 4 19 6 1 3 5 23 9 7 4 2 2 4 11 8 3 1 44 9 2 3 1 4 6 7 8 33 3 4 1 2 10 11 15 14 11 1 2 4 5 7 3 14 1 8 7 3 22 11 2 33
  75. 75. ® © 2014 MapR Technologies 75 学んだこと:   閲覧されることは良良いことだ  
  76. 76. ® © 2014 MapR Technologies 76 Q&A @mapr_japan maprjapan sales-jp@mapr.com お問い合わせはこちらまで MapR maprtech mapr-technologies

×