SlideShare a Scribd company logo
1 of 23
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
2019年05月16日
日本オラクル株式会社
クラウド・テクノロジーコンサルティング
玉越 敬典
1
PGX ユーザー勉強会 #12
Deep Walk について
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 2
Agenda
1. Deep Walk とは
2. Deep Walk by PGX
3. Demo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 3
1. Deep Walk とは
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 4
Graph データ構造
• Graph の最も基本的なデータ構造(行列表現)は以下の2つ
隣接行列 隣接リスト
B
C
A F
D
E
B
C
A F
D
E
0 1 1 0 0 0
1 0 0 0 1 1
1 0 0 1 0 1
0 0 1 0 1 0
0 1 1 1 0 0
0 1 1 0 0 0
A B C D E F
A
B
C
D
E
F
A
B
C
D
E
F
B C
F
E F
C E
グラフの頂点と頂点の
隣接関係を表す正方行列
各頂点から接続している頂点を
数珠つなぎに保持するリスト構造
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 5
Graph データ構造の統計手法への適用
• Graph を一般的な統計アルゴリズムで処理しようとすると、
スパース性からうまくいかないことが多い…
クラスタリング異常検知
ノードの数が増えれば増えるほど
0 が増えてスパースになる
0 1 … 0
0 0 … 0
.. .. … …
0 0 … 0
グラフ 隣接行列
B
C
A F
D
E
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 6
潜在表現 (latent representation)
• そこで、Graph データの特徴 (ノードとノードのつながりの情報)をある程度保持したまま、
Graph 構造に関する潜在的な情報を抽出したデータ表現を使う
グラフ 隣接行列
B
C
A F
D
E
クラスタリング異常検知
潜在表現
0 1 … 0
0 0 … 0
.. .. … …
0 0 … 0
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 7
Deep Walk
• Deep Walk は 潜在表現を獲得するためのアルゴリズム
– Deep Learning を使って Graph の潜在的な情報を学習する
0 1 1 0
1 0 0 0
1 0 0 1
0 0 1 0
グラフ 隣接行列
B
C
A F
D
E
Deep Walk!!
Random Walk
Word2vec
(Skip-gram)
潜在表現
2つのステップ
A のベクトル
B のベクトル
….
各ノードごとに
同次元のベクトル表現が得られる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 8
Deep Walk 詳細の前に – NLPとの関連①
• 自然言語処理 (NLP) 界隈でも Graph と同様の問題があった
– 文章、パラグラフ、単語といった情報を ①コンテキスト情報を踏まえた、②密なデータを表す表現の
方法がなかった
A. One-Hot ベクトル B. TF-IDF によるベクトル化
これ
は
ペン
です
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
これ
は
ペン
です
単語の出現頻度等を
重み付けして計算
0.2333
0.7685
0.2311
0.4562
語彙が増えれば増えるほど
スパースになる
コンテキスト情報を
考慮できていない
古典的な 単語ベクトル表現獲得手法
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 9
Deep Walk 詳細の前に – NLPとの関連②
• そこで word2vec という手法が生み出された
– 「各単語はその周辺の単語と何らかの関係性がある」と仮定して、ある単語が与えられたときの周辺の単語
を予測するというタスクから、単語の潜在表現ベクトルを獲得する方法
潜在表現
引用: Xin Rong. word2vec Parameter Learning Explained
https://arxiv.org/pdf/1411.2738.pdf
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 10
Deep Walk の発想とアルゴリズム
• 「ノードを適当に(ランダムに)たどっていけば、ノードの順序をもった集合ができる」
これは “文” とみなして、word2vec を適用できるのではないか?
B
C
A F
D
E
G
H
I J
2. word2vec
Random Walk
Word2vec
(Skip-gram)
Start
適当な ノードを出発起点として
ランダムにノードをたどる
辿ったノードの集合を順に
リストする
1. Random Walk
H I E B F[ ]
潜在表現
これを文とみなす
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 11
Deep Walk で何ができるか
• Graph の潜在表現 = 「各ノードのベクトル集合」なため、ノード間の関係を計算できる
Aさん 商品1
Bさん
Cさん
商品2
商品3
リコメンドエンジン
比較対象 類似度
Bさん 0.987665
Cさん 0.87721
Aさんとの類似度が高いユーザ
• Aさんと類似度が高い
ユーザを導出
• そのユーザが買っている商品
をリコメンド
クラスタリング
DeepWalk によって計算された各ノードの
ベクトルを Kmeans 等のクラスタリング
アルゴリズムにくわせて、Graph のクラスタを
算出
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 12
[参考] Deep Walk パフォーマンス
• 論文によると他の手法よりもパフォーマンスは高く、特にラベル付きデータがまばらである場合、
Deep Walk は競合する方法よりも最大10%高いF 1スコアになっている
(出典) Bryan Perozzi, Rami Al-Rfou, Steven Skiena. DeepWalk: Online Learning of Social
Representations
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 13
2. Deep Walk by PGX
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 14
PGX での Deep Walk の利用
• PGX 3.2 から Deep Walk が利用可能に
– https://docs.oracle.com/cd/E56133_01/latest/tutorials/mllib/deepwalk.html
• 以下のようなフローで Deep Walk を利用する
Graph データ準備 モデル構築 モデル学習 モデル利用
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 15
PGX Deep Walk – 1. データの準備
• 通常の PGX の使用通りにまずは Graph データをロードして PgxGraph オブジェクトを
生成する
• そのあと、PgxGraph#undirect() で無向グラフ化する
PGX> G = session.readGraphWithProperties(“test.json”)
==> PgxGraph[name=sub-graph_13,N=4483,E=10000,
created=1557815262110]
# Deep Walk を適用するグラフは無向グラフである必要がある
PGX> uG = G.undirect()
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 16
PGX Deep Walk – 2. モデルの構築
• ハイパーパラメータを設定して DeepWalk モデルを構築
– 各種ハイパーパラメータの意味は 以下の JavaDoc で確認
PGX> model = analyst.deepWalkModelBuilder()
.setWindowSize(3)
.setWalksPerVertex(6)
.setWalkLength(4)
.build()
==> oracle.pgx.api.beta.mllib.DeepWalkModel@50027e64
https://docs.oracle.com/cd/E56133_01/latest/javadocs/oracle/pgx/api/beta/mllib/DeepWalkModelBuilder.html
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 17
PGX Deep Walk – 3. モデルの学習
• DeepWalkMode#fit(PgxGraph) で DeepWalk のモデルを学習させる
PGX> model.fit(uG)
# 学習後の損失を算出する (現在は 学習過程の損失は取得できない)
PGX> model.getLoss()
==> -1.1363721109080635E-6
# 学習後の 各ノードのベクトルは以下のように取得する
PGX> model.getTrainedVertexVectors()
==> oracle.pgx.api.beta.frames.internal.PgxFrameImpl@b2954e
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 18
PGX Deep Walk – 4. モデル使用
• 学習さ (せたモデルで特定ノードの類似性を測定できる
– DeepWalkMode#computeSimilars を使用
– 現在はノードIDを元にした類似性の算出 API しか用意されていない
# 第一引数で比較元のノードIDを指定
# 第二引数で上位何件を取得するかを指定
PGX> sim = model.computeSimilars(111, 3)
PGX> sim.print()
+--------------------------------+
| dstVertex | similarity |
+--------------------------------+
| 111 | 1.0000001192092896 |
| 112 | 0.9316596984863281 |
| 113 | 0.9065075516700745 |
+--------------------------------+
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 19
PGX Deep Walk – その他
• もちろんモデルの再利用を可能にするための API も備えている
– モデルの保存/モデルのロード
# モデルの保存
PGX> model.store("/tmp/dw.model")
==> null
# モデルのロード
PGX> model2 = analyst.loadDeepWalkModel("/tmp/dw.model")
==> oracle.pgx.api.beta.mllib.DeepWalkModel@ac91282
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 20
3. Demo
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 21
Demo 内容
• DBpedia の人物情報を使用して、各人物ノードの類似性をみる
Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 22
まとめ
• DeepWalk は Graph データ構造を汎用的な統計手法に適用させるための潜在表現を
得るための手法
– Graph をランダムウォークして、得られたノード列を文章とみなして、word2vec モデルに適用させる
• PGX 3.2 から DeepWalk が使え、一連のフローを実行するための API が提供されている
Deep walk について

More Related Content

What's hot

【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fieldscvpaper. challenge
 
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布するパワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する森 哲也
 
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion ModelsDeep Learning JP
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...Deep Learning JP
 
DNNの曖昧性に関する研究動向
DNNの曖昧性に関する研究動向DNNの曖昧性に関する研究動向
DNNの曖昧性に関する研究動向Naoki Matsunaga
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介Deep Learning JP
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision TransformerYusuke Uchida
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...Deep Learning JP
 
グラフデータ分析 入門編
グラフデータ分析 入門編グラフデータ分析 入門編
グラフデータ分析 入門編順也 山口
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法Deep Learning JP
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用Ryo Iwaki
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスYusuke Uchida
 
Introduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayIntroduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayWEBFARMER. ltd.
 
Neural networks for Graph Data NeurIPS2018読み会@PFN
Neural networks for Graph Data NeurIPS2018読み会@PFNNeural networks for Graph Data NeurIPS2018読み会@PFN
Neural networks for Graph Data NeurIPS2018読み会@PFNemakryo
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Yamato OKAMOTO
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networkstm1966
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜Jun Okumura
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方joisino
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII
 

What's hot (20)

【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields【メタサーベイ】Neural Fields
【メタサーベイ】Neural Fields
 
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布するパワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
パワポ版の落合先生流論文要旨のテンプレートを作ったので配布する
 
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
【DL輪読会】High-Resolution Image Synthesis with Latent Diffusion Models
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...[DL輪読会]data2vec: A General Framework for  Self-supervised Learning in Speech,...
[DL輪読会]data2vec: A General Framework for Self-supervised Learning in Speech,...
 
DNNの曖昧性に関する研究動向
DNNの曖昧性に関する研究動向DNNの曖昧性に関する研究動向
DNNの曖昧性に関する研究動向
 
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
[DL輪読会]Convolutional Conditional Neural Processesと Neural Processes Familyの紹介
 
近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer近年のHierarchical Vision Transformer
近年のHierarchical Vision Transformer
 
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...[DL輪読会]Revisiting Deep Learning Models for Tabular Data  (NeurIPS 2021) 表形式デー...
[DL輪読会]Revisiting Deep Learning Models for Tabular Data (NeurIPS 2021) 表形式デー...
 
グラフデータ分析 入門編
グラフデータ分析 入門編グラフデータ分析 入門編
グラフデータ分析 入門編
 
【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法【DL輪読会】時系列予測 Transfomers の精度向上手法
【DL輪読会】時系列予測 Transfomers の精度向上手法
 
方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用方策勾配型強化学習の基礎と応用
方策勾配型強化学習の基礎と応用
 
ConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティスConvNetの歴史とResNet亜種、ベストプラクティス
ConvNetの歴史とResNet亜種、ベストプラクティス
 
Introduction to Prioritized Experience Replay
Introduction to Prioritized Experience ReplayIntroduction to Prioritized Experience Replay
Introduction to Prioritized Experience Replay
 
Neural networks for Graph Data NeurIPS2018読み会@PFN
Neural networks for Graph Data NeurIPS2018読み会@PFNNeural networks for Graph Data NeurIPS2018読み会@PFN
Neural networks for Graph Data NeurIPS2018読み会@PFN
 
Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)Skip Connection まとめ(Neural Network)
Skip Connection まとめ(Neural Network)
 
Graph Neural Networks
Graph Neural NetworksGraph Neural Networks
Graph Neural Networks
 
DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜DQNからRainbowまで 〜深層強化学習の最新動向〜
DQNからRainbowまで 〜深層強化学習の最新動向〜
 
最適輸送の解き方
最適輸送の解き方最適輸送の解き方
最適輸送の解き方
 
SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向SSII2019企画: 点群深層学習の研究動向
SSII2019企画: 点群深層学習の研究動向
 

Similar to Deep walk について

#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーションYasushi Hara
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?Insight Technology, Inc.
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019MKT-INTHEFOREST
 
Deep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale nightDeep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale nightRescale Japan株式会社
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜MicroAd, Inc.(Engineer)
 
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...NTT DATA Technology & Innovation
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう幹雄 小川
 
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合うDaiyu Hatakeyama
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤aitc_jp
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!guestc06e54
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention NetworkTakahiro Kubo
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Sotaro Kimura
 
WWW2017論文読み会 Information Cascades と Graph Algorithms
WWW2017論文読み会 Information Cascades と Graph AlgorithmsWWW2017論文読み会 Information Cascades と Graph Algorithms
WWW2017論文読み会 Information Cascades と Graph Algorithmscyberagent
 
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...オラクルエンジニア通信
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)NTT DATA OSS Professional Services
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料Recruit Technologies
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)OSgeo Japan
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data PlatformNaoki (Neo) SATO
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムRecruit Technologies
 

Similar to Deep walk について (20)

#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション#経済学のための実践的データ分析 11. データのビジュアライゼーション
#経済学のための実践的データ分析 11. データのビジュアライゼーション
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?グラフデータベースは如何に自然言語を理解するか?
グラフデータベースは如何に自然言語を理解するか?
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
 
Deep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale nightDeep Learning on Rescale - Oct/11/2016 at Rescale night
Deep Learning on Rescale - Oct/11/2016 at Rescale night
 
アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜アドテクを支える技術 〜1日40億リクエストを捌くには〜
アドテクを支える技術 〜1日40億リクエストを捌くには〜
 
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
Spark 3.0が目指す、よりインテリジェントなUnified Analytics Platform(db tech showcase 2019 Tok...
 
R超入門機械学習をはじめよう
R超入門機械学習をはじめようR超入門機械学習をはじめよう
R超入門機械学習をはじめよう
 
佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う佐賀大学 - データ分析と向き合う
佐賀大学 - データ分析と向き合う
 
2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤2016年2月4日 空間OSのためのビッグデータ技術基盤
2016年2月4日 空間OSのためのビッグデータ技術基盤
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
 
Graph Attention Network
Graph Attention NetworkGraph Attention Network
Graph Attention Network
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
WWW2017論文読み会 Information Cascades と Graph Algorithms
WWW2017論文読み会 Information Cascades と Graph AlgorithmsWWW2017論文読み会 Information Cascades と Graph Algorithms
WWW2017論文読み会 Information Cascades と Graph Algorithms
 
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
とっておきの方法! Oracle Databaseの自動アップグレードのお勧め手法 省力・最新化 概要編 (Oracle Cloudウェビナーシリーズ: ...
 
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
Hadoop上の多種多様な処理でPigの活きる道 (Hadoop Conferecne Japan 2013 Winter)
 
WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料WebDB Forum 2012 基調講演資料
WebDB Forum 2012 基調講演資料
 
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
災害監視無人機システムと 災害監視無人機システムとFOSS4Gとの関わり ((独)宇宙航空研究開発機構 都甲 様)
 
[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform[de:code 2019 振り返り Night!] Data Platform
[de:code 2019 振り返り Night!] Data Platform
 
ビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラムビッグデータ活用支援フォーラム
ビッグデータ活用支援フォーラム
 

Recently uploaded

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 

Recently uploaded (9)

クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 

Deep walk について

  • 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 2019年05月16日 日本オラクル株式会社 クラウド・テクノロジーコンサルティング 玉越 敬典 1 PGX ユーザー勉強会 #12 Deep Walk について
  • 2. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 2 Agenda 1. Deep Walk とは 2. Deep Walk by PGX 3. Demo
  • 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 3 1. Deep Walk とは
  • 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 4 Graph データ構造 • Graph の最も基本的なデータ構造(行列表現)は以下の2つ 隣接行列 隣接リスト B C A F D E B C A F D E 0 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 1 0 0 1 1 1 0 0 0 1 1 0 0 0 A B C D E F A B C D E F A B C D E F B C F E F C E グラフの頂点と頂点の 隣接関係を表す正方行列 各頂点から接続している頂点を 数珠つなぎに保持するリスト構造
  • 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 5 Graph データ構造の統計手法への適用 • Graph を一般的な統計アルゴリズムで処理しようとすると、 スパース性からうまくいかないことが多い… クラスタリング異常検知 ノードの数が増えれば増えるほど 0 が増えてスパースになる 0 1 … 0 0 0 … 0 .. .. … … 0 0 … 0 グラフ 隣接行列 B C A F D E
  • 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 6 潜在表現 (latent representation) • そこで、Graph データの特徴 (ノードとノードのつながりの情報)をある程度保持したまま、 Graph 構造に関する潜在的な情報を抽出したデータ表現を使う グラフ 隣接行列 B C A F D E クラスタリング異常検知 潜在表現 0 1 … 0 0 0 … 0 .. .. … … 0 0 … 0
  • 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 7 Deep Walk • Deep Walk は 潜在表現を獲得するためのアルゴリズム – Deep Learning を使って Graph の潜在的な情報を学習する 0 1 1 0 1 0 0 0 1 0 0 1 0 0 1 0 グラフ 隣接行列 B C A F D E Deep Walk!! Random Walk Word2vec (Skip-gram) 潜在表現 2つのステップ A のベクトル B のベクトル …. 各ノードごとに 同次元のベクトル表現が得られる
  • 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 8 Deep Walk 詳細の前に – NLPとの関連① • 自然言語処理 (NLP) 界隈でも Graph と同様の問題があった – 文章、パラグラフ、単語といった情報を ①コンテキスト情報を踏まえた、②密なデータを表す表現の 方法がなかった A. One-Hot ベクトル B. TF-IDF によるベクトル化 これ は ペン です 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 これ は ペン です 単語の出現頻度等を 重み付けして計算 0.2333 0.7685 0.2311 0.4562 語彙が増えれば増えるほど スパースになる コンテキスト情報を 考慮できていない 古典的な 単語ベクトル表現獲得手法
  • 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 9 Deep Walk 詳細の前に – NLPとの関連② • そこで word2vec という手法が生み出された – 「各単語はその周辺の単語と何らかの関係性がある」と仮定して、ある単語が与えられたときの周辺の単語 を予測するというタスクから、単語の潜在表現ベクトルを獲得する方法 潜在表現 引用: Xin Rong. word2vec Parameter Learning Explained https://arxiv.org/pdf/1411.2738.pdf
  • 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 10 Deep Walk の発想とアルゴリズム • 「ノードを適当に(ランダムに)たどっていけば、ノードの順序をもった集合ができる」 これは “文” とみなして、word2vec を適用できるのではないか? B C A F D E G H I J 2. word2vec Random Walk Word2vec (Skip-gram) Start 適当な ノードを出発起点として ランダムにノードをたどる 辿ったノードの集合を順に リストする 1. Random Walk H I E B F[ ] 潜在表現 これを文とみなす
  • 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 11 Deep Walk で何ができるか • Graph の潜在表現 = 「各ノードのベクトル集合」なため、ノード間の関係を計算できる Aさん 商品1 Bさん Cさん 商品2 商品3 リコメンドエンジン 比較対象 類似度 Bさん 0.987665 Cさん 0.87721 Aさんとの類似度が高いユーザ • Aさんと類似度が高い ユーザを導出 • そのユーザが買っている商品 をリコメンド クラスタリング DeepWalk によって計算された各ノードの ベクトルを Kmeans 等のクラスタリング アルゴリズムにくわせて、Graph のクラスタを 算出
  • 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 12 [参考] Deep Walk パフォーマンス • 論文によると他の手法よりもパフォーマンスは高く、特にラベル付きデータがまばらである場合、 Deep Walk は競合する方法よりも最大10%高いF 1スコアになっている (出典) Bryan Perozzi, Rami Al-Rfou, Steven Skiena. DeepWalk: Online Learning of Social Representations
  • 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 13 2. Deep Walk by PGX
  • 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 14 PGX での Deep Walk の利用 • PGX 3.2 から Deep Walk が利用可能に – https://docs.oracle.com/cd/E56133_01/latest/tutorials/mllib/deepwalk.html • 以下のようなフローで Deep Walk を利用する Graph データ準備 モデル構築 モデル学習 モデル利用
  • 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 15 PGX Deep Walk – 1. データの準備 • 通常の PGX の使用通りにまずは Graph データをロードして PgxGraph オブジェクトを 生成する • そのあと、PgxGraph#undirect() で無向グラフ化する PGX> G = session.readGraphWithProperties(“test.json”) ==> PgxGraph[name=sub-graph_13,N=4483,E=10000, created=1557815262110] # Deep Walk を適用するグラフは無向グラフである必要がある PGX> uG = G.undirect()
  • 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 16 PGX Deep Walk – 2. モデルの構築 • ハイパーパラメータを設定して DeepWalk モデルを構築 – 各種ハイパーパラメータの意味は 以下の JavaDoc で確認 PGX> model = analyst.deepWalkModelBuilder() .setWindowSize(3) .setWalksPerVertex(6) .setWalkLength(4) .build() ==> oracle.pgx.api.beta.mllib.DeepWalkModel@50027e64 https://docs.oracle.com/cd/E56133_01/latest/javadocs/oracle/pgx/api/beta/mllib/DeepWalkModelBuilder.html
  • 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 17 PGX Deep Walk – 3. モデルの学習 • DeepWalkMode#fit(PgxGraph) で DeepWalk のモデルを学習させる PGX> model.fit(uG) # 学習後の損失を算出する (現在は 学習過程の損失は取得できない) PGX> model.getLoss() ==> -1.1363721109080635E-6 # 学習後の 各ノードのベクトルは以下のように取得する PGX> model.getTrainedVertexVectors() ==> oracle.pgx.api.beta.frames.internal.PgxFrameImpl@b2954e
  • 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 18 PGX Deep Walk – 4. モデル使用 • 学習さ (せたモデルで特定ノードの類似性を測定できる – DeepWalkMode#computeSimilars を使用 – 現在はノードIDを元にした類似性の算出 API しか用意されていない # 第一引数で比較元のノードIDを指定 # 第二引数で上位何件を取得するかを指定 PGX> sim = model.computeSimilars(111, 3) PGX> sim.print() +--------------------------------+ | dstVertex | similarity | +--------------------------------+ | 111 | 1.0000001192092896 | | 112 | 0.9316596984863281 | | 113 | 0.9065075516700745 | +--------------------------------+
  • 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 19 PGX Deep Walk – その他 • もちろんモデルの再利用を可能にするための API も備えている – モデルの保存/モデルのロード # モデルの保存 PGX> model.store("/tmp/dw.model") ==> null # モデルのロード PGX> model2 = analyst.loadDeepWalkModel("/tmp/dw.model") ==> oracle.pgx.api.beta.mllib.DeepWalkModel@ac91282
  • 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 20 3. Demo
  • 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 21 Demo 内容 • DBpedia の人物情報を使用して、各人物ノードの類似性をみる
  • 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 22 まとめ • DeepWalk は Graph データ構造を汎用的な統計手法に適用させるための潜在表現を 得るための手法 – Graph をランダムウォークして、得られたノード列を文章とみなして、word2vec モデルに適用させる • PGX 3.2 から DeepWalk が使え、一連のフローを実行するための API が提供されている