From d5177e7b332d71d7f8365c4cdd02ccfe034c2991 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David-Elias=20K=C3=BCnstle?= Date: Thu, 6 Jun 2024 18:14:57 +0200 Subject: [PATCH] Add JOSS paper and improvements (#78) * Create references.bib * Create paper.md * Create build-paper-pdf.yaml * add supplementaries * extend unit tests * extend documentation Co-authored-by: Mojtaba Barzegari <40744245+mbarzegary@users.noreply.github.com> --- .github/workflows/build-paper-pdf.yaml | 37 ++ .github/workflows/release.yml | 10 +- .github/workflows/test.yml | 18 +- README.md | 60 +- cblearn/datasets/_food_similarity.py | 8 +- cblearn/datasets/_musician_similarity.py | 17 +- cblearn/datasets/_triplet_response.py | 19 + cblearn/datasets/descr/car_similarity.rst | 3 +- .../datasets/tests/test_food_similarity.py | 1 + .../tests/test_musician_similarity.py | 8 +- .../datasets/tests/test_triplet_response.py | 33 ++ cblearn/embedding/_base.py | 43 +- cblearn/embedding/_ckl.py | 2 + cblearn/embedding/_dims.py | 27 +- cblearn/embedding/_forte.py | 2 + cblearn/embedding/_gnmds.py | 2 + cblearn/embedding/_mlds.py | 9 +- cblearn/embedding/_oenn.py | 3 + cblearn/embedding/_soe.py | 2 + cblearn/embedding/_ste.py | 4 +- .../tests/test_sklearn_estimator_checks.py | 146 +++-- cblearn/metrics/__init__.py | 2 +- cblearn/metrics/_triplets.py | 15 +- cblearn/metrics/tests/test_triplets.py | 8 +- cblearn/preprocessing/_label.py | 46 +- cblearn/utils/__init__.py | 1 + cblearn/utils/_data_format.py | 22 +- cblearn/utils/_validate_data.py | 45 +- cblearn/utils/tests/test_validate_data.py | 15 + docs/car_embedding.jpg | Bin 0 -> 216483 bytes docs/comparison_tasks.png | Bin 0 -> 4241 bytes docs/comparison_tasks.svg | 271 +++++++++ docs/conf.py | 14 +- docs/contributor_guide/index.rst | 61 +- docs/getting_started/index.rst | 104 ++++ docs/getting_started/quickstart.py | 14 + docs/icon.png | Bin 0 -> 3923 bytes docs/icon.svg | 178 ++++++ docs/index.rst | 51 +- docs/install.rst | 99 ---- docs/logo-dark.png | Bin 0 -> 6856 bytes docs/logo-dark.svg | 193 +++++++ docs/logo-light.png | Bin 0 -> 6867 bytes docs/logo-light.svg | 193 +++++++ docs/references/index.rst | 8 +- docs/sg_execution_times.rst | 46 ++ docs/user_guide/adam_lr_triplet.png | Bin 0 -> 91837 bytes docs/user_guide/index.rst | 118 +++- docs/user_guide/torch_speedtest_triplets.png | Bin 0 -> 38015 bytes examples/README.rst | 2 + examples/ordinal_embedding.py | 1 + paper/.gitignore | 2 + paper/images/adam_lr.pdf | Bin 0 -> 11084 bytes paper/images/adam_lr_triplet.pdf | Bin 0 -> 12482 bytes paper/images/car_example.pdf | Bin 0 -> 12874 bytes paper/images/datasets.pdf | Bin 0 -> 18817 bytes .../deltaerror-per-algorithm_cblearn-all.pdf | Bin 0 -> 15853 bytes .../deltaerror-per-algorithm_library.pdf | Bin 0 -> 15862 bytes .../deltatime-per-algorithm_cblearn-all.pdf | Bin 0 -> 15917 bytes .../deltatime-per-algorithm_library.pdf | Bin 0 -> 17039 bytes paper/images/time-per-triplets_gpu.pdf | Bin 0 -> 20347 bytes paper/images/torch_speedtest.pdf | Bin 0 -> 30557 bytes paper/images/torch_speedtest_triplets.pdf | Bin 0 -> 25495 bytes paper/paper.md | 137 +++++ paper/references.bib | 532 ++++++++++++++++++ paper/supplementary.md | 91 +++ paper/supplementary.pdf | Bin 0 -> 384991 bytes setup.cfg | 12 +- 68 files changed, 2437 insertions(+), 298 deletions(-) create mode 100644 .github/workflows/build-paper-pdf.yaml create mode 100644 cblearn/datasets/tests/test_triplet_response.py create mode 100644 docs/car_embedding.jpg create mode 100644 docs/comparison_tasks.png create mode 100644 docs/comparison_tasks.svg create mode 100644 docs/getting_started/index.rst create mode 100644 docs/getting_started/quickstart.py create mode 100644 docs/icon.png create mode 100644 docs/icon.svg delete mode 100644 docs/install.rst create mode 100644 docs/logo-dark.png create mode 100644 docs/logo-dark.svg create mode 100644 docs/logo-light.png create mode 100644 docs/logo-light.svg create mode 100644 docs/sg_execution_times.rst create mode 100644 docs/user_guide/adam_lr_triplet.png create mode 100644 docs/user_guide/torch_speedtest_triplets.png create mode 100644 paper/.gitignore create mode 100644 paper/images/adam_lr.pdf create mode 100644 paper/images/adam_lr_triplet.pdf create mode 100644 paper/images/car_example.pdf create mode 100644 paper/images/datasets.pdf create mode 100644 paper/images/deltaerror-per-algorithm_cblearn-all.pdf create mode 100644 paper/images/deltaerror-per-algorithm_library.pdf create mode 100644 paper/images/deltatime-per-algorithm_cblearn-all.pdf create mode 100644 paper/images/deltatime-per-algorithm_library.pdf create mode 100644 paper/images/time-per-triplets_gpu.pdf create mode 100644 paper/images/torch_speedtest.pdf create mode 100644 paper/images/torch_speedtest_triplets.pdf create mode 100644 paper/paper.md create mode 100644 paper/references.bib create mode 100644 paper/supplementary.md create mode 100644 paper/supplementary.pdf diff --git a/.github/workflows/build-paper-pdf.yaml b/.github/workflows/build-paper-pdf.yaml new file mode 100644 index 0000000..612bebc --- /dev/null +++ b/.github/workflows/build-paper-pdf.yaml @@ -0,0 +1,37 @@ +name: Build paper + +on: + push: + paths: + - paper/** + +jobs: + paper: + runs-on: ubuntu-latest + name: Build Paper PDF + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build draft PDF + uses: openjournals/openjournals-draft-action@master + with: + journal: joss + # This should be the path to the paper within your repo. + paper-path: paper/paper.md + - name: Build supplementary PDF + uses: docker://pandoc/latex:2.9 + with: + args: >- # allows you to break string into multiple lines + --standalone + --output=paper/supplementary.pdf + --bibliography=paper/references.bib + --resource-path=paper/ + paper/supplementary.md + - name: Upload + uses: actions/upload-artifact@v4 + with: + name: paper-pdf + # This is the output path where Pandoc will write the compiled + # PDF. Note, this should be the same directory as the input + # paper.md + path: paper/*.pdf diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index da37ea3..d713de6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,8 +1,8 @@ -# Based on: +# Based on: # https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ -name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI +name: Release -on: +on: push: branches: - main @@ -14,9 +14,9 @@ jobs: name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: "3.10" - name: Install pypa/build diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 10f1696..6246014 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions -name: Lint and test code, test documentation build +name: Test on: push: @@ -35,7 +35,7 @@ jobs: # see .flake8 config file for selected/ignored rules. # warnings can be found in the action logs - docs: + docs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -55,21 +55,26 @@ jobs: test: strategy: matrix: - python-version: + python-version: - "3.9" - "3.10" - "3.11" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} cache: pip cache-dependency-path: setup.cfg - name: Setup R uses: r-lib/actions/setup-r@v2 + - name: Install R dependencies + run: | + # 2024-05-14: loe is not available from CRAN, we have to fallback to the archive. + wget https://cran.r-project.org/src/contrib/Archive/loe/loe_1.1.tar.gz + R CMD INSTALL ./loe_1.1.tar.gz - name: Install package with dependencies run: | python3 -m pip install --upgrade pip @@ -79,10 +84,9 @@ jobs: run: | pytest cblearn --cov=cblearn --cov-report=xml --remote-data - name: Upload coverage to Codecov - uses: codecov/codecov-action@v1 + uses: codecov/codecov-action@v4 with: token: ${{ secrets.CODECOV_TOKEN }} file: ./coverage.xml flags: unittests env_vars: OS,PYTHON - diff --git a/README.md b/README.md index 699ad2b..3160287 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,15 @@ -# cblearn +

+ +


+ ## Comparison-based Machine Learning in Python [![PyPI version](https://img.shields.io/pypi/v/cblearn.svg)](https://pypi.python.org/pypi/cblearn) [![Documentation](https://readthedocs.org/projects/cblearn/badge/?version=stable)](https://cblearn.readthedocs.io/en/stable/?badge=stable) [![Test status](https://github.com/cblearn/cblearn/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/cblearn/cblearn/actions/workflows/test.yml) [![Test Coverage](https://codecov.io/gh/cblearn/cblearn/branch/master/graph/badge.svg?token=P9JRT6OK6O)](https://codecov.io/gh/cblearn/cblearn) -Comparison-based Learning algorithms are the Machine Learning algorithms to use when training data contains similarity comparisons ("A and B are more similar than C and D") instead of data points. - -Triplet comparisons from human observers help model the perceived similarity of objects. -These human triplets are collected in studies, asking questions like -"Which of the following bands is most similar to Queen?" or -"Which color appears most similar to the reference?". +Comparison-based learning methods are machine learning algorithms using similarity comparisons ("A and B are more similar than C and D") instead of featurized data. -This library provides an easy-to-use interface for comparison-based learning algorithms. -It plays hand-in-hand with scikit-learn: ```python from sklearn.datasets import load_iris @@ -36,51 +32,25 @@ embedding = estimator.fit_transform(triplets) print(f"The embedding has shape {embedding.shape}.") ``` -Please try the [Examples](https://cblearn.readthedocs.io/en/stable/generated_examples/index.html). - ## Getting Started -Install cblearn as described [here](https://cblearn.readthedocs.io/en/stable/install.html) and try the [examples](https://cblearn.readthedocs.io/en/stable/generated_examples/index.html). - -Find a theoretical introduction to comparison-based learning, the datatypes, -algorithms, and datasets in the [User Guide](https://cblearn.readthedocs.io/en/stable/user_guide/index.html). - -## Features - -### Datasets - -*cblearn* provides utility methods to simplify the loading and conversion -of your comparison datasets. In addition, some functions download and load multiple real-world comparisons. +* [Installation & Quickstart](https://cblearn.readthedocs.io/en/stable/getting_started.html) +* [Examples](https://cblearn.readthedocs.io/en/stable/generated_examples/index.html). +* [User Guide](https://cblearn.readthedocs.io/en/stable/user_guide/index.html). -| Dataset | Query | #Object | #Response | #Triplet | -| --- | --- | ---:| ---:| ---:| -| Vogue Cover | Odd-out Triplet | 60 | 1,107 | 2,214 | -| Nature Scene | Odd-out Triplet | 120 | 3,355 | 6,710 | -| Car | Most-Central Triplet | 60 | 7,097 | 14,194 | -| Material | Standard Triplet | 100 | 104,692 |104,692 | -| Food | Standard Triplet | 100 | 190,376 |190,376 | -| Musician | Standard Triplet | 413 | 224,792 |224,792 | -| Things Image Testset | Odd-out Triplet | 1,854 | 146,012 | 292,024 | -| ImageNet Images v0.1 | Rank 2 from 8 | 1,000 | 25,273 | 328,549 | -| ImageNet Images v0.2 | Rank 2 from 8 | 50,000 | 384,277 | 5M | - - -### Embedding Algorithms - -| Algorithm | Default | Pytorch (GPU) | Reference Wrapper | -| --------------------------- | :---: | :-----------: | :---------------: | -| Crowd Kernel Learning (CKL) | X | X | | -| FORTE | | X | | -| GNMDS | X | X | | -| Maximum-Likelihood Difference Scaling (MLDS) | X | | [MLDS (R)](https://cran.r-project.org/web/packages/MLDS/index.html)| -| Soft Ordinal Embedding (SOE) | X | X | [loe (R)](https://cran.r-project.org/web/packages/loe/index.html) | -| Stochastic Triplet Embedding (STE/t-STE) | X | X | | ## Contribute We are happy about your bug reports, questions or suggestions as Github Issues and code or documentation contributions as Github Pull Requests. Please see our [Contributor Guide](https://cblearn.readthedocs.io/en/stable/contributor_guide/index.html). +## Related packages + +There are more Python packages for comparison-based learning: + +- [metric-learn](http://contrib.scikit-learn.org/metric-learn) is a collection of algorithms for metric learning. The *weakly supervised* algorithms learn from triplets and quadruplets. +- [salmon](https://docs.stsievert.com/salmon/) is a package to collect triplets efficiently in crowd-sourced experiments. Therefore it implements ordinal embedding algorithms and sampling strategies to actively query the most informative comparisons. + ## Authors and Acknowledgement *cblearn* was initiated by current and former members of the [Theory of Machine Learning group](http://www.tml.cs.uni-tuebingen.de/index.php) of Prof. Dr. Ulrike von Luxburg at the University of Tübingen. The leading developer is [David-Elias Künstle](http://www.tml.cs.uni-tuebingen.de/team/kuenstle/index.php). diff --git a/cblearn/datasets/_food_similarity.py b/cblearn/datasets/_food_similarity.py index e9d6628..a8e31ed 100644 --- a/cblearn/datasets/_food_similarity.py +++ b/cblearn/datasets/_food_similarity.py @@ -27,7 +27,7 @@ def fetch_food_similarity(data_home: Optional[os.PathLike] = None, download_if_m .. warning:: This function downloads the file without verifying the ssl signature to circumvent an outdated certificate of the dataset hosts. However, after downloading the function verifies the file checksum before loading the file to minimize the risk of man-in-the-middle attacks. - + =================== ===================== Triplets 190376 Objects 100 @@ -83,12 +83,14 @@ def fetch_food_similarity(data_home: Optional[os.PathLike] = None, download_if_m archive_path = _base._fetch_remote(ARCHIVE, dirname=data_home) finally: ssl._create_default_https_context = ssl_default - + with zipfile.ZipFile(archive_path) as zf: with zf.open('food100-dataset/all-triplets.csv', 'r') as f: triplets = np.loadtxt(f, dtype=str, delimiter=';') + triplets = np.char.strip(triplets) # trim whitespace - image_names = np.asarray([name[len('food100-dataset/'):] for name in zf.namelist() + image_names = np.asarray([name[len('food100-dataset/'):] + for name in zf.namelist() if name.startswith('food100-dataset/images/') and name.endswith('.jpg')]) diff --git a/cblearn/datasets/_musician_similarity.py b/cblearn/datasets/_musician_similarity.py index 75f2e31..17a19ec 100644 --- a/cblearn/datasets/_musician_similarity.py +++ b/cblearn/datasets/_musician_similarity.py @@ -20,15 +20,21 @@ def fetch_musician_similarity(data_home: Optional[os.PathLike] = None, download_if_missing: bool = True, shuffle: bool = True, random_state: Optional[np.random.RandomState] = None, - return_triplets: bool = False) -> Union[Bunch, np.ndarray]: + return_triplets: bool = False, + valid_triplets: bool = True) -> Union[Bunch, np.ndarray]: """ Load the MusicSeer musician similarity dataset (triplets). =================== ===================== - Triplets 131.970 + Triplets 118.263 Objects (Artists) 448 Dimensionality unknown =================== ===================== + .. warning:: + This dataset contains triplets of musicians, which are not unique. + I.e. for some triplets (i, j, k), i==j, j==k, or i==k is possible. + This function by default filters out these triplets, but this can be disabled by setting `valid_triplets=False`. + See :ref:`musician_similarity_dataset` for a detailed description. Args: @@ -42,6 +48,8 @@ def fetch_musician_similarity(data_home: Optional[os.PathLike] = None, download_ Initialization for shuffle random generator return_triplets : boolean, default=False. If True, returns numpy array instead of a Bunch object. + valid_triplets: boolean, default=True. + If True, only valid triplets are returned. I.e. triplets where i!=j!=k. Returns: dataset : :class:`~sklearn.utils.Bunch` @@ -102,6 +110,11 @@ def fetch_musician_similarity(data_home: Optional[os.PathLike] = None, download_ triplet_filter = musicians_data['other'] != '' # remove bi-tuples. triplet_ids = np.c_[musicians_data['target'], musicians_data['chosen'], musicians_data['other']] + if valid_triplets: + triplet_filter = (triplet_filter + & (triplet_ids[:, 0] != triplet_ids[:, 1]) + & (triplet_ids[:, 1] != triplet_ids[:, 2]) + & (triplet_ids[:, 0] != triplet_ids[:, 2])) triplet_ids = triplet_ids[triplet_filter].astype(int) all_ids, triplets = np.unique(triplet_ids, return_inverse=True) diff --git a/cblearn/datasets/_triplet_response.py b/cblearn/datasets/_triplet_response.py index 2cfd736..6d020c4 100644 --- a/cblearn/datasets/_triplet_response.py +++ b/cblearn/datasets/_triplet_response.py @@ -9,6 +9,17 @@ from cblearn.datasets._datatypes import NoiseTarget, Distance +def _count_unique_items(query): + """ Count unique items per row in a 2D array. + + Efficient approach even for large number of rows + and integer items: + https://stackoverflow.com/a/48473125 + """ + sorted_query = np.sort(query, axis=1) + return (sorted_query[:, 1:] != sorted_query[:, :-1]).sum(axis=1) + 1 + + def noisy_triplet_response(triplets: utils.Query, embedding: np.ndarray, result_format: Optional[str] = None, noise: Union[None, str, Callable] = None, noise_options: Dict = {}, noise_target: Union[str, NoiseTarget] = 'differences', @@ -63,6 +74,14 @@ def noisy_triplet_response(triplets: utils.Query, embedding: np.ndarray, result_ result_format = utils.check_format(result_format, triplets, None) triplets: np.ndarray = utils.check_query(triplets, result_format=utils.QueryFormat.LIST) embedding = check_array(embedding) + if triplets.shape[1] != 3: + raise ValueError("Triplets require 3 columns.") + if (triplets < 0).any() or (triplets >= embedding.shape[0]).any(): + raise ValueError("Triplet indices must be within the range of the embedding.") + non_unique_rows = _count_unique_items(triplets) != 3 + if (non_unique_rows).any(): + raise ValueError(f"Triplets must contain unique indices, got {triplets[non_unique_rows]}.") + if isinstance(noise, str): random_state = check_random_state(random_state) noise_fun: Callable = getattr(random_state, noise) diff --git a/cblearn/datasets/descr/car_similarity.rst b/cblearn/datasets/descr/car_similarity.rst index 84c2685..738270c 100644 --- a/cblearn/datasets/descr/car_similarity.rst +++ b/cblearn/datasets/descr/car_similarity.rst @@ -10,7 +10,8 @@ The people chose one car of three, such that the following statement is true: All images were found on Wikimedia Commons and are assigned to one of four classes: ORDINARY CARS, SPORTS CARS, OFF-ROAD/SPORT UTILITY VEHICLES, and OUTLIERS. -The corresponding car images are available with the _`full dataset`. +The corresponding car images are available here in the `full dataset`_. + .. _full dataset: http://www.tml.cs.uni-tuebingen.de/team/luxburg/code_and_data/index.php **Data Set Characteristics:** diff --git a/cblearn/datasets/tests/test_food_similarity.py b/cblearn/datasets/tests/test_food_similarity.py index c02325a..9edf1a1 100644 --- a/cblearn/datasets/tests/test_food_similarity.py +++ b/cblearn/datasets/tests/test_food_similarity.py @@ -11,6 +11,7 @@ def test_fetch_food(tmp_path): assert bunch.data.shape == (190376, 3) assert bunch.image_names.shape == (100, ) + assert (bunch.data[:, 1] != bunch.data[:, 2]).all(), "Something went wrong during parsing" assert bunch.image_names[bunch.data[0, 0]] == 'images/214649bfd7ea489b8daf588e6fed45aa.jpg' triplets = fetch_food_similarity(data_home=data_home, shuffle=False, return_triplets=True) diff --git a/cblearn/datasets/tests/test_musician_similarity.py b/cblearn/datasets/tests/test_musician_similarity.py index b0b866e..2182ba7 100644 --- a/cblearn/datasets/tests/test_musician_similarity.py +++ b/cblearn/datasets/tests/test_musician_similarity.py @@ -9,10 +9,10 @@ def test_fetch_musician_similarity(tmp_path): data_home = tmp_path / 'cblearn_datasets' bunch = fetch_musician_similarity(data_home=data_home, shuffle=False) - assert bunch.data.shape == (131_970, 3) - assert bunch.judgement_id.shape == (131_970, ) - assert bunch.user.shape == (131_970, ) - assert bunch.survey_or_game.shape == (131_970, ) + assert bunch.data.shape == (118_263, 3) + assert bunch.judgement_id.shape == (118_263, ) + assert bunch.user.shape == (118_263, ) + assert bunch.survey_or_game.shape == (118_263, ) assert bunch.artist_name.shape == (448, ) assert bunch.artist_id.shape == (448, ) assert bunch.artist_name[bunch.data][0, 0] == 'queen' diff --git a/cblearn/datasets/tests/test_triplet_response.py b/cblearn/datasets/tests/test_triplet_response.py new file mode 100644 index 0000000..139f66a --- /dev/null +++ b/cblearn/datasets/tests/test_triplet_response.py @@ -0,0 +1,33 @@ +import pytest +import numpy as np + +from cblearn.datasets import triplet_response + + +def test_triplet_response_validates_input(): + n = 5 # n objects + t = 10 # n triplets + d = 2 # n dimensions + valid_queries = [ + np.random.choice(n, size=3, replace=False) + for _ in range(t) + ] + invalid_queries_1 = [ + np.random.choice(n, size=5, replace=False) + for _ in range(t) + ] + invalid_queries_2 = [ + np.random.choice(n + 1, size=3, replace=False) + for _ in range(t) + ] + invalid_queries_3 = np.random.uniform(low=-1, high=1, size=(t, 3)) + embedding = np.random.normal(size=(n, d)) + + responses = triplet_response(valid_queries, embedding) + assert responses.shape == (t, 3) + with pytest.raises(ValueError): + triplet_response(invalid_queries_1, embedding) + with pytest.raises(ValueError): + triplet_response(invalid_queries_2, embedding) + with pytest.raises(ValueError): + triplet_response(invalid_queries_3, embedding) \ No newline at end of file diff --git a/cblearn/embedding/_base.py b/cblearn/embedding/_base.py index c1bf4e2..fc0f503 100644 --- a/cblearn/embedding/_base.py +++ b/cblearn/embedding/_base.py @@ -1,4 +1,5 @@ from typing import Optional +import warnings import numpy as np from sklearn.base import TransformerMixin @@ -15,10 +16,43 @@ def _more_tags(self): 'requires_positive_X': True, 'requires_positive_y': True, 'X_types': ['categorical'], + 'preserves_dtype': [], # .transform does not preserve dtype + 'binary_only': True, # enforce binary y in tests + 'triplets': True # enforce triplet X in tests } - def transform(self, X: Optional[utils.Query] = None, y: Optional[np.ndarray] = None) -> np.ndarray: - check_is_fitted(self, 'embedding_') + def transform(self, X: Optional[utils.Query]): + """ Transform the input data into the learned embedding. + + The input data can be none or an array with all or a subset of the + triplets provided by .fit method. + Actually, the input data is not used in this method, but is required + for compatibility with the scikit-learn API. + + Args: + X: Triplet answers, identical to the input in the .fit method or None. + Returns: + The learned embedding. + Warns: + If X is not the same instance as in the .fit method. + """ + check_is_fitted(self, ['embedding_', 'fit_X_']) + + if X is not None: + # Check if the input is a valid query, required by sklearn estimator tests + X_order = utils.check_query(X, result_format='list-order') + not_isin = ~utils.isin_query(X_order, self.fit_X_) + if not_isin.any(): + # X has to be allowed for the sklearn Pipeline API. + # https://github.com/scikit-learn/scikit-learn/blob/ + # 19f41496868a98d8326a20e2a3039b2a4e24280e/sklearn/pipeline.py#L258 + # https://github.com/scikit-learn/scikit-learn/blob/19f41496868a98d8326a20e2a3039b2a4e24280e/ + # sklearn/pipeline.py#L1302C1-L1303C85 + warnings.warn(UserWarning( + "Expects the same X queries in .fit and .transform (or None)," + f"got {X_order[not_isin]} not in fit(X).\n" + "Note: X can be passed for compatibility with the scikit-learn API.")) + return self.embedding_ def predict(self, X: utils.Query, result_format: Optional[utils.Format] = None) -> np.ndarray: @@ -37,6 +71,5 @@ def score(self, X: utils.Query, y: Optional[np.ndarray] = None) -> float: Returns. Fraction of correct triplets. """ - if y is None: - y = X - return metrics.query_accuracy(self.predict(X), y) + X, y = utils.check_query_response(X, y, result_format='list-count') + return metrics.query_accuracy(self.predict(X, result_format='list-count'), y) diff --git a/cblearn/embedding/_ckl.py b/cblearn/embedding/_ckl.py index b5464f2..aeee4b1 100644 --- a/cblearn/embedding/_ckl.py +++ b/cblearn/embedding/_ckl.py @@ -102,7 +102,9 @@ def fit(self, X: utils.Query, y: np.ndarray = None, init: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform triplets = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 if not n_objects: n_objects = triplets.max() + 1 random_state = check_random_state(self.random_state) diff --git a/cblearn/embedding/_dims.py b/cblearn/embedding/_dims.py index 05f6d1d..f7d56c1 100644 --- a/cblearn/embedding/_dims.py +++ b/cblearn/embedding/_dims.py @@ -10,13 +10,28 @@ @dataclass class DimensionEstimationResult: - estimated_dimension: int + """ Result object for dimensionality estimation of embeddings. + + Attributes: + estimated_dimension: The estimated dimensionality + dimensions: The tested dimensions + train_scores: The training scores for each dimension + test_scores: The test scores for each dimension + stats_result: The result of the hypothesis test + """ + estimated_dimension: int # The estimated dimensionality dimensions: np.ndarray train_scores: np.ndarray test_scores: np.ndarray stats_result: dict def plot_scores(self, train_kwargs={}, test_kwargs={}): + """ Plot the train and test scores per dimesionality of the embedding. + + Args: + train_kwargs: Keyword arguments for the training scores plot. + test_kwargs: Keyword arguments for the test scores plot. + """ import matplotlib.pyplot as plt plot_validation_curve(self.dimensions, self.train_scores, self.test_scores, @@ -123,8 +138,14 @@ def _sequential_crossval_ttest(test_scores_cv, n_splits, alpha): def estimate_dimensionality_cv(estimator, queries, responses=None, test_dimensions: list = [1, 2, 3], n_splits=10, n_repeats=1, refit=True, alpha=0.05, param_name="n_components", n_jobs=-1, random_state=None): - """ Estimates the dimensionality of the embedding space through cross-validation - that has the best fit for the provided data [1]_. + """ Estimates the dimensionality of the embedding space. + + The procedure estimates embeddings for the provided *test_dimensions* + and evaluates the fit (triplet accuracy) through cross-validation [1]_. + The estimated dimension is the lowest, + that has the best fit for the provided data. The test compares the increase in accuracy; + if the increase is not significant, the dimension is considered to be sufficient. + Testing a larger range of dimensions can reduce the test sensitivity due to multiple testing correction. Attributes: estimator: The embedding estimator to use. diff --git a/cblearn/embedding/_forte.py b/cblearn/embedding/_forte.py index c76d5c5..742eab8 100644 --- a/cblearn/embedding/_forte.py +++ b/cblearn/embedding/_forte.py @@ -87,7 +87,9 @@ def fit(self, X: utils.Query, y: np.ndarray = None, init: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform triplets = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 if not n_objects: n_objects = triplets.max() + 1 random_state = check_random_state(self.random_state) diff --git a/cblearn/embedding/_gnmds.py b/cblearn/embedding/_gnmds.py index fb1be9f..db05c34 100644 --- a/cblearn/embedding/_gnmds.py +++ b/cblearn/embedding/_gnmds.py @@ -107,7 +107,9 @@ def fit(self, X: utils.Query, y: np.ndarray = None, init: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform triplets = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 if not n_objects: n_objects = triplets.max() + 1 random_state = check_random_state(self.random_state) diff --git a/cblearn/embedding/_mlds.py b/cblearn/embedding/_mlds.py index a4caf07..5e568c6 100644 --- a/cblearn/embedding/_mlds.py +++ b/cblearn/embedding/_mlds.py @@ -82,11 +82,18 @@ def fit(self, X: utils.Query, y: np.ndarray = None) -> 'MLDS': Returns: This estimator """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform random_state = check_random_state(self.random_state) - n_objects = X.max() + 1 triplets, answer = utils.check_query_response(X, y, result_format='list-boolean') + self.n_features_in_ = 3 + n_objects = triplets.max() + 1 quads = triplets[:, [1, 0, 0, 2]] + flip = quads[:, [0, 1]].max(axis=1) > quads[:, [2, 3]].min(axis=1) + # make sure that we "standardize" the order of quadruplets to ensure + # that both True/False answers occur, which is required by the Logistic Regression + quads = np.where(np.c_[flip, flip, flip, flip], quads[:, [2, 3, 0, 1]], quads) + answer[flip] = ~answer[flip] if self.method.lower() == 'glm': X01, rows = np.zeros((len(quads), n_objects)), np.arange(len(triplets)) X01[rows, quads[:, 0]] += 1 diff --git a/cblearn/embedding/_oenn.py b/cblearn/embedding/_oenn.py index 3ddabe8..f215275 100644 --- a/cblearn/embedding/_oenn.py +++ b/cblearn/embedding/_oenn.py @@ -104,7 +104,10 @@ def fit(self, X: utils.Query, y: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform triplets = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 + random_state = check_random_state(self.random_state) if n_objects is None: n_objects = triplets.max() + 1 diff --git a/cblearn/embedding/_soe.py b/cblearn/embedding/_soe.py index ed83111..d2c7f96 100644 --- a/cblearn/embedding/_soe.py +++ b/cblearn/embedding/_soe.py @@ -121,7 +121,9 @@ def fit(self, X: utils.Query, y: np.ndarray = None, init: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform queries = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 if not n_objects: n_objects = queries.max() + 1 random_state = check_random_state(self.random_state) diff --git a/cblearn/embedding/_ste.py b/cblearn/embedding/_ste.py index d47d2ef..e43fdab 100644 --- a/cblearn/embedding/_ste.py +++ b/cblearn/embedding/_ste.py @@ -110,7 +110,9 @@ def fit(self, X: utils.Query, y: np.ndarray = None, init: np.ndarray = None, Returns: self. """ + self.fit_X_ = utils.check_query(X, result_format='list-order') # for data validation in .transform triplets = utils.check_query_response(X, y, result_format='list-order') + self.n_features_in_ = 3 if not n_objects: n_objects = triplets.max() + 1 random_state = check_random_state(self.random_state) @@ -165,7 +167,7 @@ def _ste_x_grad(x, x_shape, triplets, heavy_tailed): kernel = np.exp(-dist) I, J, K = tuple(triplets.T) - P = kernel[I, J] / (kernel[I, J] + kernel[I, K]) + P = kernel[I, J] / (kernel[I, J] + kernel[I, K] + 1e-12) loss = -np.log(np.maximum(P, np.finfo(float).tiny)).sum() if heavy_tailed: diff --git a/cblearn/embedding/tests/test_sklearn_estimator_checks.py b/cblearn/embedding/tests/test_sklearn_estimator_checks.py index fadfcaf..561ef64 100644 --- a/cblearn/embedding/tests/test_sklearn_estimator_checks.py +++ b/cblearn/embedding/tests/test_sklearn_estimator_checks.py @@ -12,11 +12,17 @@ While some of the checks could be adapted to our setting, some cannot work with triplet input. """ -from contextlib import contextmanager +import warnings import pytest import numpy as np from sklearn.utils.estimator_checks import parametrize_with_checks +import sklearn.utils.estimator_checks +from sklearn.metrics.pairwise import linear_kernel, pairwise_distances +from sklearn.utils._tags import ( + _DEFAULT_TAGS, + _safe_tags, +) from cblearn.embedding import SOE, MLDS, STE, TSTE, CKL, GNMDS from cblearn.embedding import wrapper @@ -27,62 +33,114 @@ ALL_TRIPLET_EMBEDDING_ESTIMATORS = [SOE(), MLDS(), STE(), TSTE(), CKL(), GNMDS()] -def _features_to_triplets(X): - """ Guess if input are features and sample triplets then. """ - if isinstance(X, np.ndarray) and ( - not np.issubdtype(X.dtype, np.uint) or X.ndim != 2 or X.shape[1] != 3): - n = X.size - new_X = make_random_triplets(X, size=n, result_format='list-order', random_state=1) - print("to triplets", X.shape, X.dtype, new_X.shape, new_X.dtype) - return new_X - else: - print("are triplets", np.asarray(X).shape) - return X +########## +# Monkey patching to transform featurized input to triplets +orig_enforce_estimator_tags_X = sklearn.utils.estimator_checks._enforce_estimator_tags_X +orig_enforce_estimator_tags_y = sklearn.utils.estimator_checks._enforce_estimator_tags_y -@contextmanager -def wrap_triplet_estimator(estimator): - """ Replace feature input estimator input by triplets in context. - Wraps fit and predict methods on context enter. - After context exit, original methods are restored. - """ - orig_fit = estimator.__class__.fit - orig_predict = estimator.__class__.predict +def _enforce_estimator_tags_X(estimator, X, kernel=linear_kernel): + X = orig_enforce_estimator_tags_X(estimator, X, kernel) + if _safe_tags(estimator, key="triplets"): + n = X.shape[0] + if len(X) == 1: # make_random_triplets expects at least 3 objects + X = np.r_[X, X, X] + X = make_random_triplets(X, size=n, result_format='list-order') + return X + + +def _enforce_estimator_tags_y(estimator, y): + y = orig_enforce_estimator_tags_y(estimator, y) + if _safe_tags(estimator, key="triplets"): + #y = np.where(y == y.flat[0], 1, -1) + n = y.shape[0] + y = np.ones(n) + return y - estimator.__class__.fit = lambda self, X, y=None: orig_fit(self, _features_to_triplets(X)) - estimator.__class__.predict = lambda self, X: orig_predict(self, _features_to_triplets(X)) - yield estimator +sklearn.utils.estimator_checks._enforce_estimator_tags_X = _enforce_estimator_tags_X +sklearn.utils.estimator_checks._enforce_estimator_tags_y = _enforce_estimator_tags_y +########### - # Context exit - estimator.__class__.fit = orig_fit - estimator.__class__.predict = orig_predict +def test_enforce_estimator_tags_monkeypatch(): + X = np.random.rand(10, 5) + y = np.random.rand(10, 1) + estimator = ALL_TRIPLET_EMBEDDING_ESTIMATORS[0] + assert _safe_tags(estimator).get('triplets', False) + new_X = sklearn.utils.estimator_checks._enforce_estimator_tags_X(estimator, X) + new_y = sklearn.utils.estimator_checks._enforce_estimator_tags_y(estimator, y) -SKIP_CHECKS = [ - 'check_estimators_nan_inf', - 'check_estimator_sparse_data', - 'check_estimators_pickle', - 'check_pipeline_consistency', + assert new_X.shape[1] == 3 + assert new_y.shape[0] == new_X.shape[0] + assert new_X.shape[0] >= X.shape[0] + assert np.isin(np.unique(new_X), np.arange(10)).all() + np.testing.assert_equal(np.unique(new_y), [1]) + + +# These tests require a 1-to-1 relationship for X -> .transform(X). +# This will never be true for our estimators (n-to-m). +# The alternative to skipping them here would be the 'non_deterministic' tag. +# This tag, however, would skip more tests than necessary. +SKIP_FOR_TRIPLETS = [ 'check_methods_subset_invariance', - 'check_transformer_general', - 'check_transformer_data_not_an_array', - 'check_n_features_in', - 'check_fit2d_1sample', - 'check_fit2d_predict1d', - 'check_fit_score_takes_y', - 'check_estimators_empty_data_messages', - 'check_methods_sample_order_invariance', + 'check_methods_sample_order_invariance' ] - @pytest.mark.sklearn +@pytest.mark.filterwarnings("ignore:Expects the same X queries") # Expected in check_fit_idem @parametrize_with_checks( ALL_TRIPLET_EMBEDDING_ESTIMATORS ) def test_all_estimators(estimator, check): - if check.func.__name__ in SKIP_CHECKS: - pytest.skip("cblearn ordinal embedding estimator's are not fully compatible to sklearn estimators.") + tags = _safe_tags(estimator) + if not (tags.get('triplets') and check.func.__name__ in SKIP_FOR_TRIPLETS): + check(estimator) + + +@pytest.mark.parametrize( + "estimator", + ALL_TRIPLET_EMBEDDING_ESTIMATORS +) +def test_transform_warns_with_other_X(estimator): + """ Test if warnings are raised when using different X instances in fit and transform. """ + X = np.random.rand(10, 3) + X = _enforce_estimator_tags_X(estimator, X) + estimator.fit(X) + with warnings.catch_warnings(record=True) as w: + estimator.transform(X) + estimator.transform(None) + assert len(w) == 0, "Expected no warnings" + + other_X = X + 1 + with pytest.warns(UserWarning, match="Expects the same X queries in .fit and .transform"): + estimator.transform(other_X) + + X += 1 + with pytest.warns(UserWarning, match="Expects the same X queries in .fit and .transform"): + estimator.transform(X) + + +@pytest.mark.parametrize( + 'estimator', + ALL_TRIPLET_EMBEDDING_ESTIMATORS +) +def test_make_pipeline(estimator): + """ Assure that a pipeline can be constructed with ordinal embedding estimators + and that the resulting pipeline behaves as running the steps individually. + """ + from sklearn.pipeline import make_pipeline + from sklearn.cluster import KMeans + from sklearn.datasets import make_blobs + + X_feat, y_clust = make_blobs(n_samples=12, n_features=1, centers=3) + X_trip, y_trip = make_random_triplets(X_feat, size=100, result_format='list-count') + kmeans = KMeans(3, random_state=42) + estimator.random_state = 42 + pipe = make_pipeline(estimator, kmeans) + + y_pred_clust_pipe = pipe.fit_predict(X_trip, y_trip) + X_emb = estimator.fit_transform(X_trip, y_trip) + y_pred_clust = kmeans.fit_predict(X_emb) - with wrap_triplet_estimator(estimator) as wrapped_estimator: - check(wrapped_estimator) + np.testing.assert_array_equal(y_pred_clust_pipe, y_pred_clust) diff --git a/cblearn/metrics/__init__.py b/cblearn/metrics/__init__.py index 33419e4..2a2b4a2 100644 --- a/cblearn/metrics/__init__.py +++ b/cblearn/metrics/__init__.py @@ -1,4 +1,4 @@ from ._triplets import query_error from ._triplets import query_accuracy -from ._triplets import QueryScorer +from ._triplets import query_accuracy_scorer from ._procrustes import procrustes_distance diff --git a/cblearn/metrics/_triplets.py b/cblearn/metrics/_triplets.py index 83a68ce..1d69dbc 100644 --- a/cblearn/metrics/_triplets.py +++ b/cblearn/metrics/_triplets.py @@ -58,12 +58,17 @@ def query_accuracy(true_response: utils.Response, pred_response: utils.Response) def query_error(true_response: utils.Response, pred_response: utils.Response) -> float: - return 1 - query_accuracy(true_response, pred_response) + """ Error measured by 1 - query accuracy.` + See :py:func:`cblearn.metrics.query_accuracy` for more information.""" + return 1 - query_accuracy(true_response, pred_response) -def _scorer(true_response, query): - query, pred_response = utils.check_query_response(query, result_format='list-boolean') - return query_accuracy(true_response, pred_response) +def query_accuracy_scorer(clf, X, y): + """Scorer function for query accuracy, compatible with sklearn's scorer API. -QueryScorer = metrics.make_scorer(_scorer) + See :py:func:`cblearn.metrics.query_accuracy` for more information. + """ + X, y = utils.check_query_response(X, y, result_format='list-count') + y_pred = clf.predict(X, result_format='list-count') + return query_accuracy(y, y_pred) \ No newline at end of file diff --git a/cblearn/metrics/tests/test_triplets.py b/cblearn/metrics/tests/test_triplets.py index 7a8d627..8e57174 100644 --- a/cblearn/metrics/tests/test_triplets.py +++ b/cblearn/metrics/tests/test_triplets.py @@ -12,8 +12,8 @@ def __init__(self, embedding): def transform(self, *args, **kwargs): return self.embedding - def predict(self, triplets): - result = datasets.triplet_response(triplets, self.embedding) + def predict(self, triplets, result_format=None): + result = datasets.triplet_response(triplets, self.embedding, result_format=result_format) if isinstance(result, tuple): return result[1] else: @@ -55,5 +55,5 @@ def test_triplet_scorer(): triplets, answers = datasets.triplet_response(triplets, embedding, result_format='list-boolean') estimator = DummyOrdinalEmbedding(embedding) - assert metrics.QueryScorer(estimator, triplets, answers) == 1 - assert metrics.QueryScorer(estimator, triplets, ~answers) == 0 + assert metrics.query_accuracy_scorer(estimator, triplets, answers) == 1 + assert metrics.query_accuracy_scorer(estimator, triplets, ~answers) == 0 diff --git a/cblearn/preprocessing/_label.py b/cblearn/preprocessing/_label.py index 9bbed6e..178b4ae 100644 --- a/cblearn/preprocessing/_label.py +++ b/cblearn/preprocessing/_label.py @@ -119,12 +119,21 @@ def query_from_columns(data: Union[np.ndarray, "pandas.DataFrame"], # noqa: F82 return_transformer: bool = False) \ -> Union[Tuple[np.ndarray, np.ndarray], Tuple[Tuple[np.ndarray, np.ndarray], Tuple[TransformerMixin, TransformerMixin]]]: - """ Extract queries from objects in columns or dataframes. - - The objects in the column data might be defined by a single or multiple numerical attributes. - Then this function assigns to each object an index and returns query and response based on object indices, - as required by most library functions. - If attributes are non-numeric, consider first encoding them with :class:`sklearn.preprocessing.LabelEncoder`. + """ Extract queries with indices from feature columns in a DataFrame. + + Comparison-based data in this libarary is typically represented by a collection + of unique object indices. For example, [[1, 0, 2], [0, 2, 3]] could encode two triplet + comparisons between objects 0, 1, 2, and 3. + Experimental data, however, often stores the objects as featurized columns in a dataframe, describing the + presented stimuli. + There the same comparisons could be represented by two rows with columns + `alpha1`, `tau1` `alpha2`, `tau2`, `alpha3`, `tau3` and `Response`. + The `query_from_columns` function allows to extract the comparsion queries + from such a dataframe by identifying the unique objects (e.g. unique combination of `alpha` and `tau` here). + + .. note:: + If the dataframe already contains unique indices for the objects per query, + consider accessing the indices directly, e.g. `df[['anchor_ix', 'pos_ix', 'neg_ix']].values.astype(int), df['response'].values.astype(bool)`. >>> import pandas as pd >>> frame = pd.DataFrame({'alpha1': [0.1, 0.7, 0.1], 'tau1': [0, 0, 1], @@ -140,8 +149,15 @@ def query_from_columns(data: Union[np.ndarray, "pandas.DataFrame"], # noqa: F82 ... response_columns='Response', response_map={1: True, 0: False}) >>> q.tolist(), r.tolist() ([[0, 3, 4], [4, 2, 3], [1, 4, 4]], [True, False, False]) + >>> q, r = query_from_columns(frame, [('alpha1', 'tau1'), ('alpha2', 'tau2'), ('alpha3', 'tau3')], + ... response_columns='Response') + >>> q.tolist(), r.tolist() + ([[0, 3, 4], [4, 2, 3], [1, 4, 4]], [1, 0, 0]) - The transformers can be used to get object attributes from the object index. + The indices can be used to get the object attributes from the dataframe. + This might be helpful in visulizations and for debugging. + In the following example, the object-feature to object-index transformer object + is accessed to get the object attributes from the object index. >>> (q,r), (q_transform, r_transform) = query_from_columns( ... np.array(frame), [0, 2, 4], -1, {1: True, 0: False}, return_transformer=True) @@ -154,7 +170,7 @@ def query_from_columns(data: Union[np.ndarray, "pandas.DataFrame"], # noqa: F82 query_columns: Indices or column-labels in data per query entry. Columns can be grouped as tuples, if multiple columns define an object. response_columns: Indices or column-labels in data per response entry. - response_map: Dictionary mapping the response entries in data to {-1, 1} or {False, True}. + response_map: Dictionary mapping the response entries in data to {-1, 1} or {False, True}. If none, use the original response. return_transformer: If true, transformer objects for the query and response are returned. Returns: Tuple with arrays for the queries and responses. @@ -172,9 +188,17 @@ def query_from_columns(data: Union[np.ndarray, "pandas.DataFrame"], # noqa: F82 query = query_enc.fit_transform(query_data) if response_columns: - inverse_map = {v: k for k, v in response_map.items()} - response_enc = FunctionTransformer(func=np.vectorize(response_map.get), - inverse_func=np.vectorize(inverse_map.get), check_inverse=False) + if response_map is None: + response_enc = FunctionTransformer( + func=lambda x: x, + inverse_func=lambda x: x, + check_inverse=False) + else: + inverse_map = {v: k for k, v in response_map.items()} + response_enc = FunctionTransformer( + func=np.vectorize(response_map.get), + inverse_func=np.vectorize(inverse_map.get), + check_inverse=False) response = response_enc.fit_transform(data[response_columns]) if return_transformer: return (query, response), (query_enc, response_enc) diff --git a/cblearn/utils/__init__.py b/cblearn/utils/__init__.py index e5205a4..a113dfa 100644 --- a/cblearn/utils/__init__.py +++ b/cblearn/utils/__init__.py @@ -1,4 +1,5 @@ from ._validate_data import check_query, check_response, check_query_response +from ._validate_data import isin_query from ._validate_size import check_size from ._data_format import data_format, check_format from ._data_format import QueryFormat, ResponseFormat, Format diff --git a/cblearn/utils/_data_format.py b/cblearn/utils/_data_format.py index 06edc8e..eed3024 100644 --- a/cblearn/utils/_data_format.py +++ b/cblearn/utils/_data_format.py @@ -64,6 +64,7 @@ def data_format(query: Union[Query], response: Optional[np.ndarray] = None Raises: TypeError: Invalid type of data. """ + query_format = None if isinstance(query, (scipy.sparse.spmatrix, sparse.SparseArray)): query_format = QueryFormat.TENSOR elif isinstance(query, (Sequence, np.ndarray)): @@ -71,6 +72,15 @@ def data_format(query: Union[Query], response: Optional[np.ndarray] = None elif query is None: query_format = None else: + try: + # a last resort: can numpy read the object? + arr = np.asarray(query) + if arr.ndim == 2: + query_format = QueryFormat.LIST + except ValueError: + pass + + if query_format is None: raise ValueError(f"Expects query as sequence, array, or sparse array; got {query}") if response is None: @@ -80,14 +90,18 @@ def data_format(query: Union[Query], response: Optional[np.ndarray] = None return query_format, ResponseFormat.ORDER else: return query_format, None - elif isinstance(response, (Sequence, np.ndarray)): - response_dtype = np.asarray(response).dtype else: - return query_format, None + try: + resp_arr = np.asarray(response) + except ValueError: + raise ValueError(f"Expects response as None or array-like, got {response}") + response_dtype = resp_arr.dtype + if np.isin(resp_arr, [0, 1]).all(): + response_dtype = bool if response_dtype == bool: return query_format, ResponseFormat.BOOLEAN elif np.issubdtype(response_dtype, np.number): return query_format, ResponseFormat.COUNT else: - raise ValueError(f"Expects response dtype bool or numeric, got {response_dtype}") \ No newline at end of file + raise ValueError(f"Unknown label type: Expects response as bool or numeric, got {response_dtype}") \ No newline at end of file diff --git a/cblearn/utils/_validate_data.py b/cblearn/utils/_validate_data.py index 083cd68..cff37a7 100644 --- a/cblearn/utils/_validate_data.py +++ b/cblearn/utils/_validate_data.py @@ -10,11 +10,33 @@ from ._typing import Query -def _check_list_query_response(query, response): +def isin_query(queries: np.ndarray, test_queries: np.ndarray) -> np.ndarray: + """ Calculates queries in test_queries (row-wise). + + Returns a boolean array of the same shape as queries that is True where an query of queries is in test_queries and False otherwise. + + Args: + queries: Input array + test_queries: The query array to test against. + Returns: + isin: same length as queries. + """ + queries = check_array(queries) + test_queries = check_array(test_queries) + if queries.shape[1] != test_queries.shape[1]: + raise ValueError(f"Expects equal number of columns, got {queries.shape[1]} != {test_queries.shape[1]}") + dtype = [(f'f{i}', int) for i in range(queries.shape[1])] + test_queries_struct = np.core.records.fromarrays(test_queries.T, dtype=dtype) + queries_struct = np.core.records.fromarrays(queries.T, dtype=dtype) + is_in = np.isin(queries_struct, test_queries_struct) + return is_in + + +def _check_list_query_response(query, response, **kwargs): if response is None: - return check_array(query, dtype=np.uint32), None + return check_array(query, dtype=np.uint32, **kwargs), None else: - return check_X_y(query, response, dtype=np.uint32) + return check_X_y(query, response, dtype=np.uint32, **kwargs) def _unroll_responses(query: Optional[np.ndarray], response: np.ndarray) -> Tuple[np.ndarray, np.ndarray]: @@ -60,7 +82,7 @@ def check_bool_list_query_response(query, response, standard: bool = True): __, input_response_format = data_format(query, response) if input_response_format is ResponseFormat.BOOLEAN: - bool_response = response + bool_response = response.astype(bool) elif input_response_format is ResponseFormat.COUNT: if np.any(response == 0): raise ValueError("Undecided responses (0) cannot be represented as order or bool.") @@ -71,6 +93,7 @@ def check_bool_list_query_response(query, response, standard: bool = True): if standard: query, mask = _standardize_list_query(query) + bool_response = np.array(bool_response, copy=True) bool_response[mask] = ~bool_response[mask] return query, bool_response @@ -78,22 +101,22 @@ def check_bool_list_query_response(query, response, standard: bool = True): def check_count_list_query_response(query, response, standard: bool = True): __, input_response_format = data_format(query, response) - query, response = _check_list_query_response(query, response) + query, response = _check_list_query_response(query, response, copy=True) if input_response_format is ResponseFormat.COUNT: query, count_response = _unroll_responses(query, response) if input_response_format is ResponseFormat.BOOLEAN: count_response = response.astype(int) * 2 - 1 elif input_response_format is ResponseFormat.ORDER: count_response = np.full((query.shape[0],), 1) - if standard: query, mask = _standardize_list_query(query) + count_response = np.array(count_response, copy=True) count_response[mask] *= -1 return query, count_response def check_order_list_query_response(query, response): - query, response = _check_list_query_response(query, response) + query, response = _check_list_query_response(query, response, copy=True) __, input_response_format = data_format(query, response) if input_response_format is ResponseFormat.COUNT: @@ -157,13 +180,16 @@ def check_tensor_query_response(query: Union[sparse.COO, scipy.sparse.spmatrix], if isinstance(query, scipy.sparse.spmatrix): n_objects = query.shape[0] - n_dim = int(np.ceil(np.log(np.product(query.shape)) / np.log(n_objects))) + n_dim = int(np.ceil(np.log(np.prod(query.shape)) / np.log(n_objects))) query = sparse.COO.from_scipy_sparse(query) else: n_objects = max(query.shape) n_dim = len(query.shape) expected_shape = n_dim * (n_objects,) + if query.size != np.prod(expected_shape): + raise ValueError(f"Expects sparse matrix reshapeable to {expected_shape}, " + f"got {query.shape}.") if len(query.shape) != n_dim or np.any(np.not_equal(query.shape, expected_shape)): query = query.reshape(expected_shape) @@ -197,7 +223,7 @@ def check_response(response: np.ndarray, result_format: Optional[Format] = None) if result_format[0] is not QueryFormat.LIST or result_format[1] is ResponseFormat.ORDER: raise ValueError(f"Expects result format list-boolean or list-count, got {result_format}.") - dummy_query = np.empty_like(response).reshape(-1, 1) + dummy_query = np.zeros_like(response).reshape(-1, 1) return check_list_query_response(dummy_query, response, standard=False, result_format=(result_format))[1] @@ -277,7 +303,6 @@ def check_query_response(query: Union[Query], response: Optional[np.ndarray] = N """ input_query_format, input_response_format = data_format(query, response) output_query_format, output_response_format = check_format(result_format, query, response) - if output_query_format is QueryFormat.TENSOR: if input_query_format is QueryFormat.LIST: query, response = check_list_query_response(query, response, (QueryFormat.LIST, output_response_format), diff --git a/cblearn/utils/tests/test_validate_data.py b/cblearn/utils/tests/test_validate_data.py index 4417355..c0f962a 100644 --- a/cblearn/utils/tests/test_validate_data.py +++ b/cblearn/utils/tests/test_validate_data.py @@ -123,12 +123,19 @@ def test_check_query_response_FORMAT(input, response_format, test_output): """ Test all possible conversations of answer types. """ if isinstance(input, tuple): triplets, answers = input + orig_triplets = np.array(triplets, copy=True) + orig_answers = np.array(answers, copy=True) else: triplets, answers = input, None + orig_triplets = np.array(triplets, copy=True) triplet_answers = utils._validate_data.check_list_query_response(triplets, answers, standard=True, result_format=response_format) np.testing.assert_equal(triplet_answers, test_output) + np.testing.assert_equal(triplets, orig_triplets, err_msg="Input data was modified.") + if answers is not None: + np.testing.assert_equal(answers, orig_answers, err_msg="Input data was modified.") + def test_check_query_response_UNDECIDED(): with pytest.raises(ValueError): @@ -143,3 +150,11 @@ def test_check_query_response_UNDECIDED(): print(answers) np.testing.assert_equal(triplets, triplets_numeric_undecided) np.testing.assert_equal(answers, answers_numeric_undecided) + + +def test_isin_query(): + fit_X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) + new_X = np.array([[4, 5, 6], [1, 2, 3], [2, 2, 3], [4, 5, 6]]) + + isin = utils.isin_query(new_X, fit_X) + np.testing.assert_array_equal(isin, [True, True, False, True]) \ No newline at end of file diff --git a/docs/car_embedding.jpg b/docs/car_embedding.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c40713cde170f3057711e7e106cf94cd34096907 GIT binary patch literal 216483 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 Zb+JtqPQr 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Triplet + Odd-one-out + Show 8, rank 2 + + + + + + + diff --git a/docs/conf.py b/docs/conf.py index 1af713d..490bc7f 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -18,8 +18,14 @@ # -- Project information ----------------------------------------------------- project = 'cblearn' -author = 'David-Elias Künstle & Ulrike von Luxburg' -copyright = f'2023, {author}' +author = 'David-Elias Künstle, Ulrike von Luxburg, & Contributors' +copyright = f'2024, {author}' +html_theme_options = { + "logo": { + "image_light": "logo-light.png", + "image_dark": "logo-dark.png", + } +} # -- General configuration --------------------------------------------------- @@ -34,7 +40,7 @@ 'sphinx.ext.viewcode', 'sphinx.ext.mathjax', 'sphinx.ext.napoleon', - 'sphinx_rtd_theme', + 'pydata_sphinx_theme', 'sphinx_gallery.gen_gallery', ] @@ -78,7 +84,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # -html_theme = 'sphinx_rtd_theme' +html_theme = 'pydata_sphinx_theme' # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, diff --git a/docs/contributor_guide/index.rst b/docs/contributor_guide/index.rst index 9fdd2bd..5e8ca6b 100644 --- a/docs/contributor_guide/index.rst +++ b/docs/contributor_guide/index.rst @@ -1,3 +1,5 @@ +.. _contributor_guide: + ================= Contributor Guide ================= @@ -9,11 +11,42 @@ This guide describes how to contribute code or documentation. .. _Github issues: https://github.com/dekuenstle/cblearn/issues ---------------- -Getting Started ---------------- +.. _developer_install: + +------------ +Installation +------------ + +Contributors should not install the package from PyPI but from the Github repository +to get the latest version and to be able to manipulate the code. +First download the repository and install the project in developer mode with +developer dependencies. + +.. code-block:: bash + + $ git clone git@github.com/cblearn/cblearn.git + $ cd cblearn + $ pip install -e.[tests,docs] + +The ``-e`` option installs the package in developer mode such that changes in the code are considered directly without re-installation. + +tests + To run the unit tests, the ``pytest`` package is required, which + can be installed by adding the ``tests`` option to the install command. + +docs + Building these docs requires the ``sphinx`` package, which can be installed by adding the `docs` option to the install command. + + +Now you can run the tests and build the documentation: + +.. code-block:: bash + + $ python -m pytest --remote-data # should run all tests; this can take a while. + + $ cd docs + $ make html # should generate docs/_build/html/index.html -We assume you downloaded and installed ``cblearn`` as described in :ref:`developer_install`. The project directory contains the code directory ``cblearn/`` and the documentation ``docs/``. In addition, the folder contains a readme, license, multiple configuration files, and an examples folder. @@ -52,13 +85,21 @@ These tests are skipped by default but can be run by adding the ``--remote-data` Scikit-learn estimator tests ---------------------------- ``scikit-learn`` provides a test suite that should ensure the compatibility of estimators. -We use this test suite to test our estimators, too, but have to skip some tests because they use artificial data incompatible -to comparison data. Typically, ``cblearn`` estimators are compatible with ``scikit-learn`` estimators -if comparisons are represented as ``numpy`` arrays. From an API perspective, -comparison arrays look like discrete features and class labels; however, not all discrete features and class labels are valid comparisons. +The estimator classes that require triplet data should return +`'triplets'=True` in the ``_get_tags`` method. +Based on this tag, our test suite extends the sklearn estimator test to handle comparison-based estimators. +This modification is not unusual; sklearn internally modifies the data and skips individual tests silently based on different tags (e.g. *pairwise*). + +The modifications are: + + - Monkey-patching of ``check_estimator`` function to create triplets instead of featurized data. + - Skipping ``check_methods_subset_invariance`` and ``check_methods_sample_order_invariance`` + + These tests require a 1-to-1 relationship for X -> .transform(X). + This will never be true for our estimators (n-to-m). + The alternative to skipping them here would be the 'non_deterministic' tag, + which would trigger sklearn to skip these but also additional tests. -In the future scikit-learn might simplify the usage of custom data generation routines during the compatibility tests. -Otherwise, we might replace those incompatible tests with our own. All sklearn estimator tests can be skipped with ``pytest -m "not sklearn``. diff --git a/docs/getting_started/index.rst b/docs/getting_started/index.rst new file mode 100644 index 0000000..d537e98 --- /dev/null +++ b/docs/getting_started/index.rst @@ -0,0 +1,104 @@ +.. _getting_started: + +================ +Getting Started +================ + +----- +Setup +----- + +``cblearn`` requires Python 3.9 or newer. +The package is mainly tested on Linux, but Windows and Mac OS should work, too. + +Python environment +================== +The easiest way to install Python and its dependencies is using a + Anaconda_ environment or similar, because dependencies do not conflict with + other Python packages you may have installed and the Python version can be specified. + +.. _Anaconda: https://docs.anaconda.com/anaconda/install/ + +.. code-block:: bash + + conda create -n cblearn python==3.9 + conda activate cblearn + + +Install cblearn +=================== + +``cblearn`` and can be installed using `pip`: + +.. code-block:: bash + + pip install cblearn + + +This will install the minimal set of required packages, sufficient for most uses and saving disk space. +However, some features require more packages that can be installed by adding an ``option`` to the install command. + +.. _extras_install: + +Install Extra Requirements +========================== + +Extra requirements can be installed by adding an ``option`` to the install command and enable more advanced features. +Some of those extra dependencies need non-Python packages to be installed first. + +.. code-block:: bash + + $ pip install cblearn[torch,wrapper] h5py + + +torch + Most estimators provide an (optional) implementation using ``pytorch`` to run large datasets on CPU and GPU. + This requires the ```pytorch`` `_ package to be installed manually + or by adding the ``torch`` extras option to the install command. + Note that ``pytorch`` might need about 1GB of disk space. + +wrapper + The estimators in :ref:`references_embedding_wrapper` provide an Python interface to the original implementation + in ``R``-lang. + This requires the ``rpy2`` package to be installed by adding the ``wrapper`` option to the install command. + Additionally, this requires an installed ``R`` interpreter whit must available be in the ``PATH`` environment variable. + The ``R`` packages are installed automatically upon the first use of the estimators. + +h5py + The function :func:`cblearn.datasets.fetch_imagenet_similarity` requires the ``h5py`` package to load the dataset. + This can package can be installed with pip. + Note that some platforms require additionally the ``hdf5`` libraries to be installed `manually `_. + + +----------- +Quick Start +----------- + +`cblearn` is designed to be easy to use. +The following example generates triplets from a point cloud, +each specifying if point A is closer to point B or C, and fits an ordinal embedding +model to the triplets. +This ordinal embedding model is then used to predict the relative distances between the points. + +.. literalinclude:: quickstart.py + :language: python + :linenos: + +The output should show a trend similar to the following:: + + Triplets | Error (SSE) + ---------------------- + 25 | 0.913 + 100 | 0.278 + 400 | 0.053 + 1600 | 0.001 + +The Procrustes distance measures the sum of squared errors between points and embedding +after aligning the embedding to the points (i.e., by optimizing rotating, translation, and scaling). +The error approaches zero, demonstrating that the relative distances in the point cloud can be reconstructed from triplets only +once enough are available. + +The triplet generator's `result_format` option specifies the expected data format of the triplets, as triplets can be represented in different ways. +This example uses the `list-order` format, a list of triplets, containing the indices of an anchor, near, and far point. +Learn more about data formats and other aspects of the library in the :ref:`user_guide`. +Alternatively, you can find more code in the :ref:`examples` or get an overview of the :ref:`api`. diff --git a/docs/getting_started/quickstart.py b/docs/getting_started/quickstart.py new file mode 100644 index 0000000..2f10d31 --- /dev/null +++ b/docs/getting_started/quickstart.py @@ -0,0 +1,14 @@ +import numpy as np +from cblearn.datasets import make_random_triplets +from cblearn.embedding import SOE +from cblearn.metrics import procrustes_distance + +points = np.random.rand(20, 2) +estimator = SOE(n_components=2) + +print(f"Triplets | Error (SSE)\n{22 * '-'}") +for n in (25, 100, 400, 1600): + triplets = make_random_triplets(points, size=n, result_format="list-order") + embedding = estimator.fit_transform(triplets) + error = procrustes_distance(points, embedding) + print(f" {len(triplets):4d} | {error:.3f}") diff --git a/docs/icon.png b/docs/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0492d558e2433ac16024399e9f4be8f0305f588b GIT binary patch literal 3923 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 Q-)}KPy*uzSUEA<~0r*5GKmY&$ literal 0 HcmV?d00001 diff --git a/docs/icon.svg b/docs/icon.svg new file mode 100644 index 0000000..0dd5fea --- /dev/null +++ b/docs/icon.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/index.rst b/docs/index.rst index 8458f0e..e0b71f1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -3,14 +3,57 @@ You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -Welcome to cblearn's documentation! -=================================== +cblearn documentation +===================== + +`cblearn` is a Python package for comparison-based machine learning, +which is a type of machine learning where the only available information +is are ordinal comparisons of datapoint similarities. +These comparisons often come from human experiments in the form of triplets (A, B, C) +where A is more similar to B than to C, or from related tasks such as the odd-one-out. + +.. figure:: comparison_tasks.png + :align: center + :class: with-border + + Examples of similarity comparison tasks, that can be processed with cblearn. + The most common task is the triplet comparison, where the goal is to find the most similar image (blue) to the reference image (red). + The show-8-rank-2 task is a variant of the triplet comparison where the goal is to find the second and first most similar image to the reference image. + The odd-one-out task is a task where the goal is to find the image that is the most dissimilar to the other images, + Both, the ranking and odd-one-out tasks can be converted to triplet comparisons and + analyzed with the same algorithms. + +**cblearn provides a set of tools to read, convert, and manipulate comparison-based datasets**. +It also provides a set of comparison-based models, including the ordinal embedding and clustering, +that can be used as part of a scikit-learn pipeline. +As such, the package is used by researchers in machine learning to evaluate and +develop new learning algorithms and by researchers in cognitive science to +model perceived similarity in humans. + +.. figure:: car_embedding.jpg + :align: center + :width: 75% + :class: with-border + + This is a 2-D embedding generated from humans selections of the "most representative" car image from three presented (see :ref:`central_car_dataset`). + The distance in the embedding space represents perceived dissimilarity between the images. + It appears that cars are grouped by their type in the embedding space. + +New users should start in the :ref:`getting_started` section. +Bugs and feature requests are welcome on the `GitHub issue tracker`_. +If you would like to contribute to the code or documentation, please check the :ref:`contributor_guide`. + +.. _GitHub issue tracker: https://github.com/cblearn/cblearn/issues + + + + .. toctree:: :maxdepth: 2 - :caption: Contents: + :caption: Contents of the documentation: - install + getting_started/index user_guide/index generated_examples/index.rst references/index diff --git a/docs/install.rst b/docs/install.rst deleted file mode 100644 index 8337293..0000000 --- a/docs/install.rst +++ /dev/null @@ -1,99 +0,0 @@ -============ -Installation -============ - -``cblearn`` requires Python 3.9 or newer. -We recommend using Anaconda_ to install Python and -dependencies in separated environments. -The package is mainly tested on Linux, but Windows and Mac OS should work, too. - -.. _Anaconda: https://docs.anaconda.com/anaconda/install/ - -.. code-block:: bash - - conda create -n cblearn python==3.9 - conda activate cblearn - - ------------------ -User Installation ------------------ - -``cblearn`` and can be installed using `pip`: - -.. code-block:: bash - - pip install cblearn - -This will install the minimal set of required packages, sufficient for most uses and saving disk space. -However, some features require more packages that can be installed by adding an ``option`` to the install command. - -.. _extras_install: - -Extra Requirements -=================== - -Extra requirements can be installed by adding an ``option`` to the install command and enable more advanced features. -Some of those extra dependencies need non-Python packages to be installed first. - -.. code-block:: bash - - $ pip install cblearn[torch,wrapper] h5py - - -torch - Most estimators provide an (optional) implementation using ``pytorch`` to run large datasets on CPU and GPU. - This requires the ``pytorch`` package to be installed `manually `_ - or by adding the ``torch``` option to the install command. - Note that ``pytorch`` might need about 1GB of disk space. - -wrapper - The estimators in :ref:`references_embedding_wrapper` provide an Python interface to the original implementation - in ``R``-lang. - This requires the ``rpy2`` package to be installed by adding the ``wrapper`` option to the install command. - Additionally, this requires an installed ``R`` interpreter whit must available be in the ``PATH`` environment variable. - The ``R`` packages are installed automatically upon the first use of the estimators. - -h5py - The function :func:`cblearn.datasets.fetch_imagenet_similarity` requires the ``h5py`` package to load the dataset. - This can package can be installed with pip. - Note that some platforms require additionally the ``hdf5`` libraries to be installed - `manually `_. - - -.. _developer_install: - ------------------------- -Contributor Installation ------------------------- - - -If you want to make changes to the code or documentation, you should -first download the repository and install the project in developer mode with -developer dependencies. This way, changes in the code are directly considered without the need for re-installation. -Additionally, packages required to run the tests and build the documentation are installed. - -.. code-block:: bash - - $ git clone git@github.com:cblearn/cblearn.git - $ cd cblearn - $ pip install -e.[tests,docs,torch,wrapper] - -The ``-e`` option installs the package in developer mode such that changes in the code are considered directly without re-installation. - -tests - To run the unit tests, the ``pytest`` package is required, which - can be installed by adding the ``tests`` option to the install command. - -docs - Building these docs requires the ``sphinx`` package, which can be installed by adding the `docs` option to the install command. - - -Now you can run the tests and build the documentation: - -.. code-block:: bash - - $ python -m pytest --remote-data # should run all tests; this can take a while. - - $ cd docs - $ make html # should generate docs/_build/html/index.html \ No newline at end of file diff --git a/docs/logo-dark.png b/docs/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..f08c178f806f30c9445269db0b5a48d6fa74850b GIT binary patch literal 6856 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 R1^+?;>Z&^M8fB{&{{zSH0XYBw literal 0 HcmV?d00001 diff --git a/docs/logo-dark.svg b/docs/logo-dark.svg new file mode 100644 index 0000000..b200c36 --- /dev/null +++ b/docs/logo-dark.svg @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + + cblearn + + + + + + + + + + + + + diff --git a/docs/logo-light.png b/docs/logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..c36cf190c25488cbc9a12f00ae1c1d318a67e90e GIT binary patch literal 6867 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 + + + + + + + + + + + + + + + + + + + + + + + cblearn + + + + + + + + + + + + + diff --git a/docs/references/index.rst b/docs/references/index.rst index 2f13459..382c418 100644 --- a/docs/references/index.rst +++ b/docs/references/index.rst @@ -90,13 +90,13 @@ Low-level Dataset Utility Utility ------- -.. currentmodule:: cblearn.embedding +.. currentmodule:: cblearn .. autosummary:: :toctree: generated/ - estimate_dimensionality_cv - DimensionEstimationResult + embedding.estimate_dimensionality_cv + embedding.DimensionEstimationResult .. _references_embedding_wrapper: @@ -140,7 +140,7 @@ Wrapper metrics.query_accuracy metrics.query_error metrics.procrustes_distance - metrics.QueryScorer + metrics.query_accuracy_scorer :mod:`cblearn.preprocessing` Preprocessing ========================================== diff --git a/docs/sg_execution_times.rst b/docs/sg_execution_times.rst new file mode 100644 index 0000000..e520a8b --- /dev/null +++ b/docs/sg_execution_times.rst @@ -0,0 +1,46 @@ + +:orphan: + +.. _sphx_glr_sg_execution_times: + + +Computation times +================= +**00:55.561** total execution time for 4 files **from all galleries**: + +.. container:: + + .. raw:: html + + + + + + + + .. list-table:: + :header-rows: 1 + :class: table table-striped sg-datatable + + * - Example + - Time + - Mem (MB) + * - :ref:`sphx_glr_generated_examples_plot_psychophysical_scales.py` (``../examples/plot_psychophysical_scales.py``) + - 00:28.124 + - 0.0 + * - :ref:`sphx_glr_generated_examples_ordinal_embedding.py` (``../examples/ordinal_embedding.py``) + - 00:11.776 + - 0.0 + * - :ref:`sphx_glr_generated_examples_triplet_formats.py` (``../examples/triplet_formats.py``) + - 00:10.988 + - 0.0 + * - :ref:`sphx_glr_generated_examples_small_embedding_benchmark.py` (``../examples/small_embedding_benchmark.py``) + - 00:04.673 + - 0.0 diff --git a/docs/user_guide/adam_lr_triplet.png b/docs/user_guide/adam_lr_triplet.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc009d8c97ad6ced8c11eeb59ffadc08752b3f7 GIT binary patch literal 91837 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 mx5Uf;5)Tq=&VS)>RuzW3Hna*pDKoBsi*>0uiH literal 0 HcmV?d00001 diff --git a/docs/user_guide/index.rst b/docs/user_guide/index.rst index 8deaf1f..a65012f 100644 --- a/docs/user_guide/index.rst +++ b/docs/user_guide/index.rst @@ -1,11 +1,16 @@ +.. _user_guide: + ========== User Guide ========== Most Machine Learning algorithms use numerical training data (features) for inference, either representing points in a Euclidean space, similarities, or distances. -The are settings, e.g. in human studies, when metric points are not available but only ordinal comparisons. -Comparison-based learning algorithms are the machine learning algorithms applicable in this setting. +There are settings, e.g., in human studies, when obtaining featurized data is difficult, but comparisons are straightforward. +Comparison-based learning algorithms are the machine learning algorithms applicable in this setting, +as they learn from ordinal comparisons between object similarity. + +.. _triplet_comparison: ------------------- Triplet comparisons @@ -20,10 +25,64 @@ inequality: \delta(x_i, x_j) \le \delta(x_i, x_k). -This library supports two representation formats of triplets in an array or a sparse matrix form. -The array form uses 2d ``numpy`` arrays representing a triplet per row and columns for ``i,j,k``. -Alternatively to the ordering, an additional response array containing 1 or -1 can specify if ``(i,j,k)`` is correct or wrong. -The sparse matrix is an alternative representation, where triplets are naturally specified as the matrix indices, containing entries 1 or -1. +Triplets can represented as 2d ``numpy`` arrays, where each row represents a triplet and the columns represent the indices of the objects. +In the library, we call this representation the ordered list format or ``'list-order'``. + +.. code-block:: python + + import numpy as np + triplet_responses = np.array([[0, 1, 2], # 0 is closer to 1 than 2 + [2, 3, 1], + [1, 3, 0]]) + + +In some applications, having a separate array containing the correct response for each triplet is helpful. +This array contains 1 for correct triplets and -1 for incorrect triplets. +The following arrays in the ``'list-count'`` format are equivalent to the previous example. + +.. code-block:: python + + triplets = np.array([[0, 1, 2], + [2, 1, 3], + [1, 0, 3]]) + responses = np.array([1, -1, -1]) + +These array-based formats are handy in interacting with other machine learning procedures as every row represents a "data point". +Therefore, it is straightforward to sample triplets or split the data into training and test sets. + +.. code-block:: python + + from sklearn.model_selection import train_test_split + X_train, X_test, y_train, y_test = train_test_split(triplets, responses, test_size=0.2) + +However, if you want to calculate directly with triplet data, the ``'sparse'`` representation is more suitable. +Here, we use a sparse array with three dimensions and as many entries as there are objects. +Based on the position in the array, entries with -1 and 1 encode whether the triplet is correct or incorrect. + +.. code-block:: python + + import sparse + sp_triplets = sparse.COO(triplets.T, responses, shape=(4, 4, 4)) + sp_triplets[0, 1, 2] # returns 1 + sp_triplets[2, 1, 3] # returns -1 + sp_triplets[1, 0, 3] # returns -1 + sp_triplets[0, 1, 3] # returns 0 + + new_sp_triplets = sp_triplets + another_sp_triplets # element-wise addition to join two datasets + + +The triplet-based algorithms in the ``cblearn`` library typically can handle all of the previous. +An ordinal embedding estimator, for example, can train with either of the following: + +.. code-block:: python + + from cblearn.embedding import SOE + + soe = SOE(n_components=2) + soe.fit(triplet_responses) + soe.fit(triplets, responses) + soe.fit(sp_triplets) + -------------------------- Scikit-learn compatibility @@ -33,7 +92,7 @@ All estimators in this library are compatible with the ``scikit-learn`` API and if comparisons are represented in the array format. The ``scikit-learn`` compatibility is achieved by implementing the ``fit``, ``predict``, and ``score`` methods of the ``BaseEstimator`` class. -The ``fit`` method is used to train the model, the ``predict`` method is used to predict the labels of the test data, +The ``fit`` method is used to train the model; the ``predict`` method is used to predict the labels of the test data, and the ``score`` method is used to evaluate the model on the test data. In the case of ordinal embedding, for example, the ``predict`` method returns the triplet response according to the embedding and the ``score`` method returns the triplet accuracy (the fraction of correct triplet responses). @@ -45,18 +104,47 @@ Pytorch backend (CPU/GPU) ------------------------- The default backend for computations is the ``scipy`` stack, optimized for fast CPU computations and minimal overhead in both compute and disk space. -However, this comes with limitations when implementing new methods and for calculations with very large data sets. +However, this comes with limitations when implementing new methods and for calculations with extensive data sets. As an alternative for some estimators, a ``pytorch`` implementation exists. - To use this implementation, ``pytorch`` must be installed (see :ref:`extras_install`) and, if necessary, - the option ``backend='torch'`` must be set (see the respective function documentation). -These estimators take care automatically of the data transfer between numpy and torch (internal data representation) and -use a batched optimizer for faster convergence. If a CUDA GPU is available, the computations are automatically performed on the GPU. +These implementations make use of the ``pytorch`` library in multiple ways: +First, the data representation is internally transformed to ``pytorch`` tensors, which allows for automatic differentiation (simplifying the implementation of new loss functions) +Second, the whole computation can run on a GPU, if available. +Third, the stochastic optimization algorithms (we use Adam as the default) are batched, +which means that during each optimization iteration, just a fraction of comparisons are used. This stochastic approach can significantly speed up the optimization process +in the case of extensive datasets. For smaller datasets, the ``pytorch`` implementation is not necessarily faster than the ``scipy`` implementation. +On the contrary, when starting the optimization, there is a particular runtime overhead. +The classic second-order optimizers (which we use in the ``scipy`` backend) converge faster if all data is used in each iteration. +In addition, installing ``pytorch`` required up to 1GB of hard disk space, which is unnecessary for the ``scipy`` backend. + + +To use this implementation, ``pytorch`` must be installed (see :ref:`extras_install`) and, if necessary, +the option ``backend='torch'`` must be set when instantiating an estimator (see the respective class documentation). +If a CUDA GPU is available, the computations are automatically performed on the GPU (if the computation should be forced to run on a cpu, +set the `device` argument). + +.. code-block:: python + + from cblearn import embedding, datasets + + X, y = datasets.fetch_material_similarity(return_triplets=True) + soe = embedding.SOE(n_components=2, backend='torch', device='cpu') + soe.fit(X, y) # this might run a while + print(soe.embedding_) + +As an optimizer, the `pytorch` backend uses the Adam optimizer by default, which is relatively sensitive to +the learning rate parameter. The learning rate should be tuned for the specific problem for peak performance, +for example by using a `grid search`_. + +.. _`grid search`: https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html -``pytorch`` itself needs a lot of hard disk space and starting the optimization has a certain overhead -(automatic derivation, data transformation). - It is therefore advisable to use the ``scipy`` backend by default and only change if necessary. +.. figure:: ./adam_lr_triplet.png + :align: center + :width: 300px + :alt: Pytorch backend + The Adam optimizer's runtime and error depend highly on the learning rate hyperparameter. + Here, we show this dependence with a minimal CKL implementation using PyTorch on the :ref:`Vogue Dataset ` (60 objects). ------------------------- diff --git a/docs/user_guide/torch_speedtest_triplets.png b/docs/user_guide/torch_speedtest_triplets.png new file mode 100644 index 0000000000000000000000000000000000000000..041ee15896177337aedaaf9bc112015445b0841b GIT binary patch literal 38015 zcmb@u2RN7i|36C7R9Yy7sO$zAnUxR{q3pf)&R!)Y5<=O^OhQP=Y{({~Br};=*_-pY z`~J?kuK)l1&vkzPbDgfsr;oh7-}n6*&*x*k?uR$zuI|}IyNiT`WRJ9zxFQJ&X&1f* zcWlGI=zPB(g1-bDB~%@iY>XY9_3VvEuIoA4TG}{Tn&}^RGO~9tv#~yZ=E9ltoX1Ta z9c>*1&z`mVzg}?0#@^&?)sU(Z-ejk(l$rwx38fzKMf&n$ni&a6*toR#<(n?C?^~(`1RNx%Iz=Pb#*;t#$D&9|nj_ynJSt)%SMge%--&!q-u$kl`qy3O zPdiwc(_T5k5`0)x=+kTcs+f@B%>d+HADJjc`U2}4BO4b)T-&(XkmJFhu9!U!3w)oDOo14oy zGdl0~lv7P?ak6{ojval|RSYJT0aUJy!9reZ7s$5nJ$de2$UCdfndYkup--PGTQ0I= zNc6uxbt0V%4+*L0``{}rEzNlHW-pu`Hs=8%q#&fwPx=CH8nLuZ*OHNvz3*V)n=D(sE@c`yMFx^ zZY4E2HI;pv?_~j}@ksr1hj)3>DU{XZWk(Ja1#-71msoZ3Me|w7BuNIYko{ty3Ov67PEd&$kSX@XES6j;7p!t)|2VI$nFT;`;UL)D|O*(h#u zXJ=>8<$*Ba*`?Lh^WGaCOiWCwB`#d0Zu9*yHf1lYyWcNzUb|cu`Ye#h0~lw!Thk+Wnrl)P2#or^K~B>ilq)QB8gQ=kMR&N#$!)({DAlvT8_IN;B;$ zw7XMw||6F`PhV1p-_O`aqvD;$> z9GKg4&YLv$4G#Jh7rU1YKk)P8!f@b^YQFic_zzCai4t$Ey9JvrMMp=QPv%+uc=KY} z(;%Sz~5h=h6M6mI|^(VFz88c z^M77z7CkZl_G&OH+qfb6b5&KIe&w#fIR@{wP=Eg&g17%{HI%0`|M`~fD4*r=Q>Q9p zZMxszPEJef&F3VlZ(QxoFz!pHrmQi1R!lrR;a|VrXfx-<^7_=;8isF3`uqDY*!Gd| znztQ4cWz&W@VQq?X>!K|9a-CNdwP0K&(0=c!EfEZJenwUsYuWK+`gc{#a5cSv{k;#q+gmeK&Zf#I$a#1OXKECbjqyI% zbM(tmn-Wq(%8FgPcN=uRv-VP5k?d-v|89;Op?^luVfeKb4V^!v{r znP7Smmx=uLdf!*OPMkg+gjxSJJp3R(pO-~0_PJSWYD2S40yEjvCB7f7zujMa58`tYt}(W?WFFEqKEH)x52+_-DUmg8T37n9-Lf z`vUaseyIy@c1iJ-m$`{N^l_VXc~9-N624DN_))U7T35ln0g8`FVW(RjG5c|ZK8%#* z9+Ta{cxg)(>$aLvx0&dMxF=5~B%i(**nRTeKBJJWns&XGw_O)yRmXTnUK`#m-zSE~ zsX(DgXJzZ0lP{%2n*U1h#kcD0Nc?~z`atESOy%a6PDV@yN)JmT?ngvKzlxZcw$Hfv zQ{teQKlc@U4)u4z)A^-wFDEAOkNfeD(mz-4?Gy7qaGaF5bym^?wtoMOZ)b^Dg>$Iw ze0catShL`T=MHBsI&7xg=Rk?lMbbDn%8kUvNu4NmvKSn=r!{Y$qV;-97_$-amNIhJ3rgB79i;Z)hQy1W zD7Bup`F9Os;Uqf?u`k4ThWOw*|6jk2dcbk-IM<1&@cKiu7VZ}Av6i*%iCe_NZxch5 zY?x|$X7b5$eu9P;-u2LVGezqE6|kB6wTtmh!Mm!a%&bZaM)Bz<_~?q7FPFDT@0|9L z4$H;41ncwYNy&eTjF(duHth1>#@fzH z+{q5c+IyWA?`npdVp`{S7LZg2l&fV~y#Kc>!gu0R@IEz%j!FCZ?UA%ti)arc1OL5vZ z$I7a@9LL?vlWhN)nm`_Ri&gGCXDhX{39Jd$HtJrHQWc)nM#e{$ID|hOvm`x4e&*`Q zzESfBL2_Q?wYiwh#!9VRsab~%4dX59_^o|L59fY~4k)(nF&qslYRQ{pR&1S5xxs`j z9eJ`(bl~-ES|0OTS&sSYevL9pyG|Vt^AC{TGI=HINhZ}dVF&)HTeEMfKFF#3*G~lh zvirDwi_6LTZoh8K9*Y&Ueg`?&R$ zO14+~EXwrqcwW;F^bnL~bi0{>FnMnK0V&7#o00>@Mn*ZPZjw#*E=}| zRsEx*W{m{G)YU!C9LCn}zK32o(z(YqZOK|4jpRyZJ$cu?dt0|r(#y)o>;k$RaTF|D zo4K});&25jy6x@T4YMVW9#M#iiTV5cKlk3;SXx@L9sj{aeOmoJSD`%w~l?!Oj1aaBzbGo8y_#?o@-chpvP@2Q@BZ^$o|x`vpUAV zKKcO>9`PAY@Q!D{_38~?u$Mtp_Qs8UEb{S&zrO@g9O1sV^B{9%6XmX5`aj<2aq5)C zwrjiZ@hRU}+3i#2xhmrW7GS4StI044z;62UZMwjZEkL&i4juYTAb61}H0#2`!bo4M z$1DjR2Yh~41;@;i&W*NKG3lW5*#cerl(bapMX!?I^Z|>pe;tEA06a>&6 zQ~h**j{rI_7Z;a{i_3tZsOO3!kW>VRh^Qz%NhaT_^6KK0{OZC)x>{bUL>Wf7rKP2Q z`M6Nu%F@#FZ|1;qhQ`MF78dRd&a4v z`pUd8SyoKUQEO}Kq85zP-b;DL4J2<03aXl#&Z?9Fm+PH7{O{f07Z#rLSh59V7gtuM z-b2gNms!x0cs+(sqVSWYWYYemX44I|o18P_9L%nh2aNwM(P5iV2LgJDT4n-lnWIP5!*|q-Jbfoa1izL=4_pdfbt(&Qm(mzqNwE>?gZvPT|W_}RpQdTHVf<*;J8O&<3BWk z=7y0 zSzi3sU+T$O&Fb06E9)yiZq1(gb%3fIgD^2ZP9h~Q-*lVv#0j!$>jP!as5q3*0UzU@ zm-_?HzEsaQk6$L(od5n4Qqt0TD|4g3Trt4{LPE1G*Uk#eFv7>rJnWTf*2v^Gr0XKKtZFrr-MRqCSa{48!KZ#M*y1=z*xI98)J{h zL`SP96aDhzlg5r3;Y;j$r11Xe$i;uY$rR{TzWnclMirEkKqpnIm)vilzDZlZdF48tHz+}u|$eu4mSJGe2Zr$W%#ed#7|!3*Q$D!%3M*>aR%nYaEtjXI=j!#d`hk-*92oy&Qz~_Yu2jz zMwe7D?lGt?H$nBiN5LtNT=WtKIb(w4u(aeddow21wZNH{&+@RBm)B54>cUiS)5iL$ z!=ME~{X}QMcHNKncHT@^^qVSMeT<#eKQbbP1#v{g%`x8Lj>LzPX~uQ}OwH)0xpR_d z{8+wz?9Hn<(d@S`QCNYkcEWq%vv2s*r(cR3hX2mae){<{`XGzkS6tcy{W&c?@h{1? zf9y509D~#)I+<_f5caf52$oBZ!_6Gra8(hO!uaxmfsscNUxv&74RTIGAY$gi+`gi{&P@_nX1{Xo3oC| z?}tC}GAZm}v}Pey2@jCrQ(pS^>QQzuhxx4!&&Cgl`Og6Ev)-c3->S|iUU}T}e+Li# zZ-K}E>BSxK@&p(SiwN;&6gZOUOD1TN)^bMf&VPYaga2SPikg}ft?(^j|AE0L(u_0Y zWw%~Rh?JrY4~))g`-i!Y3h;K$RZEco8rNOFu44WVvF*V-KHk_E`JXmF(4ad3IQJ!X zeH9RT;o!s+H2yO)BJ3c6#GG<=iARSMFkVQ2w|nMBUIQa<*DkSyeZKlU&oeZs42)@4 zViZ)}zl*07mFwII=MmY@Rr8s}NY^B(vhx$Yvq`Z&dp`E*>9kahcqt$?ikj(U9TD^Zbh<O`bX6=(n%msU=yH z)O7sV8~X*4N^!~0uCitiU%q~wV?SMzJ@(~uT9mKV-Z1H32_v}|)o(yKjNaO{>rzUN z*s$8}woP8sk*vH?ZkY5^_=P>Mk z^geq`IXA!deD}BJp|UIt4CRTPg;YNJJa-j>YintX1%q`5)yWT$SBBiyX}|59^Xb#K z?@SGnX)o@ZEFa-Thdm{+?fNYeb)oH+=Deg~q?x6=qh%hO#&$IqxpcSR&U|Z5+iu75 zg*Pa;4nLu9m1Vt4{G9r)Mj1NdO0$_-yeuDxxvue)-chpPk10z?^8!>=)eJ`aAoXwfpp zb%dhh;!%poxgwgMY#HnC|GnL?GMSPjyK>g8X2GJQ?;VMU=Q`>ncQJ}{6_=LtJ*d&W zw9H@4?k4gef#II|stzkh-8!fT2Z@BjjrHP>ZR0cAxWNH>$G&!?z1FIxjAtC^^IMk$xm8ym)6BN-L5QbBa2d#><{C1O)lGR z-S}?tLh;DPW7z@40dKO5jmI)fr>@KEdQ!IiSK(V#MeJmFEd};$E7JgE6vKvRbf)#oaq!iE7JP6qUU^_u9!`=h~N#hO^W5z_28iVZO$}8uQPcTMVCcg3V-Zxd%27MAosaw*}@AytMAW=`RhlV zKlh50GNd+eYuAHF<)kke_NQKI=1z_2rhU2`9pbl-vLcQwz4i}DddZ>maA;aw7uV;M z?4JD-V>5(&EnIiLyYbnl*tmh#X{tx79%{u7MtW_DU4>3gPO5`khcuv9>~rN%tf1q! zKBn=`@)vYSMn1lGg>?{5#DpCKcudWK^?&^M@%PsQh8cY68yWcpU7rkn$sQ4K;_Blr zXGTKnn8}hN<>%%;prN5*X;s%AVu`m+e0zwk4`3*}Qfn{1?SG-n`8!=nQPDpz@RP2K z?bzHuB7K^JG4$=<9RS@^am%7quD^EseyDhI>Y8eSH66@@p*dP!^RG~~v^}OJ-m0sq zT=DM@i42vMF%FQ31{IX!+naKeNkLWXy(6KYa;m?5SuqUa5=As}&y~6Ds=1a>;!WCK zDwM4J$#A7l;J2aI)6=6iqYc`&efxGG=*E%eq;!>R?K?dgkh;VrC3|?Ax@+yrL7%o( z1W<9D`;Qbu^oH0t`s&p|Rz>mp+FC*l1YFXyvbyfOZO`Aoe~*Kd5MbD(@fbAk3J@(n z$ywcJ2M#4NN!7^y((F1F$aAp(Td^(_E&c#Kz4l9oj~_q2De$%(OQ5MN==HML=rH9u z0H^~g`|vqkl3wpkk;%!)#S%$X)x&CPYD4XiG&VLis4u5J9}efm&+=WmU#p#ebu;}V;h=zW0y&ls^G=qWjgxzjkztW# zagjCPgFn~lh~zwz2D8!7(B!LI*tRwdnu+|wfGc)QbUhwxo2d}m1tCEinUv5pk4yAI> zZfZ`5x_%E2vb5lCe!eyP1jpsZp-PW9h`(Qg8RQ}PoBnvi2(i?7ZE2c%u$Uo;mUm08 z$(uDuux;5oy@|{ew(Bdm*Vfj4t!9{ z!G`x8IPh_xCd_pp^s39+bQKqEkfD(gm-~Vxz2}_5mMvRcW@=bY_lL@4T(&Z)y065t z+#9|)Drn7l;?vOnEajxzF1DGH60d&UfAC;-ZMG??(PYoHAjvBr-4^XxrP&`L?5NER zKGSJ=XQcsxQ90V0wmjD=FW@jl_$wZNKWrz&V_0LqhK9c2I%Z27@n5`(5(CkP|E-Va z-AzM7gRy=#B|r=v95utQ&o95$D0qx_d1F*ZjX}DC3h!2LN|h~|YWh7@zPT;8>Tg?yN-*>F=r^vj#+WRV z#yqoD=JD}ym+_pcU5*XXVaz%B$^AV?B_YoXxG!*G#|(EBIdE#dKNP|4e)MZ>R>Sh_ zaM;tQ_a&3`>La<}D?CuqcJ(9P)1-->SvJxqB7#a@bor!t=F?vJ*ov2mT)*<$rOVtR z$UEP0uWT~snKZ?(ZV1mPCHugwxu&Vvr8V1C;(9Pn&gs$q#0x((I)4u<^Q%O&(k(13 z5Cf8_d=2V8vBsO5n_p`cQ$O&wkb+?Fd$HHMeC+mJUtia;%mNa^N!h;lm@Xi_^PWQB zeUrJ7W)k9lL8%pr?2T}VTQ6a*2!{*5nszmqUbEDV>g?IGq8m#F(3Y$lXCbH9ZGQmq{ISl>M3>Kxpyz$Gn3kIwjt48Y@b|%s=dr|u~Kk4L)JSaB_-_#s`tlx z%t#+EKH@&zUpewbNy^^oOJ9F|xctRIC<8pEU!Q+XxON%knh)D9!FwZ$m=(1*7|C3R zVY#30tlWFa4~hAN1^H5huwTJC<}}tTEGp6iecJnuq_MG4v&3aOtGy_%sim%NEI!GZ zjEwAb4}Y4lz)f~4IXStLEG%Sw!^2gtZe>85!k|Q8J==}8oXXNHQcO;dg?3dRp$y3Y z^{}2S6*s+;Fgd{Zj=-ZR-`o&FeLnrybS(Dl7D!+BBvuZ}3xDXeDQ^fpakZYby`!T; z-{%{g5K{YZ$-@mXCe!cH3@!)>h57Be>g{cAnyX>yAX>2fg%s%`wvX{tPbmd0kAFzW zKDg5NeSOI=@!-g@-!fDTxT9PKBUA#4OQ0(MnV}W1G%-;b8S5%iPf*W%H{yOeYf&2< zHjw%>6C)!jKR-YE)4j}0tI)f3?{AOQU(`@j`vrStu=Z(;b!TU1YpJ_4q{5G2xr7a! zZ~iTJDc6?&;pXFGWe%V7lrt*vC$S60XKr;^NC-(thOBe#ay?||j?Ki}@{vf{)GZM? ztO18?$+m2X6mjPRCp^i?S>N?^?{n5&P#--|QK)<06Iy%;su+5nV~@w|b+^SyEBcWY zbYBOQSTUV!yWd~PYunT08ThQbs%yenI&uuQgO!teQL?0sD}00@@8a$bx!O$x{QhHQ z<*8l=IyyR1|KQ+)m&@8^9#POPF<8od_J<0XvSpi7uF>4Rdv^(=Ni1PDHny9uZazfI z{ECIj&F>6LhCLC2-tUo->cF#QrgHG82SLm!9qke!XcDF>)Yr@Q_T2E=W$!dup_CK- zuC$UT36+FCsoACdd6dI=yN-7Xq|l+csPiTV=;#_yId-{oRHjNLEX+1tl*ev^1ujUu z#|zQwyZ!+I`d=O$f&I3lRGawWL1x)=&Sk?ae0)y{gUfSuAv7e!CoPSIC?J3@Zx2^Q zL_}2fR|a&QEuID;z#nEpWG=LbVL`32+ z2DX!30$A^+-(FFnm^3YR5u=CYLX3-~#kF!i-jJ`+%Sb*k5ADZJ64av zCW9Tf+jH_NgXg{AU`pgEOlqE-f?P}72-}UnJaa3MmyNfo&nq4v@qaatB_Ww0tfg4LF0v3P=dDR8zCzb8(Dp*>N1tyk<6I28p zN1mfr#k4{c`WM82mTmE3>NGF!Eh1F$Bs%)lVTx^oKXMELKIpQ}-4(HoIcz$bBOtrj5=3Bag8t&o>Dh zG&6J;*yy0UPO4Kw8LuX`Hu`e?+VX6}>4-%C>$O<)oFr)FeVBvy7Cl&eR7>w4K74rZ z!Gl()w3<~=v#KG&`9FO4;nSxR?bE;t!$q=c@Q;05Z7*Ru&3em3crCuattPAub@gb0 zUc7{qbIV0TO5er#d0qw@u^oD&_(bfI`%qZ9VTWv=q5qGo$uMF}R+%Y9ijj_|R=N{# z4U+z)__#5F%L@PpuG=(GKW9(=?L4hhc5KOJAiA_v1k1i?CR06sm+uGN#%D@TOPpQ< zTeG&&5Zb>~kJqXdz9zP>(4Q*G)V5<&te9xeWa?$*~_3yWM;1 zpl){LThN?VfBW2Zc4&D>2+wy2V;i@xbk|@1@RP#A>5DqamJ-siHiDEanMEs3vu*-1*#bD;+?z4Ztspv$}d?cx(wZ=65P)@)5y*a1NqL5r6*=H45 zE&?>%-%A%gRq`XTTJ0kTAKxN>L}cXQ<5L^moegn9&w%iLkB-*l8r99j>AZ7av?lh* zBgqr+QWCNEsjD3BI(iwg)t{Uc0^XkWF6{KCrV12Z4H(sPn*;`Xj_$s!Y<}GRypN98 zGC2}d-?Ox?nVOp3QQzUf&SRecvwt@C_H9xXnwF0zsviY>{Mm5?TKnXtvCJimD4O>L zw>eg@Al6{vnH?x!b$QuJDT-12@@IB{6q>ia{D7ihPbY-3udS_JM4eZr1xyT7R8>{= z;B5IC5+yTUI|wugVriPMj&d#zDq%lZ)3N_IayG&%BS}M!rP@t?yJmWR98DJ$Up7bO$c5!m{mQdOY&M@sgD=wjCC6Oej0SAp0v%7 zJI8y|3q{ekeJmSsDqQQqLx+e8Zt?wf&G}y7fsyZ-M@dOZDUMwTdHM3CrYrU)KQw={ z=0x(-@11`yr!(ZZG?>rsy@=2q=u`rcy8(NJtgS?_vAg8E3A?8M^FxC0p@W?>`0~ho zvi@dQz|Bt$QRcJ9;S}To2je|=?%5-esho%8k+6tJL-BPCm0e#2DJDy=XOhiC_hy=0 z+y%#x8(Cv3D=P@xRbi~8rKFytgTfpjXh)z2Vt_-p1$zOIV6zewyGdm67%t6YeZC!r zQSaXwhX!G?7x16O*koYCOTARjOMu-UX^?5Vr=`aBIj zRv%mX(n5F(`EF{W{c{DOS4I$Y?B2b51e`$e{_H+gYGRj(B{Yj2^smo1MEfPOTEeRI zyY@`6skc{us>`|8^BLxz+w|*k40aWwQed6Ct$w~`L}#QEa(d%9stCX-j)>0W>_N^# zCi1RMp*Mjsd3onElr!})q@1d6NaEzKg89R}C@Csmni;Hn#Bebl?0f&=!%`j|C9VTD zUOL-|T9lBG;F^-YzPgwPh^4t4&10s&;b-1cB7m+tnAapqu=B$A@40RJE`f39Z|9~| z`ybSoQcK;lGvA2&!$5g?j(lY#+6j8BG%D)%@88Ee3xcoGyM8YD^#L>me7r%+`ItJQ zdteMhR3z^6e=18{X9-$^EyW!oa>DS#U2+0r$;MvT?*rQ>^vM%_g`=Y08zn`?(XHiZ zk{Vv?^D2*z3Fz;)?JTfqf^4M^gxY4cr-tHx{Ee1MF=iK)rt z_AvrtLZ@Opal#iE4W_y{>fO?0@zh~aj|=Ac(HtsSwzEUmkx4VO^TG^sZn1`^H`otB;TUB0O*)#}eR3Vw@1tq_6IY^nxAv8n(8N z4~g5txLWKWk^>6$mR44T!hR9GP?S^`X{H}R>)*i#{b=a<5x4&1T z7o}^L3Nm=kg-X0nWQ9o@0OYdo*fGn!Z~1L{0AWHxbf;I6f<^UF?@;T&`hP}}nYz+W zYbN_3rYokYrL~Otumvs27NY3ze2ys@fOw{l7J>8*tKP!*g{7iz4H3+ryB)`Wgf?B= zJO+9{+n0_-hc^>9H-9A&HibaNF)T*bl!Ia0oui{Q| zV|h17=r-RE`o~)*Fw&@E14tsmLzzZO@Qp?LnI6wYE%=)9=yn+@+3zl}96#$&-&^@}klp+V-B;(yNgHA>!{qo2nWb4*j2ZA{xE&m2;MP*B4VB z>dw4pY?lVF+KDJu@4D_!#t+@pJ594P~B=y7vh75n}axpCrp0)|g zYO3Zh&y3g;7$2{E09IJnWn|_kLmfT0jox1)%X)diTIY9}u%PSAN$ih)MD|fh`p3s* z5lTNS;>Oc+ChPyqD>{KvAbFvtxd_sx4=jRyb-%Fif~BS9OO1jvkQauug6I#KsUYt4 zpdK~;qlQhXkym$-g9&uJ8v&=-OQ06afF(D-zirXuI!w2*SiWh8W()bEVL6ONTF{;P zQ+e@v*J&H%M+6cR6Q!qGtL5=s+H{By}Qm~ zd)$-o$VlA4RYHB75iUalUeI~cvM0RHk49T}s6Gl2EQk24iJz^-o3kD{`T{nKp46WD zOlB1oWlcl1t4qIwXWNwIiMW?>W2~7R<=(xG`J96YV2pMb^P|Nk>6Cj_y0kw9SlP3C zHzBnbTf_rzO!v4?QKjF&tOW#@mtRCUnDra?YxVqq=A^56sNkAa#8NM``wh`CNnj%M zDt*q5=OjI6&a}-(G1waRN90R5IUuuvP<=8C0eUC~s1Y4|*^bG5yj;p~T)o ztg%uHl$!4D9ykSwa*8#)m?wKtMx`oINj_Gu)InZ_cI4#mS)f?x3JBL|Pn24RSFo zz=lKs%4PnWO404HrxH=beLO=zVyW3d*rCeuClEHp&JNxZ}%2Gv}p%9iah% zJtlaquz|mUE2G;j`JgC>u8f@M>gtLVcI74k@)5vj=%dsUr(0r$oF8Mv?ZDVEcy8_X z7WwMNP4NxT!>Uo{mTXmBqD@>N8Jt~?ZNJg`wr4naWI}G(fyapE%{v!FU$Y& z;~_B3y4fY<;~Em8)H72dp#txWW=(mQ?>c0g;5u|KHAX6PYlhFJDt0` zJBqWPaz+aD3fMQH&>%3!fuG8Gzd%i!UY#l@3yF=b2av~E5eC9iAes1?{|Stgz_P?) znQZOS;-}q+vw#b6L+?Qul|v%#dNhw7;zXwT&XiY)z#;VOt=qP>WXLmwzkMrg@vdlQ z;ZKA~JT%((&Qmy4LIJ#2Wyt-aeQZko{_3sgJ{C4MO+YXW*++RyE1<6;&fZ4G5y{G+ zf3U@0z8*Plg^n6(m8(Z*xeVOc0~ilx`f>!+_=|E;bC@*Qi`;tgIxj!BDEoKfz|!(E z)o2M!5sh)afx$uYOKxs%WesVrIDqtKhdrWxKX5y~r+xDB@?68GKw$`d4%_VA4>w*D z_67j<$s@LmLh%I7#`TgwefJM)==MHqU|`@nn)1xn)>an`!IX#AUM3_W#FR^7q_O17 zz#(oMq4*^9N*tuvUfq-6Jo5EL$=XaEEQp0W>p|=-tb=n%ZdBD*|NmFAy>X6bM z>im$1)Y|*8&4qqOa73on*QfsIlXs-8Ik^U@muW;DIBW9r=k}Z zeB9Hpgt*Y=H#SynfYG#`yR*FpRlz#mqI>Qzab9A$DS-uQLqU&QAWmN0NLM^HTJBk$ zVl+~8EUJ1UhArlh-?jY@T?&7`Xnv_+<`@z$wi0pilES5wEtzt6C+O_o{V0x0(C8N1 z-ZduOtXZ;LAfdiqo1gw?z$ldY!@KeK4u2KY)z#S|PV!&9dX)s#TN;qdfzH{%p?H{A zA4D1T0I^a|jdzcL#aECJ#TgF{<<}Lk5}3R}UkFBmMq>ofzPxai%+T0~>y?k|?32*Y zQe9b@THnr|-0IC)FcC2*lrGDI&!TuOp1St5Lq8b>C)R;oZ5N?H0s*>kn4Q)6v8hLh zV$1yDAepSWIaxBZBW`Vi8kXiuFIxWO`ksD1`|@GF`)v}Y6DM4;Re`Nj5za+^b9$!k zY_G%IY8;>Ck4q@y5B>c~HdZODH;1RD1)3#Mq)r9CxbG?#V>uMHuzR4^@Hz1206L)7ygj&;GQD<182$ zA%3C|<5v16Ca$ZhMhf&ffyU%pw9mjsCZrXlZP-}cEndCvJb1*QV@{f*)% z-y^fu0Gm7lFJV3!K`2$w^#IdkwzzB7UceQnI^gfNizKkc!AW|Geexg~7kXetr z?@u9Y6T!5)O-~=IdGnX~v}ZP>MI`3?Mq7^wdkU)bRH?rupa$~2@h*SZ_@=sQ0I&$L z2>5`<@<#}NkBcwNinlisuD)QC_=>3YVCiDd`SN(csFvrK$pVEp7ri&r5M6l1`pnxj z1qUxdDU}qJl&E|^JU=GnB#RrwiOzr;Lq$}*R7a$5%n*LS<lxrpFIL0lF00f2zA4sXzv#R1WTX$^X-~h+sn|F)ayqFfj(~F!yE=( ziDRMIDE|(M!hlT0akmzaH6-f;va_>u0g6%(QNU(=o(m~&uz|mdW7FN*XJ&f*Z1~;} zaS@P#*yTmm-{wN5kWe@zk#IP}@XJ~fYe3@R^R3}?)qw%h2`Ov6o9hV&_U(Iq^5n^Z zl}F%**@R$5Z3byU8LT@Eluq2N^Ihf)a4#F|1>!6#{+$ZK>?vVk;ohd>SKZv+_m7Qb z0I^6HxlAV#{|`*{g-QPA&2VBwjQ|y0wUaJ%Esq~;2@ChX#~SFpb5z=|%-T-ts_1OvwB-x+{Y4f8pq>Yo3KXNAxn}8=$iJt7rDl=nQw18qodj zJyr*Eq}iNjGfOVar{+63M}awOz?1GYjeL6cOe$!4C!q&zu1|RrXNY4(+`kK}CL>Tl zK`;DcEgqV3f66oML}*)tUO_BNfXpZ^gD;0x&Tp(vjgv|M^*o2TN3iO4b5j8NkByC4 z6};p9eTKh%3Y4eV7 zKvrPZT;{J%!p6iVRA5sGxhQmmbt_SJR>27Y?|Kf|?v4K%eYW;=r3cVOb-ANv#$(&Z z=Er->FSfsvVzR+0Y~n-+uu-&%KM}=&!@LGbyJW8A+9fBQ0SpS@6-n-PF2~UpKg9V} z$0@dS)I~QSO@kh)!P%t++JkfwIgvTX=ECvgC$8;}jv*^fB!*z#eodA>=->vAYP6@c zxN;T7U7p^jZL@-z@A$q`&>s7E|Mt=Jbt#%x>M1umzDo_h-*~w}M|Tv4Bo5Imp;Rrw znDH4WJptG|1T88Jqdqj&6vIz>@!~}yh>#R>TafNw*Z4(Mp&zdc&pv)L>Dep&yW;I!7Bs!614Js@0RQ zu#PfMA!NDqA$$)BL@&1BoOBr&gXRgvPx#>VIh@!Bf+z4i8W)&Iv59vQYbR0x)Jh(c zeBHy1B`N9fo;pkt2GO!ikUJ*`2Xz&Wiq}9aDRi2Me$8|15)N!u=$;#Rb*sC>S*g_R zw!<58TW9AqOoyxWNutXVXG5-?Ej8Tl0Xg&z>^H((LBSyOITCQZ8TdbNgEnpdw6T#8 z$MdtI+QmIpR8#^bnyq9zhEHm)?ry)o(e>UbLL=aAL>!r1kLZvG%J_3^7_5Z^tQ|YB zNvFxK8f?cSKwUsY$FbrebIgDMsmq>nLmzO(*X%M+9xqOksHh`z&$+Sh;`HZ(AgDov zlLi9qwYlz`rCnN!{xIb>(V`r3`J8j(#C(=k>DSgr^hEeE6o>Ki5Pk{#aQ?q!R^;pm z@j9@QZpOgICSllIhOie?nO9a(b=)@-#|ototb%O z+&JSXzcrROI!&PK+o;0g*qwu}dp3%+v}e26RkG>_ z!}bWmET99p6O!;@e;UzI7$p>_u&5h zA0Uv{B6dZrQRtV1Jp7KXv-#A3-D|7dO&htLo)7pgTX7On*j^$sihc!t#D#Ij*|vIc z86sK&^&br@5C!YgnjZ_2dzcFQzkQcM4E&OkP9X3wj6mXFN`~ zArTQq8{L9-{abNOgP$KBghWFaMG%hs5Zi!+toOI?15sHpdEN7#8MiX-2L=+!4fLk3 zI2m%E;>brhpbf4qt*vJ5S#XvWRMctrhV6e&gD2*e2(9J3FbF$pwoNhKgKE9?)aSjc{scRbcqPQ?6 zrzQ8_LHvdGgS&J*=c!PgaK-p+LPrj8JbPqCh$jEW9Z#c{`Hl~rraUcJb`V~pEEMce z2?(_n-_<|`1Ll{61KIw!F*GWw=GUhOr=yFf+8_~ai73Eh6A0=JVVB5u!3x{$255=vxs{gBI&|>qpV?YwxjN+ zfMB2t`p(TcV%i>I4Dt3~5JMw20OTHk^Ie)2mT>=}XfQzlg*}KTH3-4s@kam;o*#AQ z1=#vV5IfL&h=#j0skxfSdi>|KJp12aijMU!NE0RE&_A+Rh_KNRur!j(pk9X+6+v2E zofgs+XIs7>tN-dxpE9UfxTK`QT17qbty^`Cj4A;t>+`QwZy2mW%zXm{L*fu-BX@8T zyKeb+@WmO518CQ&=#I!esvZk|_)rfiPT~+fY*}B#k6Lm5E$}DdKHd3vmTG%n)~Zea zdu5X#Mvk!8-i`g;!mGP|B$Eg^2k&?uIXKPy#MnF6@pufxnRcQN!2YR(R>N7#j~#}q zS09<_PKTu1_F66M$a!Nz`alxHp|_p$(Z@5#6A}R894>mHVlUrrIwQv*;@a-hiB$>q zw8xOYz^3zE5MX(Xv+PbBn#8Nt(8GyYfcn-yI9Lfu&T?{g@2*|_C?1?`cTeG}OuoNX zD}ggi9M^)Hq-S7o1yE_Uvmm>&Hyl^;Yka&O4>~ckmY)6lR~KTEv)1R&hTKubig-{( zk=r~wu%vjVat#0BDU^eYYk$eGiMVX)-oaJH&LYIbT^<+34z+obYbprC0XZVh1S;I zj%WDa@`X}PJi7ur9ukcnchnMU1|gfd;GAQ}%LlC;Qy4VjmB$$?+=3MOzkO?zODpt{%tuRxLaC3B?q} zUjqY%J>i{AO~K%7_{2gCAS&{20C&wI`%3-TOP7Tgei#t9h_H?WDjFn!kC34{%Dpc_ zq2fQAYP+^%hs>mYHH2cM?VW}D6yz` z7`&DkiG(tIu_3Da0WA;8;oi;mUEtv0(A3nl_l#1^_=aL0gSX>CoR-g~=TT{?XZ#0s z|Na}#ecWMdGHGd2r=PtLAtQm2XHnxVvs`oa-!3 znL0G>$#5WSLgHCCuCIZJsPAxRH}z=~h!#DVVU7L#DXFv^v5fEi6XD%F>c@^!6LA2v z;aN!5Eyd0@voxhhKz0k~mL89HpA-PyjIba-DK9Ti$j)9Xqbz5%-iyPDg2Gt+?Ez&+ z(>Ow>IATj}N)~~lM?7R^VY0gpfSN#9r_Ec%4yA1&?}|P3?(?Tg!)m7A2@a9DEjd}r z36C<;aQ^7NXR93RkY)uF{AaSZ;*a4m|VXomkYd}e5_k@udqSnNdl@JVfeLO;A^eJw&=jqj4 zc@=WwTG=X`qGCJ!ux<8%^yccxF9R{jo1Ovnkb&l+4l5nBk6To6xr>wLhac@4&i)ei z^hHxd0jCf$s*uYPp_$`k{M)yIN<-){A>rYl0Vf6Q2X;>n`p%}e5oHl}${W?=gI;qJozIA4 z`Ec{QZVwc*YTX|&e9{U~Yfew(AIWJVaHrhhPChfMop(kVjn2gTB7Le)c4n zOK&4$F$tG`4qm)LhQnT$QY16;w}p|8vETmc+V=JW%jqlf9*UA#7DpcK+F27dlsY)m zhw|8%ZyQ*x1I--|5zvKV2-j&B)(Z;KD5x2-ne-6b&wTxEjA=7Kn%n~d0MAP$TGTgl%RMBDIJzjfRRpE_h<%?Tw(pr0amIyr@I_ZPD!yt{1pWA&AWF)fO$L^ zj!PVWgju7wHbaisk&++0e@_)p<%oMgc{um0V3C2+Cx-lQ-k$1FYTFhzkNEY3xYyp$ z^>h~2V(9v=Ot~B9V434fs}}$h&JpK#bvAsNno9p7{v{>o&evps(>p(Il{;VbR8vf* zorGI~q|iQyL`KA^kM(olXm~tV96XL@RNQTQkEvSvQB~H39FR92khpZ&YRrdig;vIx zR%Y`k4Fvxq}Nq+gtFM7^&B>v9($ad{+^L)6_f$a9HP% zcANy^3Iex)qfcen_J7D*c==GDJ5kZ%&Age9VmD2`zdnU(2<&(D`_z$qpW@) zDpX+ir;M)`3RSmu-W!l*K69aBJ|>-dm?gzH$E*Dm-&EXlI*S5x|@fm zCnPl{1W5R&*l(#qvCzY%_=z^@o;zpVb%EgC*uxD(0Ig>Ow4{u{4F*_ni(SR4{sDA~VZ^sp?)lHloCpWE*W%EZyp7Xxg zJZ-kDwavHr^P`BWDDD#8Jr=hlGa}}1O{QRoK>ji+c=NIIiH*?Xz3EAy20&S*0UwQ< z2w?UD>l&gDJC1#C=>MT4FH#A4%@rtQ6hxJekNd8cKhydtVU*v{4XWGMjTN{d_ScW8 z)PJC^2-$Z{x&9UjPSL-cEcR&EjrnA#xTIfaHX!ufHwVO>VjCGjFh|o8jDcrB3{?jR z|J&6hw(}b@h(OU%-rFDp=2hcC0&L(@X2{?Z&o4>pr{2%;z_?jAU>=*k8XbsrhAx*NFL@>_z9B z2UKiMb_*Gh8{wfMn|D!7iyKq(ys@I`4=K)Gy8v(_8st8w|(CyDp#6UR!Kuq zc4d{B6qOaS5-O3sS4Nj44HOYFla&$5-cc!gC3_bxvrr`A{T^NSe4p_?&*!~ApZo5* zx;fAP`9F{Uar}PY^(%4084-pYi{9SeVIeedBr_4n_ZygNl+Y$WLRcFB&lm_DV9|O= zNN*THh+G#`7?|)&;4FcL9RyTOx_>m6>#n_&d6-Bo%(VjUig1Wfh=g5WZh4(eQ}bFm zEvr2D%4I*Uyhe>VIaS4^G|MJ2x0q&a+gVK(+qDIuj>Qpi##a3wM>*@No$;L13CEZa zlG^hYP!2h@uC+JCrUU{#>0re0~StQ!GEYzCMo@KtHhdcp4`befHV{<~XG?nwG$_Idrt0kTr z;GgCv{52R>2g`HRRSx;R?c8|Jac(2DxhzqO9;tVR6qmUCcuUp>DT-FX07Mca>RIoQ zUIz8To0aAHqZDq9YLB}FUV??@6gs}s^3_(y$O=NAJ`8*x>>y)-E?B!rF-IR1%IA2G z{)wMNG1#7Eyh%DeCj2t)5)84GdnW5u-#A;P&f|fg-n?s91BfAlFacbq&J2CvJrU(Y zG>02=14{0e@IK(I4nm2DS8Rge(YGyj(Ds@7_iHkGtk0TE;`h!g>!gLC5eTEXrTp|Y z8fS1fecvP?bq0!jN?tw|XK2CwjB{DTrPNl?(fP#o4-bcoKZ=NmaEV(0kwe{~P|%t> z-`D&Yx-z0>8*YP;pw2N$Jg-IEaf|`FO(}ecSFNofXf47s9t$2l0-+%@bB*Pm939Ja zA-3vFYTE9u9Luf{uou3Ss&lOC5rNgwBj`2gP!-FBf_F zZ5}%IV0lX^bfLv_o#qvKOsa2_KbX0$ZsW6Aj(MwLcx}ia7kfAwj@lntpzII;*;$*KkJGZPME-nrU@Ebh+d~2*Y0D40|KijgGmX?-aU*Lk; zp|6TID!Dp6DEWB=>lGUy@!5>ErkV5C5GZ6NJRS9J9sZGTt_K#9U9Q&_I=#-RTgZmr zj);s@>?vHm@|tJoMp)TTj=41^pL2BDvFW9`{uwQCxjEAt_3~zUtBK;SSMUsU8Ndkl z;w>5uF%T3DOXJtm2nr8a2(IQWK!M*jY#72GSo`?sQLUBd!2e#t(g)Snc3`{4_;{q| zL{<`Lcz^gK;87&5Sp;s)x@45hfv@iF$5WVqARC9tPDU6Xkhp(qjPo2eNd~uyQjwHt|u3B!HlHxLFN(#qj(Qjkm1oRZwuycuN5L ze1?omu&hKmx7$tVE536iZ~|($1!?n_*7Mc_pVa?o`@qO}=7C7e1vu8ALf&@P zOOCpw?k={W#~%u!h({vCArf@Zu2Qvcd%=dF|Q>crHkl#;#IhnZE7i^ASY z$HpCwy%}3BIfDQ(s51QWwxa@(aHdvERtKMsRR#Bj>bbB>PG9q zstea4fwZ>J(-X-ua9(yiOn_xVoThJb22gJbhYeL^XCo&xPvBA^|#Y$XpBG;K&IF{m(N zq6XhM_~{cG%KeWJ^gs#}1lc9%onWJjKNa`zsZxYy_t55qPjeU71=vms9d32M*=GM4 zn|@t6)9%S;+t{{iH;ntHTjp&OG&S}s`rN3~8}2O>>+B!wKP?wRl_t0M><#&L09r=V zV!XT)=~?UKWuPA<%63F>L7j(SJ1{L-E?Q6Uv<3lRz=>BYPLE@JQ&80#Y=@^56(2G_ zJyEdRV~JZVnC`4=rmWiAocFpb!z*`sSgvf$6;(Vp$|*m0V@Bs*_?z=px{}V(f}xiS zYz4h*+ieujg+#QZs&iYUrLnh%P$97am42Lh&2zI4+$5xUB#{;nhY_|^)PqftA%TI^ z(mfDN8)fW)NUlz02@>ia)42# zWK}|GFM)&6+O`+f)&ll4LjHm-z#eb+ZA`;H8mAkf1c}!GwI=~zh?GuyiM-}bBmpDV z4JD&2^h1Cr_F|ht_~Cn)OwdWcP0c8+#zx9po$WNKLu}&241*eXRg->9VG$ zt7oT$1~;SWsO$25<>Pu)+f+{Z|MdNuRP%=8%Ee44>4e~tz;$C_(w;!Cfz5b#!-lTe zEcXRF=uTfDuh3^o$0-}9~o&iE-QnC!YM4{0LB&p&EJtsvUR*l?a zscY@PkaxL%p#lMm)&9pNv`54Cq;Ddp1>B`|0LX}GNg;%H0Pt^-aY2p_ABfaM++u=8 zk$7?fB%|pA-d%<(;a%h62yH1)fG988P0d-xXNdXei?xvC&=4+b-)gX zp2Ct-V+CGY&)OeQ9GI>(0b6{kMkv5kmu*t?r%qOc#A9vG zz&F6~Ljoc@!2K7aKQE(3K8O`Scs_7S(Ebb0w}F`y>Kn%iO+GJ9Xka~;@ZCZ>4||Oc zD{Ce#iBs^0*lI^*Z?rw?{jcL~{?Lyy6B7_2IMB4#z=BwNEp6dNZY~L@gg)XC`m3Pe zU|Dol#2K$+IdxP4Z4BbOBk}g+*FfhjAVO9LaixjX9Shjw?x^aKciHNP9gDP4#tf&_LAr0l_{|ITQ;b*q-!9lhD z@l~r7*y5}m3}wPBDQ_(#wJY@D2T01J_l=+*1b zr30dd8GS@d@tzQJs09gQ3pEX#3DxtF=(*uIe1}Tcen(AZWf`~()LtV$=8+51(rn+tgG!hLm-W5H24@*cy5|Iin0J_yWJg(s* z1?Ze#H8eD^TG*3d9uSVWD_Sx0^s(8&1uRxFGSpa_`;gLt&BQ@$2MnDY5D;91J_X*h zVHbVKE^yaC@HM{l@IXfR5vPf*1VDhj&!zrDO?CAkgwcBmF>9`0=&%;sEG&1XjWM1T zF9`U$QWrwCu=>2Y^@VKZsrcw6>&1$$r|Xk*#LU#~U$-WTj@llI|C9UUu!WcJpm%T( ztr^dFU}^B}>L@RNG|BSG>;(jni0G2c_?@2qHP$0C>IJNw`fyzU z5zfJkON?#Bz;a!b7n{bj+NMfNLikRc)BJC9SACDM<^4TqHj(INa>=4ybbhoK=m zl=;KhOcp|hV7H)-vFXj6b%a)If{iRKr(YTv2r@TeOeW=#FSEg`8} z{&DWWvCO23C3uJS!-lhm@99eR^A2Rby5yq(f`gDG_d>=*;()e76iwO;aPj5u-)Cu0 zDcqq=Q~Y2+;X&GhtM&{C&=L?zfDd}i}*#MG7YpI=Y^CILjlMF7F5!^!s#7y>Z98an_0gIu~TmRP@wgWEhcDH z*Oo8X4=x|vO1g+9vmA08{k9*jm)MhkkX$D?B?z~*U!-q7?E2LNuJm&`W{haQE2^sQ zLii?#mc+MQ(}jq;p`EF+zo>!3oM6FxW@+%xUqow12xy#_NGZ7vItRNF5xw%}x@{Re zc9u(Ce|u8!eO&Jh3^T+`b`VM)-^+wQ03=ULW^tf5R+kRf9C%p^R{uM0nhBhy0X@#C z?~Q1KK^Kx9b@}tkvOku8?_f7Uw+07qgoZNXyMe{b7l;h$Wx{ChFvvkU0Ld^C^qC=O z2h1L99&c)@#EM zsUV3;-lKQ?p~qhdzMGz6gYFSL6GoRWn)9@%u8;T6?s_6!`YQyWPCS7jmlx|G0a`t# zrB|RH5+HXVqyy?1rXPjUFIsGh97bh;#D-zpqLF->gz*jA4jHUMOI>~V47N#PFCm07 zt_h*U;-T~?lE%So%*~0Djd8qwbSz~4`Aohg<#GfAPw%J+wS)+ zb~h}{%*;S?*nXLxKk&f*-$h~%QvOXORz|&a30q`?{iqCXES~)<4~C(!$A=|P3dy+Y z>q5{SHP6}iH&|I&Nop;+iz>$nh#;=IxP+PWx{y3GC`S=hjdDC?k?ucB=GEeT|9c@! z-0?j+R(;<%{uXI=WpbbXwnHQZjo`_6Sj?M7h)b^5b#?=T?4ie5*Sa+IT^2Y1EXxCi z(B8}>*PIrCI^qEqT@!RYKp`(3(&om?9q!wD@}Hq*!*z$>4vET39K~KM-J80n1k@b% zxK{?=&r$sygj*g<;&-fdVy|>bA0u%}MFZUm*wx_#V#7v+gB}1(t?}b)S03y~a1GwD z>g_P12{jU_`K7_Xi~jL5U$zlw(;i^XA`QuPHK0vN^M$>_7`;bTJ6e21XNRY;p0vlG0nPtNLXh#S5~4=h=^%@c&F;|p zsDVk<*V=`KhZ>IdcvVSp19UL}wEkRkDWunS7ktep&E#Muznhrn?zupKe4= zbY)>?h~&8AeKsQ$@Nl2I7j{D&5C?7*)oHe41vyLd2Uk9t*zjqIMrT^_<;1A^j?SDR z2=XT2*hX(+WUQ&kDJL1$b|5G^vgCs0_}g#WmamEnIR$@NxNtc4+6oQ-T&^OkARW(s zXDottd?^H(lXU&skMi+qf!1)zlWR%CqqjPhkH5A$7Af(~*wgHhD8W5ZZe9gjgT`wo zPKwuW-`;}C@jbW)*RS8LQ_KD-OuC!nIG3W0csg<%6|-pTEA9&t-3`??=>}oUxeF^B z*aZrqzDY}lli-oo9w=n!(Iym(o1KOgT-%7hUrby)3tcWj6v6iW%kYy$g##B#Yavi3 z@k+R#!1yAbb^?l%Xc*tPUF2C~QKsUfgPtg;zVtZvk@k{x#|}t_#Zgby+fUz%<({zO z%kx$GZhie+UExa41zj02gnq#Fx*U2g?bzjrYf5M3=qUc#W?pG$j%OOIl*@+p^f!Ha zFsvOSEYCP- z{lSbs!k0@z*@&j3#r2A07=$fLjfhys3@pBn$ z0EG5{^k5&_0+5R~@Kj<0P)%~fFcLQ|dt`otdL?~n-$!iUgJ3U)+mL+0l(Ft(y?Kvv zToZZl5zwL&Z_ccK$=SRh>PPO@r|*}T16s@&v2nM_FjnulmKbc|@aSt8lc`9n^93cd zj?4oK?gKJg0t0Ow?aE#{Z2$&wTDhTk+{NWZW@aofe9RKqc^zn-)Xy)+VJj&|_w_eR zi#i(P#x{LSFeqr~tFESFW)9U|nnL6OAZX$`A#zzPpBLDF1+~|)y;}@HcK@oskKhqC=zmew=r)evylZQEK@+ z{hFg4VNt$MXKTU}YFSnUKJ-ME8`jQ7786|{kx3VPMq+#Mw*jDL*C)yyL=_x*Nzj6G z4_!S*^58srpKp7aMaU%J^X@!cAhHPG;t%pI`5%Sr))M0!e7sh5+tp`f?#M}9%5x0M zQTDo^q}8oAlf-5&l$2)iJbCK2W6s2|@x9|l4ptwYPn+IBJ}@O|lC?=}NH0zTqs;Da z+_-+*7uM+Ix)*65R>fr<-oISvBU2vnu%x790m)Ib-6P*oO0UVJ*=LxM;fA0SU)372 zIRR#Nxo>iS7fJyF2>{R(g^?XHxzf+(bQoB~-XCHQZQa<;j-^b;RMGeQVz`BiS!b(K zQo+yD#;u;x#TsSKs6I9!nxXTqdie2YhRvI$)$9c9OBWx|YsI!Bq3ZbC z(${t8*T%0D9XWlBpvi!kiIp9vEHPe+BASXI5r8U4VkbPTRM*iskO&KX*HI3loJ0)= zD0@B7A6b3U?;n~yN>kDvDNs@9@Gr1~;F&4vaB zmmBet0b{qw^e3VR1Xy+ta`*D`a$tj^@aFdsu3vxIC<1Ge_i> z*s$@vNy@UsXl#{>dvPNA+PT1gOR!CtEmk-#>pt}=u*GJVUE9ZI-Wz<5x_!KO*9%K7k^SS(T9Q6+EAFf5T~Fq>q!_-WDgE+lT`~U4@go{Pei}bs zz#Yu<&F zyv%y3R^ZS?N|6yj5yXNv>{-ELhld>V*vys}KJ$cb zl^o>2oD4L9@pvC-W>I+%g-#u0xn+PiYrP(U?ioef0h-Zohj<9iEW+0UO@S})66jo_ zJ)JKOMTJGYcGSqixa;R<2sn&<8SXfbD@5u}Y1?Jm22iQRzQUYG<*kBhhuGi7*k@2l zYt{;9^Xr>DnK45p@epOf`erajwEmns#pk!tZeLHR%qs zB7eqjrzFcgxz|9F>LS!A#G3ks{>&GMp9%F(h$>3y;*@w`VBmLbUVN?5Q=K_HNT0Lt zq)87A4Xr3aA`UgYrHEZRa`nq@5Olo#Pxsv1?7f#NZ#_Ar`QXA@2%Gm`AI^OosyR{DuSudwK%X}6+*$u^`{6tFDilUjRjng4i;uI{ zS=h!y~;i|gv6CC!&3NfZIfyLAo+ zMBP5ItY3rI{to($ga9Y&6^Woe1ww-s{;1me+d^6KUXKrpan>()w4I!b~f37%yRKAy=x7~ZI+qHIh0`kEB%UhK=1#E#N88d%hX6DrnFdsjO zv7AWvj$hIIZCd(t86OFgMW;bbByj)RegATaVE^z_-Jbs`)235$JWWe@ZDo&ao5UX-%4hUxxnw+x7XnDB*S&Wj(RN9SaKm2-U1ol zn{#xO09+86Au3ujmyon;-1^bamYg;;M!Yu8XynSLiFx%fxIVhXt+r^a+h5%LIeL8o zf7f*Ni|U1ROD<8m^?Vu#RZEWmO47n z*8aNl&CqZYW(B1=7bcNSmz^r(yG&RERM?^jg~9qEULkbI0&exX_4`x5k5~5TR=g;~O_1W|Nslwpg`h$){dSQ!}kVw^zA6cb;@7@lU?M1pHlHXd+y2I|T z7%dS71qlr5Av_I}R9bOO{R0E#*dDjRw19D{OfJ@a&r!6OHqK*qswiwO(ALh^^WNMn z%TAT&XY1fVCfSnn8`40k4w~Dbf&)W)9R}7~g2X@|(5SVt2c58GM*Qgpe8>j50>|~b~J_@zgs^}lc?sML^Kn$ z1+XHE3>zPEZZW3at|L6NM~aKytLmn&*M_;=EfzIf{<=iGu7G(|2)C6^;MuIoT7j4k zNza?AGSttpxi!+M=2l)fscPuzb$4Cc;9Vbu3PUx>CR&oG{QN^Nn=&h*#$sKYA6vO6 zHt6o11?y=KVl>8x<%HNKX*aCS?F&MA64U9A%QGeU|lnsPWGk+}dv)660spv`m zfXO*j-nB_DD|^?SI+m6rmk?saiWyBYWcX;Xe8Ss8GrjEkohyl)Nt2Oi^nB&__O)T! zMGQulx;6Lty$aZB{)eT!!X6%xSKUuBw`Q;x|4)&?w#>$N7ieY6t8=);8p5yNkdmU~ z;K7WT{kXzg*=v1@)XW{*e+aSjEQ_`7lQoiUaAP_4|;GU1q&3&CH zzhl~}k3@ByrF%Ss+-InTjv(j!i>uyZ5G19{b(0tl+rt%E( znifaS9crue@qg8swJ%IH^w^;%%^k6+x;eP)spAH60$gESOr{9MJJNCFq1xS>SMza| z-UdU1-k550SzaRSfd^HL5cH}EW;j&6io zxZ&-G<>_S@HsOUDv*-ASAAbNO9GDJj-_Mu&*MQdUs$TrBZM4$dNBy<|)-y~*ipXO@fk7{l3^ z&?=z!_X({h|1qJ}zA@)-16q%Fu>REAXa2vQnm!}BpNs1*I_?($ek71t{s%GMqv$(@ zV9W(1@*-!7XNJs7&i4>A-anC|^}2fWW#VO?rxV$k?UCz^p5Kc2{~VrP>qtVKh+Gdw ze;0jX8aJ#AU;`)Uix3Z_(GaAffVgBKoP5!nhkN^~CV6!Dr*24a!SzMx`-oiur;bTW z((e=;08eqa6Uqf02~Wc;{AN|8n9sLigIZ)wKk@4Wjvzk(A0AR^4eNJp+g1hlC~6eL zQX?WfL8U_M&gH#QZdBLNn$3D3v}2+(#~1hmW1D3tOI*_lc~>SxNs9AS6z|Kd3g8&u zyN<0|A}Z@_SXxtW@_)`==JNH;ViYDUv%aG3!$d{xIgvQPipe|lz=w{2k1+t};iCT; zM>H$G38)3%LT3hp92|H(dNpeLZ#d#@|7>x*A9;6pCRtE-VRG}fWUj4h^rsickKBsS z|Fs)Q2$3n}pra%ty7#mXqa0_$*g<5>e{z`uR0^_LHvKDjDoS?e3im90Sn=p*Ejlv2 zfwK?0lz?2M`NZuDr!Ks#!yktz*|^$1ni%co8MZdq8+S)+Vf(1Z%3UtWuv*~j zem|P|Q!w<00VA*N;IX5i2`#wqa`h^uL%1RGvGoXZyCPKJ)87$`%1(_4L8pVl(S)569ZRuq#gq+$-{7du+3I zu-$0{_6?{cQd?o}3ne!d}PEPng;aw`tE?Q2PDVL7<%5I1)V_lA88oC!0MwepJ{ zzRhe6O9P2bCR1T#q@}DX1#YB;;e!7#&{A!}h|5HD#%_90cD4aBWbPTqsnD*dKJgTF z+I|*kZksuowV_D{Ty@3=TEM*b|H)8xooD}D5Vz!SP1DJ`-$$6%c>R9( ztVHX%yriahQO&KVS4Mb6dL3Wb)%O%1nDTEj;r)j9j>hC|GLtgzuypjSf&ChVp${+J zig53VVGR<%bC^+q1b!~Hb9N+3yFg2HN-nPH(aP(dW&6{qV^gP$M&#KOuEc6+l{c{n zwRY4kXgcw!jN2Wa^c_4K-k|?*r^^(hRv1gdM1Q|Ds&@=PP)xr}qVH;I);T-RyEkn5 zH@0gJEyl?+M&S#3KmJWO-^LS#BlAM1(cPTjHO|K3x~xc>WeT{6w_goGG!bn1{Rjsz$O7Z|RCLc}m8@(EDouR6HN53DUc`m$1p++<7AyNL0$ANI`&_KA4Ju(XYwmq45Q(|H*vy?Fr~HWGD#Q!t`pn@qQI6 zk+7HBF-uY1=I*wtc*EtqeBZwf&eGn)mboo3h@@;HbP+#tXXe0PM|5q*(yt>rf%{(v zC@zMllUdw1InVxeqERsNDe$i;FAR0d%nFA}u0$NCPCqD! zaetZ3Pg=)R{MPt|jhakWw;piCuJ-+nA_D^^dp^fROfvdSUshz!yAHRAde?gb@t(IRM& zuNgBRAFVgq`^dD#tc4phvV-Y_!n;RN^0lIvq9Aumde^SC+>BzIcBv#EVm}f0a+^k{ zEKS*yz>N*nP6f?9k(Rb8hI)T{St(tr>%r!Xilba08;Hl|Y}MN1YOG?1KR5G-pYvkj z|1;Yxc2JG#i(O8flkk3Zmlk)_w$I4rs3Z$(Yt70gR9k(0ZZ|D6K5^*}Jtpn*=F_Pf zVPYR57gpw`jwYu3@c;OI+~=p-=93F?rd(rt&Z;z1UD4cqf>!EBmRFs1h z&vlgRRKMv`DC?#BsVNsJ)XWqL&E|XxW$X2Z0cy&Rhi|v%n5Cz_FYCXU;kuJwP?sY8 zxLH^0X@rIb{@UJ|i(mHF?}a?1qF9Y+%Z0=zcIu2g-VoTv%SVrw$+PF(+gE3mQ*D)F zR{7DN{8j!dyx0bppSGvd1kV?JNGVf|`?P&atY>+-ReHTJuH|~y!iEjD^#-UXi@t4G z+Z1#AWKrHh=D}Dly!qgxN!Oa%R?ltxl$bLGZn@)1zv-5FedtXIn#@g8Iv?N>AVXbj zeuZ+ChMM`y#oR8DsHMfDmYw^gj(C=>{;|6rAL`#erG5T&+I2IVn%~gw&o-xNoZn3T zeeG|<)Ldo9H|MV@v>&<8US*Xx4w&HqyReW@B|I=uM&%d%uC2VucY6t|+J>z*p9OOg zLqbBBXvRlz;ua-BhS}3&M4`BrLq;u(Obj=x{Wcp~y1SoscIqrFE;|1>znM}td+_yY zO3bE<;j914@1SforHrzQpF&x)`(MAVP2Z5*!Og)@(PI?D94U282LX^Rh>Zz;_%J>t zh1)rFm6xr%+kWb{*V)OOKcArf=^2E*H9*2Dh4X_wE>_^U~7SSy))Q)qnSU zGmRD8Ed_Ov95g(sMK#yAuU@le3=ElNCy2oUKiu`?c-C;l&_mT#|=OTw?d2}-tDw7W0a;_ zpoT&mf{}2f4n7$hGxOp(VLe_Y)&Kc(1~?Q9YdD3WSDhtpc~IxF!+;!DeR7k{&p5$E zCaH-bfrNwv3>WbRT<-wyw@4R)qMjgYSym)M3F)!7aByZLO&MAj@6ME1xKwR5Cr`j#L&L+|xLZ*7j(rgZwgimhY!qz-yCi07_}shq0btoZZpMrLTj(&?|OaJ`&)UmNK5!wh6P2vE-0SpZv?x-~>wA21L z@OGzOMPTMSR*9=BVD9I;mmxfpANziM5@l^DyB^{`7M!o{obz1veQ{Fj&}&D}`i&x| zQ!+9_TU^h2t&HTSZg$=>V=+Oq#C+L5eUHtC{`}3|h5|ja!cmr9BbRsm`Esk<5j=%9 z-60KDd3jxAuEuFK6_tP|!sXh(erppgbsGhcZy-CYJQpT&MfpSe6Nh^5{rW@$()}#E zj~vkkgm(wb&wHybSQmw$07fNLyCJxo^B*s<8>{y{)?yc{1MLQ(9{|9Ikj8i82DR1Xu|BHwIKkU&{$;HLGn7vi+ zfo@e76Tc| zuJ9{#t0=XBDNwL3UAU6h3#SJA=}et8#DnV|P+y&GaO_dP z3_EtDp~S=(OohoYN&8_x?1GH+^l_Dyr%GU2?JTf=>N+Ex_2Y-@HTc;8BuDSrvq$Li z+x1~}!y=n*(E7a!6zFGzWjGyqzLHQu(9zK~1J3`P`WOQa{zM)69@d)R$Vgt_ideLf zP;H#$=HgN{F-gLWLBg;0_D23Bz|D2Tc@=c_-j?@JvZbc^DDlcHyY` zl`DzRuM5GRSMl!MIJ6I~phaV5X6zW5n3l&IR_AZ=TzB=(ty^nKzO|mOuCI5>brd@L z^DxGB=z!w0v$Koz3=Im3`}xxyCkb*3W##4N13#E)$jW+?7(u+KbEmPA(miC$WaB#v zQ`{$f_%II}+cA7RA0MA)?EE}99dNJ@`uNc46<<{ab06AcrRC(53nDQ1@#732847{m z+#ZI7CF6a_b%q&7kG3|rKo^X~YzpfF=9`pcEy0eYAt!eWkW2#Zf^+JbnEl#nYb1!= zShu+W4NBxCo~mtEG*iEoF6w3)-py(NU<3W0jGB3w*elIIkZgNKJznyX%?XBlvf^*0 zv2WOVP#QE(AUh-S&x@iVJ3AGKQ^GFhdueli|NwE9fDUBBRn>-2%S<}3}0GW;yA6Oq!bvB^`~GadAqA=#Q2)K z`_%Z@z?UyJva+(H@S-%~WMRZIgsoZ!j+0i1db=l=uSf5(q1uFG(8iBaQ_+@UN3JAF z7D#g)Jovn(@3WPoqhnw^dOGZgIXO8!=}7M$h2**soS=rT?lWlT$t?pdrAP zA5~OpyAtGIb_?>KjaohvpxOt0~78Wg#4rhaD7Eu_& z6NLMLAhq_F{LVD#Z}4!I!`F}vOCKUAmB7HHAfG=qJe*~+@8t#P7JdNj`dsuG;+j)| zIIS^ox1riXq$p)V1nP!Z$iujKcoazNs=t35h(} z%tJ^5Escdw_Nzh|j~}~HXo`2?$;zMabvpz395*+2Giav-93$NO_n*XeFsa&)={Xm$ z1&X z)=8|s@FTXd=Id6y5&d=21PV|xY$2V)*UBX(rUOV!&-KiuOHZC@@@$GenX%V~>gqjg z8Ns2UH5MYyqBipr9dUTL_0!k)v!W8c_3MBCy&nA!M-$qIf1YCB54dDpow=;GYn+1r OoR(ESkuG!b#{U5nm^}Od literal 0 HcmV?d00001 diff --git a/examples/README.rst b/examples/README.rst index 8a810fb..e4e909e 100644 --- a/examples/README.rst +++ b/examples/README.rst @@ -1,3 +1,5 @@ +.. _examples: + Examples ======== diff --git a/examples/ordinal_embedding.py b/examples/ordinal_embedding.py index 9e27155..5188089 100644 --- a/examples/ordinal_embedding.py +++ b/examples/ordinal_embedding.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- r""" .. _example_ordinal_embedding: + Ordinal Embedding ================= diff --git a/paper/.gitignore b/paper/.gitignore new file mode 100644 index 0000000..daff702 --- /dev/null +++ b/paper/.gitignore @@ -0,0 +1,2 @@ +*.pdf +*.pdf+ diff --git a/paper/images/adam_lr.pdf b/paper/images/adam_lr.pdf new file mode 100644 index 0000000000000000000000000000000000000000..45b5f1d2ba85ae26fef5bc9ae98d0afc6424506a GIT binary patch literal 11084 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 Bk;DK1 literal 0 HcmV?d00001 diff --git a/paper/images/adam_lr_triplet.pdf b/paper/images/adam_lr_triplet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8670afea7627f5088c8115717d30465aea674b79 GIT binary patch literal 12482 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 literal 0 HcmV?d00001 diff --git a/paper/images/datasets.pdf b/paper/images/datasets.pdf new file mode 100644 index 0000000000000000000000000000000000000000..16433854dfc82eb6bc8981e96b47187252659feb GIT binary patch literal 18817 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 z literal 0 HcmV?d00001 diff --git a/paper/images/deltatime-per-algorithm_cblearn-all.pdf b/paper/images/deltatime-per-algorithm_cblearn-all.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8e3c8dc5674e7c09e9389e215e6b4586f08f0595 GIT binary patch literal 15917 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 z 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 P8iT+)~pxhxLM* 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 literal 0 HcmV?d00001 diff --git a/paper/images/torch_speedtest_triplets.pdf b/paper/images/torch_speedtest_triplets.pdf new file mode 100644 index 0000000000000000000000000000000000000000..67beeab311d4d025aa39c79c99c61cce01672353 GIT binary patch literal 25495 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 HVOseMF6MpV literal 0 HcmV?d00001 diff --git a/paper/paper.md b/paper/paper.md new file mode 100644 index 0000000..8feaf40 --- /dev/null +++ b/paper/paper.md @@ -0,0 +1,137 @@ +--- +title: 'cblearn: Comparison-based Machine Learning in Python' +tags: + - Python + - Machine Learning + - Comparison-based Learning + - Ordinal Embedding + - Triplets + - Behaviour + - Clustering + - Psychology + - Psychophysics + - Scaling +authors: + - name: David-Elias Künstle + orcid: 0000-0001-5507-3731 + corresponding: true + affiliation: "1, 2" + - given-names: Ulrike + dropping-particle: von + surname: Luxburg + affiliation: "1, 2" +affiliations: + - name: University of Tübingen, Germany + index: 1 + - name: Tübingen AI Center, Germany + index: 2 +date: 22 September 2023 +bibliography: references.bib +--- + +# Summary + +The `cblearn` package implements comparison-based machine learning algorithms +and routines to process comparison-based data in Python. +Comparison-based learning algorithms are used when only comparisons of similarity between data points are available, but no explicit similarity scores or features. +For example, humans struggle to assign *numeric* similarities to apples, pears, and bananas. +Still, they can easily *compare* the similarity of pears and apples with the similarity of apples and bananas---pears and apples usually appear more similar. +There exist comparison-based algorithms for most machine learning tasks, +like clustering, regression, or classification [e.g., @balcan2016learning; @heikinheimo2013crowd; @perrot_near-optimal_2020]; +The most frequently applied algorithms, however, are the so-called ordinal embedding algorithms +[e.g., @agarwal_generalized_2007; @tamuz_adaptively_2011; @van_der_maaten_stochastic_2012; @terada_local_2014; +@amid2015; @anderton2019scaling; @ghosh2019landmark]. +Ordinal embedding algorithms estimate a metric representation, such that the distances between embedded objects reflect the similarity comparisons. +These embedding algorithms have recently come into fashion in psychology and cognitive science to quantify the perceived similarity of +various stimuli objectively +[e.g., @haghiri_estimation_2020; @wills_toward_2009; @roads_obtaining_2019]. + + + +# Statement of need + +This work presents `cblearn`, an open-source Python package for comparison-based learning. Unlike related packages, +`cblearn` goes beyond specific algorithm implementations to provide an ecosystem for comparison-based data with access to several real-world datasets +and a collection of algorithm implementations. +`cblearn` is fast and user-friendly for applications but flexible for research on new algorithms and methods. +The package integrates well into the scientific Python ecosystem; for example, third-party functions for cross-validation or hyperparameter tuning of `scikit-learn` estimators can typically be used with `cblearn` estimators. +Although our package is relatively new, it has already been used for algorithm development [@mandal2023revenue] and data analysis in several studies [@schonmann_using_2022; @kunstle_estimating_2022; @van_assen_identifying_2022; @zhao2023perceiving; @fsauerObjectiveMeasurementApproach2024; @huber2024tracing]. + +We designed `cblearn` as a modular package with functions +for processing and converting the comparison data in all its varieties (`cblearn.preprocessing`, `cblearn.utils`, `cblearn.metrics`), routines to generate artificial or load real-world datasets (`cblearn.datasets`), and algorithms for ordinal embedding and clustering (`cblearn.embedding`, `cblearn.cluster`). + +## Various data formats supported + +The atomic datum in comparison-based learning is the quadruplet, +a comparison of the similarity $\delta$ between two pairs $(i, j)$ and $(k, l)$, +for example, asserting that $\delta(i, j) < \delta(k, l)$. +Another popular comparison query, the triplet, can be reduced to a quadruplet with $i == l$. +Comparison-based learning algorithms estimate classes, clusters, or metrics to fulfill as many quadruplets as possible. +In ordinal embedding, for example, the problem is to find $x_i, x_j, x_k, x_l \in \mathbb{R}^d$ +s.t. $\left\lVert x_i - x_j \right\rVert_2 < \left\lVert x_k - x_l \right\rVert_2 \Leftrightarrow \delta(i, j) < \delta(k, l)$. + +Besides triplets and quadruplets, there are many ways to ask for comparisons. +Some tasks ask for the "odd-one-out", the "most-central" object, or the two most similar objects to a reference. `cblearn` can load these different queries and convert them to triplets, ready for subsequent embedding or clustering tasks. + +Different data types can store triplets and `cblearn` converts them internally. +A 2D array with three columns for the object indices $(i, j, k)$ stores a triplet per row. In some applications, it is comfortable to separate the comparison "question" and "response", which leads to an additional list of response labels that are $1$, if $\delta(i, j) \le \delta(i, k)$, and $-1$, if $\delta(i, j) > \delta(i, k)$. +An alternative format stores triplets as a 3-dimensional sparse array. +These sparse arrays convert fast back and forth to dense 2D arrays while providing an intuitive comparison representation via multidimensional indexing. For example, the identical triplet can be represented as `[[i, j, k]]`, `([[i, k, j]], [-1])` or `sparse_arr[i, j, k] == 1`. + + +## Interfaces to diverse datasets + +There is no Iris, CIFAR, or ImageNet in comparison-based learning---the community lacks accessible real-world datasets to evaluate new algorithms. +`cblearn` provides access to various real-world datasets, summarized in \autoref{fig:datasets}, with functions to download and load the comparisons. +These datasets---typically comparisons between images or words---consist of human responses. +Additionally, our package provides preprocessing functions to convert different comparisons to triplets or quadruplets, which many algorithms expect. + +![Real-world datasets that can be accessed with `cblearn` cover many objects and triplet numbers. Please find a detailed description and references to the dataset in our package documentation. \label{fig:datasets}](images/datasets.pdf){ width=35% } + +## Algorithms implemented for CPU and GPU + +In the current version `0.3.0`, `cblearn` implements an extensive palette of ordinal embedding algorithms and a clustering algorithm (\autoref{tablealgorithms}); additional algorithms can be contributed easily to the modular design. +Most algorithm implementations are built with the scientific ecosystem around `scipy` [@virtanenSciPyFundamentalAlgorithms2020;@harris_array_2020] to be fast and lightweight. Inspired by the work of @vankadara_insights_2020, we added GPU implementations with `torch` [@paszke2019pytorch;@anselPyTorchFasterMachine2024] that use stochastic optimization routines known from deep learning methods. +These GPU implementations can be used with large datasets and rapidly adapted thanks to `torch`'s automated differentiation methods. + +: Algorithm implementations in `cblearn`. Most of these come in multiple variants: Different backends for small datasets on CPU and large datasets on GPU as well as variations of objective functions. \label{tablealgorithms} + +|Algorithm | Reference | +|:---------|:---------------| +|Crowd Kernel Learning | [@tamuz_adaptively_2011] | +|Fast Ordinal Triplet Embedding | [@jain_finite_2016] | +|Generalized Non-metric MDS | [@agarwal_generalized_2007] | +|Maximum-likelihood Difference Scaling | [@maloney_maximum_2003] | +|Soft Ordinal Embedding | [@terada_local_2014] | +|Ordinal Embedding Neural Network | [@vankadara_insights_2020] | +|Stochastic Triplet Embedding | [@van_der_maaten_stochastic_2012] | +|ComparisonHC (clustering) | [@perrot_near-optimal_2020] | + + +## User-friendly and compatible API +One of Python's greatest strengths is the scientific ecosystem, into which `cblearn` integrates. Our package does not only make use of this ecosystem internally but adopts their API conventions–––every user of `scikit-learn` [@pedregosa_scikit-learn_2011;@buitinck_api_2013] is already familiar with the API of `cblearn`: +Estimator objects use the well-known `scikit-learn` methods `.fit(X, y)`, `.transform(X)`, and `.predict(X)`. This convention allows the use of many routines from the `scikit-learn` ecosystem with `cblearn`'s estimators while representing comparisons as `numpy` arrays [@harris_array_2020]. +Interested readers can find a code example in the [Supplementary Material](https://github.com/cblearn/cblearn/blob/joss/paper/supplementary.pdf), which shows in just four lines how to fetch a real-world dataset, preprocess the data, estimate an embedding, and cross-validate the fit. More examples are available in the package's documentation. + +# Related work and empirical comparison + +Most comparison-based learning algorithms were implemented independently as part of a research paper [e.g., @ghoshdastidar_foundations_2019; @hebartRevealingMultidimensionalMental2020; @van_der_maaten_stochastic_2012; @roads_obtaining_2019]; +Just a few of these implementations, for example `loe` [@terada_local_2014] or `psiz` [@roads_obtaining_2019], come in the form of software packages. + +Related packages with collections of comparison-based learning algorithms have a focus on metric learning and crowd-sourced data collection. `metric-learn` [@metric-learn] provides a collection of methods to determine the distance metric from similarity data, including triplets and quadruplets, in a `scikit-learn` compatible API. Data collection packages +like `NEXT` [@NIPS2015_89ae0fe2] and `salmon` [@Sievert2023] provide active ordinal embedding algorithms to select the most informative comparisons in an experiment efficiently. +Our package `cblearn`, on the other hand, focuses on providing comparison data and interoperable estimator implementations of the remaining areas of comparison-based learning. + +A small empirical comparison to third-party packages reveals that `cblearn`'s algorithm implementations +typically are accurate and fast. Details are described in [Supplementary Material](https://github.com/cblearn/cblearn/blob/joss/paper/supplementary.pdf). +A more comprehensive evaluation of various ordinal embedding algorithms per se, focusing on large data sets, can be found in @vankadara_insights_2020. + +# Acknowledgements +We want to thank Debarghya Ghoshdastidar, Leena Vankadara, Siavash Haghiri, Michael Lohaus, and especially Michaël Perrot for the inspiring discussions about comparison-based learning in general and the `cblearn` package in particular. +Additionally, we thank Thomas Klein for the helpful feedback on this manuscript and Alexander Conzelmann for the contributions to the `cblearn.cluster` module. +The paper, code, and documentation profited considerably from the feedback of the JOSS editor and reviewers. + +This work was funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) under Germany’s Excellence Strategy – EXC number 2064/1 – Project number 390727645. +The authors thank the International Max Planck Research School for Intelligent Systems (IMPRS-IS) for supporting David-Elias Künstle. + +# References diff --git a/paper/references.bib b/paper/references.bib new file mode 100644 index 0000000..536b042 --- /dev/null +++ b/paper/references.bib @@ -0,0 +1,532 @@ +@article{metric-learn, + title = {metric-learn: {M}etric {L}earning {A}lgorithms in {P}ython}, + author = {{de Vazelhes}, William and {Carey}, CJ and {Tang}, Yuan and + {Vauquier}, Nathalie and {Bellet}, Aur{\'e}lien}, + journal = {Journal of Machine Learning Research}, + year = {2020}, + volume = {21}, + number = {138}, + pages = {1--6} +} + +@article{fsauerObjectiveMeasurementApproach2024, + title = {An Objective Measurement Approach to Quantify the Perceived Distortions of Spectacle Lenses}, + author = {Sauer, Yannick and K{\"u}nstle, David-Elias and Wichmann, Felix A. and Wahl, Siegfried}, + year = {2024}, + month = feb, + journal = {Scientific Reports}, + volume = {14}, + number = {1}, + pages = {3967}, + issn = {2045-2322}, + doi = {10.1038/s41598-024-54368-3}, + urldate = {2024-02-19}, + copyright = {All rights reserved}, + langid = {english}, +} +@article{huber2024tracing, + title={Tracing Truth Through Conceptual Scaling: Mapping People’s Understanding of Abstract Concepts}, + author={Huber, Lukas S and K{\"u}nstle, David-Elias and Reuter, Kevin}, + year={2024}, + publisher={PsyArXiv}, + doi={10.31234/osf.io/c42yr} +} + + +@article{Sievert2023, doi = {10.21105/joss.04517}, url = {https://doi.org/10.21105/joss.04517}, year = {2023}, publisher = {The Open Journal}, volume = {8}, number = {84}, pages = {4517}, author = {Scott Sievert and Robert Nowak and Timothy Rogers}, title = {Efficiently Learning Relative Similarity Embeddings with Crowdsourcing}, journal = {Journal of Open Source Software} } + +@inproceedings{NIPS2015_89ae0fe2, + author = {Jamieson, Kevin G and Jain, Lalit and Fernandez, Chris and Glattard, Nicholas J. and Nowak, Rob}, + booktitle = {Advances in Neural Information Processing Systems}, + editor = {C. Cortes and N. Lawrence and D. Lee and M. Sugiyama and R. Garnett}, + pages = {}, + publisher = {Curran Associates, Inc.}, + title = {NEXT: A System for Real-World Development, Evaluation, and Application of Active Learning}, + url = {https://proceedings.neurips.cc/paper_files/paper/2015/file/89ae0fe22c47d374bc9350ef99e01685-Paper.pdf}, + volume = {28}, + year = {2015} +} + + +@article{vankadara_insights_2020, + title = {Insights into {Ordinal} {Embedding} {Algorithms}: {A} {Systematic} {Evaluation}}, + shorttitle = {Insights into {Ordinal} {Embedding} {Algorithms}}, + abstract = {The objective of ordinal embedding is to find a Euclidean representation of a set of abstract items, using only answers to triplet comparisons of the form "Is item \$i\$ closer to the item \$j\$ or item \$k\$?". In recent years, numerous algorithms have been proposed to solve this problem. However, there does not exist a fair and thorough assessment of these embedding methods and therefore several key questions remain unanswered: Which algorithms scale better with increasing sample size or dimension? Which ones perform better when the embedding dimension is small or few triplet comparisons are available? In our paper, we address these questions and provide the first comprehensive and systematic empirical evaluation of existing algorithms as well as a new neural network approach. In the large triplet regime, we find that simple, relatively unknown, non-convex methods consistently outperform all other algorithms, including elaborate approaches based on neural networks or landmark approaches. This finding can be explained by our insight that many of the non-convex optimization approaches do not suffer from local optima. In the low triplet regime, our neural network approach is either competitive or significantly outperforms all the other methods. Our comprehensive assessment is enabled by our unified library of popular embedding algorithms that leverages GPU resources and allows for fast and accurate embeddings of millions of data points.}, + journal = {arXiv:1912.01666 [cs, stat]}, + author = {Vankadara, Leena Chennuru and Haghiri, Siavash and Lohaus, Michael and Wahab, Faiz Ul and Luxburg, Ulrike}, + year = {2021}, + keywords = {Computer Science - Machine Learning, Statistics - Machine Learning}, + doi = {10.48550/arXiv.1912.01666} +} + +@article{van_assen_identifying_2022, + title = {Identifying the behavioural cues of collective flow perception}, + volume = {22}, + abstract = {In this study we investigate the visual perception of collective flow. Collective flow depicts agents that show both individual and group behaviour following a relatively simple set of rules (e.g., swarms of insects, flocks of sheep, cyclists in traffic). These collective patterns occur all around us in animate and inanimate systems and on microscopic and macroscopic scales. Ecologically, it can be argued that the human visual system must have developed certain sensitivities for these collective patterns. Even from very low-level depictions we can identify high-level behaviours (e.g., stress, cooperation, leadership), associate these patterns with specific animal groups, and predict future states of these complex patterns. These are skills that potentially generalize to many cognitively demanding tasks. To investigate this, we developed an online engine that simulates biological collective behaviour using six parameters. Here, we concentrate on zone of alignment, zone of attraction, and turning rate. We collected two types of data: 1. A triplet similarity task i.e., which pair of stimuli is more similar, 2. Rating tasks for ten behavioural attributes selected using online experiments and brainstorm sessions. The triplet task was not easy where 38\% of the trials can be considered hard (high intraobserver variability). Using Soft Ordinal Embeddings (SOE) we found that the similarity space is two-dimensional. One of these dimensions is highly correlated with the turning rate, and with nine of the ten behavioural attributes e.g., grouping, cooperation, focus. However, with the attributes explored here we were not able to clearly identify the second dimension of the similarity space. The dominant correlations with the turning rate seem to overshadow intriguing, more subtle non-linear tendencies of the behavioural ratings. In this study we applied a range of methods that allowed us to increase understanding and identify behavioural cues we employ to perceive the versatile space of collective flow.}, + number = {14}, + journal = {Journal of Vision}, + author = {van Assen, Jan Jaap R. and Pont, Sylvia C.}, + year = {2022}, + pages = {3985}, + doi = {10.1167/jov.22.14.3985} +} + +@article{kunstle_estimating_2022, + title = {Estimating the perceived dimension of psychophysical stimuli using triplet accuracy and hypothesis testing}, + volume = {22}, + copyright = {All rights reserved}, + abstract = {Vision researchers are interested in mapping complex physical stimuli to perceptual dimensions. Such a mapping can be constructed using multidimensional psychophysical scaling or ordinaljt4 embedding methods. Both methods infer coordinates that agree as much as possible with the observer’s judgments so that perceived similarity corresponds with distance in the inferred space. However, a fundamental problem of all methods that construct scalings in multiple dimensions is that the inferred representation can only reflect perception if the scale has the correct dimension. Here we propose a statistical procedure to overcome this limitation. The critical elements of our procedure are i) measuring the scale’s quality by the number of correctly predicted triplets and ii) performing a statistical test to assess if adding another dimension to the scale improves triplet accuracy significantly. We validate our procedure through extensive simulations. In addition, we study the properties and limitations of our procedure using “real” data from various behavioral datasets from psychophysical experiments. We conclude that our procedure can reliably identify (a lower bound on) the number of perceptual dimensions for a given dataset.}, + number = {13}, + journal = {Journal of Vision}, + author = {Künstle, David-Elias and Luxburg, Ulrike and Wichmann, Felix A.}, + year = {2022}, + pages = {5}, + doi = {10.1167/jov.22.13.5} +} + +@article{schonmann_using_2022, + title = {Using an {Odd}-{One}-{Out} {Design} {Affects} {Consistency}, {Agreement} and {Decision} {Criteria} in {Similarity} {Judgement} {Tasks} {Involving} {Natural} {Images}.}, + volume = {22}, + copyright = {All rights reserved}, + abstract = {Recently, similarity judgement tasks have been employed to estimate the perceived similarity of natural images (Hebart, Zheng, Pereira, \& Baker, 2020). Such tasks typically take the form of triplet questions in which participants are presented with a reference image and two additional images and are asked to indicate which of the two is more similar to the reference. Alternatively, participants can be presented with three images and asked to indicate the odd one out. Though both questions are mathematically similar, they might affect participants’ decision criteria, the agreement among observers, or the consistency of single observers—these possibilities have hitherto not been assessed. To address these issues, we presented four observers with triplets from three image sets designed to juxtapose different perceptual and conceptual features. Using a soft ordinal embedding algorithm—a machine learning version of a multidimensional scaling—we represented the images in a two-dimensional space such that the Euclidean distances between images reflected observers' choices. Agreement between observers was assessed through a leave-one-out procedure in which embeddings based on three observers served to predict the respective fourth observer's choices. Consistency was calculated as the proportion of identical choices in a repeat session. Here we show that design choices in similarity judgement tasks can indeed affect results. The odd-one-out design resulted in greater embedding accuracy, higher agreement among, and higher consistency within observers. Hence, an individual observer's choices could be better predicted in the odd-one-out than in the triplet design. However, predicting individual responses was only possible for image sets for which participants could report a predominant relationship. Otherwise, predictability dropped to close to chance level. Our results suggest that seemingly innocuous experimental variations—standard triplet versus odd-one-out—can have a strong influence on the resulting perceptual spaces. Furthermore, we note severe limitations regarding the predictive power of models relying on pooled observer data.}, + number = {14}, + journal = {Journal of Vision}, + author = {Schönmann, Inés and Künstle, David-Elias and Wichmann, Felix A.}, + year = {2022}, + pages = {3232}, + doi = {10.1167/jov.22.14.3232} +} + +@inproceedings{roads_enriching_2021, + title = {Enriching {ImageNet} with {Human} {Similarity} {Judgments} and {Psychological} {Embeddings}}, + abstract = {Advances in supervised learning approaches to object recognition flourished in part because of the availability of high-quality datasets and associated benchmarks. However, these benchmarks—such as ILSVRC—are relatively task-specific, focusing predominately on predicting class labels. We introduce a publicly-available dataset that embodies the task-general capabilities of human perception and reasoning. The Human Similarity Judgments extension to ImageNet (ImageNet-HSJ) is composed of a large set of human similarity judgments that supplements the existing ILSVRC validation set. The new dataset supports a range of task and performance metrics, including evaluation of unsupervised algorithms. We demonstrate two methods of assessment: using the similarity judgments directly and using a psychological embedding trained on the similarity judgments. This embedding space contains an order of magnitude more points (i.e., images) than previous efforts based on human judgments. We were able to scale to the full 50,000 image ILSVRC validation set through a selective sampling process that used variational Bayesian inference and model ensembles to sample aspects of the embedding space that were most uncertain. To demonstrate the utility of ImageNet-HSJ, we used the similarity ratings and the embedding space to evaluate how well several popular models conform to human similarity judgments. One finding is that the more complex models that perform better on task-specific benchmarks do not better conform to human semantic judgments. In addition to the human similarity judgments, pre-trained psychological embeddings and code for inferring variational embeddings are made publicly available. ImageNet-HSJ supports the appraisal of internal representations and the development of more humanlike models.}, + booktitle = {{Conference} on {Computer} {Vision} and {Pattern} {Recognition} ({CVPR})}, + author = {Roads, Brett D. and Love, Bradley C.}, + year = {2021}, + keywords = {Benchmark testing, Computer vision, Focusing, Measurement, Psychology, Semantics, Supervised learning}, + doi = {10.1109/cvpr46437.2021.00355} +} + +@article{jain_finite_2016, + title = {Finite {Sample} {Prediction} and {Recovery} {Bounds} for {Ordinal} {Embedding}}, + language = {en}, + journal = {Advances in Neural Information Processing Systems (NeurIPS)}, + author = {Jain, Lalit and Jamieson, Kevin G. and Nowak, Rob}, + year = {2016}, + keywords = {Computer Science - Machine Learning, Statistics - Machine Learning, bounds}, +} + +@inproceedings{van_der_maaten_stochastic_2012, + title = {Stochastic triplet embedding}, + abstract = {This paper considers the problem of learning an embedding of data based on similarity triplets of the form “A is more similar to B than to C”. This learning setting is of relevance to scenarios in which we wish to model human judgements on the similarity of objects. We argue that in order to obtain a truthful embedding of the underlying data, it is insufficient for the embedding to satisfy the constraints encoded by the similarity triplets. In particular, we introduce a new technique called t-Distributed Stochastic Triplet Embedding (t-STE) that collapses similar points and repels dissimilar points in the embedding — even when all triplet constraints are satisfied. Our experimental evaluation on three data sets shows that as a result, t-STE is much better than existing techniques at revealing the underlying data structure.}, + language = {en}, + booktitle = {{International} {Workshop} on {Machine} {Learning} for {Signal} {Processing}}, + author = {van der Maaten, Laurens and Weinberger, Kilian}, + year = {2012}, + pages = {1--6}, + doi = {10.1109/MLSP.2012.6349720} +} + +@article{maloney_maximum_2003, + title = {Maximum likelihood difference scaling}, + volume = {3}, + number = {8}, + journal = {Journal of Vision}, + author = {Maloney, Laurence T and Yang, Joong Nam}, + year = {2003}, + pages = {5--5}, + doi = {10.1167/3.8.5} +} + +@InProceedings{agarwal_generalized_2007, + title = {Generalized Non-metric Multidimensional Scaling}, + author = {Agarwal, Sameer and Wills, Josh and Cayton, Lawrence and Lanckriet, Gert and Kriegman, David and Belongie, Serge}, booktitle = {Proceedings of the Eleventh International Conference on Artificial Intelligence and Statistics}, pages = {11--18}, year = {2007}, editor = {Meila, Marina and Shen, Xiaotong}, volume = {2}, series = {Proceedings of Machine Learning Research}, address = {San Juan, Puerto Rico}, month = {21--24 Mar}, publisher = {PMLR}, pdf = {http://proceedings.mlr.press/v2/agarwal07a/agarwal07a.pdf}, url = {https://proceedings.mlr.press/v2/agarwal07a.html}} + + +@inproceedings{terada_local_2014, + title = {Local ordinal embedding}, + booktitle = {International {Conference} on {Machine} {Learning} (ICML)}, + author = {Terada, Yoshikazu and Luxburg, Ulrike}, + year = {2014}, +} + +@article{wills_toward_2009, + title = {Toward a perceptual space for gloss}, + volume = {28}, + language = {en}, + number = {4}, + journal = {ACM Transactions on Graphics}, + author = {Wills, Josh and Agarwal, Sameer and Kriegman, David and Belongie, Serge}, + year = {2009}, + pages = {1--15}, + doi = {10.1145/1559755.1559760}, +} + +@article{aguilar_comparing_2017, + title = {Comparing sensitivity estimates from {MLDS} and forced-choice methods in a slant-from-texture experiment}, + volume = {17}, + language = {en}, + number = {1}, + journal = {Journal of Vision}, + author = {Aguilar, Guillermo and Wichmann, Felix A. and Maertens, Marianne}, + year = {2017}, + pages = {37}, + doi = {10.1167/17.1.37}, +} + +@article{aguilar_toward_2020, + title = {Toward reliable measurements of perceptual scales in multiple contexts}, + volume = {20}, + language = {en}, + number = {4}, + urldate = {2020-05-18}, + journal = {Journal of Vision}, + author = {Aguilar, Guillermo and Maertens, Marianne}, + year = {2020}, + pages = {19}, + doi = {10.1167/jov.20.4.19}, +} + +@article{haghiri_estimation_2020, + title = {Estimation of perceptual scales using ordinal embedding}, + volume = {20}, + abstract = {In this article, we address the problem of measuring and analyzing sensation, the subjective magnitude of one’s experience. We do this in the context of the method of triads: The sensation of the stimulus is evaluated via relative judgments of the following form: “Is stimulus {\textbackslash}(S\_i{\textbackslash}) more similar to stimulus {\textbackslash}(S\_j{\textbackslash}) or to stimulus {\textbackslash}(S\_k{\textbackslash})?” We propose to use ordinal embedding methods from machine learning to estimate the scaling function from the relative judgments. We review two relevant and well-known methods in psychophysics that are partially applicable in our setting: nonmetric multidimensional scaling (NMDS) and the method of maximum likelihood difference scaling (MLDS). Considering various scaling functions, we perform an extensive set of simulations to demonstrate the performance of the ordinal embedding methods. We show that in contrast to existing approaches, our ordinal embedding approach allows, first, to obtain reasonable scaling functions from comparatively few relative judgments and, second, to estimate multidimensional perceptual scales. In addition to the simulations, we analyze data from two real psychophysics experiments using ordinal embedding methods. Our results show that in the one-dimensional perceptual scale, our ordinal embedding approach works as well as MLDS, while in higher dimensions, only our ordinal embedding methods can produce a desirable scaling function. To make our methods widely accessible, we provide an R-implementation and general rules of thumb on how to use ordinal embedding in the context of psychophysics.}, + number = {9}, + journal = {Journal of Vision}, + author = {Haghiri, Siavash and Wichmann, Felix A. and Luxburg, Ulrike}, + year = {2020}, + pages = {14}, + doi = {10.1167/jov.20.9.14}, +} + +@article{devinck_common_2012, + title = {A common signal detection model accounts for both perception and discrimination of the watercolor effect}, + volume = {12}, + issn = {1534-7362}, + abstract = {Establishing the relation between perception and discrimination is a fundamental objective in psychophysics, with the goal of characterizing the neural mechanisms mediating perception. Here, we show that a procedure for estimating a perceptual scale based on a signal detection model also predicts discrimination performance. We use a recently developed procedure, Maximum Likelihood Difference Scaling (MLDS), to measure the perceptual strength of a long-range, color, filling-in phenomenon, the Watercolor Effect (WCE), as a function of the luminance ratio between the two components of its generating contour. MLDS is based on an equal-variance, Gaussian, signal detection model and yields a perceptual scale with interval properties. The strength of the fill-in percept increased 10–15 times the estimate of the internal noise level for a 3-fold increase in the luminance ratio. Each observer’s estimated scale predicted discrimination performance in a subsequent paired-comparison task. A common signal detection model accounts for both the appearance and discrimination data. Since signal detection theory provides a common metric for relating discrimination performance and neural response, the results have implications for comparing perceptual and neural response functions.}, + language = {en}, + journal = {Journal of Vision}, + author = {Devinck, F. and Knoblauch, K.}, + year = {2012}, + pages = {19--19}, + doi = {10.1167/12.3.19}, +} + +@inproceedings{kingma2014adam, + author = {Diederik P. Kingma and + Jimmy Ba}, + editor = {Yoshua Bengio and + Yann LeCun}, + title = {Adam: {A} Method for Stochastic Optimization}, + booktitle = {3rd International Conference on Learning Representations, {ICLR} 2015, + San Diego, CA, USA, May 7-9, 2015, Conference Track Proceedings}, + year = {2015}, + url = {http://arxiv.org/abs/1412.6980}, + timestamp = {Thu, 25 Jul 2019 14:25:37 +0200}, + biburl = {https://dblp.org/rec/journals/corr/KingmaB14.bib}, + bibsource = {dblp computer science bibliography, https://dblp.org} +} +@inproceedings{heikinheimo2013crowd, + title={The crowd-median algorithm}, + author={Heikinheimo, Hannes and Ukkonen, Antti}, + booktitle={Proceedings of the AAAI Conference on Human Computation and Crowdsourcing}, + volume={1}, + pages={69--77}, + year={2013} +} +@article{paszke2019pytorch, + title={Pytorch: An imperative style, high-performance deep learning library}, + author={Paszke, Adam and Gross, Sam and Massa, Francisco and Lerer, Adam and Bradbury, James and Chanan, Gregory and Killeen, Trevor and Lin, Zeming and Gimelshein, Natalia and Antiga, Luca and others}, + journal={Advances in neural information processing systems}, + volume={32}, + year={2019} +} +@inproceedings{anselPyTorchFasterMachine2024, + title = {{{PyTorch}} 2: {{Faster Machine Learning Through Dynamic Python Bytecode Transformation}} and {{Graph Compilation}}}, + shorttitle = {{{PyTorch}} 2}, + booktitle = {Proceedings of the 29th {{ACM International Conference}} on {{Architectural Support}} for {{Programming Languages}} and {{Operating Systems}}, {{Volume}} 2}, + author = {Ansel, Jason and Yang, Edward and He, Horace and Gimelshein, Natalia and Jain, Animesh and Voznesensky, Michael and Bao, Bin and Bell, Peter and Berard, David and Burovski, Evgeni and Chauhan, Geeta and Chourdia, Anjali and Constable, Will and Desmaison, Alban and DeVito, Zachary and Ellison, Elias and Feng, Will and Gong, Jiong and Gschwind, Michael and Hirsh, Brian and Huang, Sherlock and Kalambarkar, Kshiteej and Kirsch, Laurent and Lazos, Michael and Lezcano, Mario and Liang, Yanbo and Liang, Jason and Lu, Yinghai and Luk, C. K. and Maher, Bert and Pan, Yunjie and Puhrsch, Christian and Reso, Matthias and Saroufim, Mark and Siraichi, Marcos Yukio and Suk, Helen and Zhang, Shunting and Suo, Michael and Tillet, Phil and Zhao, Xu and Wang, Eikan and Zhou, Keren and Zou, Richard and Wang, Xiaodong and Mathews, Ajit and Wen, William and Chanan, Gregory and Wu, Peng and Chintala, Soumith}, + year = {2024}, + month = apr, + pages = {929--947}, + publisher = {ACM}, + address = {La Jolla CA USA}, + doi = {10.1145/3620665.3640366}, + urldate = {2024-05-05}, + isbn = {9798400703850}, + langid = {english}, +} +@article{virtanenSciPyFundamentalAlgorithms2020, + title = {{{SciPy}} 1.0: Fundamental Algorithms for Scientific Computing in {{Python}}}, + shorttitle = {{{SciPy}} 1.0}, + author = {Virtanen, Pauli and Gommers, Ralf and Oliphant, Travis E. and Haberland, Matt and Reddy, Tyler and Cournapeau, David and Burovski, Evgeni and Peterson, Pearu and Weckesser, Warren and Bright, Jonathan and {van der Walt}, St{\'e}fan J. and Brett, Matthew and Wilson, Joshua and Millman, K. Jarrod and Mayorov, Nikolay and Nelson, Andrew R. J. and Jones, Eric and Kern, Robert and Larson, Eric and Carey, C. J. and Polat, {\.I}lhan and Feng, Yu and Moore, Eric W. and VanderPlas, Jake and Laxalde, Denis and Perktold, Josef and Cimrman, Robert and Henriksen, Ian and Quintero, E. A. and Harris, Charles R. and Archibald, Anne M. and Ribeiro, Ant{\^o}nio H. and Pedregosa, Fabian and {van Mulbregt}, Paul}, + year = {2020}, + month = mar, + journal = {Nature Methods}, + volume = {17}, + number = {3}, + pages = {261--272}, + publisher = {Nature Publishing Group}, + issn = {1548-7105}, + doi = {10.1038/s41592-019-0686-2}, + urldate = {2024-05-05}, + abstract = {SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments.}, + copyright = {2020 The Author(s)}, + langid = {english}, + keywords = {Biophysical chemistry,Computational biology and bioinformatics,Technology}, +} +@article{harris_array_2020, + title = {Array Programming with {{NumPy}}}, + author = {Harris, Charles R. and Millman, K. Jarrod and {van der Walt}, St{\'e}fan J. and Gommers, Ralf and Virtanen, Pauli and Cournapeau, David and Wieser, Eric and Taylor, Julian and Berg, Sebastian and Smith, Nathaniel J. and Kern, Robert and Picus, Matti and Hoyer, Stephan and {van Kerkwijk}, Marten H. and Brett, Matthew and Haldane, Allan and {del R{\'i}o}, Jaime Fern{\'a}ndez and Wiebe, Mark and Peterson, Pearu and {G{\'e}rard-Marchant}, Pierre and Sheppard, Kevin and Reddy, Tyler and Weckesser, Warren and Abbasi, Hameer and Gohlke, Christoph and Oliphant, Travis E.}, + year = {2020}, + journal = {Nature}, + volume = {585}, + number = {7825}, + pages = {357--362}, + doi = {10.1038/s41586-020-2649-2}, + abstract = {Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis.}, + copyright = {2020 The Author(s)}, + langid = {english}, + keywords = {Computational neuroscience,Computational science,Computer science,Software,Solar physics} +} +@article{hebartRevealingMultidimensionalMental2020, + title = {Revealing the multidimensional mental representations of natural objects underlying human similarity judgements}, + volume = {4}, + copyright = {2020 This is a U.S. government work and not under copyright protection in the U.S.; foreign copyright protection may apply}, + abstract = {Objects can be characterized according to a vast number of possible criteria (such as animacy, shape, colour and function), but some dimensions are more useful than others for making sense of the objects around us. To identify these core dimensions of object representations, we developed a data-driven computational model of similarity judgements for real-world images of 1,854 objects. The model captured most explainable variance in similarity judgements and produced 49 highly reproducible and meaningful object dimensions that reflect various conceptual and perceptual properties of those objects. These dimensions predicted external categorization behaviour and reflected typicality judgements of those categories. Furthermore, humans can accurately rate objects along these dimensions, highlighting their interpretability and opening up a way to generate similarity estimates from object dimensions alone. Collectively, these results demonstrate that human similarity judgements can be captured by a fairly low-dimensional, interpretable embedding that generalizes to external behaviour. Hebart et al. developed a computational model of similarity judgements for 1,854 natural objects. The model accurately predicted similarity and revealed 49 interpretable dimensions that reflect both perceptual and conceptual object properties.}, + language = {en}, + number = {11}, + journal = {Nature Human Behaviour}, + author = {Hebart, Martin N. and Zheng, Charles Y. and Pereira, Francisco and Baker, Chris I.}, + year = {2020}, + pages = {1173--1185}, + doi = {10.1038/s41562-020-00951-3}, +} + +@inproceedings{tamuz_adaptively_2011, + title = {Adaptively learning the crowd kernel}, + abstract = {We introduce an algorithm that, given n objects, learns a similarity matrix over all n2 pairs, from crowdsourced data alone. The algorithm samples responses to adaptively chosen triplet-based relative-similarity queries. Each query has the form "is object a more similar to b or to c?" and is chosen to be maximally informative given the preceding responses. The output is an embedding of the objects into Euclidean space (like MDS); we refer to this as the "crowd kernel." SVMs reveal that the crowd kernel captures prominent and subtle features across a number of domains, such as "is striped" among neckties and "vowel vs. consonant" among letters.}, + booktitle = {Proceedings of the 28th {International} {Conference} on {International} {Conference} on {Machine} {Learning} (ICML)}, + author = {Tamuz, Omer and Liu, Ce and Belongie, Serge and Shamir, Ohad and Kalai, Adam Tauman}, + year = {2011}, +} + +@article{roads_obtaining_2019, + title = {Obtaining psychological embeddings through joint kernel and metric learning}, + volume = {51}, + abstract = {Psychological embeddings provide a powerful formalism for characterizing human-perceived similarity among members of a stimulus set. Obtaining high-quality embeddings can be costly due to algorithm design, software deployment, and participant compensation. This work aims to advance state-of-the-art embedding techniques and provide a comprehensive software package that makes obtaining high-quality psychological embeddings both easy and relatively efficient. Contributions are made on four fronts. First, the embedding procedure allows multiple trial configurations (e.g., triplets) to be used for collecting similarity judgments from participants. For example, trials can be configured to collect triplet comparisons or to sort items into groups. Second, a likelihood model is provided for three classes of similarity kernels allowing users to easily infer the parameters of their preferred model using gradient descent. Third, an active selection algorithm is provided that makes data collection more efficient by proposing comparisons that provide the strongest constraints on the embedding. Fourth, the likelihood model allows the specification of group-specific attention weight parameters. A series of experiments are included to highlight each of these contributions and their impact on converging to a high-quality embedding. Collectively, these incremental improvements provide a powerful and complete set of tools for inferring psychological embeddings. The relevant tools are available as the Python package PsiZ, which can be cloned from GitHub (https://github.com/roads/psiz).}, + language = {en}, + number = {5}, + journal = {Behavior Research Methods}, + author = {Roads, Brett D. and Mozer, Michael C.}, + year = {2019}, + pages = {2180--2193}, + doi = {10.3758/s13428-019-01285-3}, +} + +@inproceedings{haghiri_comparison-based_2018, + title = {Comparison-{Based} {Random} {Forests}}, + abstract = {Assume we are given a set of items from a general metric space, but we neither have access to the representation of the data nor to the distances between data points. Instead, suppose that we can actively choose a triplet of items (A, B, C) and ask an oracle whether item A is closer to item B or to item C. In this paper, we propose a novel random forest algorithm for regression and classification that relies only on such triplet comparisons. In the theory part of this paper, we establish sufficient conditions for the consistency of such a forest. In a set of comprehensive experiments, we then demonstrate that the proposed random forest is efficient both for classification and regression. In particular, it is even competitive with other methods that have direct access to the metric representation of the data.}, + language = {en}, + booktitle = {Proceedings of the 35th {International} {Conference} on {Machine} {Learning} (ICML)}, + author = {Haghiri, Siavash and Garreau, Damien and Luxburg, Ulrike}, + year = {2018}, +} + +@article{demiralp_learning_2014, + title = {Learning {Perceptual} {Kernels} for {Visualization} {Design}}, + volume = {20}, + abstract = {Visualization design can benefit from careful consideration of perception, as different assignments of visual encoding variables such as color, shape and size affect how viewers interpret data. In this work, we introduce perceptual kernels: distance matrices derived from aggregate perceptual judgments. Perceptual kernels represent perceptual differences between and within visual variables in a reusable form that is directly applicable to visualization evaluation and automated design. We report results from crowd-sourced experiments to estimate kernels for color, shape, size and combinations thereof. We analyze kernels estimated using five different judgment types--including Likert ratings among pairs, ordinal triplet comparisons, and manual spatial arrangement--and compare them to existing perceptual models. We derive recommendations for collecting perceptual similarities, and then demonstrate how the resulting kernels can be applied to automate visualization design decisions.}, + language = {eng}, + number = {12}, + journal = {IEEE Transactions on Visualization and Computer Graphics}, + author = {Demiralp, Çağatay and Bernstein, Michael S. and Heer, Jeffrey}, + year = {2014}, + pages = {1933--1942}, + doi = {10.1109/TVCG.2014.2346978}, +} + +@article{toscani_three_2020, + title = {Three {Perceptual} {Dimensions} for {Specular} and {Diffuse} {Reflection}}, + volume = {17}, + abstract = {Previous research investigated the perceptual dimensionality of achromatic reflection of opaque surfaces, by using either simple analytic models of reflection or measured reflection properties of a limited sample of materials. Here, we aim to extend this work to a broader range of simulated materials. In a first experiment, we used sparse multidimensional scaling techniques to represent a set of rendered stimuli in a perceptual space that is consistent with participants’ similarity judgments. Participants were presented with one reference object and four comparisons, rendered with different material properties. They were asked to rank the comparisons according to their similarity to the reference, resulting in an efficient collection of a large number of similarity judgments. To interpret the space individuated by multidimensional scaling, we ran a second experiment in which observers were asked to rate our experimental stimuli according to a list of 30 adjectives referring to their surface reflectance properties. Our results suggest that perception of achromatic reflection is based on at least three dimensions, which we labelled “Lightness,” “Gloss,” and “Metallicity,” in accordance with the rating results. These dimensions are characterized by a relatively simple relationship with the parameters of the physically based rendering model used to generate our stimuli, indicating that they correspond to different physical properties of the rendered materials. Specifically, “Lightness” relates to diffuse reflections, “Gloss” to the presence of high contrast sharp specular highlights, and “Metallicity” to spread out specular reflections.}, + number = {2}, + journal = {ACM Transactions on Applied Perception}, + author = {Toscani, Matteo and Guarnera, Dar’ya and Guarnera, Giuseppe Claudio and Hardeberg, Jon Yngve and Gegenfurtner, Karl R.}, + year = {2020}, + keywords = {BRDF, Perception, dimensionality}, + pages = {6:1--6:26}, + doi = {10.1145/3380741}, +} + +@article{pedregosa_scikit-learn_2011, + title = {Scikit-learn: {Machine} {Learning} in {Python}}, + volume = {12}, + shorttitle = {Scikit-learn}, + abstract = {Scikit-learn is a Python module integrating a wide range of state-of-the-art machine learning algorithms for medium-scale supervised and unsupervised problems. This package focuses on bringing machine learning to non-specialists using a general-purpose high-level language. Emphasis is put on ease of use, performance, documentation, and API consistency. It has minimal dependencies and is distributed under the simplified BSD license, encouraging its use in both academic and commercial settings. Source code, binaries, and documentation can be downloaded from http://scikit-learn.sourceforge.net.}, + number = {85}, + urldate = {2022-07-01}, + journal = {Journal of Machine Learning Research (JMLR)}, + author = {Pedregosa, Fabian and Varoquaux, Gaël and Gramfort, Alexandre and Michel, Vincent and Thirion, Bertrand and Grisel, Olivier and Blondel, Mathieu and Prettenhofer, Peter and Weiss, Ron and Dubourg, Vincent and Vanderplas, Jake and Passos, Alexandre and Cournapeau, David and Brucher, Matthieu and Perrot, Matthieu and Duchesnay, Édouard}, + year = {2011}, + pages = {2825--2830}, +} + +@article{buitinck_api_2013, + title={{API} design for machine learning software: experiences from the scikit-learn project}, + author={Lars Buitinck and Gilles Louppe and Mathieu Blondel and Fabian Pedregosa and Andreas Mueller and Olivier Grisel and Vlad Niculae and Peter Prettenhofer and Alexandre Gramfort and Jaques Grobler and Robert Layton and Jake Vanderplas and Arnaud Joly and Brian Holt and Gaël Varoquaux}, + year={2013}, + journal={arXiv:1309.0238 [cs.LG]}, + doi = {10.48550/arXiv.1309.0238}, +} +@inproceedings{ghoshdastidar_foundations_2019, + title = {Foundations of {Comparison}-{Based} {Hierarchical} {Clustering}}, + abstract = {We address the classical problem of hierarchical clustering, but in a framework where one does not have access to a representation of the objects or their pairwise similarities. Instead, we assume that only a set of comparisons between objects is available, that is, statements of the form objects i and j are more similar than objects k and l.'' Such a scenario is commonly encountered in crowdsourcing applications. The focus of this work is to develop comparison-based hierarchical clustering algorithms that do not rely on the principles of ordinal embedding. We show that single and complete linkage are inherently comparison-based and we develop variants of average linkage. We provide statistical guarantees for the different methods under a planted hierarchical partition model. We also empirically demonstrate the performance of the proposed approaches on several datasets.}, + booktitle = {Advances in {Neural} {Information} {Processing} {Systems} (NeurIPS)}, + author = {Ghoshdastidar, Debarghya and Perrot, Michaël and Luxburg, Ulrike}, + year = {2019}, +} + +@article{harris_array_2020, + title = {Array programming with {NumPy}}, + volume = {585}, + copyright = {2020 The Author(s)}, + abstract = {Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis.}, + language = {en}, + number = {7825}, + journal = {Nature}, + author = {Harris, Charles R. and Millman, K. Jarrod and van der Walt, Stéfan J. and Gommers, Ralf and Virtanen, Pauli and Cournapeau, David and Wieser, Eric and Taylor, Julian and Berg, Sebastian and Smith, Nathaniel J. and Kern, Robert and Picus, Matti and Hoyer, Stephan and van Kerkwijk, Marten H. and Brett, Matthew and Haldane, Allan and del Río, Jaime Fernández and Wiebe, Mark and Peterson, Pearu and Gérard-Marchant, Pierre and Sheppard, Kevin and Reddy, Tyler and Weckesser, Warren and Abbasi, Hameer and Gohlke, Christoph and Oliphant, Travis E.}, + year = {2020}, + keywords = {Computational neuroscience, Computational science, Computer science, Software, Solar physics}, + pages = {357--362}, + doi = {10.1038/s41586-020-2649-2}, +} + +@inproceedings{perrot_near-optimal_2020, + title = {Near-optimal comparison based clustering}, + booktitle = {Advances in Neural Information Processing Systems (NeurIPS)}, + author = {Perrot, Michaël and Esser, Pascal and Ghoshdastidar, Debarghya}, + editor = {Larochelle, H. and Ranzato, M. and Hadsell, R. and Balcan, M.F. and Lin, H.}, + year = {2020}, +} +@inproceedings{heikinheimo2013crowd, + title={The crowd-median algorithm}, + author={Heikinheimo, Hannes and Ukkonen, Antti}, + booktitle={Proceedings of the AAAI Conference on Human Computation and Crowdsourcing}, + volume={1}, + pages={69--77}, + year={2013}, + doi = {10.1609/hcomp.v1i1.13079} +} + +@InProceedings{amid2015, + title = {Multiview Triplet Embedding: Learning Attributes in Multiple Maps}, + author = {Amid, Ehsan and Ukkonen, Antti}, + booktitle = {Proceedings of the 32nd International Conference on Machine Learning}, + pages = {1472--1480}, + year = {2015}, + editor = {Bach, Francis and Blei, David}, + volume = {37}, + series = {Proceedings of Machine Learning Research}, + address = {Lille, France}, + month = {07--09 Jul}, + publisher = {PMLR}, + abstract = {For humans, it is usually easier to make statements about the similarity of objects in relative, rather than absolute terms. Moreover, subjective comparisons of objects can be based on a number of different and independent attributes. For example, objects can be compared based on their shape, color, etc. In this paper, we consider the problem of uncovering these hidden attributes given a set of relative distance judgments in the form of triplets. The attribute that was used to generate a particular triplet in this set is unknown. Such data occurs, e.g., in crowdsourcing applications where the triplets are collected from a large group of workers. We propose the Multiview Triplet Embedding (MVTE) algorithm that produces a number of low-dimensional maps, each corresponding to one of the hidden attributes. The method can be used to assess how many different attributes were used to create the triplets, as well as to assess the difficulty of a distance comparison task, and find objects that have multiple interpretations in relation to the other objects.} +} +@inproceedings{balcan2016learning, + title={Learning combinatorial functions from pairwise comparisons}, + author={Balcan, Maria-Florina and Vitercik, Ellen and White, Colin}, + booktitle={Conference on Learning Theory}, + pages={310--335}, + year={2016}, + organization={PMLR} +} +@inproceedings{anderton2019scaling, + title={Scaling up ordinal embedding: A landmark approach}, + author={Anderton, Jesse and Aslam, Javed}, + booktitle={International Conference on Machine Learning}, + pages={282--290}, + year={2019}, + organization={PMLR} +} +@inproceedings{bower2018landscape, + title={The landscape of non-convex quadratic feasibility}, + author={Bower, Amanda and Jain, Lalit and Balzano, Laura}, + booktitle={2018 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)}, + pages={3974--3978}, + year={2018}, + organization={IEEE}, + doi={10.1109/icassp.2018.8461868} +} +@inproceedings{ghosh2019landmark, + title = {Landmark Ordinal Embedding}, + booktitle = {Advances in Neural Information Processing Systems}, + author = {Ghosh, Nikhil and Chen, Yuxin and Yue, Yisong}, + editor = {Wallach, H. and Larochelle, H. and Beygelzimer, A. and {dAlch{\'e}-Buc}, F. and Fox, E. and Garnett, R.}, + year = {2019}, + volume = {32}, + publisher = {{Curran Associates, Inc.}} +} + + +% active OE: +@article{sievert2023efficiently, + title={Efficiently Learning Relative Similarity Embeddings with Crowdsourcing}, + author={Sievert, Scott and Nowak, Robert and Rogers, Timothy}, + journal={Journal of Open Source Software}, + volume={8}, + number={84}, + pages={4517}, + year={2023}, + doi = {10.21105/joss.04517} +} +@inproceedings{jamieson2015next, + title = {{{NEXT}}: {{A}} System for Real-World Development, Evaluation, and Application of Active Learning}, + booktitle = {Advances in Neural Information Processing Systems}, + author = {Jamieson, Kevin G and Jain, Lalit and Fernandez, Chris and Glattard, Nicholas J. and Nowak, Rob}, + editor = {Cortes, C. and Lawrence, N. and Lee, D. and Sugiyama, M. and Garnett, R.}, + year = {2015}, + volume = {28}, + publisher = {{Curran Associates, Inc.}} +} + +@article{heim2015active, + title={Active perceptual similarity modeling with auxiliary information}, + author={Heim, Eric and Berger, Matthew and Seversky, Lee and Hauskrecht, Milos}, + journal={arXiv preprint arXiv:1511.02254}, + year={2015}, + doi = {10.48550/arXiv.1511.02254 } +} + +% used software: +@article{zhao2023perceiving, + title = {Perceiving Style at Different Levels of Information}, + author = {Zhao, Yuguang and {de Ridder}, Huib and Stumpel, Jeroen and Wijntjes, Maarten}, + year = {2023}, + month = aug, + journal = {Journal of Vision}, + volume = {23}, + number = {9}, + pages = {5388}, + issn = {1534-7362}, + doi = {10.1167/jov.23.9.5388}, + urldate = {2023-09-22}, + abstract = {If two painters paint the same scene, the appearance difference can be referred to as style difference. The distinguishing features result from artists' use of composition, color, brushstroke etc. We are interested in how people perceive different depiction styles, when they are presented with different levels of information. Whole paintings contain mid-level information (depicted scenes, etc.) and low-level information (brushstroke, colors, etc.). Square cut-outs of single objects contain only low-level information. The same cut-outs in grayscale contain low-level information but without colors. We collected 42 digitized oil paintings as stimuli, the creation years varied from 15th to 21st century, and their location of production varied from southern Spain to the northern Netherlands. All paintings contain at least one apple. We gathered similarity judgement data using a triplet comparison method from three online experiments, where observers were presented the whole paintings (condition 1), square cut-outs of painted apples (condition 2) and the same cut-outs in grayscale (condition 3). 20 observers completed each experiment (60 observers in total). We applied soft ordinal embedding to achieve multidimensional embeddings. We reached a 3D space for condition 1 and 3, and a 4D space for condition 2. Condition 2 has less information than condition 1, but has one more dimension, suggesting that different criteria might be involved. Condition 3 has one less dimension than condition 2, suggesting that color is one of the attributes for style perception judgement. In addition, having the same dimensionality, around 64\% of the raw data was in line with the 3D embedding in condition 1 and 58\% in condition 3. This difference suggests that although the whole scene and a grayscale cut-out both need three dimensions to describe their style differences, the implicit style criteria for grayscale cut-outs are apparently more ambiguous than those used to judge the whole paintings.}, + file = {/home/dek/Zotero/storage/284ULDDE/article.html} +} + +@misc{mandal2023revenue, + title = {A {{Revenue Function}} for {{Comparison-Based Hierarchical Clustering}}}, + author = {Mandal, Aishik and Perrot, Micha{\"e}l and Ghoshdastidar, Debarghya}, + year = {2023}, + month = apr, + number = {arXiv:2211.16459}, + eprint = {2211.16459}, + primaryclass = {cs, stat}, + publisher = {{arXiv}}, + doi = {10.48550/arXiv.2211.16459}, + urldate = {2023-09-22}, + abstract = {Comparison-based learning addresses the problem of learning when, instead of explicit features or pairwise similarities, one only has access to comparisons of the form: \textbackslash emph\{Object \$A\$ is more similar to \$B\$ than to \$C\$.\} Recently, it has been shown that, in Hierarchical Clustering, single and complete linkage can be directly implemented using only such comparisons while several algorithms have been proposed to emulate the behaviour of average linkage. Hence, finding hierarchies (or dendrograms) using only comparisons is a well understood problem. However, evaluating their meaningfulness when no ground-truth nor explicit similarities are available remains an open question. In this paper, we bridge this gap by proposing a new revenue function that allows one to measure the goodness of dendrograms using only comparisons. We show that this function is closely related to Dasgupta's cost for hierarchical clustering that uses pairwise similarities. On the theoretical side, we use the proposed revenue function to resolve the open problem of whether one can approximately recover a latent hierarchy using few triplet comparisons. On the practical side, we present principled algorithms for comparison-based hierarchical clustering based on the maximisation of the revenue and we empirically compare them with existing methods.}, + archiveprefix = {arxiv}, + keywords = {Computer Science - Machine Learning,Statistics - Machine Learning} +} diff --git a/paper/supplementary.md b/paper/supplementary.md new file mode 100644 index 0000000..6049bd0 --- /dev/null +++ b/paper/supplementary.md @@ -0,0 +1,91 @@ +--- +title: | + | Supplementary Material + | `cblearn`: Comparison-based Machine Learning in Python +author: + - | + | David-Elias Künstle and Ulrike von Luxburg + | University of Tübingen and Tübingen AI Center, Germany +date: 22 September 2023 +--- + +# Empirical evaluation + +We generated embeddings of comparison-based datasets to measure runtime and triplet error as a small empirical evaluation of our ordinal embedding implementations. +We compared various CPU and GPU implementations in `cblearn` with third-party implementations in *R* [`loe` @terada_local_2014], and *MATLAB* [@van_der_maaten_stochastic_2012]. +In contrast to synthetic benchmarks [e.g., @vankadara_insights_2020], we used real-world datasets +that can be accessed and converted to triplets through `cblearn`. The embeddings were arbitrarily chosen to be 2D. +Every algorithm runs once per dataset on a compute node (8 CPU cores; 96GB RAM; NVIDIA RTX 2080ti) with a run-time limit of 24 hours. Some runs failed by exceeding those constraints: our FORTE implementation failed due to an "out of memory" error on the `imagenet-v2` dataset. The *MATLAB* implementation of tSTE timed out on `things` and `imagenet-v2` datasets. The run of the *R* SOE implementation on the `imagenet-v2` dataset failed by an "unsupported long vector" error caused by the large size of the requested embedding. + +The benchmarking scripts and results are publicly available[^1]. + +[^1]: [https://github.com/cblearn/cblearn-benchmark](https://github.com/cblearn/cblearn-benchmark) + +## Is there a "best" estimator? + + +Comparing the ordinal embedding estimators in `cblearn`, SOE, CKL, GNMDS, and tSTE were performing about equally well in both runtime and accuracy (\autoref{fig:performance-per-algorithm_cblearn}). +The GPU implementations are slower on the tested datasets and noticeably less accurate for SOE and GNMDS. + +![\label{fig:deltaerror-per-algorithm_cblearn-all}](./images/deltaerror-per-algorithm_cblearn-all.pdf){width=45%} +![\label{fig:deltatime-per-algorithm_cblearn-all}](images/deltatime-per-algorithm_cblearn-all.pdf){width=45%} +\begin{figure} +\caption{The triplet error and runtime per estimator and dataset relative to the mean error or the fastest run. Thin lines show runs on the different datasets; the thick lines indicate the respective median. Except for STE, all CPU algorithms can embed the triplets similarly well. There are just minor differences in the runtime of the CPU implementations. The GPU implementations are usually significantly slower on the data sets used. +} + \label{fig:performance-per-algorithm_cblearn} +\end{figure} + +## When should GPU implementations be preferred? + +Regarding accuracy and runtime, our GPU implementations using the `torch` backend could not outperform the CPU pendants using the `scipy` backend on the tested datasets. However, \autoref{fig:performance-per-algorithm_cblearn} shows the GPU runtime grows slower with the number of triplets, such that they potentially outperform CPU implementations with large datasets of $10^7$ triplets and more. Sometimes, the `torch` implementations show the best accuracy. + +![The runtime increases almost linearly with the number of triplets. However, GPU implementations have a flatter slope and thus can compensate for the initial time overhead on large datasets. + \label{fig:time-per-triplets_gpu}](images/time-per-triplets_gpu.pdf){width=50%} + +We could think of various explanations for the speed disadvantage of our `torch` implementations. On the one hand, it may be due to the overhead of converting between `numpy` and `torch` and calculating the gradient (AutoGrad). On the other hand, it can also be due to the optimizer or the selected hyperparameters. +To get a first impression of these factors, we have built minimal examples of the CKL algorithm [@tamuz_adaptively_2011] and estimated 2D embeddings of the Vogue Cover dataset [@heikinheimo2013crowd]. \autoref{fig:torch-speedtest} shows a standard laptop's runtimes and triplet accuracies. The small markers show runs with different initializations, and the bold markers show the respective median performance. The CKL implementation of `cblearn` is slightly slower than the minimal version, probably due to data validation and conversion overheads. If the gradient is not provided directly but calculated automatically with PyTorch's AutoGrad functions, the minimal example runs multiple times slower. The most severe impact has been to change the optimization algorithm to stochastic optimization (*Adam*, lr=10). However, following the results in previous sections, it can be assumed that this overhead is compensated for by increasing the dataset size. + +![The runtime and error for different optimization methods in minimal CKL implementations. `cblearn`'s CKL implementation is shown for reference. +\label{fig:torch-speedtest}](images/torch_speedtest_triplets.pdf){width=50%} + +Another challenge for stochastic optimizers like *Adam* [@kingma2014adam] is their sensitivity to hyperparameter choices. This sensitivity is demonstrated in \autoref{fig:adam_lr}, where the learning rate of Adam is varied for the toy example. Likewise, tuning the optimizer parameters could improve the performance of the `torch` ordinal embedding implementations. + + +![The runtime and error for different learning rates of the Adam optimizer in a minimal example with CKL estimating a 2D embedding of 60 objects. +\label{fig:adam_lr}](images/adam_lr_triplet.pdf){width=50%} + +Besides all discussions about runtime and accuracy, the `torch` backend provides benefits for maintaining and expanding the library. It uses PyTorch's automatic differentiation [@paszke2019pytorch] so that the loss gradient does not have to be explicitly defined, and new algorithms can be implemented very quickly. + +## How does `cblearn` compare to other implementations? + +In a small comparison, our implementations run multiple times faster with approximately the same accuracy as reference implementations (\autoref{fig:performance-per-algorithm_library}). +We compared our CPU implementations of SOE the corresponding reference implementations in *R*, `loe` [@terada_local_2014], and our implementation of CKL, GNMDS, STE, tSTE with the *MATLAB* of @van_der_maaten_stochastic_2012. +This comparison is not exhaustive, but it shows that our implementations are competitive with the reference implementations in terms of accuracy and runtime. Of course, we cannot separate the factors of algorithm implementation and runtime environment. + +![\label{fig:deltaerror-per-algorithm_library}](./images/deltaerror-per-algorithm_library.pdf){width=45%} +![\label{fig:deltatime-per-algorithm_library}](images/deltatime-per-algorithm_library.pdf){width=45%} +\begin{figure}[!ht] + \caption{The triplet error and runtime per estimator relative to the mean error and the fastest run on each dataset. Thin lines show runs on the different datasets; the thick lines indicate the respective median. The triplet error is approximately similar for all implementations but STE. For all algorithms, `cblearn` provides the fastest implementation.} + \label{fig:performance-per-algorithm_library} +\end{figure} + + +# Code example\label{sec:code-example} + +```Python +from cblearn import datasets, preprocessing, embedding +from sklearn.model_selection import cross_val_score +import seaborn as sns; sns.set_theme("poster", "whitegrid") + +cars = datasets.fetch_car_similarity() +triplets = preprocessing.triplets_from_mostcentral(cars.triplet, cars.response) +accuracy = cross_val_score(embedding.SOE(n_components=2), triplets, cv=5).mean() +embedding = embedding.SOE(n_components=2).fit_transform(triplets) +fg = sns.relplot(x=embedding[:, 0], y=embedding[:, 1], + hue=cars.class_name[cars.class_id]) +fg.set(title=f"accuracy={accuracy:.2f}", xticklabels=[], yticklabels=[]) +fg.tight_layout(); fg.savefig("images/car_example.pdf") +``` +![](images/car_example.pdf){width=75%} + +# References diff --git a/paper/supplementary.pdf b/paper/supplementary.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d1f98d5fa107373005c0cb20bdb7818cc1e93f4c GIT binary patch literal 384991 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

abv6&Po& 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

TKt^+EvqKBeq0L6 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

We$z;*5Y9&Me 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 JQF$@A{|!3sjP(Ej literal 0 HcmV?d00001 diff --git a/setup.cfg b/setup.cfg index 2a4095c..165faee 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,10 +32,10 @@ zip_safe = False include_package_data = True install_requires = numpy~=1.26 # numba 0.57 requires numpy <1.25 - scipy~=1.11 - scikit-learn~=1.3 + scipy~=1.13 + scikit-learn~=1.5 sparse~=0.15 - numba>=0.58 # force numba version supporting py3.11 + numba>=0.59 # force numba version supporting py3.11 [options.package_data] @@ -58,9 +58,9 @@ tests = pandas~=2.1 matplotlib~=3.8 docs = - sphinx~=7.2 - sphinx_rtd_theme~=2.0 - sphinx-gallery~=0.15 + sphinx~=7.3 + pydata-sphinx-theme~=0.15 + sphinx-gallery~=0.16 matplotlib~=3.8 [build_sphinx]