- Epicure es un modelo que aprendió embeddings de 300 dimensiones para 1,790 ingredientes estandarizados usando 4.14 millones de recetas y datos de compuestos de FlavorDB
- Fue diseñado para reducir los problemas del corpus centrado en inglés de FlavorGraph, la mezcla fija entre química y recetas, y el vocabulario disperso de ingredientes
- Cooc, Chem y Core comparan el peso relativo de la coocurrencia en recetas y la señal química cambiando solo el esquema de random walk dentro de la misma estructura
- Los tres embeddings recuperan linealmente 27 direcciones sensoriales y nutricionales y 8 macrorregiones culinarias, y obtienen 20 factores de forma no supervisada
- Es posible explorar ingredientes con vecinos más cercanos y aritmética direccional con SLERP, como rotar
ricehacia una dirección South-Asian, pero el código y los artefactos generados no están publicados
Objetivo de Epicure
- Los embeddings de ingredientes sirven como base para encontrar compatibilidades entre ingredientes, ingredientes similares por región cultural y su posición en ejes sensoriales y nutricionales
- Conocimientos como que el doenjang combina bien con mirin, dashi y aceite de sésamo, o que el aceite de oliva combina con albahaca, tomate y prosciutto, se han acumulado en corpus de recetas de múltiples culturas y en la intuición de los chefs
- Pueden usarse en herramientas de apoyo para menús y recetas, recomendaciones basadas en ingredientes disponibles, exploración para pasar de ingredientes mediterráneos a equivalentes de Asia oriental, y búsqueda por ejes como sensación grasa, fermentación, amargor o alto contenido proteico
- La investigación previa ha avanzado desde redes de sabor basadas en química hasta enfoques basados en recetas y grafos de conocimiento
- Ahn et al. [2011] introdujeron la red de sabor y mostraron diferencias entre culturas en los compuestos compartidos
- FlavorDB de Garg et al. [2017] catalogó moléculas aromáticas de 936 entidades alimentarias, y FooDB amplió el alcance químico a 70,000 compuestos
- FlavorGraph [Park et al., 2021] combinó FlavorDB y Recipe1M+ para crear un grafo heterogéneo de 6,653 ingredientes y 1,645 compuestos, y es un embedding público de alimentos entrenado con Metapath2Vec
- FoodKG [Haussmann et al., 2019] integró recetas, nutrición y datos ontológicos en un grafo de conocimiento RDF con fines de recomendación
Limitaciones de FlavorGraph y diseño de Epicure
- En análisis previos, en el embedding de 300 dimensiones de FlavorGraph se identificaron más de 15 dimensiones culinarias interpretables que incluyen sabor, textura, nutrición, geografía, cultura y procesamiento, y se observó que la integración de vocabulario reforzada con LLM fortalecía la mayoría de las señales
- El preentrenamiento fijo de FlavorGraph tenía tres restricciones
- Dependía de un solo corpus centrado en inglés
- Las señales químicas y las de contexto de recetas estaban fusionadas con un único sesgo inductivo fijo, difícil de ajustar como eje de diseño
- El vocabulario de ingredientes seguía teniendo una estructura dispersa, mezclando detalles de preparación y elementos no alimentarios
- Para reducir esas restricciones, Epicure se compone de tres embeddings hermanos de ingredientes tipo skip-gram entrenados desde cero
- Reunió 4.14 millones de recetas de 11 fuentes
- El alcance lingüístico incluye inglés, chino, ruso, vietnamita, español, turco, indonesio, alemán e Indian-English
- Las cadenas crudas de ingredientes se normalizaron a 1,790 entradas estandarizadas mediante un pipeline reforzado con LLM
- Los tres modelos comparten arquitectura e hiperparámetros, y solo cambia el esquema de random walk que ve la función objetivo skip-gram
Datos y los tres embeddings
- Epicure parte de dos tipos de grafos
- El grafo NPMI ingrediente-ingrediente está compuesto por 203,508 aristas
- El grafo ingrediente-compuesto de FlavorDB está compuesto por 80,019 aristas e incluye 2,247 nodos de compuestos tipados en 15 categorías
- Las tres variantes de Metapath2Vec ocupan posiciones distintas en el espectro entre química y contexto de recetas
-
Cooc
- Es un modelo que recorre solo el grafo de coocurrencia de recetas
- Se enfoca en la señal contextual de ingredientes que aparecen juntos en recetas reales
-
Chem
- Es un modelo que recorre solo metapaths de compuestos tipados
- Se enfoca en la señal química proveniente de las relaciones entre ingredientes y compuestos
-
Core
- Usa tanto rutas basadas en compuestos como rutas ingrediente-ingrediente
- Inyecta walks ingrediente-ingrediente con una proporción de mezcla controlada para combinar señal química y señal contextual de recetas
- Esta configuración expone la proporción química vs. contexto de recetas como eje de diseño dentro de los mismos datos de entrada y la misma estructura de entrenamiento
- Las diferencias entre los tres modelos hermanos están diseñadas para originarse solo en el esquema de random walk
- Esto permite comparar diferencias en las propiedades del embedding como efecto del esquema de walk y no de los datos de entrada
-
Significado culinario recuperado en el espacio de embeddings
- Los tres modelos de Epicure recuperan linealmente en probes supervisados 27 direcciones continuas sensoriales y nutricionales y 8 macrorregiones culinarias
- El promedio de Cohen’s d para separabilidad entre cocinas es 2.43/2.70/3.07 para Cooc/Core/Chem, respectivamente
- El alcance de los probes incluye cuisine, food-group, grado de procesamiento NOVA, macronutrientes USDA y 19 categorías sensoriales
- El análisis no supervisado recupera 20 factores interpretables en cada modelo
- Se aplica FastICA estable con múltiples seeds sobre embeddings residualizados por food-group
- Al dividir con GMM los elementos del cuartil superior de cada factor, se obtienen entre 150 y 200 modos culinarios con nombre por modelo
- La consistencia promedio de los modos GMM fue superior a la línea base de pares aleatorios
- La consistencia promedio de Cooc/Core/Chem es 0.611/0.833/0.703
- La línea base correspondiente de pares aleatorios es 0.097/0.348/0.115
- También se usaron perspectivas de investigaciones previas sobre embeddings para validación
- La visión de direccionalidad lineal de word2vec de Mikolov et al. [2013] sirve de base para los 27 probes culinarios supervisados, los 20 factores FastICA y las operaciones de rotación SLERP
- Siguiendo la perspectiva de isotropía de Mu et al. [2017], se miden directamente la participation ratio y el promedio de coseno por pares para evaluar la isotropía del embedding
- Los tres modelos hermanos ocupan posiciones claramente distintas en el espectro de isotropía, y eso se trata como propiedad del esquema de walk y no de los datos de entrada
- WEAT de Caliskan et al. [2017] se usa como validación auxiliar para diagnosticar si los ejes semánticos con nombre se reflejan en la estructura geométrica
Operaciones de exploración y posibilidades de uso
- Epicure ofrece dos familias complementarias de operaciones dentro del mismo espacio de embeddings de 300 dimensiones
-
Emparejamiento basado en vecinos más cercanos
- La búsqueda de vecinos top-K encuentra elementos cercanos alrededor de un ingrediente
- La consulta de pertenencia a modos permite explorar elementos dentro de un modo culinario específico
-
Aritmética direccional con SLERP
- Rota un ingrediente semilla hacia un pole vector supervisado o hacia un polo de factor-modo emergente
- El ángulo continuo θ interpola entre una búsqueda dominada por la semilla y una búsqueda dominada por el objetivo
- Por ejemplo, agregar a
riceuna dirección South-Asian lo desplaza hacia curry leaf, urad dal, chana dal y fenugreek seed - Tanto las direcciones semánticas supervisadas como los modos emergentes no supervisados pueden usarse para explorar ingredientes
- Una herramienta para chefs puede explorar ingredientes rotándolos, mezclándolos y buscándolos a lo largo de direcciones coherentes en términos sensoriales, nutricionales y culturales
- Las relaciones basadas en química y las relaciones basadas en contexto de recetas pueden ajustarse mediante la elección del modelo y el esquema de walk
- El código y los artefactos entrenados no están publicados actualmente
-
1 comentarios
Comentarios de Hacker News
La investigación en sí es interesante, pero el título lleva a confusión
Un mejor título sería algo como “comprimir los ingredientes que usa la humanidad en 1,800 elementos primitivos”
Casi no hay información sobre las recetas reales, es decir, métodos de preparación o proporciones, pero saber cosas como que el tomate combina bien con la carne de res en todo el mundo puede ser un recurso bastante útil e interesante para crear combinaciones de sabores
No incluye todas las combinaciones posibles de 1,800 ingredientes, pero cubre bastante bien hierbas, especias, vegetales y carnes de uso común. Incluso si se comprimiera este libro, el tamaño del texto probablemente no sería tan grande
El problema de las recetas creadas por LLM es que pasan por alto la sutileza de las técnicas de cocina. Muchas veces el éxito depende de un solo paso o de una sola proporción; por ejemplo, hay innumerables variantes de “pollo frito” en todo el mundo, pero promediar las recetas no produce un pollo frito rico
Las 11 fuentes de datos cubren varias cocinas comunes, pero las fuentes en inglés y chino representan el 90% del dataset. África y el mundo árabe tampoco están en los datos, y solo esos dos ya representan alrededor del 25% de la población mundial
También entiendo metodológicamente que hayan traducido todos los términos no ingleses al inglés con IA, pero claramente eso deja margen para errores
La carne de res puede ponerse dura si se cuece mal, pero la acidez del tomate la vuelve a ablandar
Interesante
Estoy intentando comprimir recetas en diagramas pequeños: https://leontrolski.github.io/recipes.html
Siempre imaginé algo así, y siempre me molestó que las recetas pusieran los ingredientes en una enorme lista sin divisiones y luego dijeran “mezcla los ingredientes secos en un recipiente hondo”
Durante un tiempo pensé que si alguien implementaba bien algo así podría ser rentable, pero ahora parece que en cuanto salga una interfaz potente, será fácil copiarla
La tabla me recuerda a las recetas de Modernist Cuisine. Ahí agrupan los ingredientes por procedimiento y anotan junto con ellos el peso, y a veces también el volumen y las proporciones
Ejemplo: https://modernistcuisine.com/wp-content/uploads/2013/01/Mac-...
Como referencia, todo https://publicdomainrecipes.com está disponible como un solo archivo de 22MiB en https://browse.library.kiwix.org: https://browse.library.kiwix.org/viewer#publicdomainrecipes....
Se pueden agregar recetas en https://github.com/ronaldl29/public-domain-recipes
Si son “11 fuentes en 7 idiomas: inglés, chino, ruso, vietnamita, español, turco, indonesio, alemán, inglés de la India, etc.”, es difícil llamarlo la cocina de toda la humanidad
Aun así, faltan cocinas italiana, japonesa, griega y mexicana, que son muy populares a nivel mundial, y tampoco hay nada de África ni de Medio Oriente, así que está incompleto
El artículo lo reconoce rápidamente, pero desde luego no es un dataset equilibrado
En [1] se puede ver una demo que parece una iteración anterior de lo que describe este artículo
Me dio curiosidad qué ingredientes había elegido la demo, así que probé varios ingredientes poco comunes que aparecen en Organum: Nature, Texture, Intensity, Purity de Peter Gilmore [2]. Es conocido por el restaurante Quay de Sídney, Australia
Conoce ingredientes bastante aventurados como bayas de enebro, macadamia, semillas de nigela, agua de azahar y cedrón, e incluso distingue entre aceite de sésamo y aceite de sésamo tostado. Aunque en la lista de ingredientes solo aparecen “arroz”, “arroz negro”, “arroz integral” y “arroz glutinoso”, si eliges “arroz” es lo bastante inteligente como para decirte que en un arroz frito uses arroz jazmín cocido y enfriado, y que para un pilaf remojes y enjuagues arroz basmati
Si eliges “cordero” junto con verduras que suelen usarse para estofar, te recomienda cortes como paleta o jarrete
No conoce aceite de semilla de uva, orzo, mangostán ni lemon myrtle, y por supuesto tampoco ingredientes como
karkalla, que probablemente solo usaría alguien del nivel de Peter Gilmore y que la mayoría de los chefs ni siquiera habría oído nombrar. Pero como esos ingredientes son muy regionales o especializados, no me parece una limitación tan grandeSabe “semillas de calabaza”, pero no “pumpkin”, y lo trata como “squash”, así que hace falta más localización para mejorar su manejo del inglés británico y estadounidense. Esperaba que pudiera hacer una ensalada combinando “cordero” y “aguacate”, pero falló; luego vi que en la lista de ingredientes no había lechuga ni rúcula, solo la expresión estadounidense “salad greens”. Probé también con otros ingredientes de ensalada, con pollo e incluso sin proteína, pero no hacía ensaladas: seguía generando falsos platillos sofisticados con gel de tomate (agar) y puré de aguacate alrededor de un bloque de proteína
[1] https://epicure.kaikaku.ai/
[2] https://en.wikipedia.org/wiki/Peter_Gilmore_(chef)
Desde la perspectiva de un estadounidense, hay muchos tipos de squash de uso común, y pumpkin es solo uno de ellos. Los que se me vienen a la mente son acorn, butternut y spaghetti; si nos ponemos estrictos, también entra zucchini
Lo vi en X/Twitter, pero me cuesta creer que se pueda comprimir 2 megabytes de toda la cocina humana, con todas las técnicas, ingredientes y formas de cocinar según cada contexto cultural
Es parecido a cuando pruebas un “modelo de 1 GB capaz de hacer tool calling y programar” y resulta que casi no funciona. Técnicamente sí es un modelo de programación de 1 GB, pero eso no significa que sea un buen modelo
Cuesta confiar en un modelo/corpus de comida que incluye inglés y alemán, pero excluye italiano y francés
Puede que falten recetas escritas en francés de verdad, pero seguro que sí hay recetas de sopa de cebolla francesa escritas en inglés
Dice que “[Claude] realizó toda la clasificación de ingredientes con decodificación determinista (temperature 0–0.1)”, y aunque en este contexto no es un gran problema, temperature baja no equivale a determinismo
Dejando de lado el clickbait, es un concepto bastante interesante. Me pregunto si con este tipo de embeddings podría llegar un momento word2vec para ingredientes o perfiles de sabor
Como otros ya señalaron correctamente, se podría rehacer con fuentes de datos más representativas, y tengo curiosidad por ver qué tan bien funciona este enfoque
Le di esos datos e información a Claude Code para implementarlo, y se ve bastante bien
Puede que sirva mejor para recomendar ingredientes sustitutos que para generar recetas: https://viz.roshangeorge.dev/recipe-model/