|
1 | 1 | # Aroma-head audit — where more data buys more heads |
2 | 2 |
|
3 | | -> **Update — supplement applied.** `build_aroma_supplement.py` added a curated **public-domain** |
4 | | -> character-impact set (`aroma_supplement.csv`, resolved via PubChem) for the sparse descriptors |
5 | | -> below. Result: **24 → 41 heads** — **17 new**: `coconut` (0.89), `nutty` (0.94), `caramel` (0.91), |
6 | | -> `winey` (0.90), `onion` (0.87), `honey` (0.80), `herbal` (0.80), `vanilla` (0.93), `buttery` (0.87), |
7 | | -> `balsamic` (0.93), `smoky` (0.99), `cinnamon` (1.00), `spicy` (0.71), `banana` (0.95), |
8 | | -> `fresh` (0.73), `musky` (1.00), `vegetable` (0.85) — and `grassy` kept above the |
9 | | -> bar (0.80) with its classic green-leaf volatiles. `coconut` is now *predictable* (γ-nonalactone → |
10 | | -> coconut 1.0), which closes its earlier data-gate. `spicy`/`fresh` are borderline (0.71–0.73). |
| 3 | +> **Update — supplement applied, then made food-only.** `build_aroma_supplement.py` adds a curated |
| 4 | +> **public-domain** character-impact set (`aroma_supplement.csv`, resolved via PubChem) for the sparse |
| 5 | +> descriptors below. Result: **24 → 42 heads.** New heads include `coconut`, `nutty`, `caramel`, |
| 6 | +> `winey`, `onion`, `honey`, `herbal`, `vanilla`, `buttery`, `balsamic`, `smoky`, `cinnamon` (1.00), |
| 7 | +> `spicy` (0.78), `banana`, `musky` (1.00), `vegetable`, and — added in the food-safety pass — |
| 8 | +> `anise` (0.80) and `meaty` (0.89). `coconut` is now *predictable* (γ-nonalactone → coconut 1.0). |
11 | 9 | > **Only `sweet`-odor (0.637) remains unlearnable** even with 185 examples — a genuine representation |
12 | | -> limit (revisit with a GNN). |
| 10 | +> limit (revisit with a GNN). `fresh` was evaluated but **dropped** (0.639, high-variance/borderline). |
13 | 11 | > |
14 | | -> **Small-n caveat (honest):** the *highest*-AUROC new heads are small, structurally-homogeneous |
15 | | -> classes — e.g. `cinnamon` and `musky` reach CV-AUROC **~1.00** only because their ~10 positives |
16 | | -> are one scaffold (cinnamaldehyde family; macrocyclic musks) the fingerprint separates trivially. |
17 | | -> That is memorising a scaffold, |
18 | | -> not a superb general model: these heads are **narrow and high-variance** (like `grassy`/`coffee`) |
19 | | -> and will sharpen — or get honestly re-scored — with more diverse examples. Treat AUROC on n≈10 |
20 | | -> heads as indicative, not gospel. The numbers |
21 | | -> below describe the **pre-supplement** baseline + the standing plan. |
| 12 | +> **Food-only + open-government provenance (this is a flavor app).** Non-food odorants were **removed |
| 13 | +> from the corpus**, not merely flagged: `isovanillin` and `habanolide` (no food clearance), |
| 14 | +> `methyleugenol` (delisted from 21 CFR 172.515 in 2018), and `estragole`/`methyl chavicol` (prohibited |
| 15 | +> as an added flavouring in the EU, Reg. 1334/2008 Annex III). Heads that leaned on them (`musky`, |
| 16 | +> `vanilla`, `spicy`) were **re-based on food-authorised molecules** and retrained above the bar. Every |
| 17 | +> food-clearance is cited to an **open-government register** — the EU/GB Union List (`data.food.gov.uk`, |
| 18 | +> OGL v3) or US 21 CFR / FDA SAF (public domain) — in `food_safe_supplement.csv`; **no commercial |
| 19 | +> compilation** (Good Scents / Leffingwell / FEMA library) is a source, only a finding-aid for the |
| 20 | +> public FL number. |
| 21 | +> |
| 22 | +> **Small-n caveat (honest):** the *highest*-AUROC heads are small, structurally-homogeneous classes — |
| 23 | +> e.g. `cinnamon` and `musky` reach CV-AUROC **~1.00** only because their ~10–12 positives are one |
| 24 | +> scaffold family (cinnamaldehyde esters; macrocyclic musk lactones/ketones) the fingerprint separates |
| 25 | +> trivially. That is memorising a scaffold, not a superb general model: these heads are **narrow and |
| 26 | +> high-variance** and will sharpen — or get honestly re-scored — with more diverse examples. Treat |
| 27 | +> AUROC on n≈10 heads as indicative, not gospel. The numbers below describe the **pre-supplement** |
| 28 | +> baseline + the standing plan. |
22 | 29 |
|
23 | 30 |
|
24 | 31 | An honest look at the aroma model: which odor descriptors we can predict from structure today, |
|
0 commit comments