├── vendi_score ├── __init__.py ├── notebook_utils.py ├── data_utils.py ├── molecule_utils.py ├── vendi.py ├── image_utils.py └── text_utils.py ├── diversity.gif ├── requirements.txt ├── pyproject.toml ├── LICENSE ├── .gitignore ├── README.md └── examples ├── text.ipynb └── molecules.ipynb /vendi_score/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /diversity.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vertaix/Vendi-Score/HEAD/diversity.gif -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | numpy>=1.13 2 | scipy>=1.3.2 3 | scikit-learn>=1.1 4 | torch 5 | torchvision 6 | matplotlib 7 | transformers 8 | datasets 9 | nltk 10 | rdkit 11 | -------------------------------------------------------------------------------- /vendi_score/notebook_utils.py: -------------------------------------------------------------------------------- 1 | import copy 2 | 3 | from IPython.display import display, Markdown, Latex 4 | 5 | 6 | def markdown_table(headers, rows, bold_left=True, do_display=True): 7 | lines = [ 8 | headers, 9 | ([":---"] + [":---:" for _ in range(len(headers) - 2)] + ["---:"]), 10 | ] + rows 11 | if bold_left: 12 | lines = [copy.copy(l) for l in lines] 13 | for l in lines[2:]: 14 | l[0] = f"**{l[0]}**" 15 | out = "\n".join(["|".join(list(map(str, l))) for l in lines]) 16 | if do_display: 17 | display(Markdown(out)) 18 | else: 19 | return out 20 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [build-system] 2 | requires = ["setuptools"] 3 | build-backend = "setuptools.build_meta" 4 | 5 | [project] 6 | name = "vendi-score" 7 | version = "0.0.3" 8 | description = 'A diversity metric for machine learning' 9 | readme = "README.md" 10 | requires-python = ">=3.7" 11 | license = { text = "MIT"} 12 | keywords = [] 13 | authors = [ 14 | { name = "Dan Friedman", email = "dfriedman@princeton.edu" }, 15 | ] 16 | classifiers = [ 17 | "Programming Language :: Python :: 3", 18 | ] 19 | dependencies = ["numpy>=1.14", "scipy>=1.3.2", "scikit-learn>=1.1"] 20 | 21 | [project.urls] 22 | Documentation = "https://github.com/vertaix/Vendi-Score" 23 | Issues = "https://github.com/vertaix/Vendi-Score/issues" 24 | Source = "https://github.com/vertaix/Vendi-Score" 25 | 26 | [project.optional-dependencies] 27 | images = ["torch", "torchvision", "matplotlib"] 28 | text = ["torch", "transformers", "datasets", "nltk"] 29 | molecules = ["rdkit"] 30 | all = ["torch", "torchvision", "transformers", "datasets", "nltk", "rdkit", "matplotlib"] 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 Princeton Vertaix Lab 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /vendi_score/data_utils.py: -------------------------------------------------------------------------------- 1 | from dataclasses import asdict, dataclass, field 2 | import random 3 | from typing import Any, Dict, List, Optional 4 | 5 | 6 | @dataclass 7 | class Example: 8 | x: Any 9 | features: Dict[str, Any] = field(default_factory=dict) 10 | labels: Dict[str, Any] = field(default_factory=dict) 11 | 12 | 13 | @dataclass 14 | class Group: 15 | name: str = "" 16 | examples: List[Example] = field(default_factory=list) 17 | metrics: Dict[str, Any] = field(default_factory=dict) 18 | features: Dict[str, Any] = field(default_factory=dict) 19 | Ks: Dict[str, Any] = field(default_factory=dict) 20 | ws: Dict[str, Any] = field(default_factory=dict) 21 | vs: Dict[str, Any] = field(default_factory=dict) 22 | 23 | 24 | def to_batches(lst, batch_size): 25 | batches = [] 26 | i = 0 27 | while i < len(lst): 28 | batches.append(lst[i : i + batch_size]) 29 | i += batch_size 30 | return batches 31 | 32 | 33 | def mode_dropping_groups(label_to_examples, categories, N): 34 | lst = [] 35 | for i in range(1, len(categories) + 1): 36 | Ns = [N // i for _ in range(i)] 37 | while sum(Ns) < N: 38 | j = random.choice(range(len(Ns))) 39 | Ns[j] += 1 40 | group = Group(i, []) 41 | for n, cat in zip(Ns, categories): 42 | group.examples += random.sample(label_to_examples[cat], n) 43 | lst.append(group) 44 | return lst 45 | -------------------------------------------------------------------------------- /vendi_score/molecule_utils.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | 3 | import numpy as np 4 | 5 | from rdkit import Chem, DataStructs, rdBase 6 | from rdkit.Chem.AllChem import GetMorganFingerprintAsBitVect 7 | 8 | 9 | from vendi_score.data_utils import Example, Group 10 | 11 | 12 | def disable_rdkit_log(): 13 | rdBase.DisableLog("rdApp.*") 14 | 15 | 16 | def enable_rdkit_log(): 17 | rdBase.EnableLog("rdApp.*") 18 | 19 | 20 | def get_mol(smiles_or_mol): 21 | """ 22 | moses: Loads SMILES/molecule into RDKit's object 23 | """ 24 | if isinstance(smiles_or_mol, str): 25 | if len(smiles_or_mol) == 0: 26 | return None 27 | mol = Chem.MolFromSmiles(smiles_or_mol) 28 | if mol is None: 29 | return None 30 | try: 31 | Chem.SanitizeMol(mol) 32 | except ValueError: 33 | return None 34 | return mol 35 | return smiles_or_mol 36 | 37 | 38 | def load_molecules(fn, max_samples=2000, unique=False): 39 | with open(fn, "r") as f: 40 | lines = f.readlines()[1:] 41 | examples = [] 42 | seen = set() 43 | disable_rdkit_log() 44 | for i, line in enumerate(lines): 45 | s = line.strip().split(",")[0] 46 | features = {"s": s} 47 | if unique and s in seen: 48 | continue 49 | seen.add(s) 50 | mol = get_mol(s) 51 | if mol is None: 52 | continue 53 | e = Example(x=mol, features=features) 54 | examples.append(e) 55 | if len(examples) >= max_samples: 56 | break 57 | enable_rdkit_log() 58 | if len(examples) < max_samples: 59 | print(f"len(examples) = {len(examples)}") 60 | return examples 61 | 62 | 63 | def get_tanimoto_K(mols, fp="morgan"): 64 | N = len(mols) 65 | K = np.zeros((N, N)) 66 | if fp == "rdk": 67 | fps = [Chem.RDKFingerprint(x) for x in mols] 68 | elif fp == "morgan": 69 | fps = [GetMorganFingerprintAsBitVect(x, 2, nBits=1024) for x in mols] 70 | else: 71 | fps = [fp(x) for e in mols] 72 | for i in range(N): 73 | for j in range(i, N): 74 | K[i, j] = K[j, i] = DataStructs.FingerprintSimilarity( 75 | fps[i], fps[j] 76 | ) 77 | return K 78 | -------------------------------------------------------------------------------- /vendi_score/vendi.py: -------------------------------------------------------------------------------- 1 | import math 2 | 3 | import numpy as np 4 | import scipy 5 | import scipy.linalg 6 | from sklearn import preprocessing 7 | 8 | 9 | def weight_K(K, p=None): 10 | if p is None: 11 | return K / K.shape[0] 12 | else: 13 | return K * np.outer(np.sqrt(p), np.sqrt(p)) 14 | 15 | 16 | def normalize_K(K): 17 | d = np.sqrt(np.diagonal(K)) 18 | return K / np.outer(d, d) 19 | 20 | 21 | def entropy_q(p, q=1): 22 | p_ = p[p > 0] 23 | if q == 1: 24 | return -(p_ * np.log(p_)).sum() 25 | if q == "inf": 26 | return -np.log(np.max(p)) 27 | return np.log((p_ ** q).sum()) / (1 - q) 28 | 29 | 30 | def score_K(K, q=1, p=None, normalize=False): 31 | if normalize: 32 | K = normalize_K(K) 33 | K_ = weight_K(K, p) 34 | if type(K_) == scipy.sparse.csr.csr_matrix: 35 | w, _ = scipy.sparse.linalg.eigsh(K_) 36 | else: 37 | w = scipy.linalg.eigvalsh(K_) 38 | return np.exp(entropy_q(w, q=q)) 39 | 40 | 41 | def score_X(X, q=1, p=None, normalize=True): 42 | if normalize: 43 | X = preprocessing.normalize(X, axis=1) 44 | K = X @ X.T 45 | return score_K(K, q=1, p=p) 46 | 47 | 48 | def score_dual(X, q=1, normalize=True): 49 | if normalize: 50 | X = preprocessing.normalize(X, axis=1) 51 | n = X.shape[0] 52 | S = X.T @ X 53 | w = scipy.linalg.eigvalsh(S / n) 54 | m = w > 0 55 | return np.exp(entropy_q(w, q=q)) 56 | 57 | 58 | def score(samples, k, q=1, p=None, normalize=False): 59 | n = len(samples) 60 | K = np.zeros((n, n)) 61 | for i in range(n): 62 | for j in range(i, n): 63 | K[i, j] = K[j, i] = k(samples[i], samples[j]) 64 | return score_K(K, p=p, q=q, normalize=normalize) 65 | 66 | 67 | def intdiv_K(K, q=1, p=None): 68 | K_ = K ** q 69 | if p is None: 70 | p = np.ones(K.shape[0]) / K.shape[0] 71 | return 1 - np.sum(K_ * np.outer(p, p)) 72 | 73 | 74 | def intdiv_X(X, q=1, p=None, normalize=True): 75 | if normalize: 76 | X = preprocessing.normalize(X, axis=1) 77 | K = X @ X.T 78 | return intdiv(K, q=q, p=p) 79 | 80 | 81 | def intdiv(samples, k, q=1, p=None): 82 | n = len(samples) 83 | K = np.zeros((n, n)) 84 | for i in range(n): 85 | for j in range(i, n): 86 | K[i, j] = K[j, i] = k(samples[i], samples[j]) 87 | return intdiv_K(K, q=q, p=p) 88 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | 131 | # LaTeX 132 | *.bbl 133 | *.fdb_latexmk 134 | *.fls 135 | *.out 136 | *.log 137 | *.blg 138 | *.aux 139 | 140 | 141 | # Misc 142 | *~ 143 | \#* 144 | .#* 145 | misc/ 146 | cache/ 147 | 148 | *.DS_Store 149 | -------------------------------------------------------------------------------- /vendi_score/image_utils.py: -------------------------------------------------------------------------------- 1 | from matplotlib import pyplot as plt 2 | import numpy as np 3 | import torch 4 | from torch import nn 5 | import torchvision 6 | from torchvision import transforms 7 | from torchvision.models import inception_v3, Inception_V3_Weights 8 | import torchvision.transforms.functional as TF 9 | 10 | 11 | from vendi_score import data_utils, vendi 12 | from vendi_score.data_utils import Example, Group 13 | 14 | 15 | def get_cifar100(root, split="test"): 16 | dataset = torchvision.datasets.CIFAR100( 17 | root=root, train=split == "train", download=True 18 | ) 19 | examples = [] 20 | for x, y in dataset: 21 | features = {"pixels": np.array(x).flatten()} 22 | labels = {"y": dataset.classes[y]} 23 | examples.append(Example(x=x, features=features, labels=labels)) 24 | return examples 25 | 26 | 27 | def get_cifar10(root, split="test"): 28 | dataset = torchvision.datasets.CIFAR10( 29 | root=root, train=split == "train", download=True 30 | ) 31 | examples = [] 32 | for x, y in dataset: 33 | features = {"pixels": np.array(x).flatten()} 34 | labels = {"y": dataset.classes[y]} 35 | examples.append(Example(x=x, features=features, labels=labels)) 36 | return examples 37 | 38 | 39 | def get_cifar10(root, split="test"): 40 | dataset = torchvision.datasets.CIFAR10( 41 | root=root, train=split == "train", download=True 42 | ) 43 | examples = [] 44 | for x, y in dataset: 45 | features = {"pixels": np.array(x).flatten()} 46 | labels = {"y": dataset.classes[y]} 47 | examples.append(Example(x=x, features=features, labels=labels)) 48 | return examples 49 | 50 | 51 | def get_mnist(root, split="train", transform=None): 52 | dataset = torchvision.datasets.MNIST( 53 | root, train=split == "train", download=True, transform=transform 54 | ) 55 | examples = [] 56 | for x, y in dataset: 57 | features = {"pixels": np.array(x).flatten()} 58 | labels = {"y": y} 59 | examples.append(Example(x=x, features=features, labels=labels)) 60 | return examples 61 | 62 | 63 | def get_inception(pretrained=True, pool=True): 64 | if pretrained: 65 | weights = Inception_V3_Weights.DEFAULT 66 | else: 67 | weights = None 68 | model = inception_v3( 69 | weights=weights, transform_input=True 70 | ).eval() 71 | if pool: 72 | model.fc = nn.Identity() 73 | return model 74 | 75 | 76 | def inception_transforms(): 77 | return transforms.Compose( 78 | [ 79 | transforms.Resize(299), 80 | transforms.CenterCrop(299), 81 | transforms.ToTensor(), 82 | transforms.Lambda(lambda x: x.expand(3, -1, -1)), 83 | ] 84 | ) 85 | 86 | 87 | def get_embeddings( 88 | images, 89 | model=None, 90 | transform=None, 91 | batch_size=64, 92 | device=torch.device("cpu"), 93 | ): 94 | if type(device) == str: 95 | device = torch.device(device) 96 | if model is None: 97 | model = get_inception(pretrained=True, pool=True).to(device) 98 | transform = inception_transforms() 99 | if transform is None: 100 | transform = transforms.ToTensor() 101 | uids = [] 102 | embeddings = [] 103 | for batch in data_utils.to_batches(images, batch_size): 104 | x = torch.stack([transform(img) for img in batch], 0).to(device) 105 | with torch.no_grad(): 106 | output = model(x) 107 | if type(output) == list: 108 | output = output[0] 109 | output_arr = output.squeeze().cpu().numpy() 110 | if output_arr.ndim==1: 111 | output_arr = output_arr.reshape(1, output_arr.size) 112 | embeddings.append(output_arr) 113 | return np.concatenate(embeddings, 0) 114 | 115 | 116 | def get_pixel_vectors(images, resize=32): 117 | if resize: 118 | images = [img.resize((resize, resize)) for img in images] 119 | return np.stack([np.array(img).flatten() for img in images], 0) 120 | 121 | 122 | def get_inception_embeddings(images, batch_size=64, device="cpu"): 123 | if type(device) == str: 124 | device = torch.device(device) 125 | model = get_inception(pretrained=True, pool=True).to(device) 126 | transform = inception_transforms() 127 | return get_embeddings( 128 | images, 129 | batch_size=batch_size, 130 | device=device, 131 | model=model, 132 | transform=transform, 133 | ) 134 | 135 | 136 | def pixel_vendi_score(images, resize=32): 137 | X = get_pixel_vectors(images) 138 | n, d = X.shape 139 | if n < d: 140 | return vendi.score_X(X) 141 | return vendi.score_dual(X) 142 | 143 | 144 | def embedding_vendi_score( 145 | images, batch_size=64, device="cpu", model=None, transform=None 146 | ): 147 | X = get_embeddings( 148 | images, 149 | batch_size=batch_size, 150 | device=device, 151 | model=model, 152 | transform=transform, 153 | ) 154 | n, d = X.shape 155 | if n < d: 156 | return vendi.score_X(X) 157 | return vendi.score_dual(X) 158 | 159 | 160 | def plot_images(images, cols=None, ax=None): 161 | if cols is None: 162 | cols = len(images) 163 | if ax is None: 164 | fig, ax = plt.subplots() 165 | rows = data_utils.to_batches([np.array(x) for x in images], cols) 166 | shape = rows[0][0].shape 167 | while len(rows[-1]) < cols: 168 | rows[-1].append(np.zeros(shape)) 169 | rows = [np.concatenate(row, 1) for row in rows] 170 | ax.imshow(np.concatenate(rows, 0)) 171 | ax.set_xticks([]) 172 | ax.set_yticks([]) 173 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # The Vendi Score: A Diversity Evaluation Metric for Machine Learning 2 | 3 | This repository contains the implementation of the Vendi Score (VS), a metric for evaluating diversity in machine learning. 4 | The input to metric is a collection of samples and a pairwise similarity function, and the output is a number, which can be interpreted as the effective number of unique elements in the sample. 5 | Specifically, given a positive semi-definite matrix $K \in \mathbb{R}^{n \times n}$ of similarity scores, the score is defined as: 6 | $$\mathrm{VS}(K) = \exp(-\mathrm{tr}(K/n \log K/n)) = \exp(-\sum_{i=1}^n \lambda_i \log \lambda_i),$$ 7 | where $\lambda_i$ are the eigenvalues of $K/n$ and $0 \log 0 = 0$. 8 | That is, the Vendi Score is equal to the exponential of the von Neumann entropy of $K/n$, or the Shannon entropy of the eigenvalues, which is also known as the effective rank. 9 | 10 |

11 | diversity 12 |

13 | 14 |

15 | The Vendi Score provides an accurate and interpretable measure of diversity 16 |

17 | 18 | For more information, please see our paper, [The Vendi Score: A Diversity Evaluation Metric for Machine Learning](https://arxiv.org/abs/2210.02410) and our follow-up paper [Cousins of the Vendi Score: A Family of Similarity-Based Diversity Metrics For Science And Machine Learning](https://arxiv.org/abs/2310.12952). 19 | 20 | ## Installation 21 | 22 | You can install `vendi_score` from pip: 23 | ``` 24 | pip install vendi_score 25 | ``` 26 | or by cloning this repository: 27 | ``` 28 | git clone https://github.com/vertaix/Vendi-Score.git 29 | cd Vendi-Score 30 | pip install -e . 31 | ``` 32 | `vendi_score` includes some optional dependencies for computing predefined similarity score between images, text, or molecules. You can install these dependencies with a command as in the following: 33 | ``` 34 | pip install vendi_score[images] 35 | pip install vendi_score[text,molecules] 36 | pip install vendi_score[all] 37 | ``` 38 | 39 | ## Usage 40 | 41 | The input to `vendi_score` is a list of samples and a similarity function, `k`, mapping a pair of elements to a similarity score. `k` should be symmetric, and `k(x, x) = 1`: 42 | ```python 43 | import numpy as np 44 | from vendi_score import vendi 45 | 46 | samples = [0, 0, 10, 10, 20, 20] 47 | k = lambda a, b: np.exp(-np.abs(a - b)) 48 | 49 | vendi.score(samples, k) 50 | 51 | # 2.9999 52 | ``` 53 | If you already have precomputed a similarity matrix: 54 | ```python 55 | K = np.array([[1.0, 0.9, 0.0], 56 | [0.9, 1.0, 0.0], 57 | [0.0, 0.0, 1.0]]) 58 | vendi.score_K(K) 59 | 60 | # 2.1573 61 | ``` 62 | One can also compute Vendi Scores of different orders $q$. Large orders measure diversity with a greater emphasis on common elements. See our latest [pre-print](https://arxiv.org/abs/2310.12952) for more details on the behavior of the Vendi Score with different orders $q$. 63 | 64 | ```python 65 | vendi.score(samples, k, q=1.) 66 | ``` 67 | 68 | If your similarity function is a dot product between normalized 69 | embeddings $X\in\mathbb{R}^{n\times d}$, and $d < n$, it is faster 70 | to compute the Vendi score using the covariance matrix, 71 | $\frac{1}{n} \sum_i x_i x_i^{\top}$: 72 | ```python 73 | vendi.score_dual(X) 74 | ``` 75 | If the rows of $X$ are not normalized, set `normalize = True`. 76 | 77 | 78 | ### Similarity functions 79 | 80 | Some similarity functions are provided in `vendi_score.image_utils`, `vendi_score.text_utils`, and `vendi_score.molecule_utils`. For example: 81 | 82 | Images: 83 | ```python 84 | from torchvision import datasets 85 | from vendi_score import image_utils 86 | 87 | mnist = datasets.MNIST("data/mnist", train=False, download=True) 88 | digits = [[x for x, y in mnist if y == c] for c in range(10)] 89 | pixel_vs = [image_utils.pixel_vendi_score(imgs) for imgs in digits] 90 | # The default embeddings are from the pool-2048 layer of the torchvision 91 | # Inception v3 model. 92 | inception_vs = [image_utils.embedding_vendi_score(imgs, device="cuda") for imgs in digits] 93 | for y, (pvs, ivs) in enumerate(zip(pixel_vs, inception_vs)): print(f"{y}\t{pvs:.02f}\t{ivs:02f}") 94 | 95 | # Output: 96 | # 0 7.68 3.45 97 | # 1 5.31 3.50 98 | # 2 12.18 3.62 99 | # 3 9.97 2.97 100 | # 4 11.10 3.75 101 | # 5 13.51 3.16 102 | # 6 9.06 3.63 103 | # 7 9.58 4.07 104 | # 8 9.69 3.74 105 | # 9 8.56 3.43 106 | ``` 107 | 108 | Text: 109 | ```python 110 | from vendi_score import text_utils 111 | 112 | sents = ["Look, Jane.", 113 | "See Spot.", 114 | "See Spot run.", 115 | "Run, Spot, run.", 116 | "Jane sees Spot run."] 117 | ngram_vs = text_utils.ngram_vendi_score(sents, ns=[1, 2]) 118 | bert_vs = text_utils.embedding_vendi_score(sents, model_path="bert-base-uncased") 119 | simcse_vs = text_utils.embedding_vendi_score(sents, model_path="princeton-nlp/unsup-simcse-bert-base-uncased") 120 | print(f"N-grams: {ngram_vs:.02f}, BERT: {bert_vs:.02f}, SimCSE: {simcse_vs:.02f}") 121 | 122 | # N-grams: 3.91, BERT: 1.21, SimCSE: 2.81 123 | ``` 124 | 125 | More examples are illustrated in Jupyter notebooks in the `examples/` folder. 126 | 127 | ## Citation 128 | ```bibtex 129 | @article{friedman2023vendi, 130 | title={The Vendi Score: A Diversity Evaluation Metric for Machine Learning}, 131 | author={Friedman, Dan and Dieng, Adji Bousso}, 132 | journal={Transactions on Machine Learning Research}, 133 | issn={2835-8856}, 134 | year={2023} 135 | } 136 | ``` 137 | 138 | ```bibtex 139 | @inproceedings{pasarkar2024cousins, 140 | title={Cousins Of The Vendi Score: A Family Of Similarity-Based Diversity Metrics For Science And Machine Learning}, 141 | author={Pasarkar, Amey P and Dieng, Adji Bousso}, 142 | booktitle={International Conference on Artificial Intelligence and Statistics}, 143 | pages={3808--3816}, 144 | year={2024}, 145 | organization={PMLR} 146 | } 147 | ``` 148 | -------------------------------------------------------------------------------- /vendi_score/text_utils.py: -------------------------------------------------------------------------------- 1 | import itertools 2 | 3 | import datasets 4 | from nltk.tokenize import word_tokenize 5 | from nltk.translate import bleu_score 6 | import numpy as np 7 | from sklearn.feature_extraction.text import CountVectorizer 8 | from sklearn.preprocessing import normalize 9 | import torch 10 | from transformers import AutoModel, AutoTokenizer 11 | 12 | from vendi_score import data_utils, vendi 13 | from vendi_score.data_utils import Example, Group 14 | 15 | 16 | def get_tokenizer(model="roberta-base"): 17 | tokenizer = AutoTokenizer.from_pretrained("roberta-base", use_fast=True) 18 | 19 | def tokenize(s): 20 | return tokenizer.convert_ids_to_tokens(tokenizer(s).input_ids) 21 | 22 | return tokenize 23 | 24 | 25 | def sklearn_tokenizer(): 26 | return CountVectorizer().build_tokenizer() 27 | 28 | 29 | def get_mnli(): 30 | data = itertools.chain( 31 | datasets.load_dataset("multi_nli", split="validation_matched"), 32 | datasets.load_dataset("multi_nli", split="validation_mismatched"), 33 | ) 34 | seen = set() 35 | examples = [] 36 | for d in data: 37 | s = d["premise"] 38 | if s in seen: 39 | continue 40 | seen.add(s) 41 | examples.append(Example(x=s, labels={"y": d["genre"]})) 42 | return examples 43 | 44 | 45 | def get_ngrams( 46 | sents, 47 | n=1, 48 | tokenizer=None, 49 | return_vectorizer=False, 50 | lowercase=False, 51 | **kwargs, 52 | ): 53 | if tokenizer is None: 54 | tokenizer = word_tokenize 55 | ngram_range = n if type(n) == tuple else (n, n) 56 | vectorizer = CountVectorizer( 57 | tokenizer=tokenizer, 58 | ngram_range=ngram_range, 59 | lowercase=lowercase, 60 | **kwargs, 61 | ) 62 | X = vectorizer.fit_transform(sents) 63 | if return_vectorizer: 64 | return X, vectorizer 65 | return X 66 | 67 | 68 | def add_ngrams_to_examples( 69 | examples, n=1, tokenizer=None, return_vectorizer=False, **kwargs 70 | ): 71 | X = get_ngrams([e.x for e in examples], n=n, tokenizer=tokenizer, **kwargs) 72 | for e, x in zip(examples, X): 73 | e.features[f"{n}-grams"] = x 74 | return examples 75 | 76 | 77 | def get_embeddings( 78 | sents, 79 | model=None, 80 | tokenizer=None, 81 | batch_size=16, 82 | device="cpu", 83 | model_path="princeton-nlp/unsup-simcse-roberta-base", 84 | ): 85 | if device is None: 86 | device = ( 87 | torch.device("cuda") 88 | if torch.cuda.is_available() 89 | else torch.device("cpu") 90 | ) 91 | if type(device) == str: 92 | device = torch.device(device) 93 | if model is None: 94 | model = AutoModel.from_pretrained(model_path).eval().to(device) 95 | tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=True) 96 | embeddings = [] 97 | for batch in data_utils.to_batches(sents, batch_size): 98 | inputs = tokenizer( 99 | batch, 100 | return_tensors="pt", 101 | padding=True, 102 | truncation=True, 103 | max_length=512, 104 | ) 105 | inputs = {k: v.to(device) for k, v in inputs.items()} 106 | with torch.no_grad(): 107 | output = model(**inputs) 108 | if hasattr(output, "pooler_output"): 109 | output = output.pooler_output 110 | else: 111 | output = output.last_hidden_state[:, 0] 112 | if type(output) == list: 113 | output = output[0] 114 | output_arr = output.squeeze().cpu().numpy() 115 | if output_arr.ndim==1: 116 | output_arr = output_arr.reshape(1, output_arr.size) 117 | embeddings.append(output_arr) 118 | return np.concatenate(embeddings, 0) 119 | 120 | 121 | def add_embeddings_to_examples( 122 | examples, 123 | model=None, 124 | tokenizer=None, 125 | batch_size=16, 126 | device="cpu", 127 | model_name="princeton-nlp/unsup-simcse-roberta-base", 128 | feature_name="unsup_simcse", 129 | ): 130 | X = get_embeddings( 131 | [e.x for e in examples], 132 | model=model, 133 | tokenizer=tokenizer, 134 | batch_size=batch_size, 135 | device=device, 136 | model_name=model_name, 137 | ) 138 | for e, x in zip(examples, X): 139 | e.features[feature_name] = x 140 | return examples 141 | 142 | 143 | def single_ngram_diversity(sents, n, tokenizer=None, **kwargs): 144 | X = get_ngrams(sents, n=n, tokenizer=tokenizer, **kwargs) 145 | distinct = X.shape[-1] 146 | total = X.sum() 147 | # unique = (counts == 1).sum() 148 | # total = counts.shape[-1] 149 | return distinct / total 150 | 151 | 152 | def ngram_diversity(sents, ns=[1, 2, 3, 4], tokenizer=None, **kwargs): 153 | return np.mean( 154 | [ 155 | single_ngram_diversity(sents, n, tokenizer=tokenizer, **kwargs) 156 | for n in ns 157 | ] 158 | ) 159 | 160 | 161 | def bleu(hyps, refs, tokenizer=None): 162 | if type(hyps[0]) == str: 163 | if tokenizer is None: 164 | tokenizer = word_tokenize 165 | hyp_tokens = [tokenizer(s) for s in hyps] 166 | ref_tokens = [tokenizer(s) for s in refs] 167 | else: 168 | hyp_tokens = hyps 169 | ref_tokens = refs 170 | smoothing = bleu_score.SmoothingFunction().method1 171 | return np.mean( 172 | [ 173 | bleu_score.sentence_bleu(refs, hyp, smoothing_function=smoothing) 174 | for hyp in hyps 175 | ] 176 | ) 177 | 178 | 179 | def self_bleu(sents, tokenizer): 180 | examples = [tokenizer(s) for s in sents] 181 | smoothing = bleu_score.SmoothingFunction().method1 182 | scores = [] 183 | for i in range(len(examples)): 184 | hyp = examples[i] 185 | ref = examples[:i] + examples[i + 1 :] 186 | scores.append( 187 | bleu_score.sentence_bleu(ref, hyp, smoothing_function=smoothing) 188 | ) 189 | return np.mean(scores) 190 | 191 | 192 | def pairwise_bleu(sents, tokenizer): 193 | examples = [tokenizer(s) for s in sents] 194 | smoothing = bleu_score.SmoothingFunction().method1 195 | scores = [] 196 | for i in range(len(examples)): 197 | lst = [] 198 | for j in range(len(examples)): 199 | if j == i: 200 | continue 201 | hyp = examples[i] 202 | ref = [examples[j]] 203 | lst.append( 204 | bleu_score.sentence_bleu(ref, hyp, smoothing_function=smoothing) 205 | ) 206 | scores.append(np.mean(lst)) 207 | return np.mean(scores) 208 | 209 | 210 | def ngram_vendi_score(sents, ns=[1, 2, 3, 4], tokenizer=None, **kwargs): 211 | Ks = [] 212 | for n in ns: 213 | X = normalize(get_ngrams(sents, n=n, tokenizer=tokenizer)) 214 | Ks.append((X @ X.T).A) 215 | K = np.stack(Ks, axis=0).mean(axis=0) 216 | return vendi.score_K(K) 217 | 218 | 219 | def embedding_vendi_score( 220 | sents, 221 | model=None, 222 | tokenizer=None, 223 | batch_size=16, 224 | device="cpu", 225 | model_path="princeton-nlp/unsup-simcse-roberta-base", 226 | ): 227 | X = get_embeddings( 228 | sents, 229 | model=model, 230 | tokenizer=tokenizer, 231 | batch_size=batch_size, 232 | device=device, 233 | model_path=model_path, 234 | ) 235 | n, d = X.shape 236 | if n < d: 237 | return vendi.score_X(X) 238 | return vendi.score_dual(X) 239 | -------------------------------------------------------------------------------- /examples/text.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "931cbb6d", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import os\n", 11 | "os.chdir(\"/n/fs/nlp-df22/project/diversity/clean\")" 12 | ] 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 2, 17 | "id": "b0026c7e", 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "import importlib\n", 22 | "import random\n", 23 | "\n", 24 | "import datasets\n", 25 | "from matplotlib import pyplot as plt\n", 26 | "import numpy as np\n", 27 | "import scipy.sparse\n", 28 | "from scipy.stats import spearmanr\n", 29 | "from scipy.stats import pearsonr\n", 30 | "from sklearn.feature_extraction.text import CountVectorizer\n", 31 | "from sklearn.preprocessing import normalize\n", 32 | "import torch\n", 33 | "from torch import nn\n", 34 | "from torchvision.models import inception_v3\n", 35 | "import torchvision\n", 36 | "\n", 37 | "from transformers import AutoModel, AutoTokenizer" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 3, 43 | "id": "fa02e580", 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "from vendi_score import vendi, data_utils, text_utils" 48 | ] 49 | }, 50 | { 51 | "cell_type": "markdown", 52 | "id": "fb779cba", 53 | "metadata": {}, 54 | "source": [ 55 | "### Load data" 56 | ] 57 | }, 58 | { 59 | "cell_type": "markdown", 60 | "id": "5cd19c2c", 61 | "metadata": {}, 62 | "source": [ 63 | "Load the MultiNLI dataset. Each example is stored in a utility class called `data_utils.Example` to keep track of features and metadata. The string is stored in `example.x`." 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 4, 69 | "id": "8f5b9a11", 70 | "metadata": {}, 71 | "outputs": [ 72 | { 73 | "name": "stderr", 74 | "output_type": "stream", 75 | "text": [ 76 | "Using custom data configuration default\n", 77 | "Reusing dataset multi_nli (/n/fs/nlp-df22/.cache/hf/datasets/multi_nli/default/0.0.0/591f72eb6263d1ab527561777936b199b714cda156d35716881158a2bd144f39)\n", 78 | "Using custom data configuration default\n", 79 | "Reusing dataset multi_nli (/n/fs/nlp-df22/.cache/hf/datasets/multi_nli/default/0.0.0/591f72eb6263d1ab527561777936b199b714cda156d35716881158a2bd144f39)\n" 80 | ] 81 | }, 82 | { 83 | "name": "stdout", 84 | "output_type": "stream", 85 | "text": [ 86 | "6669\n" 87 | ] 88 | } 89 | ], 90 | "source": [ 91 | "mnli_examples = text_utils.get_mnli()\n", 92 | "print(len(mnli_examples))" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 5, 98 | "id": "b27ec824", 99 | "metadata": {}, 100 | "outputs": [ 101 | { 102 | "name": "stdout", 103 | "output_type": "stream", 104 | "text": [ 105 | "Sentence: This site includes a list of all award winners and a searchable database of Government Executive articles.\n", 106 | "Genre: government\n" 107 | ] 108 | } 109 | ], 110 | "source": [ 111 | "e = mnli_examples[1]\n", 112 | "print(\"Sentence:\", e.x)\n", 113 | "print(\"Genre:\", e.labels[\"y\"])" 114 | ] 115 | }, 116 | { 117 | "cell_type": "markdown", 118 | "id": "9ca425ca", 119 | "metadata": {}, 120 | "source": [ 121 | "### Which MultiNLI categories are most diverse?" 122 | ] 123 | }, 124 | { 125 | "cell_type": "markdown", 126 | "id": "a7a58b40", 127 | "metadata": {}, 128 | "source": [ 129 | "We'll see which MultiNLI genres get the highest and lowest diversity scores using three different similarity scores: an n-gram overlap score, and the cosine similarity between neural network embeddings." 130 | ] 131 | }, 132 | { 133 | "cell_type": "code", 134 | "execution_count": 6, 135 | "id": "bfae11b7", 136 | "metadata": {}, 137 | "outputs": [ 138 | { 139 | "name": "stdout", 140 | "output_type": "stream", 141 | "text": [ 142 | "facetoface 667\n", 143 | "fiction 666\n", 144 | "government 667\n", 145 | "letters 667\n", 146 | "nineeleven 667\n", 147 | "oup 667\n", 148 | "slate 667\n", 149 | "telephone 667\n", 150 | "travel 667\n", 151 | "verbatim 667\n" 152 | ] 153 | } 154 | ], 155 | "source": [ 156 | "categories = sorted(set(e.labels[\"y\"] for e in mnli_examples))\n", 157 | "category_groups = {c: data_utils.Group(c, []) for c in categories}\n", 158 | "for e in mnli_examples:\n", 159 | " category_groups[e.labels[\"y\"]].examples.append(e)\n", 160 | "groups = list(category_groups.values())\n", 161 | "for g in groups:\n", 162 | " print(g.name, len(g.examples))" 163 | ] 164 | }, 165 | { 166 | "cell_type": "code", 167 | "execution_count": 7, 168 | "id": "33757ae1", 169 | "metadata": {}, 170 | "outputs": [], 171 | "source": [ 172 | "tokenizer = text_utils.get_tokenizer()" 173 | ] 174 | }, 175 | { 176 | "cell_type": "code", 177 | "execution_count": 8, 178 | "id": "ff12f191", 179 | "metadata": {}, 180 | "outputs": [], 181 | "source": [ 182 | "for group in groups:\n", 183 | " sents = [e.x for e in group.examples]\n", 184 | " for n in (1, 2, 3, 4):\n", 185 | " X = text_utils.get_ngrams(sents, n=n, tokenizer=tokenizer)\n", 186 | " group.features[f\"{n}-grams\"] = X = normalize(X, axis=1)\n", 187 | " group.Ks[f\"{n}-grams\"] = K = (X @ X.T).toarray()\n", 188 | " group.metrics[f\"{n}-grams/VS\"] = vendi.score_K(K)\n", 189 | " group.Ks[f\"N-grams\"] = K = np.stack([group.Ks[f\"{n}-grams\"] for n in (1, 2, 3, 4)], 0).mean(0)\n", 190 | " group.metrics[f\"N-grams/VS\"] = vendi.score_K(K)" 191 | ] 192 | }, 193 | { 194 | "cell_type": "code", 195 | "execution_count": 11, 196 | "id": "40d93ecf", 197 | "metadata": {}, 198 | "outputs": [], 199 | "source": [ 200 | "device = torch.device(\"cuda\") if torch.cuda.is_available() else torch.device(\"cpu\")\n", 201 | "\n", 202 | "models = [(\"Unsupervised SimCSE\", \"princeton-nlp/unsup-simcse-roberta-base\"),\n", 203 | " (\"Supervised SimCSE\", \"princeton-nlp/sup-simcse-roberta-base\")]\n", 204 | "\n", 205 | "for name, path in models:\n", 206 | " tok = AutoTokenizer.from_pretrained(path, use_fast=True)\n", 207 | " model = AutoModel.from_pretrained(path).eval().to(device)\n", 208 | " for group in groups:\n", 209 | " group.features[name] = X = text_utils.get_embeddings(\n", 210 | " [e.x for e in group.examples], model=model, tokenizer=tok\n", 211 | " )\n", 212 | " group.metrics[f\"{name}/vNd\"] = vendi.score_X(X)" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": 9, 218 | "id": "a50bd546", 219 | "metadata": {}, 220 | "outputs": [ 221 | { 222 | "data": { 223 | "text/markdown": [ 224 | "Genre|1-grams/VS|2-grams/VS|3-grams/VS|4-grams/VS|N-grams/VS\n", 225 | ":---|:---:|:---:|:---:|:---:|---:\n", 226 | "**group.name**|81.63|450.16|640.18|660.79|444.22\n", 227 | "**group.name**|124.92|486.68|646.09|662.97|480.25\n", 228 | "**group.name**|145.90|567.07|662.44|659.10|509.44\n", 229 | "**group.name**|132.63|526.48|650.47|658.66|492.76\n", 230 | "**group.name**|115.31|503.75|646.33|660.02|473.13\n", 231 | "**group.name**|130.41|570.27|662.80|666.05|503.95\n", 232 | "**group.name**|156.99|559.31|665.21|666.81|515.68\n", 233 | "**group.name**|102.41|542.52|646.15|661.59|491.45\n", 234 | "**group.name**|127.80|559.69|664.05|666.34|495.21\n", 235 | "**group.name**|131.80|574.74|661.15|666.06|506.97" 236 | ], 237 | "text/plain": [ 238 | "" 239 | ] 240 | }, 241 | "metadata": {}, 242 | "output_type": "display_data" 243 | } 244 | ], 245 | "source": [ 246 | "from vendi_score import notebook_utils\n", 247 | "\n", 248 | "rows = []\n", 249 | "keys = sorted(groups[0].metrics.keys())\n", 250 | "for group in groups:\n", 251 | " row = [f\"group.name\"] + [f\"{group.metrics[k]:.02f}\" for k in keys]\n", 252 | " rows.append(row)\n", 253 | "notebook_utils.markdown_table([\"Genre\"] + keys, rows)" 254 | ] 255 | }, 256 | { 257 | "cell_type": "code", 258 | "execution_count": 10, 259 | "id": "c7fbc0de", 260 | "metadata": {}, 261 | "outputs": [ 262 | { 263 | "data": { 264 | "text/markdown": [ 265 | "Genre|1-grams/VS|2-grams/VS|3-grams/VS|4-grams/VS|N-grams/VS\n", 266 | ":---|:---:|:---:|:---:|:---:|---:\n", 267 | "**facetoface**|9|9|9|6|9\n", 268 | "**fiction**|6|8|8|4|7\n", 269 | "**government**|1|2|3|8|1\n", 270 | "**letters**|2|6|5|9|5\n", 271 | "**nineeleven**|7|7|6|7|8\n", 272 | "**oup**|4|1|2|3|3\n", 273 | "**slate**|0|4|0|0|0\n", 274 | "**telephone**|8|5|7|5|6\n", 275 | "**travel**|5|3|1|1|4\n", 276 | "**verbatim**|3|0|4|2|2" 277 | ], 278 | "text/plain": [ 279 | "" 280 | ] 281 | }, 282 | "metadata": {}, 283 | "output_type": "display_data" 284 | } 285 | ], 286 | "source": [ 287 | "rows = []\n", 288 | "keys = sorted(groups[0].metrics.keys())\n", 289 | "ranks = {}\n", 290 | "for key in keys:\n", 291 | " order = list(np.argsort(-np.array([g.metrics[key] for g in groups])))\n", 292 | " ranks[key] = [order.index(i) for i in range(len(order))]\n", 293 | "for i, group in enumerate(groups):\n", 294 | " row = [group.name] + [f\"{ranks[k][i]}\" for k in keys]\n", 295 | " rows.append(row)\n", 296 | "notebook_utils.markdown_table([\"Genre\"] + keys, rows)" 297 | ] 298 | }, 299 | { 300 | "cell_type": "markdown", 301 | "id": "a3e60ced", 302 | "metadata": {}, 303 | "source": [ 304 | "### Detecting mode dropping" 305 | ] 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "id": "47cec893", 310 | "metadata": {}, 311 | "source": [ 312 | "We'll create a mode dropping scenario by sampling 10 datasets, $S_1, \\ldots, S_{10}$, each $S_i$ containing 500 sentences selected uniformly from the first $i$ categories. The Vendi score is compared to IntDiv: $\\mathrm{IntDiv}(K) = 1 - \\frac{1}{n^2}\\sum_{i, j}K_{ij}$ for an $n \\times n$ similarity matrix $K$." 313 | ] 314 | }, 315 | { 316 | "cell_type": "code", 317 | "execution_count": 11, 318 | "id": "bb749424", 319 | "metadata": {}, 320 | "outputs": [], 321 | "source": [ 322 | "tokenizer = text_utils.get_tokenizer()" 323 | ] 324 | }, 325 | { 326 | "cell_type": "code", 327 | "execution_count": 12, 328 | "id": "19f2f81a", 329 | "metadata": {}, 330 | "outputs": [], 331 | "source": [ 332 | "random.seed(0)\n", 333 | "cats = sorted(categories)\n", 334 | "label_to_examples = {group.name: group.examples for group in category_groups.values()}\n", 335 | "mode_dropping_groups = data_utils.mode_dropping_groups(label_to_examples, cats, N=500)" 336 | ] 337 | }, 338 | { 339 | "cell_type": "code", 340 | "execution_count": 13, 341 | "id": "bd4b7b3d", 342 | "metadata": {}, 343 | "outputs": [], 344 | "source": [ 345 | "for group in mode_dropping_groups:\n", 346 | " sents = [e.x for e in group.examples]\n", 347 | " for n in (1, 2, 3, 4):\n", 348 | " X = text_utils.get_ngrams(sents, n=n, tokenizer=tokenizer, binary=True)\n", 349 | " group.features[f\"{n}-grams\"] = X = normalize(X, axis=1)\n", 350 | " group.Ks[f\"{n}-grams\"] = K = (X @ X.T).toarray()\n", 351 | " group.metrics[f\"{n}-grams/VS\"] = vendi.score_K(K)\n", 352 | " group.metrics[f\"{n}-grams/IntDiv\"] = vendi.intdiv_K(K)\n", 353 | " group.Ks[f\"N-grams\"] = K = np.stack([group.Ks[f\"{n}-grams\"] for n in (1, 2, 3, 4)], 0).mean(0)\n", 354 | " group.metrics[f\"N-grams/VS\"] = vendi.score_K(K)\n", 355 | " group.metrics[f\"N-grams/IntDiv\"] = vendi.intdiv_K(K)" 356 | ] 357 | }, 358 | { 359 | "cell_type": "code", 360 | "execution_count": 14, 361 | "id": "725962b0", 362 | "metadata": {}, 363 | "outputs": [], 364 | "source": [ 365 | "for group in mode_dropping_groups:\n", 366 | " sents = [e.x for e in group.examples]\n", 367 | " group.metrics[\"N-gram diversity\"] = text_utils.ngram_diversity(sents, tokenizer=tokenizer)" 368 | ] 369 | }, 370 | { 371 | "cell_type": "code", 372 | "execution_count": 16, 373 | "id": "fa5e9c24", 374 | "metadata": {}, 375 | "outputs": [], 376 | "source": [ 377 | "# for group in mode_dropping_groups:\n", 378 | "# group.metrics[\"Self BLEU\"] = text_utils.self_bleu([e.x for e in group.examples], tokenizer)" 379 | ] 380 | }, 381 | { 382 | "cell_type": "code", 383 | "execution_count": 17, 384 | "id": "f5072c65", 385 | "metadata": {}, 386 | "outputs": [ 387 | { 388 | "data": { 389 | "image/png": "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\n", 390 | "text/plain": [ 391 | "
" 392 | ] 393 | }, 394 | "metadata": { 395 | "needs_background": "light" 396 | }, 397 | "output_type": "display_data" 398 | } 399 | ], 400 | "source": [ 401 | "fig, axes = plt.subplots(1, 3, figsize=(16, 4))\n", 402 | "\n", 403 | "for ax, metric in zip(axes, (\"N-grams/VS\", \"N-grams/IntDiv\", \"N-gram diversity\")):#, \"Self BLEU\")):\n", 404 | " ax.set_title(metric)\n", 405 | " ax.plot([g.name for g in mode_dropping_groups],\n", 406 | " [g.metrics[metric] for g in mode_dropping_groups],\n", 407 | " marker=\"o\")\n", 408 | " xticks = [cats[0]] + [f\"+ {c}\" for c in cats[1:]]\n", 409 | " ax.set_xticks([g.name for g in mode_dropping_groups])\n", 410 | " ax.set_xticklabels(xticks, rotation=45)\n", 411 | " \n", 412 | "plt.tight_layout() \n", 413 | "plt.show()" 414 | ] 415 | }, 416 | { 417 | "cell_type": "code", 418 | "execution_count": 18, 419 | "id": "465131e7", 420 | "metadata": {}, 421 | "outputs": [], 422 | "source": [ 423 | "SMALL_SIZE = 5\n", 424 | "MEDIUM_SIZE = 7\n", 425 | "BIGGER_SIZE = 9\n", 426 | "\n", 427 | "plt.rc('font', size=SMALL_SIZE) # controls default text sizes\n", 428 | "plt.rc('axes', titlesize=MEDIUM_SIZE) # fontsize of the axes title\n", 429 | "plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels\n", 430 | "plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n", 431 | "plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels\n", 432 | "plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize\n", 433 | "plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title\n", 434 | "#plt.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})\n", 435 | "plt.rc('text', usetex=False)" 436 | ] 437 | }, 438 | { 439 | "cell_type": "code", 440 | "execution_count": 19, 441 | "id": "28116b69", 442 | "metadata": {}, 443 | "outputs": [], 444 | "source": [ 445 | "cmap = plt.cm.get_cmap(\"Set1\")\n", 446 | "colors = cmap.colors" 447 | ] 448 | }, 449 | { 450 | "cell_type": "code", 451 | "execution_count": 20, 452 | "id": "7b664f25", 453 | "metadata": {}, 454 | "outputs": [ 455 | { 456 | "data": { 457 | "image/png": "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\n", 458 | "text/plain": [ 459 | "
" 460 | ] 461 | }, 462 | "metadata": { 463 | "needs_background": "light" 464 | }, 465 | "output_type": "display_data" 466 | } 467 | ], 468 | "source": [ 469 | "fig, axes = plt.subplots(2, 1, figsize=(2.75, 2.5), sharex=True)\n", 470 | "for i, (ax, metric) in enumerate(zip(axes, (\"VS\", \"IntDiv\"))):\n", 471 | " #ax.set_title(metric)\n", 472 | " for feature in (\"N-grams\",):\n", 473 | " ax.plot([g.name for g in mode_dropping_groups],\n", 474 | " [g.metrics[f\"{feature}/{metric}\"] for g in mode_dropping_groups],\n", 475 | " marker=\"o\", color=colors[i], label=metric, markersize=5)\n", 476 | " #label=feature.title())\n", 477 | " xticks = [cats[0]] + [f\"+ {c}\" for c in cats[1:]]\n", 478 | " ax.set_xticks([g.name for g in mode_dropping_groups])\n", 479 | " #ax.set_xticklabels(xticks, rotation=45, horizontalalignment=\"right\", fontsize=7)\n", 480 | " ax.set_xticklabels([g.name for g in mode_dropping_groups])\n", 481 | " ax.legend()\n", 482 | "axes[1].set_xlabel(\"Number of classes\") \n", 483 | "axes[0].set_title(\"MultiNLI\", size=9)\n", 484 | "plt.tight_layout()\n", 485 | "#fig.subplots_adjust(top=0.9)\n", 486 | "plt.savefig(\"mnli_modes.pdf\", dpi=300)\n", 487 | "plt.show()" 488 | ] 489 | }, 490 | { 491 | "cell_type": "code", 492 | "execution_count": 75, 493 | "id": "4778c9aa", 494 | "metadata": {}, 495 | "outputs": [ 496 | { 497 | "name": "stdout", 498 | "output_type": "stream", 499 | "text": [ 500 | "vNd SpearmanrResult(correlation=0.9999999999999999, pvalue=6.646897422032013e-64)\n", 501 | "IntDiv SpearmanrResult(correlation=0.9393939393939393, pvalue=5.484052998513666e-05)\n" 502 | ] 503 | } 504 | ], 505 | "source": [ 506 | "feature = \"N-grams\"\n", 507 | "for metric in (\"vNd\", \"IntDiv\"):\n", 508 | " x = [g.name for g in mode_dropping_groups]\n", 509 | " y = [g.metrics[f\"{feature}/{metric}\"] for g in mode_dropping_groups]\n", 510 | " print(metric, spearmanr(x, y))" 511 | ] 512 | }, 513 | { 514 | "cell_type": "code", 515 | "execution_count": 77, 516 | "id": "a585deb0", 517 | "metadata": {}, 518 | "outputs": [ 519 | { 520 | "name": "stdout", 521 | "output_type": "stream", 522 | "text": [ 523 | "vNd (0.8956426378289939, 0.0004566882392696715)\n", 524 | "IntDiv (0.9258867307280253, 0.00012061581342668988)\n" 525 | ] 526 | } 527 | ], 528 | "source": [ 529 | "feature = \"N-grams\"\n", 530 | "for metric in (\"vNd\", \"IntDiv\"):\n", 531 | " x = [g.name for g in mode_dropping_groups]\n", 532 | " y = [g.metrics[f\"{feature}/{metric}\"] for g in mode_dropping_groups]\n", 533 | " print(metric, pearsonr(x, y))" 534 | ] 535 | }, 536 | { 537 | "cell_type": "code", 538 | "execution_count": null, 539 | "id": "0c7abb23", 540 | "metadata": {}, 541 | "outputs": [], 542 | "source": [] 543 | } 544 | ], 545 | "metadata": { 546 | "kernelspec": { 547 | "display_name": "Python 3 (ipykernel)", 548 | "language": "python", 549 | "name": "python3" 550 | }, 551 | "language_info": { 552 | "codemirror_mode": { 553 | "name": "ipython", 554 | "version": 3 555 | }, 556 | "file_extension": ".py", 557 | "mimetype": "text/x-python", 558 | "name": "python", 559 | "nbconvert_exporter": "python", 560 | "pygments_lexer": "ipython3", 561 | "version": "3.8.12" 562 | } 563 | }, 564 | "nbformat": 4, 565 | "nbformat_minor": 5 566 | } 567 | -------------------------------------------------------------------------------- /examples/molecules.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "id": "b43ec0b2", 7 | "metadata": {}, 8 | "outputs": [], 9 | "source": [ 10 | "import importlib\n", 11 | "import random\n", 12 | "\n", 13 | "from matplotlib import pyplot as plt\n", 14 | "plt.rcParams[\"savefig.bbox\"] = \"tight\"\n", 15 | "import numpy as np\n", 16 | "import scipy.sparse\n", 17 | "\n", 18 | "from rdkit import Chem\n", 19 | "from rdkit.Chem.AllChem import GetMorganFingerprintAsBitVect" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 2, 25 | "id": "38dedf1c", 26 | "metadata": {}, 27 | "outputs": [], 28 | "source": [ 29 | "from vendi_score import vendi, data_utils, molecule_utils" 30 | ] 31 | }, 32 | { 33 | "cell_type": "markdown", 34 | "id": "fea62d04", 35 | "metadata": {}, 36 | "source": [ 37 | "### Load data" 38 | ] 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "id": "6a4965bf", 43 | "metadata": {}, 44 | "source": [ 45 | "Clone the [Molecular Sets (MOSES)](https://github.com/molecularsets/moses) repository." 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": 3, 51 | "id": "09463f61", 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "# ! git clone https://github.com/molecularsets/moses.git" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": 4, 61 | "id": "cd642c04", 62 | "metadata": {}, 63 | "outputs": [], 64 | "source": [ 65 | "mol_groups = {}\n", 66 | "for model in (\"aae\", \"char_rnn\", \"combinatorial\", \"hmm\", \"jtn\", \"latent_gan\", \"ngram\", \"vae\"):\n", 67 | " mol_groups[model] = data_utils.Group(model, molecule_utils.load_molecules(\n", 68 | " f\"../../moses/data/samples/{model}/{model}_3.csv\",\n", 69 | " max_samples=1500\n", 70 | " ))" 71 | ] 72 | }, 73 | { 74 | "cell_type": "code", 75 | "execution_count": 5, 76 | "id": "e33e115d", 77 | "metadata": {}, 78 | "outputs": [], 79 | "source": [ 80 | "mol_groups[\"real\"] = data_utils.Group(\"real\", molecule_utils.load_molecules(\n", 81 | " f\"../../moses/data/test.csv\",\n", 82 | " max_samples=1500\n", 83 | "))" 84 | ] 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "id": "b4e92281", 89 | "metadata": {}, 90 | "source": [ 91 | "### Comparing molecule models" 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": 6, 97 | "id": "6fcb7765", 98 | "metadata": {}, 99 | "outputs": [ 100 | { 101 | "name": "stdout", 102 | "output_type": "stream", 103 | "text": [ 104 | "aae 501.05 0.8592\n", 105 | "char_rnn 482.44 0.8563\n", 106 | "combinatorial 536.89 0.8729\n", 107 | "hmm 250.89 0.8707\n", 108 | "jtn 489.54 0.8556\n", 109 | "latent_gan 486.4 0.8569\n", 110 | "ngram 479.8 0.8736\n", 111 | "vae 475.28 0.8562\n", 112 | "real 403.93 0.8551\n" 113 | ] 114 | } 115 | ], 116 | "source": [ 117 | "groups = mol_groups.values()\n", 118 | "for group in groups:\n", 119 | " group.Ks[\"morgan\"] = K = molecule_utils.get_tanimoto_K([e.x for e in group.examples], fp=\"morgan\")\n", 120 | " group.metrics[\"VS\"] = vendi.score_K(K)\n", 121 | " group.metrics[\"IntDiv\"] = vendi.intdiv_K(K)\n", 122 | " print(group.name, round(group.metrics[\"VS\"], 2), round(group.metrics[\"IntDiv\"], 4))" 123 | ] 124 | }, 125 | { 126 | "cell_type": "code", 127 | "execution_count": 7, 128 | "id": "5e8d48fc", 129 | "metadata": {}, 130 | "outputs": [ 131 | { 132 | "data": { 133 | "image/png": "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\n", 134 | "text/plain": [ 135 | "
" 136 | ] 137 | }, 138 | "metadata": { 139 | "needs_background": "light" 140 | }, 141 | "output_type": "display_data" 142 | } 143 | ], 144 | "source": [ 145 | "models = [\"hmm\", \"aae\", \"real\"]\n", 146 | "fig, axes = plt.subplots(1, 3, figsize=(6.5, 3), constrained_layout=True)\n", 147 | "models = [(\"hmm\", \"HMM\"), (\"aae\", \"AAE\"), (\"real\", \"Real\")]\n", 148 | "for (model_key, model_name), ax in zip(models, axes):\n", 149 | " group = mol_groups[model_key]\n", 150 | " K = group.Ks[\"morgan\"]\n", 151 | " order = np.argsort(np.array([e.features[\"s\"] for e in group.examples]))[:250]\n", 152 | " K = K[order][:, order]\n", 153 | " im = ax.imshow(K, vmin=0, vmax=1, cmap=\"inferno\")\n", 154 | " #vnd, intdiv = group.metrics[\"vNd\"], group.metrics[\"IntDiv\"]\n", 155 | " vnd = vendi.score_K(K)\n", 156 | " intdiv = vendi.intdiv_K(K)\n", 157 | " ax.set_title(model_name + f\"\\nVS: {vnd:.01f}\" + f\"\\nIntDiv: {intdiv:.03f}\", size=10)\n", 158 | " ax.set_xticks([])\n", 159 | " ax.set_yticks([])\n", 160 | "cbar = fig.colorbar(im, ax=axes, location=\"right\", shrink=0.6)\n", 161 | "cbar.ax.set_ylabel(\"Similarity\", rotation=-90, va=\"bottom\", size=10)\n", 162 | "plt.savefig(\"molecule_kernels.pdf\", dpi=300)\n", 163 | "plt.show()" 164 | ] 165 | }, 166 | { 167 | "cell_type": "code", 168 | "execution_count": null, 169 | "id": "f8e92db4", 170 | "metadata": {}, 171 | "outputs": [], 172 | "source": [] 173 | } 174 | ], 175 | "metadata": { 176 | "kernelspec": { 177 | "display_name": "Python 3 (ipykernel)", 178 | "language": "python", 179 | "name": "python3" 180 | }, 181 | "language_info": { 182 | "codemirror_mode": { 183 | "name": "ipython", 184 | "version": 3 185 | }, 186 | "file_extension": ".py", 187 | "mimetype": "text/x-python", 188 | "name": "python", 189 | "nbconvert_exporter": "python", 190 | "pygments_lexer": "ipython3", 191 | "version": "3.8.12" 192 | } 193 | }, 194 | "nbformat": 4, 195 | "nbformat_minor": 5 196 | } 197 | --------------------------------------------------------------------------------