新手調香師 · 79
「官方建議搭配」是一張被截斷的清單——上限 120,而 55.5% 的材料剛好卡在上限
· 4 分鐘
資料庫的搭配建議有 673,662 列,看起來像一份完整的關係圖。它不是。每一支材料的建議分成香調與風味兩種,各自最多 60 筆,合計上限 120——而 7,129 支有建議的材料裡,有 3,957 支(55.5%)剛好停在 120,超過的一支都沒有。這代表對超過一半的材料來說,你看到的是被截斷的前六十名,而資料本身不會告訴你截掉了什麼。這也解釋了另外兩件事:能對回材料編號的 344,065 組有向配對裡,只有 18.9% 是雙向的;以及我先前算配方語料時發現的「69% 的實測常同框配對不在官方清單上」。
閱讀約 4 分鐘。
材料頁上那份「建議搭配」看起來像一份完整的關係圖。全庫有 673,662 列搭配建議,數字大到讓人以為它涵蓋了一切。
它是一張排行榜,而且被截斷了。
上限是 120
7,129 支材料有搭配建議。把每一支的建議數量數出來:
| 建議數 | 材料數 | 占比 |
|---|---|---|
| 恰好 120 | 3,957 | 55.5% |
| 111 | 51 | 0.7% |
| 106 | 48 | 0.7% |
| 98 | 47 | 0.7% |
| 其他 | ⋯ | ⋯ |
超過 120 的:0 支。
再往下拆,建議分成兩種 kind——香調(odor,336,574 列)與風味(flavor,337,088 列)。每一種各自的最大值是 60。
60 + 60 = 120。這是一個硬上限。
**所以有一半以上的材料,你看到的是前六十名,而不是全部。**而被截掉的那些,資料裡沒有留下任何痕跡。
這解釋了 81% 的不對稱
我把建議裡的名稱對回材料編號,能對上的有 344,065 組有向配對(另有 203,516 列的名稱在材料表裡找不到完全相同的條目,那些多半是複方或商品名)。
然後問一個簡單的問題:如果 A 建議搭配 B,B 會不會也建議搭配 A?
| 組數 | 占比 | |
|---|---|---|
| 雙向(A→B 且 B→A) | 65,035 | 18.9% |
| 單向 | 279,030 | 81.1% |
五分之四是單向的。
**而上限解釋了大部分。**一支熱門材料會出現在很多人的前六十名裡,但它自己的清單也只有六十格——裝不下所有把它列進去的人。
**這不是資料錯誤,是排行榜的必然結果。**任何「每個項目取前 N 名」的清單都會產生這種不對稱。
它也解釋了我先前算出來的 69%
我在〈買了三十瓶原料然後卡住〉算過 954 份公開配方裡哪些材料常同框,然後跟官方建議清單對照,發現實測常同框的配對裡有 69% 不在官方清單上——包括橡木苔配廣藿香、佛手柑配薰衣草這種明顯的組合。而同一支材料手上的兩份搭配清單,指向的方向也不一樣。
當時我把它當成「兩種資料來源看到不同的東西」。
現在有一個更簡單的解釋:清單只有六十格。
橡木苔配廣藿香沒有上榜,不代表資料庫認為那個組合不好,而可能只是它排在第六十一名之後。
我當時的結論方向沒錯(不要把官方清單當成完整的可行組合表),但我沒有找到原因。現在找到了。
實際可以怎麼做
- **不在清單上不代表不搭。**對 55.5% 的材料來說,清單本來就裝不下。
- **在清單上是有意義的訊號。**能擠進前六十名的組合,至少是被明確推薦過的。
- **兩支材料互相列入對方的清單,那是比較強的訊號。**只有 18.9% 的配對做得到。
- **不要用清單長度判斷一支材料好不好搭。**多數材料的長度就是上限值。
- **想找沒被列出的組合,去看配方語料而不是建議清單。**兩者的偏誤不一樣。
這篇沒有建立的
- **我不知道那六十名是怎麼排序的。**資料裡沒有分數或排名欄位,所以「前六十名」是我從上限推的,我無法驗證排序依據。
- 203,516 列對不回材料編號,那些被排除在對稱性計算之外。它們如果能對回去,比例會變。
- **對稱性的計算用的是名稱完全相同的比對。**同一支材料若在兩處用不同寫法就會被算成對不上。
- **「上限解釋了大部分不對稱」是推論。**要驗證需要知道排序依據與截斷前的完整清單,而那兩樣我都沒有。
- 69% 那個數字來自 954 份配方語料,那份語料本身有它的偏誤(公開分享的配方不是所有配方)。
- **我沒有評估任何一個搭配建議的品質。**這篇講的是清單的形狀,不是內容。