GLOSS¶
Global–Local–Unexplored Sampling Strategy — a multi-strategy batch recommender for surrogate-based optimization in vast chemical search spaces.
What it does¶
Standard batch Bayesian optimization (BO) picks all \(q\) candidates per round by greedily maximizing a single acquisition function. When the surrogate—fit on scarce data—has locked onto a secondary peak rather than the global optimum, the whole batch is wasted.
GLOSS decomposes each \(q\)-point batch across three complementary streams that share one surrogate:
Exploitation via UCB acquisition \(s \cdot \mu(x) + \kappa \cdot \sigma(x)\).
BallTree refinement around current best \(x^{*}\),
truncated to top-\(K\) candidates (O(K) cost).
Maximizes geometric distance to observed points. Uses no surrogate signal, so it is robust to overfitting.
Headline numbers¶
On QM9-100k (5 seeds, 20-round budget):
Algorithm |
\(t_{95}\) (rounds) |
Reach 95% |
|---|---|---|
GLOSS (4:2:2) |
7.2 |
5/5 |
UCB-BO |
16.6 |
3/5 |
BO(EI) |
18.4 |
2/5 |
→ 2.31× / 2.56× speedup over the two BO variants. See benchmarks.
Quick install¶
pip install gloss-opt
The PyPI name is gloss-opt (the bare gloss was taken), but the
Python import name is gloss:
from gloss import GLOSS