Kernel Principal Component Analysis (KPCA) is a key technique in machine learning for extracting the nonlinear structure of data and pre-processing it for downstream learning algorithms. We study the distributed setting in which there are multiple servers, each holding a set of points, who wish to compute the principal components of the union of their pointsets. Our main result is a communication and computationally efficient algorithm that takes as input arbitrary data points and computes a set of global principal components with relative-error approximation for polynomial kernels. While recent work shows how to do PCA in a distributed setting, the kernel setting is significantly more challenging. Although the "kernel trick" is useful for efficient computation, it is unclear how to use it to reduce communication. The main problem with previous work is that it achieves communication proportional to the dimension of the data points, which if implemented straightforwardly in the kernel setting would give communication either proportional to the dimension of the feature space, or to the number of examples, both of which could be very large. We instead take a roundabout approach, using a careful combination of oblivious subspace embeddings for kernels, oblivious leverage score approximation, adaptive sampling, and sketching for low rank approximation to achieve our result. We also show that our algorithm enjoys strong performance on large scale datasets.
REF extended the kernel PCA to the distributed setting and proposed a communication-efficient distributed kernel PCA algorithm.
Distributed Kernel Principal Component Analysis
ArXiv
ArXiv
Mathematics Computer Science