Submit Search
Upload
Sparkで始めるお手軽グラフデータ分析
•
3 likes
•
4,708 views
N
Nagato Kasaki
Follow
『詳解 Apache Spark』出版記念イベント LT資料 http://connpass.com/event/30375/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 33
Download now
Download to read offline
Recommended
Spark GraphFrames のススメ
Spark GraphFrames のススメ
Nagato Kasaki
Spark graph framesとopencypherによる分散グラフ処理の最新動向
Spark graph framesとopencypherによる分散グラフ処理の最新動向
Nagato Kasaki
Blueprintsについて
Blueprintsについて
Tetsuro Nagae
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
tuchimur
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
Recommended
Spark GraphFrames のススメ
Spark GraphFrames のススメ
Nagato Kasaki
Spark graph framesとopencypherによる分散グラフ処理の最新動向
Spark graph framesとopencypherによる分散グラフ処理の最新動向
Nagato Kasaki
Blueprintsについて
Blueprintsについて
Tetsuro Nagae
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
GMO プライベート DMP で ビッグデータ解析をするために アプリクラウドで Apache Spark の検証をしてみた
Tetsuo Yamabe
広告配信現場で使うSpark機械学習
広告配信現場で使うSpark機械学習
x1 ichi
2014 11-20 Machine Learning with Apache Spark 勉強会資料
2014 11-20 Machine Learning with Apache Spark 勉強会資料
Recruit Technologies
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
tuchimur
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
2015 03-12 道玄坂LT祭り第2回 Spark DataFrame Introduction
Yu Ishikawa
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public
Kazuaki Ishizaki
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
R超入門機械学習をはじめよう
R超入門機械学習をはじめよう
幹雄 小川
Parquetはカラムナなのか?
Parquetはカラムナなのか?
Yohei Azekatsu
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
Holden Karau
KMLとR言語
KMLとR言語
文彦 牧山
MapReduce入門
MapReduce入門
Satoshi Noto
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
MapR Technologies Japan
Learning spaerk chapter03
Learning spaerk chapter03
Akimitsu Takagi
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
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
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Inside of Asakusa DSL
Inside of Asakusa DSL
Suguru ARAKAWA
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
なぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuri
Yuta Okamoto
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
Kohei KaiGai
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Kazuaki Ishizaki
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Asakusa FrameworkとScalaの密かな関係
Asakusa FrameworkとScalaの密かな関係
hishidama
More Related Content
What's hot
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
Hadoop / Spark Conference Japan
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public
Kazuaki Ishizaki
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
Kohei KaiGai
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
Koichiro Sasaki
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
Yu Ishikawa
R超入門機械学習をはじめよう
R超入門機械学習をはじめよう
幹雄 小川
Parquetはカラムナなのか?
Parquetはカラムナなのか?
Yohei Azekatsu
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
Holden Karau
KMLとR言語
KMLとR言語
文彦 牧山
MapReduce入門
MapReduce入門
Satoshi Noto
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
MapR Technologies Japan
Learning spaerk chapter03
Learning spaerk chapter03
Akimitsu Takagi
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
Satoshi Kitajima
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
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Gw Liu
Inside of Asakusa DSL
Inside of Asakusa DSL
Suguru ARAKAWA
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
Yu Ishikawa
なぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuri
Yuta Okamoto
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
Kohei KaiGai
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Kazuaki Ishizaki
What's hot
(20)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
A Deeper Understanding of Spark Internals (Hadoop Conference Japan 2014)
20171212 titech lecture_ishizaki_public
20171212 titech lecture_ishizaki_public
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
R超入門機械学習をはじめよう
R超入門機械学習をはじめよう
Parquetはカラムナなのか?
Parquetはカラムナなのか?
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
PySparkによるジョブを、より速く、よりスケーラブルに実行するための最善の方法 ※講演は翻訳資料にて行います。 - Getting the Best...
KMLとR言語
KMLとR言語
MapReduce入門
MapReduce入門
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Apache Drill: Rethinking SQL for Big data – Don’t Compromise on Flexibility o...
Learning spaerk chapter03
Learning spaerk chapter03
データサイエンティスト必見!M-1グランプリ
データサイエンティスト必見!M-1グランプリ
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
2019.03.19 Deep Dive into Spark SQL with Advanced Performance Tuning
A Benchmark Test on Presto, Spark Sql and Hive on Tez
A Benchmark Test on Presto, Spark Sql and Hive on Tez
Inside of Asakusa DSL
Inside of Asakusa DSL
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
2016-02-08 Spark MLlib Now and Beyond@Spark Conference Japan 2016
なぜリアクティブは重要か #ScalaMatsuri
なぜリアクティブは重要か #ScalaMatsuri
20200424_Writable_Arrow_Fdw
20200424_Writable_Arrow_Fdw
20180109 titech lecture_ishizaki_public
20180109 titech lecture_ishizaki_public
Similar to Sparkで始めるお手軽グラフデータ分析
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Kazuaki Ishizaki
Asakusa FrameworkとScalaの密かな関係
Asakusa FrameworkとScalaの密かな関係
hishidama
R入門とgoogle map +α
R入門とgoogle map +α
kobexr
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Hideo Harada
Data processing at spotify using scio
Data processing at spotify using scio
Julien Tournay
msgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graph
yaegashi
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
hishidama
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Atsushi Hayakawa
Android + Runtime Environment
Android + Runtime Environment
三七男 山本
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
Tomoharu ASAMI
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
Yoshiiro Ueno
Rを用いたGIS
Rを用いたGIS
Mizutani Takayuki
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016
kyoto university
DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門
Yuki Morishita
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
Takahito Tejima
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29
西岡 賢一郎
RでGISハンズオンセッション
RでGISハンズオンセッション
arctic_tern265
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
鉄平 土佐
Rでreproducible research
Rでreproducible research
Shintaro Fukushima
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
npsg
Similar to Sparkで始めるお手軽グラフデータ分析
(20)
Introduction new features in Spark 3.0
Introduction new features in Spark 3.0
Asakusa FrameworkとScalaの密かな関係
Asakusa FrameworkとScalaの密かな関係
R入門とgoogle map +α
R入門とgoogle map +α
Map server入門 - FOSS4G 2012 Hokkaido
Map server入門 - FOSS4G 2012 Hokkaido
Data processing at spotify using scio
Data processing at spotify using scio
msgraph: Terraform provider for Microsoft Graph
msgraph: Terraform provider for Microsoft Graph
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Java8 Stream APIとApache SparkとAsakusa Frameworkの類似点・相違点
Intoroduction of Pandas with Python
Intoroduction of Pandas with Python
Android + Runtime Environment
Android + Runtime Environment
実務者のためのかんたんScalaz
実務者のためのかんたんScalaz
並列対決 Elixir × Go × C# x Scala , Node.js
並列対決 Elixir × Go × C# x Scala , Node.js
Rを用いたGIS
Rを用いたGIS
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016
DataStax EnterpriseでApache Tinkerpop入門
DataStax EnterpriseでApache Tinkerpop入門
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
東大生向けデータ解析講座 第2回 2017/12/29
東大生向けデータ解析講座 第2回 2017/12/29
RでGISハンズオンセッション
RでGISハンズオンセッション
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
GraphXはScalaエンジニアにとってのブルーオーシャン @ Scala Matsuri 2014
Rでreproducible research
Rでreproducible research
Apache Spark+Zeppelinでアドホックなネットワーク解析
Apache Spark+Zeppelinでアドホックなネットワーク解析
More from Nagato Kasaki
20190712 polkadot japan meetup
20190712 polkadot japan meetup
Nagato Kasaki
Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発
Nagato Kasaki
暗号通貨輪読会 #20 bloXroute
暗号通貨輪読会 #20 bloXroute
Nagato Kasaki
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Nagato Kasaki
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Nagato Kasaki
More from Nagato Kasaki
(6)
20190712 polkadot japan meetup
20190712 polkadot japan meetup
Pact言語によるセキュアなスマートコントラクト開発
Pact言語によるセキュアなスマートコントラクト開発
暗号通貨輪読会 #20 bloXroute
暗号通貨輪読会 #20 bloXroute
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Sparkを活用したレコメンドエンジンのパフォーマンスチューニング&自動化
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Hive on Spark を活用した高速データ分析 - Hadoop / Spark Conference Japan 2016
Recently uploaded
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Recently uploaded
(11)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Sparkで始めるお手軽グラフデータ分析
1.
/ 33 Sparkで始める お手軽グラフデータ分析 ビッグデータ部 加嵜長門 2016年5月11日 『詳解Apache
Spark』出版記念
2.
/ 33 自己紹介 • 加嵜
長門 • 2014年4月~ DMM.comラボ • Hadoop基盤構築 • Spark MLlib, GraphXを用いたレコメンド開発 • 『詳解 Apache Spark』では「8章 GraphX」を執筆 2
3.
/ 33 Spark GraphX
周りの話題 • Hadoop/Spark Conference Japan 2016 • 2016年2月8日 • キーノートでのアンケート結果 • GraphX… 3 Spark Conference Japan 開催にあたって(Hadoop / Spark Conference Japan 2016 キーノート講演資料) http://www.slideshare.net/hadoopconf/spark-conference-japan2016-keynote-saruta
4.
/ 33 Spark GraphX
周りの話題 • GraphFramesの登場 • Databricksが2016年3月3日にリリース • http://graphframes.github.io/ • Spark GraphX と DataFrames (SparkSQL) の統合 • 利用数の多いDataFramesを用いて、手軽にグラフデータが扱える • 事例も増えそう・・・? 4
5.
/ 33 そもそもグラフデータとは • “つながり”を表現するデータ構造 •
cf. ER図 5 entity entityrelation node/vertex relation/edge attribute attribute
6.
/ 33 グラフデータの具体例 • ソーシャルグラフ •
人と人とのつながり 6 ASSIOMA:オルタナティブ・ブログ: 「あの人検索スパイシー」の「相関図」 http://blogs.itmedia.co.jp/assioma/2010/08/kdditwitter-689.html
7.
/ 33 グラフデータの具体例 • 路線図 •
地図グラフ • 駅と駅のつながり(路線) 7 goo地図 - 首都圏JRの路線図 http://map.goo.ne.jp/station/map/tokyo_jr/
8.
/ 33 グラフデータの具体例 • インターネット •
Webグラフ • ページとページのリンク 8 HOME Contents Purchase Contact
9.
/ 33 グラフデータの具体例 • 家系図 •
親子のつながり 9 家系図作成本舗 -織田信長の家系図 http://www.e-keizu.com/kakeizu/nobunaga.html
10.
/ 33 グラフ以外のデータ構造 • 配列 •
ベクトル、行列 • 連想配列 • オブジェクト • リスト • 関係(リレーション) • etc… 10 1 2 3 4 5 6 7 8 9 { a1: v1 a2: v2 } A B C
11.
/ 33 それぞれのデータ構造を用いたモデリング • 友人関係の表現方法 •
無数にある 11 A B C A B C A 0 1 1 B 0 0 1 C 0 0 0 A B C グラフ構造 隣接行列
12.
/ 33 よくある質問 • 「それってグラフじゃないとできないの?」 →
多くの場合は他の選択肢もある • RDB、行列、etc. • さまざまなデータ構造や分析手法を活用して、多角的な視点を 持つことが重要 12
13.
/ 33 グラフの活用例 • レコメンド •
趣味が合うユーザとの つながり • 関心のある商品との つながり 13 技術評論社: Hadoopでレコメンドシステムを作ろう http://gihyo.jp/dev/serial/01/recommend_hadoop/0001
14.
/ 33 グラフの活用例 • マーケティング •
ネットワークビジネス • バイラルマーケティング • インフルエンサーマーケティング • 口コミを使ったマーケティング • 影響力の強いユーザの抽出 • クラスター分析 14 マーケティング用語集 - インフルエンサー・マーケティングとは http://www.spi-consultants.com/ja/terms/archives/influence-marketing.php
15.
/ 33 グラフの活用例 • 不正検知 •
偽装保険金詐取 • 運転手 • 乗客 • 弁護士 • 医者 15 Linkurious - Whiplash for cash : using graphs for fraud detection https://linkurio.us/whiplash-for-cash-using-graphs-for-fraud-detection/
16.
/ 33 グラフの活用例 • 不正検知 •
偽装保険金詐取 • 少人数で何度も事故に 巻き込まれている ケースを抽出 16 Linkurious - Whiplash for cash : using graphs for fraud detection https://linkurio.us/whiplash-for-cash-using-graphs-for-fraud-detection/
17.
/ 33 グラフの活用例 • 不正検知 •
クレジットカード詐欺 • 少数の人数で、住所や 電話番号を使い回している ケースを抽出 17 Improving First-Party Bank Fraud Detection with Graph Databases http://neo4j.com/blog/first-party-bank-fraud-detection-graph-databases/
18.
/ 33 グラフの活用例 • 「パナマ文書」解析 •
多くの会社(ペーパーカンパニーを含む)を流れるお金の流れを分析 18 Medium - 「パナマ文書」解析の技術的側面 https://medium.com/@c_z/パナマ文書-解析の技術的側面-d10201bbe195#.nvxvolgn8
19.
/ 33 グラフ処理系プロダクト • グラフDB •
グラフデータを構造化 • グラフに対してクエリを投げる • 例) Neo4j, Titan • グラフ処理 • グラフ処理の流れを記述 • 処理系に対してグラフデータを投げる • 例) Spark GraphX, GraphLab 19 グラフデータ グラフ処理 クエリ クエリ クエリ グラフ グラフ グラフ
20.
/ 33 Spark GraphXのメリット •
vs. グラフDB • 分散処理による高スループット • 耐障害性 • vs. 他のグラフ処理系 • グラフに特化しない汎用的なデータ構造 • 表形式やベクトルとシームレスに結合できる 20 https://amplab.github.io/graphx/
21.
/ 33 Spark GraphX
– グラフの作成 • RDDから作成 • Generatorで自動生成 21 scala> val graph = Graph(nodes, relations) scala> GraphGenerators.logNormalGraph(sc, numVertices = 5, mu = 4.0, sigma = 1.3) scala> GraphGenerators.rmatGraph(sc, requestedNumVertices = 10, numEdges = 10)
22.
/ 33 Spark GraphX
– グラフ分析 • グラフの特徴量を取得 22 // 位数(頂点の数)を取得 scala> graph.numVertices res0: Long = 3 // サイズ(辺の数)を取得 scala> graph.numEdges res1: Long = 3 // 各頂点の次数(接する辺の数)を取得 scala> graph.degrees.collect.foreach(println(_)) (2,2) (1,2) (3,2)
23.
/ 33 GraphFrames –
グラフの作成 23 // graphframesパッケージのインポート scala> import org.graphframes._ import org.graphframes._ // Vertex(頂点)となるDataFrameを作成 scala> val v = sqlContext.createDataFrame(List( | (0L, "user", "u1"), | (1L, "user", "u2"), | (2L, "item", "i1"), | (3L, "item", "i2"), | (4L, "item", "i3"), | (5L, "item", "i4") | )).toDF("id", "type", "name") v: org.apache.spark.sql.DataFrame = [id: bigint, type: string, name: string] u1 u2 ユーザ i1 i2 i3 i4 アイテム
24.
/ 33 GraphFrames –
グラフの作成 24 // Edge(辺)となるDataFrameを作成 scala> val e = sqlContext.createDataFrame(List( | (0L, 2L, "purchase"), | (0L, 3L, "purchase"), | (0L, 4L, "purchase"), | (1L, 3L, "purchase"), | (1L, 4L, "purchase"), | (1L, 5L, "purchase") | )).toDF("src", "dst", "type") e: org.apache.spark.sql.DataFrame = [src: bigint, dst: bigint, type: string] // GraphFrameを作成 scala> val g = GraphFrame(v, e) g: org.graphframes.GraphFrame = GraphFrame(v:[id: bigint, attr: string, gender: string], e:[src: bigint, dst: bigint, relationship: string]) u1 u2 i1 i2 i3 i4 購入ログ
25.
/ 33 GraphFrames –
アイテムレコメンドの実行例 25 // レコメンドアイテムの問い合わせ例 scala> g.find( | " (a)-[]->(x); (b)-[]->(x);" + | " (b)-[]->(y); !(a)-[]->(y)" | ).groupBy( | "a.name", "y.name" | ).count().show() +----+----+-----+ |name|name|count| +----+----+-----+ | u1| i4| 2| | u2| i1| 2| +----+----+-----+ u1 u2 i1 i2 i3 i4 共通の商品を 購入したユーザ まだ購入していないアイテムをレコメンド (b) (y) (a) (x)
26.
/ 33 GraphFrames –
サンプルグラフの利用 (1) 26 // スターグラフを作成 scala> val star = examples.Graphs.star(5) // Tripletsを表示 scala> star.triplets.show() +------------+----------+--------+ | edge| src| dst| +------------+----------+--------+ |[1,0,edge-1]|[1,node-1]|[0,root]| |[2,0,edge-2]|[2,node-2]|[0,root]| |[3,0,edge-3]|[3,node-3]|[0,root]| |[4,0,edge-4]|[4,node-4]|[0,root]| |[5,0,edge-5]|[5,node-5]|[0,root]| +------------+----------+--------+ 0 1 2 3 4 5 node-1 node-2 node-3 node-4 node-5 root edge-1 edge-2 edge-3 edge-4 edge-5
27.
/ 33 GraphFrames –
PageRankの実行例 27 // PageRankを計算 scala> val pr = g.pageRank.resetProbability(0.1).tol(0.01).run() // PageRankのスコアを表示 scala> pr.vertices.show() +---+-------+--------+ | id|v_attr1|pagerank| +---+-------+--------+ | 0| root| 0.55| | 1| node-1| 0.1| | 2| node-2| 0.1| | 3| node-3| 0.1| | 4| node-4| 0.1| | 5| node-5| 0.1| +---+-------+--------+ 0 1 2 3 4 5 0.1 0.1 0.1 0.1 0.1 0.55
28.
/ 33 GraphFrames –
サンプルグラフの利用 (2) 28 // 友達関係のサンプルグラフを作成 scala> val friends = examples.Graphs.friends // Tripletsを表示 scala> friends.triplets.show() +------------+--------------+--------------+ | edge| src| dst| +------------+--------------+--------------+ |[a,b,friend]| [a,Alice,34]| [b,Bob,36]| |[b,c,follow]| [b,Bob,36]|[c,Charlie,30]| |[c,b,follow]|[c,Charlie,30]| [b,Bob,36]| |[f,c,follow]| [f,Fanny,36]|[c,Charlie,30]| |[e,f,follow]| [e,Esther,32]| [f,Fanny,36]| |[e,d,friend]| [e,Esther,32]| [d,David,29]| |[d,a,friend]| [d,David,29]| [a,Alice,34]| |[a,e,friend]| [a,Alice,34]| [e,Esther,32]| +------------+--------------+--------------+ a b c de f g Alice, 34 Bob, 36 Charlie, 30 Fanny, 36 Esther, 32 David, 29 Gabby, 60 friend friend friend follow follow follow friend
29.
/ 33 a GraphFrames –
最短距離を計算 29 // すべてのユーザからユーザ “a” までの最短距離を計算 scala> val d1 = friends.shortestPaths.landmarks(Seq("a")).run() // 結果を表示 scala> d1.show() +---+-------+---+-----------+ | id| name|age| distances| +---+-------+---+-----------+ | f| Fanny| 36| Map()| | g| Gabby| 60| Map()| | a| Alice| 34|Map(a -> 0)| | b| Bob| 36| Map()| | c|Charlie| 30| Map()| | d| David| 29|Map(a -> 1)| | e| Esther| 32|Map(a -> 2)| +---+-------+---+-----------+ a b c de f a -> 0 g a -> 2 a -> 1
30.
/ 33 a c GraphFrames –
最短距離を計算 30 // すべてのユーザからユーザ “a”, “c” までの最短距離を計算 scala> val d2 = friends.shortestPaths.landmarks(Seq("a", "c")).run() // 結果を表示 scala> d2.show() +---+-------+---+-------------------+ | id| name|age| distances| +---+-------+---+-------------------+ | f| Fanny| 36| Map(c -> 1)| | g| Gabby| 60| Map()| | a| Alice| 34|Map(a -> 0, c -> 2)| | b| Bob| 36| Map(c -> 1)| | c|Charlie| 30| Map(c -> 0)| | d| David| 29|Map(a -> 1, c -> 3)| | e| Esther| 32|Map(a -> 2, c -> 2)| +---+-------+---+-------------------+ a b c de f g a -> 0 c -> 2 a -> 2 c -> 2 a -> 1 c -> 3 c -> 0 c -> 1 c -> 1
31.
/ 33 a b c d GraphFrames –
最短経路の探索 31 // ユーザ “d”から“c” への最短経路を探索 scala> val path = friends.bfs.fromExpr("id = 'd'").toExpr("id = 'c'").run() // 結果を表示 scala> path.show() +------------+------------+------------+ | from| e0| v1| +------------+------------+------------+ |[d,David,29]|[d,a,friend]|[a,Alice,34]| +------------+------------+------------+ +------------+----------+------------+--------------+ | e1| v2| e2| to| +------------+----------+------------+--------------+ |[a,b,friend]|[b,Bob,36]|[b,c,follow]|[c,Charlie,30]| +------------+----------+------------+--------------+ a b c de f g Alice, 34 Bob, 36 Charlie, 30 David, 29 friend follow friend
32.
/ 33 Spark GraphX
– グラフ処理 • グラフアルゴリズムの適用 32 // triangeCountを取得 scala> val triangleCounts = graph.triangleCount // クラスタ係数を計算 scala> val clusteringCoefficients = | triangleCounts.mapVertices((id, count) => | count.toDouble | ).joinVertices(degrees)((id, count, degree) => { | degree match { | case d if d > 1 => count * 2 / (d * (d - 1)) | case _ => 0.0 | }})
33.
/ 33 Spark GraphX
– グラフ処理 • 続きは・・・ 33 http://gihyo.jp/book/2016/978-4-7741-8124-0
Download now