Simple and deterministic
Matrix Sketching
Bread Seminar (2018/11/04)
Presenter: しもっしー
論文紹介
論文の内容を1ページで紹介
近似精度の理論保証付きで, 近似精度と計算時間のトレードオ
フが優秀な行列の圧縮法を提案した.
どんなもの?
どうやって有効だと証明した?
技術や手法のキモは?
先行研究との差分は?
近似精度を維持しながら高速化を実現. 並列化も可能.
データ行列をバッチで処理せず,スケッチ行列のゼロ行ベクトル
に挿入→SVDを繰り返す. この際,特異値の小さい成分を0にす
ることで再びスケッチ行列の中にゼロ行ベクトルを作り, ループ
が回せるようにする.
近似行列(l×m)と元行列A(n×m)の共分散行列の差のノルムが
2|A|^2/lでバウンドできることを示した. 実験パートでは良好な近
似を与えることを示した.
備考
SIGKDD 2013 Best Paper, citation:160
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
4. まとめ
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
4. まとめ
少ない要素で大きい行列を近似できるとうれしい
- 小さい行列は便利
- 持っとくときメモリが少なく済む
- どこかに送るとき通信量も少なく済む
- 特異値分解などの演算の計算量が少なく済む など
- 便利なので行列の近似手法は色々提案されてる
- みんな大好きPCA, k-means
- Hashing
- Random Projection
- Frequent direction(今回紹介する手法)
- n×m行列をl×m行列に削減する手法をMatrix Sketchingと呼ぶ
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
4. まとめ
Matrix Sketchingは直観的には頻出ベクトルを残す操作
- Matrix Sketchingは列(変数)ではなく行(データ)を削減する
- 転置してPCAしてもう一回転置するイメージ
- データ行列の特徴を捉えた近似行列を作るためには,データをm次元変数のベクト
ルとみたときに,頻出方向のベクトルを残してやれば達成できそう
- k-meansのクラスタ中心を残して他を削るイメージ
test時には中心以外の情報はいらないが , クラスタ中心はデータの性質をよく表現するベクトルだと
解釈できる
- 本論文ではFrequent Directionという手法でこれを達成!
理論保証もあるよ(うれしい😊)
共分散行列の変化が小さいという制約で近似する
- データ行列を近似するときは何かの基準で元行列との差が小さいことを保証してや
る必要がある
- Matrix Sketchingでは共分散行列の差が小さい近似を考える
- 提案手法(Frequent Direction)では共分散行列の差のノルムが次の式で評価でき
ることを保証している
ここでAはデータ行列, Bはその近似行列をを表す
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
a. アルゴリズム
b. アルゴリズムの性能保証の証明
c. 実験&結果
4. まとめ
ゼロ行に挿入→SVDを繰り返すだけ!
実装も簡単🙆(https://github.com/hido/frequent-direction/blob/master/fd_sketch.py)
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
a. アルゴリズム
b. アルゴリズムの性能保証の証明
c. 実験&結果
4. まとめ
提案手法の近似誤差をバウンド 1/11
Notation
- A: データ行列(下付きのiはiイテレーション目で挿入するデータ)
- B: 提案手法におけるAの近似行列(上付きのiはiイテレーション目の近似行列)
CLAIM 1
上記notationのもとで,
提案手法の近似誤差をバウンド 2/11
【証明】
Bは半正定値なので前半の不等式が成り立つ. 後半の不等式は,
を示せば十分.
提案手法の近似誤差をバウンド 3/11
【証明】
ここで以下の等式および不等式が成り立つ.
最初の等式は展開するとB^0xとB^ix以外のノルムが打ち消して消え, さらに前者は0な
ので消えるので成り立つ.
提案手法の近似誤差をバウンド 4/11
【証明】
後半の式展開は以下の主張をしているが,
これはアルゴリズムを参照すると正しいことがわかる. なぜならば, C^iはB^i-1のゼロ行
にA_iを挿入したものを直交行列Vで回転させたものだからである. (回転操作はノルム
に関してisometric) よってCLAIM 1が成り立つ□
提案手法の近似誤差をバウンド 5/11
CLAIM 2
あらかじめ決めたBの行数lに対して以下の不等式が成り立つ.
【証明】
(A^TA - B^TB)の最大固有値に対応する固有ベクトルをxとおくと
前スライド等号成立の証明
上式の証明. フロベニウスノルムが随伴行
列の元(なんて言う?)と固有ベクトルの積
のノルム二乗に分解できる.
提案手法の近似誤差をバウンド 6/11
【証明】
この式変形はCLAIM 1と同じ.
提案手法の近似誤差をバウンド 7/11
【証明】
式展開+シュバルツの不等式+xのノルムが1を利用してバウンドする.
提案手法の近似誤差をバウンド 8/11
【証明】
最初の式変形は定義から従う. 最後の式変形は手書き証明と同じく最大固有値に対応
する固有ベクトルを使って分解→固有ベクトルで二次形式を作って最大固有値を取り出
すことで成る.
提案手法の近似誤差をバウンド 9/11
【証明】
次にいま求めた右辺のσ_iのsummationをバウンドすることを考える.
全て今まで同様に変形可能.
提案手法の近似誤差をバウンド 10/11
【証明】
最後の式変形はtraceの中にσ_iより大きな対角成分が少なくともl/2個の非負対角成分
が存在することがアルゴリズムにより保証されている(残りは0).
提案手法の近似誤差をバウンド 11/11
【証明】
この不等式を移項することで第一の不等式を得る. さらに(証明スライド5~8)で求めた不
等式に第一の不等式を代入することで第二の不等式を得る. Bのフロベニウスノルムは
非負であることを利用すれば求める等式を得る□
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
a. アルゴリズム
b. アルゴリズムの性能保証の証明
c. 実験&結果
4. まとめ
近似誤差がどの程度か実験してみた!
x軸にスケッチ行列の行数, y軸に信号行列を近
似した時の共分散行列の差|ATA - BTB|をプ
ロットしたもの. 提案手法は優れた近似精度を示
している(性能保証ラインも結構良い). 左上左下
右上の順に信号行列の次元が増えていく(特異
値の数).
計算時間は勝ったり負けたり
Brute Force, Random Projectionよりは
高速に動作するがもっと早いアルゴリズム
はある(Sampling, Hashing).
速度をとるか近似精度をとるかのトレード
オフ.
データ行列の行数, 列数いずれに対しても計算時間は線形
x軸は行数, ラベルの違いは列数, y軸
は計算時間を表す.
これを見るとデータ数(行数)に対しても
変数の数(列数)に対しても計算時間は
線形にスケールすることがわかる.うれし
いね
その他
実はデータ行列Aを1, 2, …, iに分割してそれぞれでスケッチ行列B_1, B_2, …, B_iを
作ってconcatした場合でも良いスケッチ行列の近似を与える
- 誤差のバウンドもあったが力尽きてやってないので詳しくは論文へ
目次
1. 行列削減のモチベーション
2. Matrix Sketchingって何?
3. 提案手法はどんなもの?
4. まとめ
まとめ(再掲)
近似精度の理論保証付きで, 近似精度と計算時間のトレードオ
フが優秀な行列の圧縮法を提案した.
どんなもの?
どうやって有効だと証明した?
技術や手法のキモは?
先行研究との差分は?
近似精度を維持しながら高速化を実現. 並列化も可能.
データ行列をバッチで処理せず,スケッチ行列のゼロ行ベクトル
に挿入→SVDを繰り返す. この際,特異値の小さい成分を0にす
ることで再びスケッチ行列の中にゼロ行ベクトルを作り, ループ
が回せるようにする.
近似行列(l×m)と元行列A(n×m)の共分散行列の差のノルムが
2|A|^2/lでバウンドできることを示した. 実験パートでは良好な近
似を与えることを示した.
備考
SIGKDD 2013 Best Paper, citation:160
リンクなど
- 論文のURL
http://www.cs.yale.edu/homes/el327/papers/simpleMatrixSketching.pdf
- 比戸さんの解説記事
https://research.preferred.jp/2013/08/sketch/
- 比戸さんの実装
https://github.com/hido/frequent-direction/blob/master/fd_sketch.py
オワり

Simple and deterministic matrix sketching