SlowGuess/NeurIPS_2023_OCR huggingface dataset:
In many Bayesian optimisation problems, the acquisition strategy only requires rank-based preferences of candidates (as opposed to their absolute objective function values) to operate. Such an observation has motivated the field of Preferential Bayesian optimisation (PBO) [65, 66, 67, 68] where Bayesian optimisation is performed using binary preference data in lieu of the absolute values of the objective function. In Figure 5 we present the results of a Bayesian optimisation loop on the photoswitch dataset featuring a Tanimoto kernel GP surrogate with probit likelihood and the Laplace approximation [132], combined with the EUBO -  $\zeta$  acquisition function from [68, 133]. The results indicate that it is possible to perform molecular Bayesian optimization using binary preference data alone.
Figure 5: PBO results on the Photoswitch dataset using the EUBO -  $\zeta$  acquisition function. 20 random trials reporting the 1.96 standard error bands. The surrogate is initialized with 98 molecules with 100 pairwise comparisons. 294 molecules are retained in a heldout set to be selected as part of the BO loop. A single molecule is selected on each iteration and an additional 100 pairwise comparisons over the augmented train set are recorded.
F Coding Kernels in GAUCHE
We provide an example of the class definition for the Tanimoto kernel in GAUCHE below
class TanimotoGP(ExactGP): def __init__(self, train_x, train_y, likelihood): super(TanimotoGP, self).__init__(train_x, train_y, likelihood) self.mean_module = ConstantMean() # We use the Tanimoto kernel to work with # molecular fingerprint representations self.covar_module = ScaleKernel(TanimotoKernel()) def forward(self, x): mean_x = self.mean_module(x) covar_x = self.covar_module(x) return MultivariateNormal(mean_x, covar_x)
and an example definition of a black box kernel (where gradients with respect to hyperparameters and input labels are not required).
class WLKernel(gauche.Kernel): def__init__(self): super(..__init\_() self.kernel  $\equiv$  grakel.kernels.WeisfeilerLehman(@lru_cache(maxsize=3) defkern(self,X): return tensor(self.kernel.fit_transform(X.data))
class GraphGP(gauche.SIGP):
    def __init__(self, train_x, train_y, likelihood):
        super().__init__(train_x, train_y, likelihood)
        self.mean = ConstantMean()
        self.covariance = WLKernel()
def forward(self, X):
    # X is a gauche. Inputs instance, with X.data
    # holding a list of grakel.Graph instances.
    mean = self.mean(zeros(len(X.data), 1))
    covariance = self.covariance(X)
    return MultivariateNormal(mean, covariance)
Importantly, GAUCHE inherits all the facilities of GPyTorch and GraKel allowing a broad range of of models to be defined on molecular inputs such as deep GPs, multioutput GPs and heteroscedastic GPs.
G Additional Bit and Count Vector Kernels
GAUCHE provides parallelisable and batch-GP-compatible implementations of the following similarity measures from [134] that are provably symmetric and positive semi-definite [135]. All kernels are defined for binary vectors  $\mathbf{x},\mathbf{x}^{\prime}\in \{0,1\}^{d}$  for  $d\geq 1$  , where  $n$  represents the number of common zeros between  $\mathbf{x}$  and  $\mathbf{x}^{\prime}$  and  $||\cdot ||$  is the Euclidean norm.
Braun-Blanquet Kernel
$$
k _ {\mathrm {B r a u n - B l a n q u e t}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {\langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{\max (\| \mathbf {x} \| , \| \mathbf {x} ^ {\prime} \|)}.
$$
Dice Kernel
$$
k _ {\mathrm {D i c e}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {2 \cdot \langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \|}.
$$
Faith Kernel [136]
$$
k _ {\mathrm {F a i t h}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {2 \cdot \langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle + n}{2 d}.
$$
Forbes Kernel [137, 138]
$$
k _ {\mathrm {F o r b e s}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {d \cdot \langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \|}.
$$
Intersection Kernel
$$
k _ {\text {I n t e r s e c t i o n}} \left(\mathbf {x}, \mathbf {x} ^ {\prime}\right) := \sigma_ {f} ^ {2} \cdot \left(\langle \mathbf {x}, \mathbf {x} \rangle + \langle \mathbf {x} ^ {\prime}, \mathbf {x} ^ {\prime} \rangle\right).
$$
MinMax Kernel
$$
k _ {\mathrm {M i n M a x}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \| - \| \mathbf {x} - \mathbf {x} ^ {\prime} \|}{\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \| + \| \mathbf {x} - \mathbf {x} ^ {\prime} \|}.
$$
Otsuka Kernel
$$
k _ {\mathrm {O t s u k a}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {\langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{\sqrt {\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \|}}.
$$
Rand Kernel
$$
k _ {\text {R a n d}} \left(\mathbf {x}, \mathbf {x} ^ {\prime}\right) := \sigma_ {f} ^ {2} \cdot \frac {\left\langle \mathbf {x} , \mathbf {x} ^ {\prime} \right\rangle + n}{d}.
$$
Rogers-Tanimoto Kernel
$$
k _ {\mathrm {R o g e r s - T a n i m o t o}} (\mathbf {x}, \mathbf {x} ^ {\prime}) := \sigma_ {f} ^ {2} \cdot \frac {\langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle + n}{2 \cdot \| \mathbf {x} \| + 2 \cdot \| \mathbf {x} ^ {\prime} \| - 3 \cdot \langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle + n}.
$$
Russell-Rao Kernel
$$
k _ {\text {R u s s e l l - R a o}} \left(\mathbf {x}, \mathbf {x} ^ {\prime}\right) := \sigma_ {f} ^ {2} \cdot \frac {\langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{d}.
$$
Sorgenfrei Kernel
$$
k _ {\text {S o r g e n f r e i}} \left(\mathbf {x}, \mathbf {x} ^ {\prime}\right) := \sigma_ {f} ^ {2} \cdot \frac {\left\langle \mathbf {x} , \mathbf {x} ^ {\prime} \right\rangle^ {2}}{\| \mathbf {x} \| + \| \mathbf {x} ^ {\prime} \|}.
$$
Sokal-Sneth Kernel [139]
$$
k _ {\text {S o k a l - S n e a t h}} \left(\mathbf {x}, \mathbf {x} ^ {\prime}\right) := \sigma_ {f} ^ {2} \cdot \frac {\langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}{2 \cdot \| \mathbf {x} \| + 2 \cdot \| \mathbf {x} ^ {\prime} \| - 3 \cdot \langle \mathbf {x} , \mathbf {x} ^ {\prime} \rangle}.
$$