原文:When Gaussian Process Meets Big Data: A Reviewof Scalable GPs
原文作者:Haitao Liu , Yew-Soon Ong
论文解读者:赵进
编者按
高斯过程模型因其出色的预测性能在仿真建模中得到了广泛应用,然而在当今大数据时代,其高昂的计算成本越来越成为一个突出的问题。为了应对这一挑战,研究人员提出了多种可扩展的高斯过程模型。本文详细介绍了当前主流的一些可扩展高斯过程模型,并对它们进行了对比分析。
摘要
本文专门回顾了最先进的可扩展高斯模型,包括全局近似和局部近似两大领域。在全局近似方面,本文关注稀疏近似方法,包括修改先验进行精确推理的先验近似、保留精确先验进行近似推理的后验近似,以及利用核矩阵特定结构的结构化稀疏近似。在局部近似方面,则关注专家混合模型,通过多个局部专家的模型平均来提高预测效果。最后,文章讨论了可扩展高斯模型在不同情况下的扩展性和未解决的问题,以启发未来研究的新思路。
引言
大数据带来的海量信息和不断发展的计算机硬件推动了机器学习的成功,但也给高斯过程回归(GPR)带来了挑战。作为一种著名的非参数、可解释的贝叶斯模型,高斯模型的时间复杂度为 O ( n 3 ) \mathcal{O}(n^{3}) O(n3)。为了在保持预测质量的同时提高可扩展性,人们提出了多种可扩展的高斯模型,可大致分为以下几类:
- 全局近似:通过全局提炼来近似核矩阵 K n n \boldsymbol{K}_{nn} Knn。这种提炼可以通过以下几种方式实现:
- 使用 m ( m ≪ n ) m(m≪n) m(m≪n) 个点的训练数据子集,得到一个较小的核矩阵 K m m \boldsymbol{K}_{mm} Kmm
- 移除 K n n \boldsymbol{K}_{nn} Knn 中不相关的元素,得到一个稀疏核矩阵 K ~ n n \tilde{\boldsymbol{K}}_{nn} K~nn
- Nyström 近似,选择 m m m 个诱导点来近似 K n n \boldsymbol{K}_{nn} Knn,即 K n n ≈ K n m K m m − 1 K m n \boldsymbol{K}{nn} \approx \boldsymbol{K}{nm} \boldsymbol{K}{mm}^{-1} \boldsymbol{K}_{mn} Knn≈KnmKmm−1Kmn
- 局部近似:遵循分而治之的思想,关注训练数据的局部子集。局部近似每次只需处理包含 m 0 ( m 0 ≪ n ) m_0(m_0≪n) m0(m0≪n) 个数据点的局部专家。此外,为了生成具有有效不确定性的平滑预测,采用了专家混合或产品的模型平均法。
全局近似
全局近似主要通过以下3种方式近似核矩阵 K n n \boldsymbol{K}_{nn} Knn:
数据子集 (Subset of Data)
SoD是通过使用训练数据 D D D的一个子集 D s o d D_{sod} Dsod来近似完整 GP 的最简单策略。因此,SoD在时间复杂度为 O ( m 3 ) \mathcal{O}(m^3) O(m3)的情况下保留了标准高斯推理,因为它操作的核矩阵 K m m \boldsymbol{K}_{mm} Kmm仅包含 m m m个 ( m ≪ n m≪n m≪n) 数据点。尽管SoD在数据冗余的情况下能产生合理的预测均值,但由于子集的限制,它在产生预测方差时表现不佳,容易导致过拟合。
对于 D s o d D_{sod} Dsod的选择,有几种方法:
- 可以随机从 D D D中选择 m m m个点;
- 使用聚类技术(如 k k k-means 和 KD 树)将数据分成 m m m个子集,并选择每个子集的中心点;
- 采用主动学习标准(如微分熵、信息增益和匹配追踪)来依次选择数据点,但这会带来更高的计算成本。
稀疏核(Sparse Kernels)
稀疏核通过特别设计的紧支撑核直接实现核矩阵 K n n \boldsymbol{K}_{nn} Knn的稀疏表示 K ~ n n \tilde{\boldsymbol{K}}_{nn} K~nn,即当 ∣ x i − x j ∣ \left|\boldsymbol{x}_i - \boldsymbol{x}j\right| ∣xi−xj∣超过某个阈值时,令 k ( x i , x j ) = 0 k(\boldsymbol{x}_i, \boldsymbol{x}_j) = 0 k(xi,xj)=0。只使用 K ~ n n \tilde{\boldsymbol{K}}_{nn} K~nn 中的非零元素参与计算。使用紧支撑核的高斯模型,其计算复杂度为 O ( α n 3 ) \mathcal{O}(\alpha n^3) O(αn3), 0 < α < 1 0 < \alpha < 1 0<α<1。构建有效紧支撑核的主要挑战是要确保 K ~ n n \tilde{\boldsymbol{K}}_{nn} K~nn 为正半定矩阵,即 v ⊤ K ~ n n v ≥ 0 , ∀ v ∈ R n \boldsymbol{v}^{\top} \tilde{\boldsymbol{K}}_{nn} \boldsymbol{v} \geq 0, \forall \boldsymbol{v} \in \mathbb{R}^n v⊤K~nnv≥0,∀v∈Rn。
稀疏近似(Sparse Approximations)
通常, 特征分解有助于选择前 m m m个特征值来近似 K n n \boldsymbol{K}_{nn} Knn,即 K n n ≈ U n m Λ m m U n m ⊤ \boldsymbol{K}_{nn} \approx \boldsymbol{U}_{nm} \boldsymbol{\Lambda}_{mm} \boldsymbol{U}_{nm}^{\top} Knn≈UnmΛmmUnm⊤。然后,可以通过 Sherman-Morrison-Woodbury 公式计算逆矩阵
( K n n ϵ ) − 1 ≈ σ ϵ − 2 I n + σ ϵ − 2 U n m ( σ ϵ 2 Λ m m − 1 + U n m ⊤ U n m ) − 1 U n m ⊤ \left(\boldsymbol{K}_{n n}^\epsilon\right)^{-1} \approx \sigma_\epsilon^{-2} \boldsymbol{I}_n+\sigma_\epsilon^{-2} \boldsymbol{U}_{n m}\left(\sigma_\epsilon^2 \boldsymbol{\Lambda}_{m m}^{-1}+\boldsymbol{U}_{n m}^{\top} \boldsymbol{U}_{n m}\right)^{-1} \boldsymbol{U}_{n m}^{\top} (Knnϵ)−1≈σϵ−2In+σϵ−2Unm(σϵ2Λmm−1+Unm⊤Unm)−1Unm⊤
以及通过 Sylvester 行列式定理计算行列式
∣ K n n ϵ ∣ ≈ ∣ Λ m m ∣ ∣ σ ϵ 2 Λ m m − 1 + U n m ⊤ U n m ∣ \left|\boldsymbol{K}_{n n}^\epsilon\right| \approx\left|\boldsymbol{\Lambda}_{m m}\right|\left|\sigma_\epsilon^2 \boldsymbol{\Lambda}_{m m}^{-1}+\boldsymbol{U}_{n m}^{\top} \boldsymbol{U}_{n m}\right| ∣Knnϵ∣≈∣Λmm∣ σϵ2Λmm−1+Unm⊤Unm
从而使计算复杂度达到 O ( n m 2 ) \mathcal{O}(nm^2) O(nm2) 。然而,特征分解本身是一个 O ( n 3 ) \mathcal{O}(n^3) O(n3)的操作,因此,我们使用 m m m个数据点来近似 K n n \boldsymbol{K}_{nn} Knn的特征函数,得到 Nyström 近似
K n n ≈ Q n n = K n m K m m − 1 K n m ⊤ \boldsymbol{K}_{n n} \approx Q_{n n}=\boldsymbol{K}_{n m} \boldsymbol{K}_{m m}^{-1} \boldsymbol{K}_{n m}^{\top} Knn≈Qnn=KnmKmm−1Knm⊤
这极大地提高了大规模高斯过程模型的效率。然而,这种近似可能会产生负的预测方差,因为它并不是一个完整的生成概率模型。Nyström 近似仅适用于训练数据,无法保证核矩阵的正定性。
局部近似
受分而治之思想的启发,局部近似通过局部专家来提高高斯过程的可扩展性。此外,相较于全局近似,局部化可以更好地捕捉非平稳特征。局部近似包括直接使用纯局部专家进行预测的朴素局部专家模型,以及通过模型平均提升预测效果的专家混合和专家组合模型
朴素局部专家模型(Naive Local Experts)
通常来说,距离较远的点对之间的相关性较低。因此,在数据集 D D D的子集上训练的局部专家有望以较低的时间复杂度产生合理的预测。为此诞生了朴素局部专家模型,该模型让局部专家 M i \mathcal{M}i Mi代表由 X i X_i Xi定义的子区域 Ω i \Omega_i Ωi。在 x ∗ ∈ Ω i \boldsymbol{x}_* \in \Omega_i x∗∈Ωi处的预测可表示为 p ( y ∗ ∣ D , x ∗ ) ≈ p i ( y ∗ ∣ D i , x ∗ ) p(y_* \mid \mathcal{D}, \boldsymbol{x}_*) \approx p_i(y* \mid \mathcal{D}_i, \boldsymbol{x}_*) p(y∗∣D,x∗)≈pi(y∗∣Di,x∗)。
尽管朴素局部专家能够捕捉局部结构带来的非平稳特征,但在子区域边界上会产生不连续的预测,并且由于未能考虑长期的空间相关性,导致泛化能力较差。为了解决不连续性问题,研究者们假设了连续性条件,使相邻的局部 专家在边界上共享几乎相同的预测结果。然而,该假设存在预测方差不一致甚至为负的问题,并且仅适用于低维度。
相比之下,模型平均策略更为流行,通过对接下来阐述的专家混合或组合模型,能够很好地将多个专家的预测结果平滑化。
专家混合模型(Mixture of Experts)
专家混合模型通过结合具有各自参数的本地和多样化专家,以提高整体准确性和可靠性。专家混合模型通常表示为高斯混合模型:
p ( y ∣ x ) = ∑ i = 1 M g i ( x ) p i ( y ∣ x ) p(y \mid \boldsymbol{x})=\sum_{i=1}^M g_i(\boldsymbol{x}) p_i(y \mid \boldsymbol{x}) p(y∣x)=i=1∑Mgi(x)pi(y∣x)
其中, g i ( x ) g_i(\boldsymbol{x}) gi(x)是权重函数,通常采用参数化形式,例如softmax或probit函数,并且可以被认为是专家指示器 z z z为 i i i的概率 p ( z = i ) = π i p(z=i)=\pi_i p(z=i)=πi。公式中的权重函数通过对输入空间的概率划分来管理混合模型,以定义各个专家负责的子区域。专家可以是各种机器学习模型,例如线性模型和支持向量机。
专家混合模型的训练通常假设数据是独立同分布的,因此我们通过最大化因子化的对数似然函数 ∑ t = 1 n log p ( y t ∣ x t ) \sum_{t=1}^n \log p(y_t \mid x_t) ∑t=1nlogp(yt∣xt)来同时学习门控函数和专家,这可以通过基于梯度的优化器,或更常用的 EM 算法实现。这种联合学习允许通过数据和专家自身以概率(软)划分输入空间,并为不同但重叠的子区域指定不同的专家。最终,在 x ∗ \boldsymbol{x}_* x∗ 处的预测分布为:
p ( y ∗ ∣ D , x ∗ ) = ∑ i = 1 M g i ( x ∗ ∣ D ) p i ( y ∗ ∣ D , x ∗ ) p\left(y_* \mid \mathcal{D}, \boldsymbol{x}_*\right)=\sum_{i=1}^M g_i\left(\boldsymbol{x}_* \mid \mathcal{D}\right) p_i\left(y_* \mid \mathcal{D}, \boldsymbol{x}_*\right) p(y∗∣D,x∗)=i=1∑Mgi(x∗∣D)pi(y∗∣D,x∗)
其中, g i ( x ∗ ∣ D ) g_i(\boldsymbol{x}_* \mid \mathcal{D}) gi(x∗∣D)可以视为后验概率 p ( z ∗ = i ∣ D ) p(z_*=i \mid \mathcal{D}) p(z∗=i∣D),称为责任度。
专家组合模型(Product of Experts)
不同于通过加权求和多个概率分布(专家)的专家混合方法,专家组合方法通过将这些概率分布相乘来规避专家混合法中的权重分配问题:
p ( y ∣ x ) = 1 Z ∏ i = 1 M p i ( y ∣ x ) p(y \mid x)=\frac{1}{Z} \prod_{i=1}^M p_i(y \mid x) p(y∣x)=Z1i=1∏Mpi(y∣x)
其中, Z Z Z是归一化因子,但这会使最大化似然函数 ∑ i = 1 n log p ( y i ∣ x i ) \sum_{i=1}^n \log p\left(y_i \mid \boldsymbol{x}_i\right) ∑i=1nlogp(yi∣xi)出现问题。
幸运的是,因为 p i ( y ∣ x ) p_i(y \mid x) pi(y∣x)是高斯分布,多个高斯分布的乘积仍然是一个高斯分布,所以其边际似然可分解为
p ( y ∣ X ) = ∏ i = 1 M p ( y i ∣ X i ) p(\boldsymbol{y} \mid \boldsymbol{X})=\prod_{i=1}^M p\left(\boldsymbol{y}_i \mid \mathbf{X}_i\right) p(y∣X)=i=1∏Mp(yi∣Xi)
其中, p i ( y i ∣ X i ) ∼ N ( y i ∣ 0 , K i + σ ϵ , i 2 I n i ) p_i\left(\boldsymbol{y}_i \mid \boldsymbol{X}_i\right) \sim \mathcal{N}\left(\boldsymbol{y}_i \mid \mathbf{0}, \boldsymbol{K}_i+\sigma_{\epsilon, i}^2 \boldsymbol{I}_{n_i}\right) pi(yi∣Xi)∼N(yi∣0,Ki+σϵ,i2Ini) , , , K i = k ( X i , X i ) ∈ R n i × n i \boldsymbol{K}_i = k(\boldsymbol{X}_i, \boldsymbol{X}_i) \in \mathbb{R}^{n_i \times n_i} Ki=k(Xi,Xi)∈Rni×ni, n i n_i ni为专家 M i \mathcal{M}i Mi的训练数据大小。这种分解使得完整的核矩阵 K n n \boldsymbol{K}_{nn} Knn退化为对角块矩阵 diag [ K 1 , ⋯ , K M ] \operatorname{diag}[\boldsymbol{K}_1, \cdots, \boldsymbol{K}_M] diag[K1,⋯,KM],从而
K n n − 1 ≈ diag [ K 1 − 1 , ⋯ , K M − 1 ] \boldsymbol{K}_{nn}^{-1} \approx \operatorname{diag}[\boldsymbol{K}_1^{-1}, ⋯ ,\boldsymbol{K}_M^{-1}] Knn−1≈diag[K1−1,⋯ ,KM−1]
因此,给定 n i = m 0 n_i = m_0 ni=m0的情况下,计算复杂度显著降低至 O ( n m 0 2 ) \mathcal{O}(n m_0^2) O(nm02)。