SlideShare a Scribd company logo
KDD2015読み会
Matrix Completion with Queries
2015/08/29 中江 俊博 (NTTデータ数理システム)
対象論文
 Matrix Completion with Queries
 Natali Ruchansky, Mark Crovella, Evimaria Terzi
 http://www.cs.bu.edu/faculty/crovella/paper-
archive/kdd15-active-mc.pdf
2015/8/292
概要
 行列の要素の一部だけが観測されており、観測された
要素のみから、未観測の値を補完(completion)したい。
 元の行列はランク(正確には effective rank)が
ある値 𝑟 > 0 であることを仮定。
 更に、未観測の値を追加で観測することで、
行列補完の精度を高めることができないか?
2015/8/293
問題設定
 記号
 真の行列 𝑇 のうち、観測できている要素(マスク) : Ω
 観測された行列 : 𝑇Ω
 新規に観測する要素(クエリ) : 𝑄
 問題 [ACTIVECOMPLETION]
 行列 𝑇(ランク 𝑟 > 0)の一部の要素 Ω のみが既知(𝑇Ω)
 さらに追加で要素 𝑄 を観測(𝑇Ω′ ; Ω′
= Ω ∪ 𝑄)
 𝑇Ω′から行列補完を行った推定値 𝑇Ω′ の相対誤差
𝑅𝐸𝐿𝐸𝑅𝑅𝑂𝑅 𝑇Ω′ =
𝑇− 𝑇Ω′
𝑇
が最小となるクエリ 𝑄 を見つける。
 ※ 𝑋 = 𝑖=1
𝑛1
𝑗=1
𝑛2
𝑋𝑖𝑗
2
2015/8/294
行列補完の方法
 行列 𝑇Ω を 𝑇Ω = 𝑋𝑌 として分解し、掛け算して補完
 𝑋, 𝑌 の値は、既知の値から線形方程式を
繰り返し解くことで計算する。
 𝑟 = 2の場合
2015/8/295
𝑇𝑖𝑗 = 𝑥𝑖1 𝑦1𝑗 + 𝑥𝑖2 𝑦2𝑗
𝑇𝑖′𝑗 = 𝑥𝑖′1 𝑦1𝑗 + 𝑥𝑖′2 𝑦2𝑗
↓
𝑦についての線形方程式
𝐴 𝑥 𝑦 = 𝑡
を解けばいい
↓
この作業の繰り返し
既知
推定
既知
𝑛2
𝑛1
𝑇
𝑟
𝑟
𝑋
𝑌
𝐴 𝑥
𝑦
𝑡
未知
マスクグラフ 𝐺Ω
 次をノード・エッジとして持つような2部グラフ 𝐺Ω
 ノード: 行列𝑇のすべての行・すべての列
 エッジ : マスクΩに含まれるセル(観測できたセル)
 エッジは対応する行ノードと列ノードをつなぐ。
2015/8/296
マスク Ωマスクグラフ 𝐺Ω
アルゴリズム “Sequential”
 “Sequential”
 全ての行・列の探索順序 𝜋 があらかじめ決まっている。
 各ステップで、マスクグラフにおいて計算対象ノードから
エッジで結ばれたすでに計算済みのノードの値を用いて計算。
 𝑟 = 2の場合
2015/8/297
𝑇𝑖𝑗 = 𝑥𝑖1 𝑦1𝑗 + 𝑥𝑖2 𝑦2𝑗
𝑇𝑖′𝑗 = 𝑥𝑖′1 𝑦1𝑗 + 𝑥𝑖′2 𝑦2𝑗
𝑇𝑋
𝑌
マスクグラフ 𝐺Ω
計算対象
ノード
●…計算済み
○…未計算(行) (列)
“Sequential” の問題点と解決策
 問題点
 そもそも探索順序 𝜋 をどう与えればよいかが自明でない。
 順序が適切でない場合、逆行列を解くのに
必要な次元数が得られない(incomplete)
 逆行列が必要なので𝑋のどの𝑟行も、 𝑌のどの𝑟列も
独立でないといけないが、一般には成り立たない。
 逆行列が解けても、相関が強ければ、解は
安定でなくなる(unstable) → 観測ノイズに頑健でなくなる。
 解決策
 ノードを事前に適切にソートして、探索順序を決める(Order)
 探索中に逆行列が解けない場合や、解が安定でない場合、
都度、行列の要素を追加で観測する(Extend)
2015/8/298
提案法 “Order & Extend”
 概略
まず全てのノードを適切な順序 𝜋 に並び替える(Order)
for ノード in 𝜋
if 線形方程式に用いる t が足りない(incomplete) then
足りない 𝑇 を追加観測
while 𝐴 𝑥 𝑦 = t が安定ではない(stable) do
安定にするために次に観測すべき要素 𝑖∗
を
探索し(Stabilize)、要素 𝑇𝑖∗,𝑗を追加観測
𝑦 = 𝐴 𝑥
𝑇
𝐴 𝑥
−1
𝐴 𝑥 𝑡 (最小二乗解 ; 線形回帰)
※ 行を解く場合も、𝑥, 𝑦 を交換して同様の処理を実施
2015/8/299
適切なノード順序の決め方(Order)
 次数の最も小さなものを最後尾に持っていく。
 最後尾に移動したノードのエッジは削除して
次に次数の小さなものを後ろに.. この探索を順次繰り返す。
 この順序で並べ替えた後に、順序の前から後ろに向かって
エッジに向きがついた有向グラフを考える。
 𝜋 を先頭から探索していき、そのノードについて
 indegree ≤ 𝑟 の場合(親が少ない → 親を増やす戦略)
 そのノードの子供のうち、一番後ろにいるノードの直後に並べる。
 indegree > 𝑟 の場合(親が多い → 親を減らす戦略)
 そのノードの親のうち、先頭から𝑟番目のノードの直後に並べる。
※ ただし先頭のノード 𝑟 個の探索はスキップ(のはず。その記載はなし)
2015/8/2910
提案法 “Order & Extend”
 概略
まず全てのノードを適切な順序 𝜋 に並び替える(Order)
for ノード in 𝜋
if 線形方程式に用いる t が足りない(incomplete) then
足りない 𝑇 を追加観測
while 𝐴 𝑥 𝑦 = t が安定ではない(stable) do
安定にするために次に観測すべき要素 𝑖∗
を
探索し(Stabilize)、要素 𝑇𝑖∗,𝑗を追加観測
𝑦 = 𝐴 𝑥
𝑇
𝐴 𝑥
−1
𝐴 𝑥 𝑡 (最小二乗解 ; 線形回帰)
※ 行を解く場合も、𝑥, 𝑦 を交換して同様の処理を実施
2015/8/2911
安定性と評価指標
 安定性
 𝐴 𝑥 𝑦 = 𝑡 の解 𝑦 = 𝐴 𝑥
−1t について 𝐴 𝑥, 𝑡 それぞれに
ノイズが付加されても、解 𝑦 が大きく変動しないなら安定。
 安定性の評価指標
 local condition number
𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥
−1
𝑡
𝑦
 この値がしきい値 𝜃(= 1) を超えた場合に不安定とみなす。
 今は最小二乗解を見つけるので、代わりに次を計算する
𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥
𝑇 𝐴 𝑥
−1 𝐴 𝑥
𝑡
𝑦
 安定性の評価の問題点
 逆行列の計算コストが高いのが難点。
2015/8/2912
観測する位置を決める(Stabilize)
 𝐴 𝑥 𝑦 = 𝑡 が不安定の場合、追加で観測したら、
local condition number が最小になるような 𝑖∗
を探す。
 この計算のために毎回未観測の要素 𝑇𝑖∗ 𝑗を新規に
観測するのは大変なので、とりあえず乱数を埋める(!)
2015/8/2913
𝑥𝑖∗1 𝑥𝑖∗2 𝑇𝑖∗ 𝑗
未観測の要素
とりあえず乱数を埋める
(同じ行・列から値を拝借)
𝐴 𝑥
α
𝑡
𝜏
𝑦
既知 既知
既知
要素追加後の local condition number
 愚直に計算する場合
 𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥
𝑇 𝐴 𝑥
−1
𝐴 𝑥
𝑡
𝑦
 これを毎回計算するのはコスト高い。
 便利な更新式(Sherman-Morison Formula)
 追加要素以外の逆行列 𝐶 = 𝐴 𝑥
𝑇
𝐴 𝑥
−1
だけ先に計算しておく。
 追加要素を含めた逆行列 𝐷 = 𝐴 𝑥
𝑇 𝐴 𝑥
−1
= 𝐶 −
𝐶𝛼 𝑇 𝛼𝐶
1+𝛼𝐶𝛼 𝑇
 𝑦 = 𝐷 𝐴 𝑥 𝑡
 Local condition number : 𝐷 𝐴 𝑥
𝑡
𝑦
→ 逆行列の計算を回避。
2015/8/2914
𝐴 𝑥 𝑡
=
=
Stabilize (論文より)
2015/8/2915
↑ 逆行列を伴わない
local condition number の計算
(一旦乱数で𝑇𝑖∗ 𝑗を計算)
Order & Extend (論文より)
2015/8/2916
← ここでQueryを要求
← ここでQueryを要求
検証
 検証
 各種データセットに対して、一様乱数でマスクを生成。
 比較対象アルゴリズムとして次の2つを行列補完アルゴリズム:
 OptSpace : SVD-Based
 LmaFit : Alternate Least-Square Method
 他の2つのアルゴリズムについては、クエリをランダムに生成。
2015/8/2917
検証結果(1)
 横軸:クエリ回数(budget), 縦軸: 相対誤差
2015/8/2918
検証結果(2)
 大規模データに対する行列補完
 画像データに対する行列補完の挙動
2015/8/2919
(報告者の)考察
 行列補完アルゴリズムの中に、追加観測が
入り込んでいる。観測が終わるまで先に進まない。
 観測をバッチ的にやるのは、そもそも無理。
(報告者は、これができることを期待していた…)
 レスポンスが返ってくるまで時間のかかるケースなども苦しい。
 DBなどにアクセスするのにコスト(費用)はかかるが
レスポンスが早いケースなどに向きそう。
 一旦乱数を入れて、観測すべきインデックスだけ
先に洗い出してから、バッチ的に観測するなどの
作戦が有効かもしれない。
2015/8/2920

More Related Content

PDF
挿入ソート
PDF
第3回Rを使って統計分析を勉強する会
PDF
第1回Rを使って統計分析を勉強する会
PDF
Generative adversarial nets
PDF
Hyperoptとその周辺について
PDF
Elasticsearchと機械学習を実際に連携させる
PDF
機械学習を利用したちょっとリッチな検索
PDF
機械学習によるデータ分析 実践編
挿入ソート
第3回Rを使って統計分析を勉強する会
第1回Rを使って統計分析を勉強する会
Generative adversarial nets
Hyperoptとその周辺について
Elasticsearchと機械学習を実際に連携させる
機械学習を利用したちょっとリッチな検索
機械学習によるデータ分析 実践編
Ad

KDD2015読み会 Matrix Completion with Queries

  • 1. KDD2015読み会 Matrix Completion with Queries 2015/08/29 中江 俊博 (NTTデータ数理システム)
  • 2. 対象論文  Matrix Completion with Queries  Natali Ruchansky, Mark Crovella, Evimaria Terzi  http://www.cs.bu.edu/faculty/crovella/paper- archive/kdd15-active-mc.pdf 2015/8/292
  • 3. 概要  行列の要素の一部だけが観測されており、観測された 要素のみから、未観測の値を補完(completion)したい。  元の行列はランク(正確には effective rank)が ある値 𝑟 > 0 であることを仮定。  更に、未観測の値を追加で観測することで、 行列補完の精度を高めることができないか? 2015/8/293
  • 4. 問題設定  記号  真の行列 𝑇 のうち、観測できている要素(マスク) : Ω  観測された行列 : 𝑇Ω  新規に観測する要素(クエリ) : 𝑄  問題 [ACTIVECOMPLETION]  行列 𝑇(ランク 𝑟 > 0)の一部の要素 Ω のみが既知(𝑇Ω)  さらに追加で要素 𝑄 を観測(𝑇Ω′ ; Ω′ = Ω ∪ 𝑄)  𝑇Ω′から行列補完を行った推定値 𝑇Ω′ の相対誤差 𝑅𝐸𝐿𝐸𝑅𝑅𝑂𝑅 𝑇Ω′ = 𝑇− 𝑇Ω′ 𝑇 が最小となるクエリ 𝑄 を見つける。  ※ 𝑋 = 𝑖=1 𝑛1 𝑗=1 𝑛2 𝑋𝑖𝑗 2 2015/8/294
  • 5. 行列補完の方法  行列 𝑇Ω を 𝑇Ω = 𝑋𝑌 として分解し、掛け算して補完  𝑋, 𝑌 の値は、既知の値から線形方程式を 繰り返し解くことで計算する。  𝑟 = 2の場合 2015/8/295 𝑇𝑖𝑗 = 𝑥𝑖1 𝑦1𝑗 + 𝑥𝑖2 𝑦2𝑗 𝑇𝑖′𝑗 = 𝑥𝑖′1 𝑦1𝑗 + 𝑥𝑖′2 𝑦2𝑗 ↓ 𝑦についての線形方程式 𝐴 𝑥 𝑦 = 𝑡 を解けばいい ↓ この作業の繰り返し 既知 推定 既知 𝑛2 𝑛1 𝑇 𝑟 𝑟 𝑋 𝑌 𝐴 𝑥 𝑦 𝑡 未知
  • 6. マスクグラフ 𝐺Ω  次をノード・エッジとして持つような2部グラフ 𝐺Ω  ノード: 行列𝑇のすべての行・すべての列  エッジ : マスクΩに含まれるセル(観測できたセル)  エッジは対応する行ノードと列ノードをつなぐ。 2015/8/296 マスク Ωマスクグラフ 𝐺Ω
  • 7. アルゴリズム “Sequential”  “Sequential”  全ての行・列の探索順序 𝜋 があらかじめ決まっている。  各ステップで、マスクグラフにおいて計算対象ノードから エッジで結ばれたすでに計算済みのノードの値を用いて計算。  𝑟 = 2の場合 2015/8/297 𝑇𝑖𝑗 = 𝑥𝑖1 𝑦1𝑗 + 𝑥𝑖2 𝑦2𝑗 𝑇𝑖′𝑗 = 𝑥𝑖′1 𝑦1𝑗 + 𝑥𝑖′2 𝑦2𝑗 𝑇𝑋 𝑌 マスクグラフ 𝐺Ω 計算対象 ノード ●…計算済み ○…未計算(行) (列)
  • 8. “Sequential” の問題点と解決策  問題点  そもそも探索順序 𝜋 をどう与えればよいかが自明でない。  順序が適切でない場合、逆行列を解くのに 必要な次元数が得られない(incomplete)  逆行列が必要なので𝑋のどの𝑟行も、 𝑌のどの𝑟列も 独立でないといけないが、一般には成り立たない。  逆行列が解けても、相関が強ければ、解は 安定でなくなる(unstable) → 観測ノイズに頑健でなくなる。  解決策  ノードを事前に適切にソートして、探索順序を決める(Order)  探索中に逆行列が解けない場合や、解が安定でない場合、 都度、行列の要素を追加で観測する(Extend) 2015/8/298
  • 9. 提案法 “Order & Extend”  概略 まず全てのノードを適切な順序 𝜋 に並び替える(Order) for ノード in 𝜋 if 線形方程式に用いる t が足りない(incomplete) then 足りない 𝑇 を追加観測 while 𝐴 𝑥 𝑦 = t が安定ではない(stable) do 安定にするために次に観測すべき要素 𝑖∗ を 探索し(Stabilize)、要素 𝑇𝑖∗,𝑗を追加観測 𝑦 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 𝐴 𝑥 𝑡 (最小二乗解 ; 線形回帰) ※ 行を解く場合も、𝑥, 𝑦 を交換して同様の処理を実施 2015/8/299
  • 10. 適切なノード順序の決め方(Order)  次数の最も小さなものを最後尾に持っていく。  最後尾に移動したノードのエッジは削除して 次に次数の小さなものを後ろに.. この探索を順次繰り返す。  この順序で並べ替えた後に、順序の前から後ろに向かって エッジに向きがついた有向グラフを考える。  𝜋 を先頭から探索していき、そのノードについて  indegree ≤ 𝑟 の場合(親が少ない → 親を増やす戦略)  そのノードの子供のうち、一番後ろにいるノードの直後に並べる。  indegree > 𝑟 の場合(親が多い → 親を減らす戦略)  そのノードの親のうち、先頭から𝑟番目のノードの直後に並べる。 ※ ただし先頭のノード 𝑟 個の探索はスキップ(のはず。その記載はなし) 2015/8/2910
  • 11. 提案法 “Order & Extend”  概略 まず全てのノードを適切な順序 𝜋 に並び替える(Order) for ノード in 𝜋 if 線形方程式に用いる t が足りない(incomplete) then 足りない 𝑇 を追加観測 while 𝐴 𝑥 𝑦 = t が安定ではない(stable) do 安定にするために次に観測すべき要素 𝑖∗ を 探索し(Stabilize)、要素 𝑇𝑖∗,𝑗を追加観測 𝑦 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 𝐴 𝑥 𝑡 (最小二乗解 ; 線形回帰) ※ 行を解く場合も、𝑥, 𝑦 を交換して同様の処理を実施 2015/8/2911
  • 12. 安定性と評価指標  安定性  𝐴 𝑥 𝑦 = 𝑡 の解 𝑦 = 𝐴 𝑥 −1t について 𝐴 𝑥, 𝑡 それぞれに ノイズが付加されても、解 𝑦 が大きく変動しないなら安定。  安定性の評価指標  local condition number 𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥 −1 𝑡 𝑦  この値がしきい値 𝜃(= 1) を超えた場合に不安定とみなす。  今は最小二乗解を見つけるので、代わりに次を計算する 𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 𝐴 𝑥 𝑡 𝑦  安定性の評価の問題点  逆行列の計算コストが高いのが難点。 2015/8/2912
  • 13. 観測する位置を決める(Stabilize)  𝐴 𝑥 𝑦 = 𝑡 が不安定の場合、追加で観測したら、 local condition number が最小になるような 𝑖∗ を探す。  この計算のために毎回未観測の要素 𝑇𝑖∗ 𝑗を新規に 観測するのは大変なので、とりあえず乱数を埋める(!) 2015/8/2913 𝑥𝑖∗1 𝑥𝑖∗2 𝑇𝑖∗ 𝑗 未観測の要素 とりあえず乱数を埋める (同じ行・列から値を拝借) 𝐴 𝑥 α 𝑡 𝜏 𝑦 既知 既知 既知
  • 14. 要素追加後の local condition number  愚直に計算する場合  𝑙 𝐴 𝑥, 𝑡 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 𝐴 𝑥 𝑡 𝑦  これを毎回計算するのはコスト高い。  便利な更新式(Sherman-Morison Formula)  追加要素以外の逆行列 𝐶 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 だけ先に計算しておく。  追加要素を含めた逆行列 𝐷 = 𝐴 𝑥 𝑇 𝐴 𝑥 −1 = 𝐶 − 𝐶𝛼 𝑇 𝛼𝐶 1+𝛼𝐶𝛼 𝑇  𝑦 = 𝐷 𝐴 𝑥 𝑡  Local condition number : 𝐷 𝐴 𝑥 𝑡 𝑦 → 逆行列の計算を回避。 2015/8/2914 𝐴 𝑥 𝑡 = =
  • 15. Stabilize (論文より) 2015/8/2915 ↑ 逆行列を伴わない local condition number の計算 (一旦乱数で𝑇𝑖∗ 𝑗を計算)
  • 16. Order & Extend (論文より) 2015/8/2916 ← ここでQueryを要求 ← ここでQueryを要求
  • 17. 検証  検証  各種データセットに対して、一様乱数でマスクを生成。  比較対象アルゴリズムとして次の2つを行列補完アルゴリズム:  OptSpace : SVD-Based  LmaFit : Alternate Least-Square Method  他の2つのアルゴリズムについては、クエリをランダムに生成。 2015/8/2917
  • 20. (報告者の)考察  行列補完アルゴリズムの中に、追加観測が 入り込んでいる。観測が終わるまで先に進まない。  観測をバッチ的にやるのは、そもそも無理。 (報告者は、これができることを期待していた…)  レスポンスが返ってくるまで時間のかかるケースなども苦しい。  DBなどにアクセスするのにコスト(費用)はかかるが レスポンスが早いケースなどに向きそう。  一旦乱数を入れて、観測すべきインデックスだけ 先に洗い出してから、バッチ的に観測するなどの 作戦が有効かもしれない。 2015/8/2920