POT icon indicating copy to clipboard operation
POT copied to clipboard

[WIP] quantized gromov wasserstein solver

Open cedricvincentcuaz opened this issue 4 months ago • 1 comments

Types of changes

Implementation of first solvers for the quantized Fused Gromov-Wasserstein (qFGW) distance.

  • creation of new files ot/gromov/_quantized.py and test/gromov/test_quantized.py .
  • quantized_fused_gromov_wasserstein_partitioned : main function to compute the OT between two partitioned joint spaces with minimal inputs to compute global and local alignments, so that the user can perform any partitioning and representant selection as pre-processing. A boolean option build_OT allows the user to construct the OT matrix between non-partitioned spaces which might require a lot of memory. Other inputs mainly relate to inner fused_gromov_wasserstein, gromov_wasserstein and emd_1d solvers.

remark 1 : i) only the (F)GW conditional gradient solver is considered here. Note that authors also made use of the entropic projected gradient solver. ii) only the square loss is considered for both types of OT problems.

  • quantized_fused_gromov_wasserstein: main function to compute the OT between two joint spaces with axioms used by authors to partition both spaces. Taking as inputs structure matrices C1 and C2 treated as graphs, optionally as feature matrices F1 and F2, optionally other structure matrices C1_aux and C2_aux used for partitioning and representant selection implemented in get_graph_partition and get_graph_representants.

  • quantized_fused_gromov_wasserstein_samples: main function to compute the OT between two distributions in different spaces potentially endowed with features, with axioms used by authors to partition both spaces. Taking as inputs samples X1 and X2 endowed with an euclidean geometry on their respective space, optionally with feature matrices F1 and F2, where both can be considered for partitioning and representant selection (e.g kmeans) implemented in get_partition_and_representants_samples.

Motivation and context / Related issue

How has this been tested (if it applies)

  • tests for all configurations in test.test_gromov.py::test_quantized_gromov

PR checklist

  • [x] I have read the CONTRIBUTING document.
  • [x] The documentation is up-to-date with the changes I made (check build artifacts).
  • [x] All tests passed, and additional code has been covered with new tests.
  • [x] I have added the PR and Issue fix to the RELEASES.md file.

cedricvincentcuaz avatar Feb 11 '24 16:02 cedricvincentcuaz