Commute Time Distance
概
本文介绍 first-passage time / cost 以及相应的 CTD (Commute Time Distance) 的显式计算公式.
符号说明
- \(\mathcal{G} = \{\mathcal{V}, \mathcal{E}\}\), 图;
- \(\mathcal{V} = \{v_1, \ldots, v_n\}\), 顶点;
- \(\mathcal{E} = \{e_{ij}\}\), 边集;
- \(W \in \mathbb{R}^{n \times n}\), \(w_{ij}\) 为边 \(e_{ij}\) 上的权重, 若 \(w_{ij} = 0\) 表示 \(i, j\) 之间不存在边;
- \(\bm{d} \in \mathbb{R}^n\), \(d_i = \sum_j w_{ij}\);
- \(D := \text{diag}(\bm{d}) \in \mathbb{R}^{n \times n}\), 对角化;
- \(L := D - W\), 带权重的 Laplacian 矩阵;
- \(P = D^{-1}W \in \mathbb{R}^{n \times n}\), \(p_{ij} = P(j|i) = w_{ij} / d_i\), 转移概率 (\(i \rightarrow j\)).
-
假设图 \(\mathcal{G}\) 是连通图, 此时可证明 \(\text{rank}(L) = n - 1\), 此时我们可以将 \(L\) 表示为:
\[\tag{1} L = U\Lambda U^T = \sum_{i=2}^n \lambda_i \bm{u}_i \bm{u}_i^T, \]其中
\[U = [\bm{u}_2, \ldots, \bm{u}_n] \in \mathbb{R}^{n \times (n - 1)}, \\ \Lambda = \text{diag}([\lambda_2, \ldots, \lambda_n]) \in \mathbb{R}^{(n - 1) \times (n - 1)}, \\ 0 < \lambda_2 \le \ldots \le \lambda_n; \] -
注意到
\[\tag{2} L \bm{1} = \bm{0}, \]故实际上 \(\bm{1}\) 是 \(L\) 的对应 \(\lambda_1 = 0\) 的特征向量,
于是我们可以定义其 \(L\) 的伪逆\[L^{\dagger} := U \Lambda^{-1} U^T, \]且满足
\[LL^{\dagger} = L^{\dagger}L = \sum_{i = 2}^n \bm{u}_i \bm{u}^T = I - \frac{1}{n} \bm{1}\bm{1}^T. \]
主要内容
Random Walk
Random Walk 是指给定状态 \(s(t) = i\), 然后按照概率 \(P(s(t + 1) = j | s(t) = i) = p_{ij}\) 的概率进行转移, 由此可以采样一个序列:
time/cost/distance
假设从状态 \(s(t) = i\) 直接转移到状态 \(s(t+1) = j\) 需要消耗 \(c_{ij}\), 则从 \(s(0)\) 到 \(s(t)\) 总共消耗了:
自然地, 我们关心从状态 \(i\) 出发首次抵达状态 \(j\)所需的消耗:
注意到, \(c_{ij} \equiv 1, \forall i, j\), \(\xi(i, j|s) = T_{ij}\).
那么对于整个图 \(\mathcal{G}\) 而言, 从状态 \(i\) 到状态 \(j\) 的平均消耗可以定义为:
特别地定义
为状态 \(i\) 到状态 \(j\) 的平均首达时间.
此外, 我们可以用马氏链的方式去理解 (3) (4):
即从状态 \(i\) 到状态 \(j\) 的消耗等价于直接到 \(j\) 的消耗 \(p_{ij} c_{ij}\) 加上先到其它点 \(j\) 的消耗 \(p_{ik} c_{ik}\) 然后加上再从这个 \(k\) 到 \(j\) 的消耗 \(p_{ik} o(j | k)\). 类似地
无论是 \(o(j|i)\) 还是 \(m(j|i)\), 一般来讲都不具有对称性, 而以下的 CTD 则符合这一性质. Commute-time distance 定义为:
此时 \(n(i, j)\) 满足一个距离的定义:
$$
n(i, j) \ge 0 \
n(i, j) = 0 \Leftrightarrow i = j \
n(i, j) = n(j, i) \
n(i, j) \le n(i, k) + n(k, j).
$$
注: 证明请参考文章中的参考文献.
私以为, 可以定义一个类似的 commute-cost distance
不知道有没有类似的概念存在.
利用伪逆求解 o, m
其中 \(r_k = \sum_j p_{kj} c_{kj}\).
proof:
定义 \(O = [o(j|i)], C = [c_{ij}]\), 此外我们用 \(\bm{o}_i, \bm{c}_i\) 来表示 \(O, C\) 的第 \(i\) 行, 其它的也是类似规定的.
注意到 (\(j \not = i\))
其中 \(\tilde{o}_{jj}\) 是人为给定的数, 其存在的目的是为了方便我们用矩阵的形式表达.
令 \(\bm{r} \in \mathbb{R}^n\) 满足 \(r_i = \bm{p}_i^T \bm{c}_i\), 并记 \(\tilde{O}\) 满足 \([\tilde{O}]_{ii} = \tilde{o}_{ii}, [\tilde{O}]_{ij} = o_{ij}, j \not = i\), 则
用矩阵形式表达即为:
其中 \(\tilde{O}_d := \text{diag}([\tilde{o}_{11},\ldots, \tilde{o}_{nn}])\).
我们再来考察下列方程:
一般说来, 因为 \(\tilde{O}_d\) 是给定的, 所以 (A1, A2) 是等价的 (如果二者均存在解), 但是注意到:
故 (A2) 有解必须满足:
这意味着, 倘若我们想通过 (A2) 来求解方程, 那么 \(\tilde{O}_d\) 必须满足 (A3) 的条件.
故我们现在求解的思路是:
- 用 (A3) 的值指定 \(o_{ii}\);
- 然后用 (A2) 求解 \(\tilde{O}\);
- 令 (保证 \(o_{ii} = 0\) ):\[O = \tilde{O} - \tilde{O}_d, \]此时 \(O\) 为 (A1) 的解.
但是我们可以取巧, 直接通过下列方程求解 \(O\):
令 \(\bm{z}^T = \frac{1}{n} \bm{1}^T O\) 可得:
通过 \(o_{jj} = 0\) 可以得到
于是
因为上式对于 \(o(i, i) = 0\) 也满足, 所以 (A4) 就是最终的解. 此外, 在 \(c_{ij} \equiv 1\) 的时候, \(r_k = 1\), 故
CTD
通过上面的结论, 我们可以知道
这里 \(vol(\mathcal{G}) = \sum_k d_k\).
假设我们为每个结点 \(v_i\) 指定一个 embedding \(\bm{x}_i \in \mathbb{R}^{n-1}\), 满足
则
于是
故
故 CTD 实际上衡量了'最优' embeddings 的一个 \(\|\cdot \|_2^2\) 度量.