SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
Copyright © BrainPad Inc. All Rights Reserved.
ストリーミング検証 - アプリ編 -
2015年5月15日
Copyright © BrainPad Inc. All Rights Reserved.
 Spark Streamingを利用したアプリケーションを構築
– 直近数分間など、鮮度の高いデータを用いて予測ができるのがメリット
 今回はCVユーザーを推定するアプリケーションに応用
– アクセスユーザーの中から、直近でCVしそうなユーザーを推定
• キャンペーン等の施策を打った直後からその効果を可視化したり、
CVしそうなユーザーにはクーポンを付与、
そうでないユーザーにレコメンドで回遊促進といった応用が考えられる
– Scalaで実装
• Pythonでも記述可能だが、Sparkのライブラリ対応状況がよいため
 Spark Streamingで作成した特徴量にモデルを適用し、
HDFSに結果を保存するところまで行う
– 今回やらないこと
• 適用した結果をDBに保存
– パフォーマンス検証編でHBaseに格納できるところまで確認済み
• 保存結果をWebアプリケーションから参照
– DBにデータを入れてしまえば応用は容易
2
目的
Copyright © BrainPad Inc. All Rights Reserved.
バッチ処理
ストリーミング処理
3
アプリケーションのイメージ
アクセスログ
Kafka
Spark
Streaming
DB
Web
Application
Spark
HDFS
利用
モデル
保存
読込
保存
読込
Copyright © BrainPad Inc. All Rights Reserved.
バッチ処理
ストリーミング処理
4
アプリケーションのイメージ
アクセスログ
Kafka
Spark
Streaming
DB
Web
Application
Spark
HDFS
利用
モデル
保存
読込
保存
読込
特徴量作成
ラベル付与
モデル構築
特徴量作成
モデル読込
モデル適用
Copyright © BrainPad Inc. All Rights Reserved.
特徴量作成
5
Copyright © BrainPad Inc. All Rights Reserved. 6
特徴量の作成
バッチ処理
Spark
HDFS
読込
特徴量作成
ラベル付与
モデル構築
00:00~01:00に、
アクセス: 8PV
滞在時間: 15分間
デバイス: スマホ
などの情報をアクセスログから集計
 アクセスログから特徴量を作成する
– 30分、1時間分、1日分のデータなど特定期間のログから
ユーザー毎に情報を集約して特徴量を作成する
 特徴量は学習に利用するため、数値に変換する
– 例えばアクセスデバイスなどのカテゴリデータを特徴量として使いたい場合、
「is_pc = 1」 などのように数値に変換する
特徴量の例
ユーザー
Aさん
Copyright © BrainPad Inc. All Rights Reserved.
 アクセスログ(1 page viewごとに発生)
– String型のCSV形式
– 各行は「ユーザID」、「セッション番号」、「訪問日時」などを含む
 1サイト分のログを利用
– 1日あたり、300万PV・26万UU・1万CV
7
アクセスログについて
カラム 意味
member ユーザID
visit memberの累計訪問回数(セッション番号)
page_view memberの累計ページビュー回数
date 訪問日時(YYYY-MM-DD HH:MM:SS.ZZZ)
site 訪問サブドメイン
page 訪問ページ
Copyright © BrainPad Inc. All Rights Reserved.
 (ユーザーID × セッション番号) を1データ点とみなして特徴量作成
 主にCV率と相関がありそうな変数を特徴量として利用
– 正例: 「コンバージョンページを訪問した (ユーザID × セッション番号)」
– 今回は、十分なボリュームが確保できる基本的な特徴量のみ利用
• 「過去にCVしたことがあるか」や「複数デバイスからのアクセスか」などは
CVとの相関は強かったがボリュームが少なかった
8
アクセスログからの特徴量作成
カラム名 特徴量 備考
total_sec 滞在時間 セッション内での滞在時間
session_pv セッションPV セッション内でのPV数
average_tracking_time 平均滞在時間 セッション内での、1PVあたりの平均時間
Copyright © BrainPad Inc. All Rights Reserved.
モデル構築
9
Copyright © BrainPad Inc. All Rights Reserved. 10
モデル構築手順
バッチ処理
Spark
HDFS
読込
特徴量作成
ラベル付与
モデル構築
 過去のアクセスログを学習データとしてモデルを構築する
– CVページにアクセスしたユーザーに、CVフラグを立てる(ラベル付与)
– 教師あり学習でモデルを構築する
• CVしたユーザー・していないユーザーの特徴量の傾向から、
どの特徴がどの程度CVに貢献したかを学習
※ 8PVのアクセスの中に、
CVページへのアクセスが含まれている
ユーザー
Aさん
特徴量の例
00:00~01:00に、
アクセス: 8PV
滞在時間: 15分間
デバイス: スマホ
などの情報をアクセスログから集計
Copyright © BrainPad Inc. All Rights Reserved.
 MLlibを利用してモデル構築
– MLlib:Sparkで機械学習を行うためのライブラリ
• ロジスティック回帰やSVM、K-meansなどが用意されている
– 今回はロジスティック回帰を利用
• アプリケーションにおいてモデルは疎結合なので、更新や入れ替えは容易
• 今回はアプリケーション化を試すことが目的なので、
複数モデルの比較や精度検証などは行っていない
– 定期的にバッチでモデルを作成する方法を想定
• オンライン学習は行わない
11
学習モデルについて
Copyright © BrainPad Inc. All Rights Reserved.
 学習に利用したデータ
– ある1日分(24時間分)のアクセスログ
• ユーザー×セッション毎に特徴量を作成
• CVページにアクセスしているか否かラベルを付与
 ラベル付与した特徴量から学習する
– LogisticRegressionWithLBFGSを利用
• 準ニュートン法を利用したロジスティック回帰
– LogisticRegressionWithSGD(確率的勾配降下法)もある
– 必要に応じてsetInterceptやsetNumClassなどを利用する
– 正解・不正解の比率が偏る場合、学習データをサンプリングする
• 例えばPythonのscikit-learnではclass_weight=‘auto’ を設定することで
自動でダウンサンプリングしてくれる
• LogisticRegressionWithLBFGSでは現状
自動でサンプリングしてくれる機能は無さそうなので必要に応じて実装
12
モデル実装
Copyright © BrainPad Inc. All Rights Reserved.
 正解ラベルを付与した特徴量群を作成し、ロジスティック回帰で学習
 構築したモデルを保存
13
MLlibを利用したロジスティック回帰
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS
// ラベル付与した特徴量には Vectors.dense と LabeledPoint を利用
val LabeledData = csvFile.map { line =>
...
val has_conversion = ...
val vector = Vectors.dense(data._1, data._2, data._3, ...)
LabeledPoint(has_conversion, vector)
}
val model = new LogisticRegressionWithLBFGS().run(LabeledData)
val fs = FileSystem.get(new Configuration())
val path = new Path(“{path}")
val oos = new ObjectOutputStream(fs.create(path))
oos.writeObject(model)
oos.close()
Copyright © BrainPad Inc. All Rights Reserved.
モデル適用
14
Copyright © BrainPad Inc. All Rights Reserved. 15
ストリーミング処理での特徴量作成
ストリーミング処理
アクセスログ
Kafka
Spark
Streaming
DB
特徴量作成
モデル読込
モデル適用
 Window集計
– 間隔・期間を指定して実行する集計
• 5分毎に30分間のログを集計など
– 01:00 に 00:30 ~ 01:00 のデータ集計
– 01:05 に 00:35 ~ 01:05 のデータ集計
– ストリーミング処理では
Window集計で特徴量を作成する
// streams: DStream[String]
val userSessionData = streams.window(
windowDuration = Minutes(5),
slideDuration = Minutes(30)
).map { line =>
// 特徴量作成
}
Copyright © BrainPad Inc. All Rights Reserved. 16
ストリーミング処理でのモデル適用
ストリーミング処理
アクセスログ
Kafka
Spark
Streaming
DB
HDFS
読込
特徴量作成
モデル読込
モデル適用
 モデルの読込と適用
– Window集計で作成した特徴量に
バッチで作成したモデルを適用
– 各 ユーザー×セッション 毎の
CVしそうスコアを算出
– 今回はDBではなくHDFSに結果出力
※ 前項までに構築したモデルを
HDFSに保存している
Copyright © BrainPad Inc. All Rights Reserved.
 保存されたモデルを適宜読み込んで適用
17
モデルの保存と読み込み
val is = new ObjectInputStream(fs.open(modelFilePath))
val model = is.readObject().asInstanceOf[LogisticRegressionModel]
// 結果を0,1ではなく、スコアで出力
model.clearThreshold()
// 学習の際には LabeledPoint を利用したが、
// モデル適用の際にはラベル付与されていない特徴量を利用
val predictions = userSessionData.map{ case (key, features) =>
(key, model.predict(features))
}
Copyright © BrainPad Inc. All Rights Reserved. 18
結果
 5分毎に30分間のログを集計
– 5分毎にモデル適用を行い、そのときのCVユーザーらしさをスコアで算出
 ユーザー毎のスコアの遷移が見て取れる
– 直近のアクセスログによってCVユーザーらしさが変化している
 適切な頻度・集計期間は用途によって調整が必要
user
session
00:30 00:35 00:40 00:45 01:00 01:05 01:10
UserA
1
0.014 0.014 0.048 0.360 ... 0.12 - -
UserB
6
- - - 0.023 ... 0.751 0.751 0.842
アクセスログに応じて
スコアが徐々に増加
30分後には
既に離脱
Copyright © BrainPad Inc. All Rights Reserved.
 ロジスティック回帰でのモデル構築をSparkで実装
 実際のアクセスログにストリーム処理でモデル適用し、
(ユーザー×セッション) の単位でスコアを出力した
– HBaseなどのストレージにリアルタイムに結果を出力し
アプリケーションでの展開に繋げることができる
– リアルタイムに更新される(ユーザー×セッション)単位のスコアを持つことで、
以下の様な応用が考えられる
• キャンペーン等の施策を打った直後からその効果を可視化し、
ユーザーの傾向が通常時からどう変化したかを測定
• CVしそうなユーザーにはクーポン付与、
CVしなさそうなユーザーにはレコメンドで回遊促進というように施策を出しわける
 分散処理を意識した特徴量の抽出が必要
– groupByなどを極力利用しない
• グルーピング対象のものを各ノードから取得するため
各データがノード間を飛び交い、処理に時間を要してしまう
19
まとめ
Copyright © BrainPad Inc. All Rights Reserved.
株式会社ブレインパッド
〒108-0071 東京都港区白金台3-2-10 白金台ビル3F
TEL:03-6721-7001
FAX:03-6721-7010
info@brainpad.co.jp
Copyright © BrainPad Inc. All Rights Reserved.
www.brainpad.co.jp

Más contenido relacionado

La actualidad más candente

Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウFuture Of Data Japan
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!Nagato Kasaki
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Recruit Technologies
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 
20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料Kotaro Tsukui
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?chibochibo
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Noritaka Sekiyama
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallShinpei Ohtani
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはKoji Shinkubo
 
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Cloudera Japan
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)Hadoop / Spark Conference Japan
 
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)Takeshi Mikami
 
Apache Sparkについて
Apache SparkについてApache Sparkについて
Apache SparkについてBrainPad Inc.
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCloudera Japan
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Cloudera Japan
 
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~sugiyama koki
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門Akihiro Kuwano
 
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on TezA Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on TezGw Liu
 
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Cloudera Japan
 

La actualidad más candente (20)

Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウSpark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
 
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
 
Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証Spark/MapReduceの 機械学習ライブラリ比較検証
Spark/MapReduceの 機械学習ライブラリ比較検証
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 
20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料20111215_第1回EMR勉強会発表資料
20111215_第1回EMR勉強会発表資料
 
Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?Is spark streaming based on reactive streams?
Is spark streaming based on reactive streams?
 
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
Hadoop/Spark で Amazon S3 を徹底的に使いこなすワザ (Hadoop / Spark Conference Japan 2019)
 
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 FallAmazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
 
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとはdb tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
db tech showcase_2014_A14_Actian Vectorで得られる、BIにおける真のパフォーマンスとは
 
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
Hadoopトレーニング番外編 〜間違えられやすいHadoopの7つの仕様〜
 
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
MapReduce/Spark/Tezのフェアな性能比較に向けて (Cloudera World Tokyo 2014 LT講演)
 
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
Apache Hadoop & Hive 入門 (マーケティングデータ分析基盤技術勉強会)
 
Apache Sparkについて
Apache SparkについてApache Sparkについて
Apache Sparkについて
 
NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例NetflixにおけるPresto/Spark活用事例
NetflixにおけるPresto/Spark活用事例
 
CDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokubenCDHの歴史とCDH5新機能概要 #at_tokuben
CDHの歴史とCDH5新機能概要 #at_tokuben
 
Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理Apache Hadoop YARNとマルチテナントにおけるリソース管理
Apache Hadoop YARNとマルチテナントにおけるリソース管理
 
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
Spark Streamingを使ってみた ~Twitterリアルタイムトレンドランキング~
 
インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門インフラエンジニアのためのcassandra入門
インフラエンジニアのためのcassandra入門
 
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on TezA Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
 
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
Apache Kuduは何がそんなに「速い」DBなのか? #dbts2017
 

Destacado

初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜Tanaka Yuichi
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)NTT DATA OSS Professional Services
 
Apache Spark: Usage and Roadmap in Hadoop
Apache Spark: Usage and Roadmap in HadoopApache Spark: Usage and Roadmap in Hadoop
Apache Spark: Usage and Roadmap in HadoopCloudera Japan
 
SparkやBigQueryなどを用いた モバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いた モバイルゲーム分析環境yuichi_komatsu
 
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例Junichi Noda
 
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)Atsushi Kurumada
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-LINE Corp.
 
Data Science on Hadoop
Data Science on HadoopData Science on Hadoop
Data Science on HadoopYifeng Jiang
 
Ibm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころIbm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころjapan_db2
 
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドOsc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドSeiichiro Ishida
 
HDP Security Overview
HDP Security OverviewHDP Security Overview
HDP Security OverviewYifeng Jiang
 
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Atsushi Tsuchiya
 
Facebookのリアルタイム Big Data 処理
Facebookのリアルタイム Big Data 処理Facebookのリアルタイム Big Data 処理
Facebookのリアルタイム Big Data 処理maruyama097
 
リアルタイム処理エンジン Gearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジン Gearpumpの紹介Sotaro Kimura
 
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)Spark Summit
 
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合SmartNews, Inc.
 
At42 qt1010 datasheet
At42 qt1010 datasheetAt42 qt1010 datasheet
At42 qt1010 datasheetBrutcat
 

Destacado (20)

初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
Apache Spark: Usage and Roadmap in Hadoop
Apache Spark: Usage and Roadmap in HadoopApache Spark: Usage and Roadmap in Hadoop
Apache Spark: Usage and Roadmap in Hadoop
 
SparkやBigQueryなどを用いた モバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いた モバイルゲーム分析環境
 
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
Spark Streaming と Spark GraphX を使用したTwitter解析による レコメンドサービス例
 
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)リクルートライフスタイルの考えるストリームデータの活かし方(Hadoop Spark Conference2016)
リクルートライフスタイルの考える ストリームデータの活かし方(Hadoop Spark Conference2016)
 
Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)Apache Spark の紹介(前半:Sparkのキホン)
Apache Spark の紹介(前半:Sparkのキホン)
 
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
15.05.21_ビッグデータ分析基盤Sparkの最新動向とその活用-Spark SUMMIT EAST 2015-
 
OSC2014 Tokyo/Spring Hadoop
OSC2014 Tokyo/Spring HadoopOSC2014 Tokyo/Spring Hadoop
OSC2014 Tokyo/Spring Hadoop
 
Data Science on Hadoop
Data Science on HadoopData Science on Hadoop
Data Science on Hadoop
 
Ibm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころIbm クラウドデータベースの使いどころ
Ibm クラウドデータベースの使いどころ
 
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウドOsc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
Osc2013 spring OpenStackで実現する分散ストレージ「Swift」とプライベートクラウド
 
dashDB local ご紹介
dashDB local ご紹介 dashDB local ご紹介
dashDB local ご紹介
 
HDP Security Overview
HDP Security OverviewHDP Security Overview
HDP Security Overview
 
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版
 
Facebookのリアルタイム Big Data 処理
Facebookのリアルタイム Big Data 処理Facebookのリアルタイム Big Data 処理
Facebookのリアルタイム Big Data 処理
 
リアルタイム処理エンジン Gearpumpの紹介
リアルタイム処理エンジンGearpumpの紹介リアルタイム処理エンジンGearpumpの紹介
リアルタイム処理エンジン Gearpumpの紹介
 
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
Towards Benchmaking Modern Distruibuted Systems-(Grace Huang, Intel)
 
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
Strem処理(Spark Streaming + Kinesis)とOffline処理(Hive)の統合
 
At42 qt1010 datasheet
At42 qt1010 datasheetAt42 qt1010 datasheet
At42 qt1010 datasheet
 

Similar a Sparkストリーミング検証

Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューションHiromasa Oka
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッションYuichi Hasegawa
 
Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版Daiyu Hatakeyama
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAmazon Web Services Japan
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic BeanstalkAmazon Web Services Japan
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-recotech
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンKazuyuki Miyake
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方Yuki Morishita
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要Miho Yamamoto
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-publicAmazon Web Services Japan
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編Amazon Web Services Japan
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンKazuyuki Miyake
 
10分で押さえる AWS re:Invent 2014 新サービス・アップデート
10分で押さえる AWS re:Invent 2014 新サービス・アップデート10分で押さえる AWS re:Invent 2014 新サービス・アップデート
10分で押さえる AWS re:Invent 2014 新サービス・アップデート真吾 吉田
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.jsTanUkkii
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto ScalingAmazon Web Services Japan
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009Ryota Watabe
 
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)真吾 吉田
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWSEiji Shinohara
 

Similar a Sparkストリーミング検証 (20)

Azure 高速サイトソリューション
Azure 高速サイトソリューションAzure 高速サイトソリューション
Azure 高速サイトソリューション
 
Jjug springセッション
Jjug springセッションJjug springセッション
Jjug springセッション
 
Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版Azure Machine Learning Services 概要 - 2019年2月版
Azure Machine Learning Services 概要 - 2019年2月版
 
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch LogsAWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
AWS Blackbelt 2015シリーズ Amazon CloudWatch & Amazon CloudWatch Logs
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
 
Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-Reco choku tech night #09 -reinvent2018報告会-
Reco choku tech night #09 -reinvent2018報告会-
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターンAzure Cosmos DB を使った高速分散アプリケーションの設計パターン
Azure Cosmos DB を使った高速分散アプリケーションの設計パターン
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
 
Azure Antenna AI 概要
Azure Antenna AI 概要Azure Antenna AI 概要
Azure Antenna AI 概要
 
20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public20120528 aws meister-reloaded-awssd-kforjava-public
20120528 aws meister-reloaded-awssd-kforjava-public
 
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
[AWS Summit 2012] クラウドデザインパターン#5 CDP バッチ処理編
 
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターンAzure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
Azure Cosmos DB を使った クラウドネイティブアプリケーションの 設計パターン
 
10分で押さえる AWS re:Invent 2014 新サービス・アップデート
10分で押さえる AWS re:Invent 2014 新サービス・アップデート10分で押さえる AWS re:Invent 2014 新サービス・アップデート
10分で押さえる AWS re:Invent 2014 新サービス・アップデート
 
Isomorphic web development with scala and scala.js
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
 
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ  Amazon CloudWatch & Auto ScalingAWS Black Belt Techシリーズ  Amazon CloudWatch & Auto Scaling
AWS Black Belt Techシリーズ Amazon CloudWatch & Auto Scaling
 
PHP on Cloud
PHP on CloudPHP on Cloud
PHP on Cloud
 
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
プロとしてのOracleアーキテクチャ入門 ~番外編~ @ Developers Summit 2009
 
20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)20130226 Amazon Web Services 勉強会(新宿)
20130226 Amazon Web Services 勉強会(新宿)
 
Application Deployment on AWS
Application Deployment on AWSApplication Deployment on AWS
Application Deployment on AWS
 

Más de BrainPad Inc.

Business utilization of real estate image classification system using deep le...
Business utilization of real estate image classification system using deep le...Business utilization of real estate image classification system using deep le...
Business utilization of real estate image classification system using deep le...BrainPad Inc.
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 
機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルトBrainPad Inc.
 
機械学習システム開発案件の事例紹介
機械学習システム開発案件の事例紹介機械学習システム開発案件の事例紹介
機械学習システム開発案件の事例紹介BrainPad Inc.
 
れこめん道~とあるエンジニアの苦闘の日々
れこめん道~とあるエンジニアの苦闘の日々 れこめん道~とあるエンジニアの苦闘の日々
れこめん道~とあるエンジニアの苦闘の日々 BrainPad Inc.
 
DMPの分析機能を実現する技術
DMPの分析機能を実現する技術DMPの分析機能を実現する技術
DMPの分析機能を実現する技術BrainPad Inc.
 
機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事BrainPad Inc.
 
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシシステム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシBrainPad Inc.
 
Python研修の作り方 - teaching-is_learning-
Python研修の作り方 - teaching-is_learning-Python研修の作り方 - teaching-is_learning-
Python研修の作り方 - teaching-is_learning-BrainPad Inc.
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かうBrainPad Inc.
 
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料BrainPad Inc.
 
GKEとgRPCで実装する多言語対応・スケーラブルな内部API
GKEとgRPCで実装する多言語対応・スケーラブルな内部APIGKEとgRPCで実装する多言語対応・スケーラブルな内部API
GKEとgRPCで実装する多言語対応・スケーラブルな内部APIBrainPad Inc.
 
実証実験報告セミナー資料 20180328(抜粋版)
実証実験報告セミナー資料 20180328(抜粋版)実証実験報告セミナー資料 20180328(抜粋版)
実証実験報告セミナー資料 20180328(抜粋版)BrainPad Inc.
 
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善BrainPad Inc.
 
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発BrainPad Inc.
 
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例BrainPad Inc.
 
エンジニア勉強会資料_③Rtoasterの11年
エンジニア勉強会資料_③Rtoasterの11年エンジニア勉強会資料_③Rtoasterの11年
エンジニア勉強会資料_③Rtoasterの11年BrainPad Inc.
 
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発BrainPad Inc.
 
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?BrainPad Inc.
 

Más de BrainPad Inc. (20)

Oss LT会_20210203
Oss LT会_20210203Oss LT会_20210203
Oss LT会_20210203
 
Business utilization of real estate image classification system using deep le...
Business utilization of real estate image classification system using deep le...Business utilization of real estate image classification system using deep le...
Business utilization of real estate image classification system using deep le...
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト機械学習システムのアーキテクチャアラカルト
機械学習システムのアーキテクチャアラカルト
 
機械学習システム開発案件の事例紹介
機械学習システム開発案件の事例紹介機械学習システム開発案件の事例紹介
機械学習システム開発案件の事例紹介
 
れこめん道~とあるエンジニアの苦闘の日々
れこめん道~とあるエンジニアの苦闘の日々 れこめん道~とあるエンジニアの苦闘の日々
れこめん道~とあるエンジニアの苦闘の日々
 
DMPの分析機能を実現する技術
DMPの分析機能を実現する技術DMPの分析機能を実現する技術
DMPの分析機能を実現する技術
 
機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事機械学習システムを受託開発 する時に気をつけておきたい事
機械学習システムを受託開発 する時に気をつけておきたい事
 
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシシステム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
システム開発素人が深層学習を用いた画像認識で麻雀点数計算するLINEbotを作ったハナシ
 
Python研修の作り方 - teaching-is_learning-
Python研修の作り方 - teaching-is_learning-Python研修の作り方 - teaching-is_learning-
Python研修の作り方 - teaching-is_learning-
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
 
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
2018.08.21-機械学習工学研究会 現場を交えた勉強会発表資料
 
GKEとgRPCで実装する多言語対応・スケーラブルな内部API
GKEとgRPCで実装する多言語対応・スケーラブルな内部APIGKEとgRPCで実装する多言語対応・スケーラブルな内部API
GKEとgRPCで実装する多言語対応・スケーラブルな内部API
 
実証実験報告セミナー資料 20180328(抜粋版)
実証実験報告セミナー資料 20180328(抜粋版)実証実験報告セミナー資料 20180328(抜粋版)
実証実験報告セミナー資料 20180328(抜粋版)
 
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善
エンジニア勉強会資料_⑥エンジニアが主導する組織マネジメントや開発体制の継続的改善
 
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発
エンジニア勉強会資料_⑤広告プロダクトとプラットフォームの開発
 
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例
エンジニア勉強会資料_④Rtoaster×Myndエンジンによる興味キーワード分析機能開発事例
 
エンジニア勉強会資料_③Rtoasterの11年
エンジニア勉強会資料_③Rtoasterの11年エンジニア勉強会資料_③Rtoasterの11年
エンジニア勉強会資料_③Rtoasterの11年
 
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発
エンジニア勉強会資料_②エンジニア・デザイナ・プロダクトオーナーが推薦するプロトタイプドリブン開発
 
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?
エンジニア勉強会資料_①ブレインパッドの中で僕たちは何を開発しているのか?
 

Sparkストリーミング検証

  • 1. Copyright © BrainPad Inc. All Rights Reserved. ストリーミング検証 - アプリ編 - 2015年5月15日
  • 2. Copyright © BrainPad Inc. All Rights Reserved.  Spark Streamingを利用したアプリケーションを構築 – 直近数分間など、鮮度の高いデータを用いて予測ができるのがメリット  今回はCVユーザーを推定するアプリケーションに応用 – アクセスユーザーの中から、直近でCVしそうなユーザーを推定 • キャンペーン等の施策を打った直後からその効果を可視化したり、 CVしそうなユーザーにはクーポンを付与、 そうでないユーザーにレコメンドで回遊促進といった応用が考えられる – Scalaで実装 • Pythonでも記述可能だが、Sparkのライブラリ対応状況がよいため  Spark Streamingで作成した特徴量にモデルを適用し、 HDFSに結果を保存するところまで行う – 今回やらないこと • 適用した結果をDBに保存 – パフォーマンス検証編でHBaseに格納できるところまで確認済み • 保存結果をWebアプリケーションから参照 – DBにデータを入れてしまえば応用は容易 2 目的
  • 3. Copyright © BrainPad Inc. All Rights Reserved. バッチ処理 ストリーミング処理 3 アプリケーションのイメージ アクセスログ Kafka Spark Streaming DB Web Application Spark HDFS 利用 モデル 保存 読込 保存 読込
  • 4. Copyright © BrainPad Inc. All Rights Reserved. バッチ処理 ストリーミング処理 4 アプリケーションのイメージ アクセスログ Kafka Spark Streaming DB Web Application Spark HDFS 利用 モデル 保存 読込 保存 読込 特徴量作成 ラベル付与 モデル構築 特徴量作成 モデル読込 モデル適用
  • 5. Copyright © BrainPad Inc. All Rights Reserved. 特徴量作成 5
  • 6. Copyright © BrainPad Inc. All Rights Reserved. 6 特徴量の作成 バッチ処理 Spark HDFS 読込 特徴量作成 ラベル付与 モデル構築 00:00~01:00に、 アクセス: 8PV 滞在時間: 15分間 デバイス: スマホ などの情報をアクセスログから集計  アクセスログから特徴量を作成する – 30分、1時間分、1日分のデータなど特定期間のログから ユーザー毎に情報を集約して特徴量を作成する  特徴量は学習に利用するため、数値に変換する – 例えばアクセスデバイスなどのカテゴリデータを特徴量として使いたい場合、 「is_pc = 1」 などのように数値に変換する 特徴量の例 ユーザー Aさん
  • 7. Copyright © BrainPad Inc. All Rights Reserved.  アクセスログ(1 page viewごとに発生) – String型のCSV形式 – 各行は「ユーザID」、「セッション番号」、「訪問日時」などを含む  1サイト分のログを利用 – 1日あたり、300万PV・26万UU・1万CV 7 アクセスログについて カラム 意味 member ユーザID visit memberの累計訪問回数(セッション番号) page_view memberの累計ページビュー回数 date 訪問日時(YYYY-MM-DD HH:MM:SS.ZZZ) site 訪問サブドメイン page 訪問ページ
  • 8. Copyright © BrainPad Inc. All Rights Reserved.  (ユーザーID × セッション番号) を1データ点とみなして特徴量作成  主にCV率と相関がありそうな変数を特徴量として利用 – 正例: 「コンバージョンページを訪問した (ユーザID × セッション番号)」 – 今回は、十分なボリュームが確保できる基本的な特徴量のみ利用 • 「過去にCVしたことがあるか」や「複数デバイスからのアクセスか」などは CVとの相関は強かったがボリュームが少なかった 8 アクセスログからの特徴量作成 カラム名 特徴量 備考 total_sec 滞在時間 セッション内での滞在時間 session_pv セッションPV セッション内でのPV数 average_tracking_time 平均滞在時間 セッション内での、1PVあたりの平均時間
  • 9. Copyright © BrainPad Inc. All Rights Reserved. モデル構築 9
  • 10. Copyright © BrainPad Inc. All Rights Reserved. 10 モデル構築手順 バッチ処理 Spark HDFS 読込 特徴量作成 ラベル付与 モデル構築  過去のアクセスログを学習データとしてモデルを構築する – CVページにアクセスしたユーザーに、CVフラグを立てる(ラベル付与) – 教師あり学習でモデルを構築する • CVしたユーザー・していないユーザーの特徴量の傾向から、 どの特徴がどの程度CVに貢献したかを学習 ※ 8PVのアクセスの中に、 CVページへのアクセスが含まれている ユーザー Aさん 特徴量の例 00:00~01:00に、 アクセス: 8PV 滞在時間: 15分間 デバイス: スマホ などの情報をアクセスログから集計
  • 11. Copyright © BrainPad Inc. All Rights Reserved.  MLlibを利用してモデル構築 – MLlib:Sparkで機械学習を行うためのライブラリ • ロジスティック回帰やSVM、K-meansなどが用意されている – 今回はロジスティック回帰を利用 • アプリケーションにおいてモデルは疎結合なので、更新や入れ替えは容易 • 今回はアプリケーション化を試すことが目的なので、 複数モデルの比較や精度検証などは行っていない – 定期的にバッチでモデルを作成する方法を想定 • オンライン学習は行わない 11 学習モデルについて
  • 12. Copyright © BrainPad Inc. All Rights Reserved.  学習に利用したデータ – ある1日分(24時間分)のアクセスログ • ユーザー×セッション毎に特徴量を作成 • CVページにアクセスしているか否かラベルを付与  ラベル付与した特徴量から学習する – LogisticRegressionWithLBFGSを利用 • 準ニュートン法を利用したロジスティック回帰 – LogisticRegressionWithSGD(確率的勾配降下法)もある – 必要に応じてsetInterceptやsetNumClassなどを利用する – 正解・不正解の比率が偏る場合、学習データをサンプリングする • 例えばPythonのscikit-learnではclass_weight=‘auto’ を設定することで 自動でダウンサンプリングしてくれる • LogisticRegressionWithLBFGSでは現状 自動でサンプリングしてくれる機能は無さそうなので必要に応じて実装 12 モデル実装
  • 13. Copyright © BrainPad Inc. All Rights Reserved.  正解ラベルを付与した特徴量群を作成し、ロジスティック回帰で学習  構築したモデルを保存 13 MLlibを利用したロジスティック回帰 import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS // ラベル付与した特徴量には Vectors.dense と LabeledPoint を利用 val LabeledData = csvFile.map { line => ... val has_conversion = ... val vector = Vectors.dense(data._1, data._2, data._3, ...) LabeledPoint(has_conversion, vector) } val model = new LogisticRegressionWithLBFGS().run(LabeledData) val fs = FileSystem.get(new Configuration()) val path = new Path(“{path}") val oos = new ObjectOutputStream(fs.create(path)) oos.writeObject(model) oos.close()
  • 14. Copyright © BrainPad Inc. All Rights Reserved. モデル適用 14
  • 15. Copyright © BrainPad Inc. All Rights Reserved. 15 ストリーミング処理での特徴量作成 ストリーミング処理 アクセスログ Kafka Spark Streaming DB 特徴量作成 モデル読込 モデル適用  Window集計 – 間隔・期間を指定して実行する集計 • 5分毎に30分間のログを集計など – 01:00 に 00:30 ~ 01:00 のデータ集計 – 01:05 に 00:35 ~ 01:05 のデータ集計 – ストリーミング処理では Window集計で特徴量を作成する // streams: DStream[String] val userSessionData = streams.window( windowDuration = Minutes(5), slideDuration = Minutes(30) ).map { line => // 特徴量作成 }
  • 16. Copyright © BrainPad Inc. All Rights Reserved. 16 ストリーミング処理でのモデル適用 ストリーミング処理 アクセスログ Kafka Spark Streaming DB HDFS 読込 特徴量作成 モデル読込 モデル適用  モデルの読込と適用 – Window集計で作成した特徴量に バッチで作成したモデルを適用 – 各 ユーザー×セッション 毎の CVしそうスコアを算出 – 今回はDBではなくHDFSに結果出力 ※ 前項までに構築したモデルを HDFSに保存している
  • 17. Copyright © BrainPad Inc. All Rights Reserved.  保存されたモデルを適宜読み込んで適用 17 モデルの保存と読み込み val is = new ObjectInputStream(fs.open(modelFilePath)) val model = is.readObject().asInstanceOf[LogisticRegressionModel] // 結果を0,1ではなく、スコアで出力 model.clearThreshold() // 学習の際には LabeledPoint を利用したが、 // モデル適用の際にはラベル付与されていない特徴量を利用 val predictions = userSessionData.map{ case (key, features) => (key, model.predict(features)) }
  • 18. Copyright © BrainPad Inc. All Rights Reserved. 18 結果  5分毎に30分間のログを集計 – 5分毎にモデル適用を行い、そのときのCVユーザーらしさをスコアで算出  ユーザー毎のスコアの遷移が見て取れる – 直近のアクセスログによってCVユーザーらしさが変化している  適切な頻度・集計期間は用途によって調整が必要 user session 00:30 00:35 00:40 00:45 01:00 01:05 01:10 UserA 1 0.014 0.014 0.048 0.360 ... 0.12 - - UserB 6 - - - 0.023 ... 0.751 0.751 0.842 アクセスログに応じて スコアが徐々に増加 30分後には 既に離脱
  • 19. Copyright © BrainPad Inc. All Rights Reserved.  ロジスティック回帰でのモデル構築をSparkで実装  実際のアクセスログにストリーム処理でモデル適用し、 (ユーザー×セッション) の単位でスコアを出力した – HBaseなどのストレージにリアルタイムに結果を出力し アプリケーションでの展開に繋げることができる – リアルタイムに更新される(ユーザー×セッション)単位のスコアを持つことで、 以下の様な応用が考えられる • キャンペーン等の施策を打った直後からその効果を可視化し、 ユーザーの傾向が通常時からどう変化したかを測定 • CVしそうなユーザーにはクーポン付与、 CVしなさそうなユーザーにはレコメンドで回遊促進というように施策を出しわける  分散処理を意識した特徴量の抽出が必要 – groupByなどを極力利用しない • グルーピング対象のものを各ノードから取得するため 各データがノード間を飛び交い、処理に時間を要してしまう 19 まとめ
  • 20. Copyright © BrainPad Inc. All Rights Reserved. 株式会社ブレインパッド 〒108-0071 東京都港区白金台3-2-10 白金台ビル3F TEL:03-6721-7001 FAX:03-6721-7010 info@brainpad.co.jp Copyright © BrainPad Inc. All Rights Reserved. www.brainpad.co.jp