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