This is the implementation of the low-rank alignment method LOT - https://arxiv.org/abs/2012.11589
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.
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},
}
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.