A Tutorial on Spectral Clusteringを読んだのでメモ その1
はじめに
A Tutorial on Spectral Clusteringを読んだのでメモ. タイトルからわかるようにspectral clusteringを基本の部分から解説した資料. 構成としてはsimilarity graphsgraph laplaciansspectral clusteringアルゴリズムの解析という感じ.とりあえずここではspectral clusteringの手前のグラフ理論的な話まで.
Similarity graphs
データ点が与えられた時,データ点のペアの類似度をとする.ここで,データ間の類似度よりも多くの情報を持っていないとすれば,データを表現する良い方法はsimilarity graph を作ること.各頂点はデータ点に対応し,二つのデータ点間の類似度が正またはある閾値より大きいとすれば,グラフのエッジはによって重み付けられる.このようにグラフのエッジがデータ間の類似度に基づくものをsimilarity graphという.このsimilarity graphを用いてクラスタリングの問題を考えれば,エッジの重みが大きいデータ同士は同じクラスタに所属し,エッジの重みが小さいデータ同士は異なるクラスタに所属するということが直感的に言える.この考えを定式化するために,まずは基本的なグラフの概念を導入する.
graph notation
まずを無向グラフとして定義する.ただし,二つの頂点を結ぶ各エッジは非負の重みを持つ,重み付きのグラフとなっている.グラフの重み付き隣接行列(adjacency matrix)をと定義し,ならばを結ぶエッジが存在しないことを意味する.また,が無向グラフであることからが成り立つ.頂点の度数(degree)を次のように定義する.
度数を対角成分に持つ対角行列を度数行列(degree matrix)をと定義する.また,頂点の部分集合が与えられた時,その補集合をを用いてとして記述する.さらにを満たすかどうかを示す指示ベクトル(indicator vector)をで定義し,が真ならば,それ以外ならとなる.指示ベクトルは式を見ればわかるように,部分集合に含まれる頂点の個数分だけ成分に1を持つベクトルになっている.
ここで部分集合の大きさを測る以下の二つの方法について考える.
は頂点の数により定義され,はに含まれる頂点から伸びる全てのエッジの重みの和によって定義される.に含まれる二つの頂点がpathを持ち(どこか他のノードを介してでも繋がっている状態),間にある全ての頂点がに含まれている場合,はconnectedであるといい,がconnectedかつ,との頂点同士がpathをもたない(connectedでない)場合,をconnected componentと呼ぶ.
Different similarity graphs
Similarity graphを構成することのゴールはデータ間の局所的な隣接関係をモデル化することで,その方法にはいくつか代表的な方法がある.
The -neighborhood graph
これは距離がある閾値より小さいデータのペア全てにエッジを張る方法.この方法は接続されたデータ間の距離のスケールが大体同じ(ほぼ)になり,重みをつけたところでグラフの持つ情報はほとんど増えないため(ここの理由がよくわからない)重みのないグラフとして構成するのが一般的.
-nearest neighbor graphs
ここのゴールは頂点がの近傍に含まれるときに二つの頂点を接続すること.ただし,この定義だと近傍の関係性が非対称であることから有向グラフを構成する場合がある.そこで近傍によって作られるグラフを無向グラフにする二つの方法を紹介する.一つは単純にエッジの向きを無視する方法,すなわちどちらか一方の頂点がもう一方の頂点の近傍であればエッジを張る方法で,これは-nearest neighbor graphと呼ばれる.もう一つは双方向からエッジが張られる場合のみエッジを張る,すなわちどちらの頂点も相手の近傍に含まれる時のみエッジを張る方法で,これはmutual -nearest neighbor graphと呼ばれる.どちらの場合でグラフを作った場合でも,endpointの類似性からエッジの重み付けを行う.
The fully connected graph
これは,単純に正の類似度を持つ全てのデータのペアにエッジを張る方法でエッジの重みはになる.グラフは局所的な隣接関係を表現すべきであるため,この構成方法は類似度関数そのものが局所的な隣接関係を捉えているような場合のみ有効に働く.類似度関数の例としてはGaussian similarity function などがあげられ,この場合がどれくらい離れた頂点を見るか調節する.これは丁度-neighborhood graphのと似た働きをする.
上記3つの構成方法は全てspectral clusteringで一般的に用いられる.どの構成方法を使えばより良い結果が得られるかという理論的な回答は(このtutorialが執筆された時点では)ないらしい.
Graph laplacians and their basic properties
Spectral clusteringにおいて重要となってくるのはgraph Laplacian matricesで,spectral graph theoryとして古くから研究されているよう.graph convolutional networksなどでもお馴染み."graph Laplacian"という呼称はいろんなところで使われていて文献によってgraph Laplacianの定義が違うので他の文献を読むときには注意とのこと.
以下,を無向グラフ,をグラフの重み行列として扱い,を満たす.また,ここでは固有ベクトルを使うときは正規化されている仮定は置かず,固有ベクトルは値が小さい順に並んでいるものとする.
The unnormalized graph Laplacian
正規化されていないgraph Laplacian matrixを以下のように,度数行列と重み行列の差として定義する.
ここではspectral clusteringで必要とされる命題を以下にまとめる.
Proposition 1 (properties of )
証明
の定義より, 1行目はの関係性とが対角行列であることから導かれる.また,2行目はの項を無理やり二つに分けることで因数分解可能な形にし,を利用して最終的な形を導いた.
が対称行列であることはが対称行列であることから言える.また全てのに対してであることから固有値が0以上,すなわち半正定値であることが言える.
の番目の対角成分はで与えられることから,の関係性よりとなる.よって固有値と固有ベクトルの関係性からが得られ,固有値0に対応する固有ベクトルはであることがわかる.
自明.
また,以下の命題はspectral clusteringを考える上で重要な命題.
Proposition 2 (Number of connected components and the spectrum of )
を非負の値で重み付けられた無向グラフとする.の値0の固有値の数はグラフのconnected components の数と等しい.また,値0の固有値が張る固有空間は各connected componentsの指示ベクトルによって張られる.
証明
の場合について考える.を値が0の固有値に対応する固有ベクトルとする.すると固有値と固有ベクトルの関係と命題1の1から以下が成り立つ.
は非負であることから全ての項が0の時に成り立つ.つまり,二つの頂点が結ばれている時(つまりの時),が成り立つ必要がある.つまり接続関係にある全ての頂点に対しては一定である必要がある.グラフがただ一つのconnected componentで構成されている場合,固有値0に対応する固有ベクトルはのみを持ち,これはconnected componentの指示ベクトルになっていることがわかる.
次にが2以上の時について考える.この時,一般性を失うことなく頂点を,所属するconnected componentの順に並べることができる.すると,各頂点は異なるconnected componentに含まれる頂点とは接続を持たないためadjacency matrix はブロック対角行列になる.よっての関係からも同様にブロック対角行列になる.すなわち番目のconnected componentに関数graph Laplacian matrix を対角成分に持つ行列として表現できる.の場合の議論を考えれば各graph Laplacian matrix の0固有値に対応する固有ベクトルはその集合の指示ベクトルになるため,の0固有値に対応する固有ベクトルは各connected componentの指示ベクトルになることが言える.よって0固有値の個数とconnected componentの数は等しいことが言える.
The normalized graph Laplacians
先ほどまでは正規化されていないgraph Laplacianを扱ってきた.今度は正規化されたgraph Laplacianを考える.正規化されたgraph Laplacianには以下の2種類の表現方法がある.
は対称行列になっていて,はrandom walkと密接な関係がある.以下にに関する命題を示す.
Proposition 3 (Properties of and )
- 全てのにおいて以下が成り立つ.
2.が固有ベクトル に対応するの固有値であるとき,は固有ベクトル に対応するの固有値になる.
3.とが一般化固有値問題の解ならば,は固有ベクトル に対応するの固有値になる.
4.0固有値に対応するの固有ベクトルは.また,0固有値に対応するの固有ベクトルは
5.は共に半正定値で個の非負な実数固有値を持つ.
証明
基本的には命題1の1と同様の方針で,を代入して解ける.計算式は省略.
3からとなり,が得られる.また,2よりの固有ベクトルは
に関しては命題1の2と同様1の右辺が正であることから言える.に関しては2のとの関係性から言える.
また,以下の命題により,正規化されたgraph Laplacianの0固有値の個数はconnected componentの数と関係があることが言える.
Proposition 4 (Number of connected components and spectra of and
との0固有値の個数はグラフのconnected componentの数と等しい.の固有空間は指示ベクトルによって張られ,はによって固有空間が張られる.
証明
命題3の内容を使って命題2と同様の手順により導けるので割愛.
まとめ
Graph Laplacianとかは流行りの?graph convolution等との関係も深く他にもいろんな場面で見る気がするのでそれなりに勉強できてよかった.
最近生成モデルを中心に勉強してたから久しぶりに線形代数に触れられて楽しい.