ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回...

54
ビッグデータの計算科学 第 6 (2014 11 05 ) / 53 ビッグデータの計算科学 第 6 データを分析するための統計的手法についての解説 京都大学 大学院情報学研究科 数理工学専攻/情報教育推進センター 關戸 啓人

Transcript of ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回...

Page 1: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) – / 53

ビッグデータの計算科学第6回

データを分析するための統計的手法についての解説

京都大学大学院情報学研究科数理工学専攻/情報教育推進センター

關戸啓人

Page 2: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 1 / 53

ビッグデータと特異値分解—グラフの三角形の数

Page 3: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53

準備:グラフとはビッグデータと特異値分解—グラフの三角形の数

節点(node)と枝(edge)からなるもの

枝は2つの節点を結ぶ線(無向グラフ),または,矢印(有向グラフ)

各節点,または,各枝には重みと呼ばれる実数が与えられている場合

もある

節点uからvへと向かう枝(有向グラフ),および,接点uとvを結ぶ枝

(無向グラフ)を (u, v )と書く

 

Page 4: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 3 / 53

例:有向グラフビッグデータと特異値分解—グラフの三角形の数

例えば,Twitterのフォロー・フォロワー関係

 

Page 5: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 4 / 53

例:無向グラフビッグデータと特異値分解—グラフの三角形の数

例えば,Facebookの友達関係

 

Page 6: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 5 / 53

準備:無向グラフに対する隣接行列ビッグデータと特異値分解—グラフの三角形の数

無向グラフにおいて,節点数をNとする

このとき,N行N列の行列を以下のよって定める

節点の番号を1, 2, . . . , Nとする

第 (i , j )要素は,節点 iと節点 jを結ぶ枝があれば1,なければ0とする

節点iと節点 jを結ぶ枝が2本以上ある場合,第(i , j )要素を枝の本数と

することもある

それぞれの枝に実数が与えられている場合は,1の代わりにその実数と

する.

 

Page 7: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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の代わりにその実数と

する.

 

Page 8: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 9: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 10: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 9 / 53

グラフと隣接行列ビッグデータと特異値分解—グラフの三角形の数

グラフを考えることと,隣接行列を考えることは同値

グラフの形で考えた方が直感的にわかりやすい

行列は数学的に非常によく知られた対象である

どっちが適しているかはケースバイケース

隣接行列を行列として考えなければ,考えつかないようなアルゴリズムと

して,まず,三角形の数の近似計算を紹介する

 

Page 11: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 10 / 53

グラフの三角形の数ビッグデータと特異値分解—グラフの三角形の数

単純な無向グラフを考える

自分自身を結ぶ枝はない(両端点が同じ枝がない,ループ)

2つの枝の間には高々1本の枝しか無い

グラフの三角形の数とは枝 (u, v ), (v, w ), (w, u)と3つの接点の間にそれぞ

れ枝があるような (u, v, w )の組の数である

 

Page 12: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 11 / 53

グラフの三角形の数の応用ビッグデータと特異値分解—グラフの三角形の数

各節点 iが含まれる三角形の数は重要な特徴量

節点 iの隣接節点間に枝がある割合をクラスタ係数という

クラスタ係数が小さい

お客さんとの付き合いが多いなど

無差別に友達申請しているのでは?

クラスタ係数が大きい

共通の趣味など,共通の属性を持っている人たちが集まっているなど

複数のアカウントを取得して,自分にリンクを張っているのでは?

異常なユーザーを検出できる

小さなグラフなら簡単に計算できるが,グラフがとても大きくなると大変

 

Page 13: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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パター

ンある

 

Page 14: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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%以上の精度で数百倍速い)

 

Page 15: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 14 / 53

ビッグデータと特異値分解

グラフのNormalized Cut

Page 16: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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つの頂点だけからなる可能性が高い

もう少し「良い感じ」に分割する方法を考えたい

 

Page 17: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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完全

計算機を用いて現実的な時間では求めることができない

近似的に求めることを考える

 

Page 18: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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)参照

 

Page 19: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 18 / 53

ラプラシアンの性質と直感的な説明ビッグデータと特異値分解—グラフのNormalized Cut

ラプラシアンは対称行列で非負定値

xTLx = ∑i< j

wi j (xi −x j )2 ≥ 0

ラプラシアンは固有値0をちょうど連結成分の数だけ持つ

連結成分とはグラフ上で直接的,または,間接的に枝で繋がれている

頂点の集合

固有ベクトルは,連結成分に含まれるものに対応する要素を1,そうで

ない要素を0にすると作れる

 

Page 20: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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に近いはず

 

Page 21: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 20 / 53

Normalized Cutの意味ビッグデータと特異値分解—グラフのNormalized Cut

Normalized Cutはグラフをクラスタリングする方法を1つ与える

2つ以上に分割する場合は,3番目に小さい固有値に対する固有ベクト

ル,4番目に小さい…,を用いて行う

あまりたくさんの固有ベクトルを使うと近似の精度が落ちるので,再

帰的に分割されたグラフに対して同じことを行っても良い

画像に対して,各ピクセルを頂点と思い,上下左右のピクセルに枝を張る

枝の重みは近い色同士を結ぶ場合は大きくする

画像に対して,ある領域を取り出すことができる

人物と背景を分離するなど

 

Page 22: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 21 / 53

ビッグデータと特異値分解— PageRank

Page 23: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 22 / 53

PageRankとはビッグデータと特異値分解— PageRank

PageRankの考えられた背景

Web検索において,検索ワードを含むページが複数ある

どれを一番最初に表示すれば良いか?

「良い」ページほど最初に表示する

「良い」度合いを表す指標を定義しましょう→ PageRank

PageRankの考え方において「良い」ページとは何か?

たくさんリンクが張られているページは「良い」

「良い」ページからリンクが張られているページは「良い」

 

Page 24: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 23 / 53

Webページの構造をグラフを用いて表すビッグデータと特異値分解— PageRank

各節点は1つのWebページを表し,各枝は1つのリンクを表す(有向グ

ラフ)

節点uから節点vに枝がある,とは,WebページuからWebページv

にリンクが張られていることに対応する

 

Page 25: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 24 / 53

PageRankの定義ビッグデータと特異値分解— PageRank

各Webページは,最初,「良さ」として1ポイント持っている

以下の手順を無限に繰り返した後に,持っているポイントがそのWebペー

ジの「良さ」= PageRankである

すべてのWebページが一斉に,持っているポイントをそのWebページ

からリンクを張っているWebページに等しく配る

これがPageRankの基本だが,このままでは問題点がある(解決策は後

ほど)

 

Page 26: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 25 / 53

PageRankの定義:例 (1)ビッグデータと特異値分解— PageRank

 

Page 27: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 26 / 53

PageRankの定義:例 (2)ビッグデータと特異値分解— PageRank

 

Page 28: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 27 / 53

PageRankの定義:例 (3)ビッグデータと特異値分解— PageRank

 

Page 29: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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以下

であることが保証されている

 

Page 30: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

)

 

Page 31: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 30 / 53

PageRankの問題点ビッグデータと特異値分解— PageRank

グラフが連結でない時,固有値1に対する固有ベクトルは1つではない(固

有値1が重複固有値)

行列が周期的なとき,ポイントを配る操作を無限に行っても収束しない

(絶対値1の固有値が複数存在)

リンクの張られていないWebページのポイントが0になり,ポイント0の

Webページからしかリンクの張られていないページのポイントも0にな

り,…,となってPageRankが0のWebページができるが,その順位付

けができていない

解決策:ポイントの再分配を行う(次スライド)

解決される理由はPerron–Frobenius定理を参照

 

Page 32: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 31 / 53

PageRankの定義(改訂版)ビッグデータと特異値分解— PageRank

各Webページは,最初,「良さ」として1ポイント持っている

以下の手順を無限に繰り返す

すべてのWebページが一斉に,持っているポイントをそのWebページ

からリンクを張っているWebページに等しく配る

各Webページに対して,持っているポイントの100α%だけ没収する

すべてのWebページに対して,ポイントをαだけ与える

グラフとしては,すべての節点間(自分自身にも)に重さα/Nの枝が加

わったと思えば良い

隣接行列としては,(1−α)A+(α/N )Eとなる.ただしEはすべての成分が

1の行列.この行列の最大固有値1に対する固有ベクトルを求めれば良い

 

Page 33: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 32 / 53

ビッグデータと特異値分解— HITS

Page 34: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 33 / 53

HITS (Hyperlink-Induced Topic Search)とはビッグデータと特異値分解— HITS

HITSもPageRankと同様にWebページにスコアを付けたいという背景か

ら生まれた

HITSでは2種類のスコアを考える

authority(権威)

hubスコアの高いWebページからたくさんリンクされていると権威

のあるページである

hub(ハブ)

権威のあるページにたくさんリンクを張っていると良いハブである

 

Page 35: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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とする

 

Page 36: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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)

 

Page 37: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 36 / 53

ビッグデータと特異値分解—潜在的意味解析

Page 38: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 37 / 53

潜在的意味解析とはビッグデータと特異値分解—潜在的意味解析

潜在的意味解析 (Latent Semantic Analysis, LSA)

潜在的意味索引 (Latent Semantic Indexing, LSI)

問題点:例えば,Web検索において,「レビュー」と「感想」が別物と

扱われてしまう

データ行列Aの第(i , j )成分は,Webページiに単語 jが何回出てきたか

主成分分析して単語の次元を減らす

同様に,過学習の緩和などに主成分分析で低ランク近似することがある

 

Page 39: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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 (聞く)

 

Page 40: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 41: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 42: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 41 / 53

ビッグデータと特異値分解

画像解析(顔認識,文字認識など)

Page 43: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 42 / 53

簡単な画像解析を考えるビッグデータと特異値分解—画像解析(顔認識,文字認識など)

画像のサイズは全てw ×hピクセルとする

各画像はZw hの元となる(グレースケースなら)

2つの画像x , y ∈Zw hがどれぐらい似ているかを内積xTyを用いて評価

問題点:一般にw hはそこそこ大きく,たくさんの画像と比較すると計

算量が大きい

状況例:N個の顔データ画像があって,どれとどれが同一人物か判定し

たい

状況例:N人の顔データ画像があらかじめ保存されていて,今,カメラ

の前にいる人は誰なのかを識別したい

主成分分析して画素数の次元を落とす

 

Page 44: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 45: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 44 / 53

テンソルにおける低ランク近似ビッグデータと特異値分解—画像解析(顔認識,文字認識など)

画像解析において,画像 jのピクセルiの値をAi , jとする,などとしていた

しかし,実際は画像は2次元であり,その構造を用いたほうが良いかもし

れない

画像kの座標(i , j )のピクセルの値をAi , j ,kとする

実際に,顔認識などにおいては,テンソルを用いたほうが精度が上がると

いう研究がある

表情,角度なども軸に取る

テンソルにおける低ランク近似,や,特異値分解に対応する分解方法は?

 

Page 46: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 45 / 53

ビッグデータと特異値分解

行列データの欠損値の推定

Page 47: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 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を薦める

様々なモデル,様々な解法が存在

低ランク近似に基づくものを紹介する

 

Page 48: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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個のみを残した行列

 

Page 49: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 48 / 53

EMアルゴリズムビッグデータと特異値分解—行列データの欠損値の推定

適当に欠損値を埋めて,以下の最適化問題の最適解Bを求める

  minimize∑i , j

(Ai j −Bi j

)2

  subject to rank B ≤ k

欠損値の値をBi jと置き直して,再度繰り返す

大次元疎行列では時間がかかりすぎる

高速な計算法としては最急降下法,共役勾配法など(初期値の計算に

も用いられる)

 

Page 50: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 49 / 53

高次元化ビッグデータと特異値分解—行列データの欠損値の推定

評価する時間によって評価値が変わるかもしれない

テンソルデータの欠損値の推定

 

Page 51: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第6回 (2014年11月05日) 50 / 53

テンソル分解

Page 52: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 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と比べ大きいことがある

 

Page 53: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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

 

Page 54: ビッグデータの計算科学第6回 · 2016-11-08 · ビッグデータの計算科学第6回 (2014年11月05日) 2 / 53 準備:グラフとは ビッグデータと特異値分解—

ビッグデータの計算科学第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行列として特異値分解