1. 程式人生 > >What’s up with the Graph Laplacian

What’s up with the Graph Laplacian

What’s up with the Graph Laplacian?

來源

作者:Jeremy Kun

blog: Math ∩ Programming

在數學上圖和與圖關聯的某些矩陣的代數性質有很深的聯絡。

這兒有一個這種現象的最簡單的例子。一個無向圖\(G=(V,E)\) 並且\(A=(a_{i,j})\)是它的的鄰接矩陣。一個顯著的事實是矩陣\(A^k\)的(i, j)項就是從i到j的長度為k的路徑的數目。

數學中在圖的鄰接矩陣上做線性代數研究的領域叫做 spectral graph theory。然而另一個和圖相關的矩陣和鄰接矩陣一樣有用並且在譜圖理論中受到很大的關注:圖拉普拉斯矩陣。

如果你是物理學家,電子工程師,或者應用數學專家,你會從偏微分方程中識別出拉普拉斯運算元並且用自然的方式將它離散化,但是我不會假設你對那些學科相當熟悉。事實上,如果你不想考慮偏微分方程的連續系統,你仍然可以欣賞到圖拉普拉斯運算元的美妙。

這兒有一個方法來研究它。\(G=(V,E)\)是無向圖,有\(n=|V|\)個節點。\(f : V \rightarrow R\) 是圖節點的函式。如果圖節點是定義有序的(整篇部落格都隱含這一點),那麼\(f\) 可以被表示成一個實數向量。一個\(f\)的導數的自然的概念就是檢視\(f\)的值沿著每條邊的變化值。

Definition: The graph gradient of \(f\)

is the vector \(\nabla f = (f(v) - f(w))_{(v, w) \in E}\)

graph-gradient.png

An example of the graph gradient.

一個理解梯度值的方法是:\(f\)在某個頂點沿著某條邊的方向的導數就是這條邊上兩個端點的值的變化量。這非常像是一個圖版本的 discrete calculus

但是不像離散微積分,圖梯度不是一個非常優雅的物件。特別是差分運算元(difference operator)暗含了一個在邊上的方向,但是沒有一個自然的方式來選擇一個。我們可以任意挑選一個方向,但是那麼做的話,梯度的一些 numerical properties 將不是清楚定義的(well-defined)。你也可以固定你的參考點作為一個單一的頂點,但是那樣你就僅僅只能得到那個頂點延生的邊上的方向。

然而,一個不依賴方向選擇的屬性是 (squared) Euclidean norm of the gradient, \(\sum_{(v,w) \in E} (f(v) - f(w))^2\) . 事實上,符號改變後,平方的數值不會改變。

也可以把 squared Euclidean norm 看作是 quadratic form, 它是一個有許多變數的多項式並且所有項的次數是2。 這些多項式總是可以寫成矩陣的形式 \(x^T A x\) , 其中\(x\)是變數的向量,\(A\)是一個對稱的標量的方形矩陣。

我們特殊的 squared-gradient quadratic form 的矩陣部分就叫做 graph Laplacian, 並且我們可以用一個優雅的公式表示它。

Definition: \(G\) be a graph with adjacency matrix \(A\). The (combinatorial) graph Laplacian $L(G) $ is the matrix \(D-A\), where \(D\) is the diagonal matrix whose \((i,i)\)-entry is the degree of vertex \(i\).

laplacian-example.png

An example of the combinatorial graph laplacian

如果你喜歡前面梯度的思考方式,你應該把 graph Laplacian 看做是一個矩陣(編碼成計算在圖上的梯度和任意函式的gradient-norms的過程)。作為一個運算子,\(L(G)\) 將一個函式\(f\)對映成一個函式\(g\) 使得\(g(i) = \sum_{j : (i,j) \in E} f(j) - f(i)\) 。所以拉普拉斯運算元(Laplacian)在頂點上強加了一個離開頂點的方向,並且 計算向外的導數的和。

這應該足以激勵人們研究拉普拉斯運算元。並且這將會給予很大的回報。發掘出的主要的洞見是:Laplacian的eigenvalue和eigenvector可以提供有用的關於圖結構的資訊。

Fourier transforms, for comparison

人們可能想知道為什麼你希望從graph Laplacian的特徵值和特徵向量中提取資訊。所以我想簡單地提一下,這是連續情況的直接類比:傅立葉分析。

一個思考傅立葉分析的簡潔的方式是從Laplace operator \(\Delta\) 開始。

\(\displaystyle \Delta(f) = \sum_{i=1}^n \frac{\partial^2 f}{\partial x_i^2}.\)

這是一個在向量空間中至少兩次可微函式的線性對映。一旦你愛上線性代數,你註定會問什麼是\(\Delta\) 的特徵向量?答案就是它們是復指數,

\(f_s(t) = e^{2 \pi i s t},\)

其中\(t\)是一個實數變數,s是一個固定的實數(頻率)。一旦你理解了這些,傅立葉分析就是求不同的函式看起來是什麼樣子的當你在這個規則下將他們展開後,並且你可以從這些係數中推匯出什麼性質。對應特徵向量 \(f_s\)的值 s 被解釋成頻率;一個函式\(g\) 在頻率 s 下的係數就是內積\(\langle g, f_s(t) \rangle\), 它對應復值函式是一個確定的整數,我不會現在把它寫下來 (可以看這裡

對於graph Laplacian也是相同的原理,但是其傅立葉分析會更簡單一點(特徵向量不會依賴於任意所研究的圖(the "graph" is just R))

事實上,雖然我們不會詳細地討論它在這個部落格中,你可以在圖上做傅立葉分析用同樣地方式,並且把圖上的函式看作是“訊號”,做低階過濾等等。看這篇論文來了解更多資訊。A taste: 一旦你寫出 graph Laplacian(依賴於圖) 的特徵向量,你可以做相同的展開來獲得一個圖傅立葉變換。

\(GFT(f)(i) = \langle f, v_i \rangle = \sum_{j=1}^n f(j) v_i(j)\)

這裡的“函式”僅僅是向量,所以 inner product 是 normal dot product。拋開傅立葉分析,讓我們深入研究 Laplacian的特徵值和特徵向量。

Eigenvectors of the Laplacian

先前我們定義了 Laplacian :\(L=D-A\)。但是如果你使用這個定義,你最終會得到一個額外的因子 deg(v) 。這在數學上沒關係,但是會弄亂我們的公式。所以,讓我們用一個歸一化因子來重新定義 Laplacian 來保持整潔 (以防當你對在離散傅立葉變換時做歸一化操作感到驚訝)。因為我們將會除以度,所以假設沒有節點的度為零。

Definition: Let \(G\) be a graph with adjacency matrix \(A\). The combinatorial graph Laplacian \(L(G)\) is the matrix \(D-A\) , where \(D\) is the diagonal matrix whose \((i,i)\) entry is the degree of vertex \(i\). The graph Laplacian \(\mathscr{L}(G)\) is the matrix whose \((i,j)\) entry is:

\[\mathscr{L}(G)(i,j) = \begin{cases} 1 & { if } \space i=j \\ -1/\sqrt{ {deg}(i) {deg}(j)} & { if } \space i \neq j \space { and } \space (i,j) \in E \\ 0 & { otherwise} \end{cases}.\]

Let’s update our example from earlier:

normalized-laplacian-example.png

The graph Laplacian (with truncated real-valued entries)

現在 quadratic form 也被歸一化了,歸一化的方法是通過節點度加權。

$ f^T \mathscr{L} f = \frac{\sum_{(u,v)} (f(u) - f(v))^2}{\sum_v f(v)^2 {deg}(v)} $

有些作者把這叫做歸一化 graph Laplacian。你可以下面的公式\(\mathscr{L} = D^{-1/2}LD^{-1/2}\) 。大多數屬性在兩種型別的拉普拉斯運算元之間來回平滑地轉換。

例如,最簡單的 L 的特徵向量是全1向量,其特徵值為0。同樣地,向量

\((\frac{1}{\sqrt{{deg}(v)}})_{v \in V} = D^{-1/2} \mathbf{1}\)

\(\mathscr{L}\)特徵值為0的特徵向量。這是“平凡的”特徵向量,並不能給我們關於圖的任何資訊。

It also happens that the eigenvectors minimize the quadratic form \(x^T \mathscr{L} x\) (see here for a proof)。回顧一下,這是很明顯的因為最小的特徵值是零,並且這個 quadratic form 是平方和(非負的)。把0對應的特徵向量稱為平凡特徵向量\(v_0\).

下一個最小的特徵值\(\lambda_1\) ,並且它對應的特徵向量\(v_1\),是非常重要的。\(v_1\)使得quadratic form 在所有 \(v_0\) 正交的向量中最小化。

$\lambda_1 = \inf_{v \perp v_0} v^T \mathscr{L} v $

\(\lambda_1\) 提供了關於圖 G 連通性 (connectedness)的資訊。

Theorem:\(\lambda_1 > 0\) if and only if \(G\) is connected.

Proof sketch: If \(G\) is disconnected, you can write the matrix for $\mathscr{L} $ as two blocks with zeros elsewhere, meaning there are two linearly independent eigenvectors (those with all 1s on a block and zeros elsewhere). On the other hand, if \(G\) is connected and \(x\) is an eigenvector with eigenvalue zero, then the quadratic form \(x^T L x = 0 = \sum_{(u,v)} (x(u) - x(v))^2\) (note I’m using the combinatorial Laplacian for simplicity). This implies all \(x(u) - x(v) = 0\) for every edge, but there is a path connecting any two pair of vertices, so all \(x(u)\) are equal.

更重要的是,\(\lambda_1\)隨著 G 變得更加連通而增長!下面的圖展示了\(\lambda_1\)是如何增長的當你向圖新增邊時。注意開始時只有100個節點的環,然後打亂剩下的邊並且隨機向圖中新增。

increasing_eigenvalue.png

The growth rate of the second smallest eigenvalue as the density of the graph increases.

最右端的圖是當加入所有的邊( G此時是完全圖)的情況,這是\(\lambda_1=1\) (這是一個可以證明的定理)。

所有這些都大致告訴我們\(\lambda_1\)表示了一種對圖的“連通性度量”。更好的是,對應的特徵向量通過下面的定理提煉了這種度量。

Theorem (informal): Let \(G\) be a graph and $L(G) $ its normalized graph Laplacian. Let \(v_1\) be the eigenvector of \(L(G)\) corresponding to the second smallest eigenvalue of \(L(G)\). Sorting the vertices in \(G\) according to the corresponding values of \(v_1\) approximates the sparsest cut of \(G\).

未完待續