SlideShare a Scribd company logo
【論文紹介】
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
をもとに共有メモリ向けの効率のよいアルゴ
リズムを考案
• スケジューリングの工夫により計算リソース
の無駄軽減に成功

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

More Related Content

More from Kimikazu Kato

機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython機械学習ゴリゴリ派のための数学とPython
機械学習ゴリゴリ派のための数学とPython
Kimikazu 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-Means
Kimikazu 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 system
Kimikazu 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 matching
Kimikazu 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 Programmers
Kimikazu Kato
 
Sapporo20140709
Sapporo20140709Sapporo20140709
Sapporo20140709
Kimikazu 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
 

More from 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研究会
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 

Recently uploaded (8)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 

Zuang-FPSGD