Soumettre la recherche
Mettre en ligne
Sparkでレコメンドエンジンを作ってみた
•
Télécharger en tant que PPTX, PDF
•
9 j'aime
•
4,560 vues
F
fujita_s
Suivre
SparkのMLlibを使ってレコメンドエンジンを作ってみました。
Lire moins
Lire la suite
Logiciels
Signaler
Partager
Signaler
Partager
1 sur 14
Télécharger maintenant
Recommandé
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話
Koki Shibata
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
Recruit Technologies
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
Holden Karau
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura
Recommandé
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
Spark MLlibでリコメンドエンジンを作った話
Spark MLlibでリコメンドエンジンを作った話
Koki Shibata
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Spot Instance + Spark + MLlibで実現する簡単低コスト機械学習
Katsushi Yamashita
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
Recruit Technologies
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
JP version - Beyond Shuffling - Apache Spark のスケールアップのためのヒントとコツ
Holden Karau
Sparkを用いたビッグデータ解析 〜 前編 〜
Sparkを用いたビッグデータ解析 〜 前編 〜
x1 ichi
最近のストリーム処理事情振り返り
最近のストリーム処理事情振り返り
Sotaro Kimura
Sparkパフォーマンス検証
Sparkパフォーマンス検証
BrainPad Inc.
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
Sparkストリーミング検証
Sparkストリーミング検証
BrainPad Inc.
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
Recruit Technologies
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Takeshi Yamamuro
リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介
Sotaro Kimura
hscj2019_ishizaki_public
hscj2019_ishizaki_public
Kazuaki Ishizaki
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
chibochibo
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
BrainPad Inc.
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
ScalaでDSP作ってみた
ScalaでDSP作ってみた
Jiro Hiraiwa
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
LINE Corp.
Contenu connexe
Tendances
Sparkパフォーマンス検証
Sparkパフォーマンス検証
BrainPad Inc.
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
Kazuaki Ishizaki
Sparkストリーミング検証
Sparkストリーミング検証
BrainPad Inc.
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Junichi Noda
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
Recruit Technologies
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Hadoop / Spark Conference Japan
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Takeshi Yamamuro
リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介
Sotaro Kimura
hscj2019_ishizaki_public
hscj2019_ishizaki_public
Kazuaki Ishizaki
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
chibochibo
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
BrainPad Inc.
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
ScalaでDSP作ってみた
ScalaでDSP作ってみた
Jiro Hiraiwa
Tendances
(20)
Sparkパフォーマンス検証
Sparkパフォーマンス検証
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
SparkTokyo2019NovIshizaki
SparkTokyo2019NovIshizaki
Sparkストリーミング検証
Sparkストリーミング検証
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Hive on Spark の設計指針を読んでみた
Hive on Spark の設計指針を読んでみた
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkによる GISデータを題材とした時系列データ処理 (Hadoop / Spark Conference Japan 2016 講演資料)
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介
hscj2019_ishizaki_public
hscj2019_ishizaki_public
ビッグじゃなくても使えるSpark Streaming
ビッグじゃなくても使えるSpark Streaming
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
DeltaCubeにおけるユニークユーザー集計高速化(実践編)
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
ScalaでDSP作ってみた
ScalaでDSP作ってみた
Similaire à Sparkでレコメンドエンジンを作ってみた
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
LINE Corp.
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
Koichi Uchimura
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Junichi Noda
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
cyberagent
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
Tanaka Yuichi
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
Kazuki Taniguchi
ニコニコニュースと全文検索
ニコニコニュースと全文検索
techtalkdwango
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
Recruit Technologies
Groovyコンファレンス
Groovyコンファレンス
Shinichiro Takezaki
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
yayamamo @ DBCLS Kashiwanoha
JJUG CCC 2014 ATL
JJUG CCC 2014 ATL
Recruit Technologies
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
otato
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
Takuya UESHIN
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
Recruit Technologies
solr勉強会資料
solr勉強会資料
Atsushi Takayasu
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
akira6592
Scala Daysに行ってみて
Scala Daysに行ってみて
Kota Mizushima
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Takahisa Iwamoto
Similaire à Sparkでレコメンドエンジンを作ってみた
(20)
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Spark Streamingで作る、つぶやきビッグデータのクローン(Hadoop Spark Conference Japan 2016版)
Amebaにおけるレコメンデーションシステムの紹介
Amebaにおけるレコメンデーションシステムの紹介
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
ML Pipelineで実践機械学習
ML Pipelineで実践機械学習
ニコニコニュースと全文検索
ニコニコニュースと全文検索
Spark Summit 2014 の報告と最近の取り組みについて
Spark Summit 2014 の報告と最近の取り組みについて
Groovyコンファレンス
Groovyコンファレンス
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
SIG-SWO-A1402-09:SPINを用いたトリプルストアの性能評価システム
JJUG CCC 2014 ATL
JJUG CCC 2014 ATL
Databricksを初めて使う人に向けて.pptx
Databricksを初めて使う人に向けて.pptx
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
JJUG CCC リクルートの Java に対する取り組み
JJUG CCC リクルートの Java に対する取り組み
solr勉強会資料
solr勉強会資料
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
ネットワーク自動化ツール紹介(Ansible・NAPALM編)
Scala Daysに行ってみて
Scala Daysに行ってみて
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
Sparkでレコメンドエンジンを作ってみた
1.
Sparkでレコメンドエンジン を作ってみた 藤田 真太郎 1
2.
目次 なぜレコメンドエンジンを作ろうと思ったか レコメンドエンジンの実装方法
環境 結果 デモ 分かったこと・苦労したこと 次にやりたいこと 2
3.
なぜレコメンドエンジンを作ろうと思っ たか 木内さんからの一言 「協調フィルタリングをSpark MLlibで実装してみましょう。」 「あなたへのおすすめ」みたいなもの 3
4.
レコメンドエンジンの実装方法 ルールベース コンテンツベース
協調フィルタリング (この方法で実装) アイテムベース・ユーザーベース・ALS など アソシエーション分析 など… 4 人間が手作業で行う コンピュータ で計算する
5.
レコメンドエンジンの実装方法 Apache Spark の
MLlib にある ALS (交互最小二乗法)を使う。 評価行列 (元データ) 商品 特徴行列 ユーザ 特徴行列 ALS 評価行列 (中間データ) 予測された 5
6.
環境 Softlayer上の仮想マシン CentOS6
Apache Spark 1.3.1 (最新は1.4.0) Scala 2.11.5 (推奨は2.10.x) 6
7.
結果 サンプルデータの評価行列から、評価値を予測した評価行列 を作ることができた。(ちゃんと動いた) その評価行列からユーザと商品のIDを指定することにより 対応する予測した評価値を参照することができた。 7
8.
デモ 8 1 2 3
4 1 5.0 1.0 5.0 1.0 2 5.0 5.0 1.0 3 1.0 5.0 1.0 5.0 4 1.0 5.0 5.0 商品ID ユーザID
9.
デモ 9 1 2 3
4 1 5.0 1.0 5.0 1.0 2 5.0 5.0 1.0 3 1.0 5.0 1.0 5.0 4 1.0 5.0 5.0 商品ID ユーザID ユーザ2 と ユーザ1 は似たような評価をつけているので ユーザ2 は 商品2 の評価を 1.0くらいにすると予想される。 また ユーザ4 は ユーザ3と似ているので ユーザ4 は 商品3に1.0くらいで評価をすると予想される。
10.
10 1.交互最小二乗法を使い、評価行列を予測する。 すごくたくさんのログが出る。 testml.jar は https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html のサンプルコードをコンパイルしたもの。 # spark-submit
testml.jar 2.評価値を確認するスクリプトと結果 # ./result.sh Please input userID productID: 2 2 ~ ログ ~ Rating: 0.988170663317684
11.
11 result.shのソースコード re.jar のソースコード #!/bin/sh read
-p "Please input userID productID: " IDs echo "$IDs" > result.conf spark-submit re.jar > re.log rm -rf myModel echo " " echo "Rating: `head -1 re.log`" import org.apache.spark.mllib.recommendation.ALS import org.apache.spark.mllib.recommendation.MatrixFactorizationModel import org.apache.spark.mllib.recommendation.Rating import org.apache.spark.SparkConf import org.apache.spark.SparkContext import scala.io.Source import java.io.File object testml { def main(args: Array[String]) { val conf = new SparkConf().setAppName("example") val sc = new SparkContext(conf) val model = MatrixFactorizationModel.load(sc, "myModelPath") val line = Source.fromFile("./result.conf").mkString line.split(" ") val userid = line(0).toString.toInt val productid = line(2).toString.toInt val rating = model.predict(userid, productid) println(rating); model.save(sc, "myModel") sc.stop } }
12.
分かったこと・苦労したこと ALSは特徴行列を計算するときにランダム値を使う部分が あり、計算するたびに予測結果が微妙に異なる。(評価結 果には影響しない) 中間データは上書きしてくれない。
Scala は奥が深い。 12
13.
次にやりたいこと サンプルデータは小さいのでもう少し大きなデータで協調 フィルタリングをかけてみたい。 13
14.
参考資料 14 協調フィルタリングのサンプルコード https://spark.apache.org/docs/latest/mllib-collaborative-filtering.html IDを指定して評価値を取り出すコマンド[predict(user: Int, product:
Int)] https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.mllib.recommendation.MatrixFactorizationModel Scalaのコンパイル方法 http://www.ne.jp/asahi/hishidama/home/tech/scala/spark/submit.html
Télécharger maintenant