View
3
Download
0
Category
Preview:
Citation preview
ビッグデータの計算科学第6回 (2014年11月05日) – / 53
ビッグデータの計算科学第6回
データを分析するための統計的手法についての解説
京都大学大学院情報学研究科数理工学専攻/情報教育推進センター
關戸啓人
ビッグデータの計算科学第6回 (2014年11月05日) 1 / 53
ビッグデータと特異値分解—グラフの三角形の数
ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53
準備:グラフとはビッグデータと特異値分解—グラフの三角形の数
節点(node)と枝(edge)からなるもの
枝は2つの節点を結ぶ線(無向グラフ),または,矢印(有向グラフ)
各節点,または,各枝には重みと呼ばれる実数が与えられている場合
もある
節点uからvへと向かう枝(有向グラフ),および,接点uとvを結ぶ枝
(無向グラフ)を (u, v )と書く
ビッグデータの計算科学第6回 (2014年11月05日) 3 / 53
例:有向グラフビッグデータと特異値分解—グラフの三角形の数
例えば,Twitterのフォロー・フォロワー関係
ビッグデータの計算科学第6回 (2014年11月05日) 4 / 53
例:無向グラフビッグデータと特異値分解—グラフの三角形の数
例えば,Facebookの友達関係
ビッグデータの計算科学第6回 (2014年11月05日) 5 / 53
準備:無向グラフに対する隣接行列ビッグデータと特異値分解—グラフの三角形の数
無向グラフにおいて,節点数をNとする
このとき,N行N列の行列を以下のよって定める
節点の番号を1, 2, . . . , Nとする
第 (i , j )要素は,節点 iと節点 jを結ぶ枝があれば1,なければ0とする
節点iと節点 jを結ぶ枝が2本以上ある場合,第(i , j )要素を枝の本数と
することもある
それぞれの枝に実数が与えられている場合は,1の代わりにその実数と
する.
ビッグデータの計算科学第6回 (2014年11月05日) 6 / 53
準備:有向グラフに対する隣接行列ビッグデータと特異値分解—グラフの三角形の数
有向グラフにおいて,任意の節点の組 (u, v )に対して,uから vに向かう
枝が高々1本しかないとする(2本以上ある場合の定義は色々)
節点数をNとしたとき,N行N列の行列を以下のよって定める
節点の番号を1, 2, . . . , Nとする
第 (i , j )要素は,節点 iから節点 jに向かう枝があれば1,なければ0と
する
それぞれの枝に実数が与えられている場合は,1の代わりにその実数と
する.
ビッグデータの計算科学第6回 (2014年11月05日) 7 / 53
例:隣接行列ビッグデータと特異値分解—グラフの三角形の数
A =
0 1 1 1 01 0 1 1 11 1 0 0 01 1 0 0 00 1 0 0 0
A =
0 1 3 4 01 0 3 2 13 3 0 0 04 2 0 0 00 1 0 0 0
ビッグデータの計算科学第6回 (2014年11月05日) 8 / 53
例:隣接行列ビッグデータと特異値分解—グラフの三角形の数
A =
0 0 1 1 01 0 1 1 00 0 0 0 00 0 0 0 00 1 0 0 0
A =
0 0 3 4 01 0 3 2 00 0 0 0 00 0 0 0 00 1 0 0 0
ビッグデータの計算科学第6回 (2014年11月05日) 9 / 53
グラフと隣接行列ビッグデータと特異値分解—グラフの三角形の数
グラフを考えることと,隣接行列を考えることは同値
グラフの形で考えた方が直感的にわかりやすい
行列は数学的に非常によく知られた対象である
どっちが適しているかはケースバイケース
隣接行列を行列として考えなければ,考えつかないようなアルゴリズムと
して,まず,三角形の数の近似計算を紹介する
ビッグデータの計算科学第6回 (2014年11月05日) 10 / 53
グラフの三角形の数ビッグデータと特異値分解—グラフの三角形の数
単純な無向グラフを考える
自分自身を結ぶ枝はない(両端点が同じ枝がない,ループ)
2つの枝の間には高々1本の枝しか無い
グラフの三角形の数とは枝 (u, v ), (v, w ), (w, u)と3つの接点の間にそれぞ
れ枝があるような (u, v, w )の組の数である
ビッグデータの計算科学第6回 (2014年11月05日) 11 / 53
グラフの三角形の数の応用ビッグデータと特異値分解—グラフの三角形の数
各節点 iが含まれる三角形の数は重要な特徴量
節点 iの隣接節点間に枝がある割合をクラスタ係数という
クラスタ係数が小さい
お客さんとの付き合いが多いなど
無差別に友達申請しているのでは?
クラスタ係数が大きい
共通の趣味など,共通の属性を持っている人たちが集まっているなど
複数のアカウントを取得して,自分にリンクを張っているのでは?
異常なユーザーを検出できる
小さなグラフなら簡単に計算できるが,グラフがとても大きくなると大変
ビッグデータの計算科学第6回 (2014年11月05日) 12 / 53
隣接行列Aの性質ビッグデータと特異値分解—グラフの三角形の数
Anの第 (i , j )成分は,節点 iから節点 jにnステップで移動する方法の数
例えばA2の第 (i , j )成分は
Ai ,1 A1, j + Ai ,2 A2, j + . . .+ Ai ,N AN , j
で,第k項 (i , k), (k , j )があるときのみ1で,i → k → jと移動すること
を表す
グラフの三角形の数は tr(A3)/6 = ((A3)1,1+ (A3)2,2+·· ·+ (A3)N ,N )/6
tr(A3)は,ある頂点を出発して3ステップで元に戻る場合の数
各三角形について,どこが出発点か,時計回りかその逆か,で6パター
ンある
ビッグデータの計算科学第6回 (2014年11月05日) 13 / 53
節点iを含む三角形の数ビッグデータと特異値分解—グラフの三角形の数
節点 iを含む三角形の数を調べたい
A =UΛU Tと固有値分解されたとする (Λ= diag(λ1,λ2, . . . ,λN ))
グラフの三角形の総数は
tr(A3)/6 = 1
6
N∑k=1
λ3k
節点 iを含む三角形の数は(時計回りと反時計回りがあるので/2)1
2(A3)i ,i =
1
2(UΛ3U T)i ,i =
1
2
N∑k=1
λ3kU 2
i ,k
大きい固有値(とその固有ベクトル)のみを求め,小さい固有値を無視す
ることで高速化(95%以上の精度で数百倍速い)
ビッグデータの計算科学第6回 (2014年11月05日) 14 / 53
ビッグデータと特異値分解
グラフのNormalized Cut
ビッグデータの計算科学第6回 (2014年11月05日) 15 / 53
Cutビッグデータと特異値分解—グラフのNormalized Cut
無向グラフの頂点集合V を2つの頂点集合A, Bに分割したい
A ∪B =V , A ∩B =;その時に,「切らなければいけない枝」の重みを小さくしたい
wsum(A, B ) = ∑u∈A,v∈B
wuvを小さくする
wuvはuとvを結ぶ枝につけられた実数(重み)で枝がないならwuv = 0
AまたはBが1つの頂点だけからなる可能性が高い
もう少し「良い感じ」に分割する方法を考えたい
ビッグデータの計算科学第6回 (2014年11月05日) 16 / 53
Normalized Cutビッグデータと特異値分解—グラフのNormalized Cut
Normalized Cutwsum(A, B )
wsum(A,V )+ wsum(A, B )
wsum(B ,V )を最小化する
wsum(A, A)
wsum(A,V )+ wsum(B , B )
wsum(B ,V )を最大化するのと同値
Normalized Cutを求める問題はNP完全
計算機を用いて現実的な時間では求めることができない
近似的に求めることを考える
ビッグデータの計算科学第6回 (2014年11月05日) 17 / 53
ラプラシアンを用いた近似解法ビッグデータと特異値分解—グラフのNormalized Cut
隣接行列をWとする
di =Wi 1+Wi 2+ . . .+Wi nとしてD = diag(d1, d2, . . . , dn)とする
ラプラシアンはL −Wで定義される
ラプラシアンの小さい方から2番目の固有値に付随する固有ベクトルをx
とする
xの i番目の要素が正なら節点 iは集合 Aに,負なら集合Bに割り振ると
Normalized Cutの近似解になっている
厳密な説明はShi–Malik (2000)参照
ビッグデータの計算科学第6回 (2014年11月05日) 18 / 53
ラプラシアンの性質と直感的な説明ビッグデータと特異値分解—グラフのNormalized Cut
ラプラシアンは対称行列で非負定値
xTLx = ∑i< j
wi j (xi −x j )2 ≥ 0
ラプラシアンは固有値0をちょうど連結成分の数だけ持つ
連結成分とはグラフ上で直接的,または,間接的に枝で繋がれている
頂点の集合
固有ベクトルは,連結成分に含まれるものに対応する要素を1,そうで
ない要素を0にすると作れる
ビッグデータの計算科学第6回 (2014年11月05日) 19 / 53
ラプラシアンの性質と直感的な説明ビッグデータと特異値分解—グラフのNormalized Cut
グラフが2つの連結成分からなる場合(最小Cutは自明)
連結成分Aの頂点数をnA,連結成分Bの頂点数をnBとする
ラプラシアンは2つの0固有値を持つ
片方の固有ベクトルは全ての要素が1のベクトル
それと直交するもう1つの固有ベクトルは,Aに対応する要素にnB,B
に対応する要素に−nAとすれば良い
グラフに摂動を加えて連結成分が1つになったとする
固有値0は1つのみになり,その固有ベクトルは全ての要素が1
その他の一番小さい固有値に対する固有ベクトルは Aに対応する要素
にnB,Bに対応する要素に−nAに近いはず
ビッグデータの計算科学第6回 (2014年11月05日) 20 / 53
Normalized Cutの意味ビッグデータと特異値分解—グラフのNormalized Cut
Normalized Cutはグラフをクラスタリングする方法を1つ与える
2つ以上に分割する場合は,3番目に小さい固有値に対する固有ベクト
ル,4番目に小さい…,を用いて行う
あまりたくさんの固有ベクトルを使うと近似の精度が落ちるので,再
帰的に分割されたグラフに対して同じことを行っても良い
画像に対して,各ピクセルを頂点と思い,上下左右のピクセルに枝を張る
枝の重みは近い色同士を結ぶ場合は大きくする
画像に対して,ある領域を取り出すことができる
人物と背景を分離するなど
ビッグデータの計算科学第6回 (2014年11月05日) 21 / 53
ビッグデータと特異値分解— PageRank
ビッグデータの計算科学第6回 (2014年11月05日) 22 / 53
PageRankとはビッグデータと特異値分解— PageRank
PageRankの考えられた背景
Web検索において,検索ワードを含むページが複数ある
どれを一番最初に表示すれば良いか?
「良い」ページほど最初に表示する
「良い」度合いを表す指標を定義しましょう→ PageRank
PageRankの考え方において「良い」ページとは何か?
たくさんリンクが張られているページは「良い」
「良い」ページからリンクが張られているページは「良い」
ビッグデータの計算科学第6回 (2014年11月05日) 23 / 53
Webページの構造をグラフを用いて表すビッグデータと特異値分解— PageRank
各節点は1つのWebページを表し,各枝は1つのリンクを表す(有向グ
ラフ)
節点uから節点vに枝がある,とは,WebページuからWebページv
にリンクが張られていることに対応する
ビッグデータの計算科学第6回 (2014年11月05日) 24 / 53
PageRankの定義ビッグデータと特異値分解— PageRank
各Webページは,最初,「良さ」として1ポイント持っている
以下の手順を無限に繰り返した後に,持っているポイントがそのWebペー
ジの「良さ」= PageRankである
すべてのWebページが一斉に,持っているポイントをそのWebページ
からリンクを張っているWebページに等しく配る
これがPageRankの基本だが,このままでは問題点がある(解決策は後
ほど)
ビッグデータの計算科学第6回 (2014年11月05日) 25 / 53
PageRankの定義:例 (1)ビッグデータと特異値分解— PageRank
ビッグデータの計算科学第6回 (2014年11月05日) 26 / 53
PageRankの定義:例 (2)ビッグデータと特異値分解— PageRank
ビッグデータの計算科学第6回 (2014年11月05日) 27 / 53
PageRankの定義:例 (3)ビッグデータと特異値分解— PageRank
ビッグデータの計算科学第6回 (2014年11月05日) 28 / 53
PageRankの性質ビッグデータと特異値分解— PageRank
Webページの数をNとして,N次元ベクトルをxtを,xtのi番目の要素は
ポイントを配る操作を t回行った後のWebページ iが持っているポイント
とする
節点 iから出ている枝の数をdiとし,それらの枝の重みを1/diとする
Webページの構造を表す隣接行列をAとすると
x0 = (1, 1, . . . , 1)T, xt+1 = ATxt
PageRankはx∞,または,x = ATxをみたすx
PageRankはATの固有値1に対する固有ベクトル
Aは確率行列のため,固有値1をもつこと,固有値はすべて絶対値1以下
であることが保証されている
ビッグデータの計算科学第6回 (2014年11月05日) 29 / 53
べき乗法ビッグデータと特異値分解— PageRank
行列A ∈ Mn(R)の固有値λk以下を満たすとする
|λ1| > |λ2| ≥ |λ3| ≥ · · · ≥ |λn|x0を乱数ベクトルとし,以下の操作を繰り返す
x ′t+1 = Axt
xt+1 = x ′t+1
/∥x ′
t+1∥t →∞でxtはλ1に対する固有ベクトルに収束する
簡単のためAは対角化可能とし,固有ベクトルをvkとすると
x0 = c1v1+c2v2+·· ·+cnvn
xt = const. × (c1λt1v1+c2λ
t2v2+·· ·+cnλ
tnvn)
= const. ×(
c1v1+c2
(λ2
λ1
)tv2+·· ·+cn
(λn
λ1
)tvn
)
ビッグデータの計算科学第6回 (2014年11月05日) 30 / 53
PageRankの問題点ビッグデータと特異値分解— PageRank
グラフが連結でない時,固有値1に対する固有ベクトルは1つではない(固
有値1が重複固有値)
行列が周期的なとき,ポイントを配る操作を無限に行っても収束しない
(絶対値1の固有値が複数存在)
リンクの張られていないWebページのポイントが0になり,ポイント0の
Webページからしかリンクの張られていないページのポイントも0にな
り,…,となってPageRankが0のWebページができるが,その順位付
けができていない
解決策:ポイントの再分配を行う(次スライド)
解決される理由はPerron–Frobenius定理を参照
ビッグデータの計算科学第6回 (2014年11月05日) 31 / 53
PageRankの定義(改訂版)ビッグデータと特異値分解— PageRank
各Webページは,最初,「良さ」として1ポイント持っている
以下の手順を無限に繰り返す
すべてのWebページが一斉に,持っているポイントをそのWebページ
からリンクを張っているWebページに等しく配る
各Webページに対して,持っているポイントの100α%だけ没収する
すべてのWebページに対して,ポイントをαだけ与える
グラフとしては,すべての節点間(自分自身にも)に重さα/Nの枝が加
わったと思えば良い
隣接行列としては,(1−α)A+(α/N )Eとなる.ただしEはすべての成分が
1の行列.この行列の最大固有値1に対する固有ベクトルを求めれば良い
ビッグデータの計算科学第6回 (2014年11月05日) 32 / 53
ビッグデータと特異値分解— HITS
ビッグデータの計算科学第6回 (2014年11月05日) 33 / 53
HITS (Hyperlink-Induced Topic Search)とはビッグデータと特異値分解— HITS
HITSもPageRankと同様にWebページにスコアを付けたいという背景か
ら生まれた
HITSでは2種類のスコアを考える
authority(権威)
hubスコアの高いWebページからたくさんリンクされていると権威
のあるページである
hub(ハブ)
権威のあるページにたくさんリンクを張っていると良いハブである
ビッグデータの計算科学第6回 (2014年11月05日) 34 / 53
authorityスコア,hubスコアの定義 (1)ビッグデータと特異値分解— HITS
各Webページのauthorityスコアは,そのページにリンクを張っている
Webページのhubスコアの和(の定数倍)
各Webページのhubスコアは,そのページがリンクを張っているWebペー
ジのauthorityスコアの和(の定数倍)
隣接行列をAとする(PageRankのように枝に重みはつけない)
authorityスコアを並べたベクトルをxの初期値をx = (1, 1, . . . , 1)Tとす
る
hubスコアを並べたベクトルを yの初期値を y = (1, 1, . . . , 1)Tとする
ビッグデータの計算科学第6回 (2014年11月05日) 35 / 53
authorityスコア,hubスコアの定義 (2)ビッグデータと特異値分解— HITS
以下の操作を無限繰り返して,各スコアを計算する
x ← ATy, y ← Ax
x ← x/∥x∥, y ← y/∥y∥ (ベクトルを正規化)
収束したx , yについて
x = const.× ATy, y = const.× Ax
つまり,λx = ATAx , λy = A ATy
xはAの最大特異値に対する右特異ベクトル(authority)
yはAの最大特異値に対する左特異ベクトル(hub)
ビッグデータの計算科学第6回 (2014年11月05日) 36 / 53
ビッグデータと特異値分解—潜在的意味解析
ビッグデータの計算科学第6回 (2014年11月05日) 37 / 53
潜在的意味解析とはビッグデータと特異値分解—潜在的意味解析
潜在的意味解析 (Latent Semantic Analysis, LSA)
潜在的意味索引 (Latent Semantic Indexing, LSI)
問題点:例えば,Web検索において,「レビュー」と「感想」が別物と
扱われてしまう
データ行列Aの第(i , j )成分は,Webページiに単語 jが何回出てきたか
主成分分析して単語の次元を減らす
同様に,過学習の緩和などに主成分分析で低ランク近似することがある
ビッグデータの計算科学第6回 (2014年11月05日) 38 / 53
潜在的意味解析の例ビッグデータと特異値分解—潜在的意味解析
例を考える
文書1: 小説を買ったので感想を書きます
文書2: 小説のレビューを書きます
文書3: ノベルの感想
文書4: あのノベルの感想を聞きました
文書5: 小説を書きました
単語: 小説,ノベル,感想,レビュー,書く,聞く
検索クエリ: 「小説感想」の時の各ページのスコア(ここでは内積)
文書1から順に,2, 1, 1, 1, 1
(通常,ベクトルを正規化してから内積を取るコサイン類似度をスコアにする)
A =
1 1 0 0 1 (小説)0 0 1 1 0 (ノベル)1 0 1 1 0 (感想)0 1 0 0 0 (レビュー)1 1 0 0 1 (書く)0 0 0 1 0 (聞く)
ビッグデータの計算科学第6回 (2014年11月05日) 39 / 53
潜在的意味解析の例ビッグデータと特異値分解—潜在的意味解析
Aを特異値分解A =U DV T
U =
−0.607 −0.294 0.079 −0.117 0.158 0.707−0.187 0.588 −0.292 0.233 0.693 0.000−0.420 0.588 0.371 0.233 −0.535 0.000−0.202 −0.165 −0.782 0.416 −0.384 0.000−0.607 −0.294 0.079 −0.117 0.158 −0.707−0.101 0.330 −0.391 −0.831 −0.192 0.000
D = diag(2.65, 2.14, 0.893, 0.662, 0.422)
V T =
−0.617 −0.534 −0.229 −0.267 −0.4580.000 −0.352 0.550 0.705 −0.2750.592 −0.699 0.088 −0.349 0.1770.000 0.275 0.705 −0.550 −0.352−0.518 −0.162 0.374 −0.081 0.747
ビッグデータの計算科学第6回 (2014年11月05日) 40 / 53
潜在的意味解析の例ビッグデータと特異値分解—潜在的意味解析
Aの第 i列ベクトルはai =∑kσkVki uk
σkが小さいものを0として,クエリのベクトルとaiの内積をスコアとする
A ≈U DV Tとする.ただし,U ,V の第k +1列以降を削除した
クエリのベクトルをqとして,ATqがスコアベクトルで,これは,左か
らU Tをかけて,DV Tの i行目とU Tqとの内積を求めれば良い.
検索クエリ:「小説感想」の場合q = (1, 0, 1, 0, 0, 0)T
k = 1の場合,(DV T)TU Tq = (1.68, 1.46, 0.62, 0.73, 1.25)T
k = 2の場合,(DV T)TU Tq = (1.68, 1.23, 0.97, 1.17, 1.08)T
k = 5の場合,(DV T)TU Tq = (2, 1, 1, 1, 1)T
ビッグデータの計算科学第6回 (2014年11月05日) 41 / 53
ビッグデータと特異値分解
画像解析(顔認識,文字認識など)
ビッグデータの計算科学第6回 (2014年11月05日) 42 / 53
簡単な画像解析を考えるビッグデータと特異値分解—画像解析(顔認識,文字認識など)
画像のサイズは全てw ×hピクセルとする
各画像はZw hの元となる(グレースケースなら)
2つの画像x , y ∈Zw hがどれぐらい似ているかを内積xTyを用いて評価
問題点:一般にw hはそこそこ大きく,たくさんの画像と比較すると計
算量が大きい
状況例:N個の顔データ画像があって,どれとどれが同一人物か判定し
たい
状況例:N人の顔データ画像があらかじめ保存されていて,今,カメラ
の前にいる人は誰なのかを識別したい
主成分分析して画素数の次元を落とす
ビッグデータの計算科学第6回 (2014年11月05日) 43 / 53
低ランク近似ビッグデータと特異値分解—画像解析(顔認識,文字認識など)
A =UΣV Tと特異値分解できるとする
ランクr ≤ rank Aの行列 AでAを近似したい
ΣをΣにおいて,σr+1,σr+2, . . .を0に置き換えたものとする
A = U ΣV Tは,A − Aのフロベニウスノルムを最小化する意味で最も良い
近似となっている
A ∈ Mm,n(R)に対して,フロベニウスノルムは
∥A∥F =√√√√ m∑
i=1
n∑j=1
∣∣Ai , j∣∣2 =
√tr
(ATA
)=
√∑kσ2
k
ビッグデータの計算科学第6回 (2014年11月05日) 44 / 53
テンソルにおける低ランク近似ビッグデータと特異値分解—画像解析(顔認識,文字認識など)
画像解析において,画像 jのピクセルiの値をAi , jとする,などとしていた
しかし,実際は画像は2次元であり,その構造を用いたほうが良いかもし
れない
画像kの座標(i , j )のピクセルの値をAi , j ,kとする
実際に,顔認識などにおいては,テンソルを用いたほうが精度が上がると
いう研究がある
表情,角度なども軸に取る
テンソルにおける低ランク近似,や,特異値分解に対応する分解方法は?
ビッグデータの計算科学第6回 (2014年11月05日) 45 / 53
ビッグデータと特異値分解
行列データの欠損値の推定
ビッグデータの計算科学第6回 (2014年11月05日) 46 / 53
推薦システムビッグデータと特異値分解—行列データの欠損値の推定
ユーザー iが商品 jに5段階評価(1~5)で評価Ai , jをつけたとする行列
評価していない商品についてはAi , j = 0とする
Ai , j = 0となっている要素が実際はどの程度の値が入るのか推定したい
Ai , jの推定値した値が大きいなら,ユーザーUiに商品T jを薦める
様々なモデル,様々な解法が存在
低ランク近似に基づくものを紹介する
ビッグデータの計算科学第6回 (2014年11月05日) 47 / 53
推薦システムビッグデータと特異値分解—行列データの欠損値の推定
商品にはk個の隠れた属性があり,ユーザーはその属性によって評価する
商品 jの属性v j = (V1 j ,V2 j , . . . ,Vk j )T
ユーザー iの嗜好ui = (U1i ,U2i , . . . ,Uki )T
ユーザー iが商品 jにつける評価uTi v j =U1i V1 j +·· ·+Uki Vk j
最適化問題として定式化できる
minimize∑
Ai , j =0
(Ai j −Bi j
)2
subject to rank B ≤ k
一般に凸最適化ではない
欠損値がなければ,特異値分解で計算できるB =U DV T
ただし,Dは特異値を大きい方からk個のみを残した行列
ビッグデータの計算科学第6回 (2014年11月05日) 48 / 53
EMアルゴリズムビッグデータと特異値分解—行列データの欠損値の推定
適当に欠損値を埋めて,以下の最適化問題の最適解Bを求める
minimize∑i , j
(Ai j −Bi j
)2
subject to rank B ≤ k
欠損値の値をBi jと置き直して,再度繰り返す
大次元疎行列では時間がかかりすぎる
高速な計算法としては最急降下法,共役勾配法など(初期値の計算に
も用いられる)
ビッグデータの計算科学第6回 (2014年11月05日) 49 / 53
高次元化ビッグデータと特異値分解—行列データの欠損値の推定
評価する時間によって評価値が変わるかもしれない
テンソルデータの欠損値の推定
ビッグデータの計算科学第6回 (2014年11月05日) 50 / 53
テンソル分解
ビッグデータの計算科学第6回 (2014年11月05日) 51 / 53
PARAFAC (parallel factor analysis)テンソル分解
l ×m ×nのテンソルAを考える
要素はAi j k , 1 ≤ i ≤ l , 1 ≤ j ≤ m, 1 ≤ k ≤ n
以下のように分解
Ai j k =Q∑
q=1dq xi y j zk
Qの最小値(行列で言うランクに相当)を求めるのはNP困難
Qの最小値は l , m, nと比べ大きいことがある
ビッグデータの計算科学第6回 (2014年11月05日) 52 / 53
Tucker分解テンソル分解
l ×m ×nのテンソルAを考える
要素はAi j k , 1 ≤ i ≤ l , 1 ≤ j ≤ m, 1 ≤ k ≤ n
以下のように分解
Ai j k =Q∑
q=1
R∑r=1
S∑s=1
dqr s Xi q Y j r Zk s
X TX = I , Y TY = I , Z TZ = I
ビッグデータの計算科学第6回 (2014年11月05日) 53 / 53
Tucker分解テンソル分解
以下の様な最適化問題に定式化できる
minimize∑
i , j ,k
(Ai j k −Bi j k
)2
subject to Bi j k =Q∑
q=1
R∑r=1
S∑s=1
dqr s Xi q Y j r Zk s
X TX = I , Y TY = I , Z TZ = I
Higher Order SVDなどで計算できる
Aを l ×mn行列として特異値分解
Aをm ×nl行列として特異値分解
Aをn × l m行列として特異値分解
Recommended