オープンソースカンファレンス東京2016/SpringでLTしてきました

 
5分だったのでかなり簡略化してますが、SparkMLlibでアニメ推薦エンジン作っているのでその発表です。
次の機会があったら10分〜20分ぐらいのスライドにするので、先行して追加の補足情報を少し書いておきます。
 
スライドで出てくるAnime APIとはShangriLa Anime APIのことです。
 
BigQueryで実行するSQLはShangriLa Toolを使い出力しています。

github.com


>>ruby bigQuerySQL_for_CF_id.rb 2015 4 2015_AnimeQ4Set1.anime2015_q4a

 

出力されるSQLはこんなのです。

BigQueryで2015年4期(秋)のアニメ作品のつぶやきを協調フィルタリング用に整形する

 

 

f:id:rakuda00:20160229031707p:plain

 

Google BigQueryで実行します。

あくまで目安ですが今回は
Query complete (25.1s elapsed, 2.36 GB processed)
でした。
 
 

f:id:rakuda00:20160229032110p:plain

次にSparkクラスタを構築します。
今回はmaster x 1 Worker x3 で 4台のマシンを用意しました。
Workerそれぞれに6Core 25GをSparkの処理に割り当てるので 合計18 Core CPU:75G memoryでSparkの機械学習並列処理を実行します。
 

f:id:rakuda00:20160229033403p:plain

 

f:id:rakuda00:20160229032605p:plain

実行中のSpark UIの様子

スライドに書かれてあるTwitter 80万ユーザー x 43作品 の推薦結果を出すのにだいたい5分ぐらいかかりました。(協調フィルタリングALSを1イテレーション)

Sparkのログ

システム全体をオンライン化、準リアルタイム化できるよう、目下改修計画中です。

 

 

 

 

Sparkによる実践データ解析 ―大規模データのための機械学習事例集

Sparkによる実践データ解析 ―大規模データのための機械学習事例集

 
初めてのSpark

初めてのSpark

 
Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク (NEXT ONE)

Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク (NEXT ONE)