新手調香師 · 95
我想用官方搭配建議算出最佳入門套組,結果算出來的 16 支全部是同一個香型
· 6 分鐘
資料庫有 673,662 筆搭配建議。取氣味那一半、只留雙方供應商都 10 家以上的,得到 2,271 支材料之間的 51,138 條無向連結。我想問一個建設性的問題:買哪幾支,彼此之間能組出最多官方推薦的配對?跑貪婪法找出來的第一個完全連通集團有 9 支,其中 5 支是 balsamic。而用隨機貪婪跑四千次找到的最大集團有 16 支——全部是 caramellic。麥芽酚、乙基麥芽酚、草莓呋喃酮、環戊烯酮⋯⋯十六支材料兩兩互相推薦,而它們是同一件事的十六種寫法。整體來看同型相連只佔 17.7%(隨機期望 5.8%,富集 3.1 倍),所以這個欄位並不是同溫層——但它最密的地方是。
閱讀約 5 分鐘。
前面幾篇一直在拆欄位。這篇想做一件建設性的事:用官方的搭配建議,算出一組彼此搭配最多的入門套組。
先把網路建起來
資料庫有 673,662 筆搭配建議,分成氣味與風味兩半。取氣味那一半(336,574 筆),只保留雙方供應商都 10 家以上、而且名稱能對回原料紀錄的配對,去掉方向與重複之後:
2,271 支材料,51,138 條無向連結。
連結度最高的幾支:肉桂酸乙酯(671)、桂醇(593)、阿米香樹木油(584)、暹羅安息香樹脂(558)、水楊酸苄酯(529)、月桂醛 C-12(508)。
**這就是「樞紐清單」。**而我原本以為答案就是它——買連結度最高的那幾支就好。
不是。
樞紐榜不是好套組
因為樞紐彼此重疊。兩支各自連 600 條的材料,如果它們連的是同一批東西,湊在一起並不會給你更多套組內部的組合。
真正該問的是:買 N 支,這 N 支「彼此之間」有幾對是官方推薦的?
我跑了貪婪法——每次加入能讓套組內部連結增加最多的一支:
| 支數 | 內部搭配數 |
|---|---|
| 4 | 6 |
| 8 | 28 |
| 12 | 63 |
| 16 | 108 |
**而直接買連結度前 16 名,內部只有 84 條。**貪婪多出 24 條,1.3 倍。
「買最有名的那幾支」確實不是最佳解。
但前九支洩漏了一件事
看那個成長曲線:0、1、3、6、10、15、21、28、36。
那正好是三角形數。意思是每加一支,它都跟已經在套組裡的每一支相連——前九支構成一個完全圖,36 對全部互相推薦。我驗證過,一對都沒漏。
那九支是:
| 供應商 | 材料 | 香調型 |
|---|---|---|
| 70 | 肉桂酸乙酯 | balsamic |
| 79 | 桂醇 | balsamic |
| 51 | 阿米香樹木油 | balsamic |
| 69 | 暹羅安息香樹脂 | balsamic |
| 53 | 月桂醛(C-12) | aldehydic |
| 19 | 冷杉香脂原精 | balsamic |
| 54 | 覆盆子酮甲醚 | berry |
| 38 | 花香吡喃醇 | floral |
| 78 | 甜茴香籽油 | anise |
九支裡五支是 balsamic。
而最大的集團更極端
我用隨機貪婪跑了四千次找更大的完全圖。找到的最大一組有 16 支:
麥芽酚(107 家)、草莓呋喃酮(101)、乙基麥芽酚(75)、環戊烯酮(72)、楓糖呋喃酮(67)、醬油呋喃酮(46)、乙酸草莓呋喃酮酯(41)、乙基環戊烯酮(40)、焦糖呋喃酮溶液(37)、永久花原精(34)、葫蘆巴原精(34)、環戊烯酮水合物(27)、焦糖戊二酮(26)、太妃呋喃酮(25)、乙基呋喃酮(23)、丙酸麥芽酯(15)。
十六支,全部是 caramellic。
**這不是一個配方套組,這是一個香型在自我推薦。**十六支材料兩兩互相推薦,而它們大體上是同一件事的十六種寫法——你買齊了也只會得到一種味道。
(連兩支天然物——永久花原精與葫蘆巴原精——都被歸在 caramellic 而落進同一個集團。)
所以整個欄位都是同溫層嗎
**不是。**我把每一條邊的兩端香調型比對:
| 雙方都有香調型的邊 | 46,830 |
| 同型相連 | 8,302 = 17.7% |
| 把香調型隨機洗牌後的期望值 | 5.8% |
| 富集 | 3.1 倍 |
同型偏好是真的(3.1 倍),但八成二的連結仍然是跨香型的。
而各香型的自我推薦傾向差很多:
| 同型比例 | 香調型 | 邊數 |
|---|---|---|
| 39.8% | citrus | 8,032 |
| 30.7% | sulfurous | 1,936 |
| 27.2% | floral | 20,003 |
| 24.1% | fruity | 7,806 |
| 22.4% | caramellic | 2,707 |
| 15.0% | balsamic | 9,469 |
| 13.6% | nutty | 854 |
| 0.0% | powdery | 206 |
**柑橘最愛推薦柑橘(39.8%)。**而 powdery 的 206 條邊裡,沒有任何一條連著另一支 powdery ——粉感是一種收尾的質地,不是一個可以堆疊的家族。
所以這個欄位該怎麼用
- **不要用「連結最多」挑材料。**樞紐彼此重疊,而且最密的地方是同溫層。
- **不要用完全連通的集團當套組。**那個結構本身就偏向單一香型。
- **真正有用的是跨香型的那 82.3%。**當一支柑橘被推薦搭配一支 balsamic,那條連結帶的資訊比兩支柑橘之間的多。
- **挑套組的時候先固定香型的多樣性,再在裡面看連結。**我這篇的貪婪法沒有加這個約束,所以它掉進了 caramellic 的坑——那是我的方法的問題,不是資料的問題。
**我本來想算出一個入門套組,結果算出來的是這個欄位的形狀。**那個形狀本身有用,只是跟我原本要的不一樣。
這篇沒有建立的
- 我只用了
kind='odor'那一半,風味那一半沒有跑。 - 名稱要能對回原料紀錄才算數,而我量過那個對不上的比例很高——所以 51,138 條是下限,而且漏掉的可能有系統性偏誤。
- **供應商 ≥10 家是我設的門檻。**放寬會讓網路變大,結論可能改變。
- 貪婪法不保證最佳解,隨機貪婪找到的 16 支集團也不保證是全庫最大的。
- 「同型 17.7%」的隨機基準是洗牌香調型標籤,那假設連結度分布與香調型無關,而那個假設不一定成立。
- **我沒有聞過任何一組。**這整篇是網路結構,不是感官驗證——十六支 caramellic 互相推薦,在調味料的脈絡下可能完全合理(它們確實常常一起用),我批評的是拿它當香水入門套組。
- 官方搭配建議每種最多 60 筆,這個上限我另外寫過,它會壓低高連結度材料的真實連結數。