Skip to content

Latent optimal transport (LOT) for low rank transport and clustering

License

Notifications You must be signed in to change notification settings

nerdslab/latentOT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Latent Optimal Transport

This is the implementation of the low-rank alignment method LOT - https://arxiv.org/abs/2012.11589

Overview

Latent optimal transport is a low-rank distributional alignment technique that is suitable for data exhibiting clustered structure. LOT leverages clustering to make transport more robust to noise and outliers.

Users can customize their cost matrix to fit their clustering strategies. The algorithm requires two numbers of anchors to be specified. The numbers naturally correspond to the numbers of clusters for the source and target.

Citation

If you find the code useful for your research, please consider citing our work:

@InProceedings{lin2021,
  title = 	 {Making transport more robust and interpretable by moving data through a small number of anchor points},
  author =       {Lin, Chi-Heng and Azabou, Mehdi and Dyer, Eva},
  booktitle = 	 {Proceedings of the 38th International Conference on Machine Learning},
  pages = 	 {6631--6641},
  year = 	 {2021},
  editor = 	 {Meila, Marina and Zhang, Tong},
  volume = 	 {139},
  series = 	 {Proceedings of Machine Learning Research},
  month = 	 {18--24 Jul},
  publisher =    {PMLR},
}

Code

The code contains a Python implementation of LOT. lot.py contains the code for aligning and estimating the transport plan for given source and target sets.

lot_mnist_demo.ipynb showcases how LOT can be used in a domain adaptation application where the goal is to align the features of MNIST train samples with those of test samples that are both perturbed (by applying Dropout/Random masking) and that only contain a subsets of digits classes.