SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
【論文紹介】
Zuang et al. “Fast Prallel SGD for
Matrix Factorization in Shared
Memory Systems”
2013/11/16
RecSys2013読み会 at Gunosyオフィス
加藤公一 @hamukazu
シルバーエッグテクノロジー
要旨
レイティング問題
• 映画を見た人たちがそれぞれの作品の面白
さを1~5の点数で評価したとする。
• ある人が、まだ見てない映画について、どの
ような点数を与えるだろうか?
• 注意:ショッピング向けのレコメンデーション
(これを買った人がどれを買ってくれそうか)と
は違う
Matrix Factorization Technique
与えられたuser×item行列

Sparse!

×

≈

Itemのratingは少数の特徴量で
表現できるという前提

例:映画の場合、ジャンル、
監督、主演俳優、など

≔
≐

=

≒

(不明要素を含む)

サイズの小さい行列の積で近似

Q
行列の積によって不明部分を埋める
与えられたuser×item行列

Sparse!

≒

(不明要素を含む)

最小化:

サイズの小さい行列の積で近似

×

≈

≔
≐

Q

≘ ∨≲ ⊡ ≰≔ ≱ ∩∲ ∫ ⊸ ≫≐ ≫∲ ∫ ⊸ ≫≑≫∲
∧ ∨≐ ∻ ≑ ∩ ∽
≩∻≪ ≩ ≪
≐ ≆ ≑ ≆
≲≩∻≪ ∺≲≩∻≪ ∾∰
最急降下法と確率的最急降下法(一般論)
最急降下法
目的関数

∧ ∽ ∧ ∨ ≸∩ ∻

を最小化したいとする。

≤
≸∲≒

アルゴリズム

≸ ⋃ ≸ ⊡ ⊮ ≲∧

以下を収束するまで繰り返す

≎
≘ ∧ ∨≸∩∻ ≸ ∽ ∨≸ ∻ ∺ ∺ ∺ ∻ ≸ ∩ ∲ ≒≤
∧ ∨≸ ∩ ∽ ≩
∱
≤
≩∽∱
∧≩∨≸∩
≸≪ ∻ ≪ ∲ ≊ ≩

確率的最急降下法(SGD)

ただし

は一部の変数

のみに依存する

アルゴリズム

以下を収束するまで繰り返す
i をランダムに選ぶ
すべての

≪ ∲ ≊≩
≀ ∧≩
≸ ≪ ⋃ ≸≪ ⊡ ⊮ ≀ ≸ ≪
について
SGDの前提
• 高速にそこそこいい解を得たい
– 本当の最適解を得ることはあきらめている
MFのSGD
≘

∱
≔ ≱≪ ∩ ∲ ∫ ⊸ ≐ ≫ ≐ ≫ ∲ ∫ ⊸ ≑ ≫ ≑ ≫ ∲
∧∨≐ ∻ ≑∩ ∽ ∲
∨≲≩∻≪ ⊡ ≰≩
∲ ≆ ∲ ≆
≲≩∻≪ ∺≲≩∻≪ ∾∰
∱ ∨≲≩∻≪ ⊡ ≰≔ ≱≪ ∩∲ ∫ ⊸≐ ≫≰≩≫∲ ∫ ⊸≑ ≫≱≪ ≫∲
∧≩∻≪ ∽ ∲
≩
∲
∲
≰≩∻ ≱≪ にのみ依存

≀ ∧≩∻≪ ∽ ⊡∨≲≩∻≪ ⊡ ≰≔ ≱≪ ∩≱≪≫ ∫ ⊸≐ ≰≩≫
≩
≀ ≰≩≫
≀ ∧≩∻≪ ∽ ⊡∨≲≩∻≪ ⊡ ≰≔ ≱≪ ∩≰≩≫ ∫ ⊸≑≱≪≫
≩
≀ ≱≪ ≫
≰≩≫ ⋃ ≰≩≫ ∫ ⊮∨≥≩≪ ≱≪≫ ⊡ ⊸≐ ≰≩≫∩
≱≪≫ ⋃ ≱≪≫ ∫ ⊮∨≥≩≪ ≰≩≫ ⊡ ⊸≑≱≪≫∩
≥≩≪ ∽ ≲≩≪ ⊡ ≰≔ ≱≪
≩
これは

つまり、ランダムに i, j を選んで以下を計算

ただし、
問題
• SGDを共有メモリで並列に高速に計算したい
既存手法の紹介
• HogWild
– 文字通りワイルドな方法

• DSGD
– 分散環境
確認
j

≲≩∻≪

i

≒

i

≈

≰≔
≩

j

≱≪

Q
≔ ≲≩∻≪ ⊼ ≰≔ ≱≪
≐
≩

アルゴリズム
ランダムに i, j を選んで以下を計算

×

≰≩≫ ⋃ ≰≩≫ ⊡ ⊮∨≥≩≪ ≱≪≫ ⊡ ⊸≐ ≰≩≫ ∩
≱≪≫ ⋃ ≱≪≫ ⊡ ⊮∨≥≩≪ ≰≩≫ ⊡ ⊸≑≱≪≫∩
≥≩≪ ∽ ≲≩≪ ⊡ ≰≔ ≱≪
≩
ただし、
HogWild
複数スレッドで以下を同時に繰り返す

≰ ≩ ∻ ≱≪

ランダムに i,j を選ぶ
を更新

根拠:i や j がぶつかることはめったにない
(サイズが十分大きいから)
ぶつかっても無視して進める
(あまり影響はない)
ここらへんがワイルド
F. Niu et al., HOGWILD: A lock-free approach to parallelizing stochastic gradient descent,
Advance in Neural Information Processing Systems 24, 2011
問題点
• アトミックな処理がたくさん必要
– 衝突しているときを考慮してP, Qの読み書きはア
トミックに
DSGD
入力s×s個のブロックに分ける
以下を複数ノードで並列計算
i ←ノード番号
j ←i
以下を繰り返す
( i, j )ブロックの範囲内でランダムに更新
j←(j+1) mod s
隣のノードにデータ送信
sはノード数
Node0

Node1
Node2

R. Gemulla et al., Large scale matrix factorization with distributed stochastic gradient descent, ACM SIGKDD, 2011
DSGDの問題点
• 非ゼロ要素の分布によっては計算負荷のバ
ランスが悪い
– 待ち時間が発生する
– 分散環境を想定したので、通信コストを下げるの
が最優先だった
FPSGD(提案手法)
• M×M(M>R)のブロックに分割
• 計算が終わったスレッドにフリーなブロックを
割り当てる
– フリー:同じ行、同じ列に計算中ブロックがないブ
ロック

• いくつかあるフリーなブロックのうち、更新回
数が少ないものを優先的に割り当て
– 計算の偏りがないように
例

:処理中

:フリー

ロックフリー!
Partial Random Method
• 行列要素へのアクセスを、ランダムにせずに順序性を
持たせることでキャッシュミスを減らす
• ただし、そうすることで収束性が不安定になり逆効果
になることもあるので注意
• 本論文では、ブロックはランダムに、ブロック内の要素
は順番にアクセスするPartial Random Methodを提案
する
収束性の実験

原論文から抜粋
実験結果
FPSGD**=FPSGDの実装で、スケ
ジューリングの部分をDSGD相当
に変更したバージョン
(つまり実質的にDSGD。スケ
ジューリング以外のところで差が
でないように調整)

原論文より抜粋
まとめ
• 従来の分散システム向けMatrix Factorization
をもとに共有メモリ向けの効率のよいアルゴ
リズムを考案
• スケジューリングの工夫により計算リソース
の無駄軽減に成功

• キャッシュを意識したメモリアクセスで高速化
に成功

Mais conteúdo relacionado

Mais de Kimikazu Kato

機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPythonKimikazu Kato
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Kimikazu Kato
 
Fast and Probvably Seedings for k-Means
Fast and Probvably Seedings for k-MeansFast and Probvably Seedings for k-Means
Fast and Probvably Seedings for k-MeansKimikazu Kato
 
Pythonで機械学習入門以前
Pythonで機械学習入門以前Pythonで機械学習入門以前
Pythonで機械学習入門以前Kimikazu Kato
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習Kimikazu Kato
 
Introduction to behavior based recommendation system
Introduction to behavior based recommendation systemIntroduction to behavior based recommendation system
Introduction to behavior based recommendation systemKimikazu Kato
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Kimikazu Kato
 
Sparse pca via bipartite matching
Sparse pca via bipartite matchingSparse pca via bipartite matching
Sparse pca via bipartite matchingKimikazu Kato
 
正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方Kimikazu Kato
 
Introduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersIntroduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersKimikazu Kato
 
ネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについてネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについてKimikazu Kato
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料Kimikazu Kato
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会Kimikazu Kato
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 

Mais de Kimikazu Kato (15)

機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython
 
Pythonを使った機械学習の学習
Pythonを使った機械学習の学習Pythonを使った機械学習の学習
Pythonを使った機械学習の学習
 
Fast and Probvably Seedings for k-Means
Fast and Probvably Seedings for k-MeansFast and Probvably Seedings for k-Means
Fast and Probvably Seedings for k-Means
 
Pythonで機械学習入門以前
Pythonで機械学習入門以前Pythonで機械学習入門以前
Pythonで機械学習入門以前
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習
 
Introduction to behavior based recommendation system
Introduction to behavior based recommendation systemIntroduction to behavior based recommendation system
Introduction to behavior based recommendation system
 
Pythonによる機械学習の最前線
Pythonによる機械学習の最前線Pythonによる機械学習の最前線
Pythonによる機械学習の最前線
 
Sparse pca via bipartite matching
Sparse pca via bipartite matchingSparse pca via bipartite matching
Sparse pca via bipartite matching
 
正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方正しいプログラミング言語の覚え方
正しいプログラミング言語の覚え方
 
Introduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning ProgrammersIntroduction to NumPy for Machine Learning Programmers
Introduction to NumPy for Machine Learning Programmers
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
 
ネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについてネット通販向けレコメンドシステム提供サービスについて
ネット通販向けレコメンドシステム提供サービスについて
 
関東GPGPU勉強会資料
関東GPGPU勉強会資料関東GPGPU勉強会資料
関東GPGPU勉強会資料
 
2012-03-08 MSS研究会
2012-03-08 MSS研究会2012-03-08 MSS研究会
2012-03-08 MSS研究会
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 

Último

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Último (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

Zuang-FPSGD