Contrastive Learning Is Spectral Clustering On Similarity Graph

Tan Z., Zhang Y., Yang J. and Yuan Y. Contrastive learning is spectral clustering on similarity graph. ICLR, 2024.

本文将对比学习与谱聚类联系在一起.

主要内容

  • 我们知道, 一般的对比学习形如:

    \[\min_{\theta} \quad \mathbb{E}_{x, x^+, \{x_k^-\}_{k=1}^K} -\log \frac{ \exp(\text{sim}(f(x; \theta), f(x^+; \theta))) }{ \sum_{k=1}^K \exp(\text{sim}(f(x; \theta), f(x_k^-; \theta))) }, \]

    其中 \(\text{sim}(\cdot, \cdot)\) 是相似度函数, 比如标准的 InfoNCE 采取的是

    \[\text{sim}(x, y) = \frac{1}{\tau} \cdot \frac{x^T y}{\|x\|_2 \|y\|_2}. \]

    这里 \(\tau > 0\) 为 temperature.

  • 现在, 令 \(z = f(x)\) 为隐变量, 然后让我们简单地关注如下问题:

    \[\min_{Z} \quad \mathcal{L} = \mathbb{E}_{z, z^+, \{z_k^-\}_{k=1}^K} -\log \frac{ \exp(\text{sim}(z, z^+)) }{ \sum_{k=1}^K \exp(\text{sim}(z, z^-)) }, \]

  • 首先, 进行一些简化:

    \[\begin{array}{ll} \mathcal{L} &= \underbrace{\mathbb{E}_{z, z^+, \{z_k^-\}_{k=1}^K} -\log \frac{ \exp(\text{sim}(z, z^+)) }{ \sum_{k=1}^K \exp(\text{sim}(z, z^-)) }}_{\mathcal{L}_{main}} \\ &= \mathbb{E}_{z, z^+} \Big[-\text{sim}(z, z^+) \Big] +\mathcal{L_R}. \end{array} \]

    其中 \(\mathcal{L_R}\) 是一正则化项.

  • 进一步地, 假设 \(\mathbb{E}_{z, z^+}\) 所服从的分布为 \(P \in [0, 1]^{N \times N}\), 满足 \(\sum_{ij} P_{ij} = 1\), 则

    \[\mathcal{L}_{main} = -\sum_{ij} P_{ij} \text{sim}(z_i, z_j). \]

  • 在特殊情况下, 如

    \[\text{sim}(z_i, z_j) = -\|z_i - z_j\|_2^2, \]

    我们有

    \[\mathcal{L}_{main} =-\sum_{ij} P_{ij} \text{sim}(z_i, z_j) =\sum_{ij} P_{ij} \|z_i - z_j\|_2^2 = \text{Tr}(Z^T L Z), \]

    其中 \(L = \text{diag}(\mathbf{1}^T P) - P\)\(P\) 的 Laplacian 矩阵.

  • 换言之, \(\mathcal{L}\) 在这种情况下相当于是一个谱聚类的效果.

  • 进一步地, 作者从谱聚类的角度解释了为什么 InfoNCE 是这个样子的 (请会看原文, 很有意思).

  • 于是本文设计了 kernel-InfoNCE 损失:

    \[\text{sim}(x, y; \gamma, \tau) = - \frac{\|x - y\|^{\gamma}}{\tau}. \]

原文代码

[official-code]

posted @ 2024-10-13 17:07  馒头and花卷  阅读(10)  评论(0编辑  收藏  举报