# An online algorithm for contrastive Principal Component Analysis

arXiv: https://arxiv.org/abs/2211.07723 · HTML: https://mlsanity.com/paper/2211.07723/

## Key facts

- Cited by 2 papers in the map (data through 14 Oct 2026).
- Builds on 6 of its 16 references that are in the map.
- First posted on arXiv 14 Nov 2022.

## Builds on (most cited first, 6 of 6)

- [First Efficient Convergence for Streaming k-PCA: a Global, Gap-Free, and Near-Optimal Rate](https://mlsanity.com/paper/1607.07837/) (2016)
- [A Hebbian/Anti-Hebbian Neural Network for Linear Subspace Learning: A Derivation from Multidimensional Scaling of Streaming Data](https://mlsanity.com/paper/1503.00669/) (2015)
- [Supporting Analysis of Dimensionality Reduction Results with Contrastive Learning](https://mlsanity.com/paper/1905.03911/) (2019)
- [A biologically plausible neural network for multi-channel Canonical Correlation Analysis](https://mlsanity.com/paper/2010.00525/) (2020)
- [A biologically plausible neural network for Slow Feature Analysis](https://mlsanity.com/paper/2010.12644/) (2020)
- [Contrastive Principal Component Analysis](https://mlsanity.com/paper/1709.06716/) (2017)

## Built on by (most cited first, 2 of 2)

- [Normative framework for deriving neural networks with multi-compartmental neurons and non-Hebbian plasticity](https://mlsanity.com/paper/2302.10051/) (2023)
- [Visual Analytics Using Tensor Unified Linear Comparative Analysis](https://mlsanity.com/paper/2507.19988/) (2025)

## Abstract (arXiv)

Finding informative low-dimensional representations that can be computed efficiently in large datasets is an important problem in data analysis. Recently, contrastive Principal Component Analysis (cPCA) was proposed as a more informative generalization of PCA that takes advantage of contrastive learning. However, the performance of cPCA is sensitive to hyper-parameter choice and there is currently no online algorithm for implementing cPCA. Here, we introduce a modified cPCA method, which we denote cPCA*, that is more interpretable and less sensitive to the choice of hyper-parameter. We derive an online algorithm for cPCA* and show that it maps onto a neural network with local learning rules, so it can potentially be implemented in energy efficient neuromorphic hardware. We evaluate the performance of our online algorithm on real datasets and highlight the differences and similarities with the original formulation.
