P2OT: Progressive Partial Optimal Transport for Deep Imbalanced Clustering

Chuyu Zhang, Hui Ren, Xuming He
2/12/2026

No official code found. Best implementation: rhfeiyang/PPOT (19 stars, last commit 2024-01-19).

Abstract

Deep clustering, which learns representation and semantic clustering without labels information, poses a great challenge for deep learning-based approaches. Despite significant progress in recent years, most existing methods focus on uniformly distributed datasets, significantly limiting the practical applicability of their methods. In this paper, we first introduce a more practical problem setting named deep imbalanced clustering, where the underlying classes exhibit an imbalance distribution. To tackle this problem, we propose a novel pseudo-labeling-based learning framework. Our framework formulates pseudo-label generation as a progressive partial optimal transport problem, which progressively transports each sample to imbalanced clusters under prior distribution constraints, thus generating imbalance-aware pseudo-labels and learning from high-confident samples. In addition, we transform the initial formulation into an unbalanced optimal transport problem with augmented constraints, which can be solved efficiently by a fast matrix scaling algorithm. Experiments on various datasets, including a human-curated long-tailed CIFAR100, challenging ImageNet-R, and large-scale subsets of fine-grained iNaturalist2018 datasets, demonstrate the superiority of our method.

View on arXivView PDF

Code Implementations(1)

rhfeiyang/PPOTCommunity100%

Official implementation of 'P$^2$OT: Progressive Partial Optimal Transport for Deep Imbalanced Clustering'. (Accepted by ICLR 2024)

193PythonOct 8, 20232 years agoNOASSERTION
clusteringimbalanced-clusteringmachine-learningoptimal-transport

Similar Papers

Cite this paper

@article{zhang2026pot,
  title  = {P2OT: Progressive Partial Optimal Transport for Deep Imbalanced Clustering},
  author = {Chuyu Zhang and Hui Ren and Xuming He},
  year   = {2026},
  eprint = {2401.09266},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2401.09266},
  journal = {ICLR 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2401.09266.svg)](https://codeofpaper.com/paper/2401.09266)

Discussion