Beyond Fine-Tuning: Robust Food Entity Linking under Ontology Drift with FoodOntoRAG

Dit paper introduceert FoodOntoRAG, een fijnstemmingsvrij RAG-pipeline dat robuuste food entity linking bereikt door een hybride zoek- en agent-systeem te gebruiken voor few-shot matching met ontologieën, waardoor de kosten worden verlaagd en de weerstand tegen ontologie-drift wordt verbeterd.

Jan Drole, Ana Gjorgjevikj, Barbara Korouši'c Seljak, Tome Eftimov

Gepubliceerd Wed, 11 Ma
📖 4 min leestijd☕ Koffiepauze-leesvoer

Each language version is independently generated for its own context, not a direct translation.

Stel je voor dat je een enorme, chaotische bibliotheek binnenloopt waar elke schrijn vol staat met recepten, ingrediëntenlijsten en menukaarten uit de hele wereld. De ene keer staat er "poedersuiker", de andere keer "icing sugar", en weer een andere keer "suiker, fijn gemalen". Voor een computer is dit een nachtmerrie: het ziet drie verschillende woorden en denkt dat het drie verschillende dingen zijn. Maar voor een voedingsdeskundige zijn het allemaal hetzelfde: suiker.

Deze paper introduceert FoodOntoRAG, een slimme oplossing om al die verschillende namen te vertalen naar één officiële, wetenschappelijke naam (een "identiteitskaart") in een grote database.

Hier is hoe het werkt, vertaald naar alledaagse taal:

Het Probleem: De "Verouderde Kaart"

Vroeger probeerden computers dit probleem op te lossen door ze te "trainen" (zoals een student die maanden studeert voor een examen). Maar dat heeft twee grote nadelen:

  1. Het kost enorm veel tijd en energie (rekenkracht).
  2. Zodra de "boeken" in de bibliotheek veranderen (nieuwe termen, nieuwe regels), is de student verouderd en moet hij opnieuw studeren. Dit noemen ze ontologie-drift (de wereld verandert, maar het model blijft stilstaan).

De Oplossing: De Slimme Bibliotheekassistent

In plaats van een student die alles uit zijn hoofd moet kennen, bouwen de auteurs een slimme bibliotheekassistent (FoodOntoRAG). Deze assistent heeft geen geheugen nodig, maar wel een heel goed systeem om informatie op te halen.

Het proces verloopt in vier stappen, alsof je een detective-team hebt:

1. De Zoeker (De Hybrid Retriever)

Stel, iemand roept: "Ik wil de naam van dat witte poeder dat in cakes zit."
De Zoeker gaat direct naar de bibliotheek. Hij doet twee dingen tegelijk:

  • Woord-schakeling: Hij zoekt naar woorden die lijken op "wit poeder" of "cake".
  • Betekenis-schakeling: Hij kijkt naar de smaak van de zin. Zelfs als het woord niet exact klopt, snapt hij dat het over suiker gaat.
    Hij pakt een handvol mogelijke kandidaten (bijvoorbeeld: "suiker", "glucose", "baking powder") en legt ze op een stapel.

2. De Keuzemaker (De Selector)

Deze agent kijkt naar de stapel kandidaten. Hij heeft een strakke regel: "Kies de meest specifieke naam die exact past."
Als er "suiker" en "witte kristalsuiker" op de lijst staan, kiest hij de specifieke versie. Hij geeft een korte uitleg waarom hij die kiest.

  • Voorbeeld: "Ik kies 'witte kristalsuiker' omdat de tekst specifiek over 'cake' gaat en dat is de meest precieze term."

3. De Controleur (De Scorer)

Dit is het slimme nieuwe onderdeel. De Controleur kijkt naar de keuze van de Keuzemaker en zegt: "Ben je er zeker van?"
Hij geeft een vertrouwensscore (van 0 tot 100%).

  • Als het vertrouwen hoog is (bijv. 90%): "Goed zo, dit is het antwoord."
  • Als het vertrouwen laag is (bijv. 40%): "Wacht even, dit klinkt verdacht. Misschien bedoelen ze iets anders."

4. De Vertaler (De Synonym Generator)

Als de Controleur twijfelt, roept hij de Vertaler in. Deze zegt: "Oké, laten we het anders vragen."
In plaats van "wit poeder", vraagt hij nu: "Zoek naar 'sucrose' of 'kristalsuiker'."
Het team gaat dan opnieuw op zoek met deze nieuwe vraag. Dit is een feedback-lus: als het eerste antwoord niet goed voelt, probeer je het opnieuw met een andere invalshoek, zonder dat je de hele assistent opnieuw hoeft te trainen.

Waarom is dit zo geweldig?

  • Het is niet stijf: Als de bibliotheek morgen een nieuw ingrediënt toevoegt, hoeft de assistent niet opnieuw te studeren. Hij zoekt gewoon in de nieuwe database. Hij is drift-proof.
  • Het is eerlijk: Als de assistent het niet weet, zegt hij dat (hij "stapt af" in plaats van een raar antwoord te verzinnen).
  • Het is transparant: Je kunt altijd zien waarom hij voor een bepaalde naam koos, omdat hij zijn redenering uitspreekt.

De Resultaten in het Kort

De auteurs hebben dit getest op echte recepten en productlabels.

  • Op een standaard testset (CafeteriaFCD) deed het systeem het bijna net zo goed als de beste "geleerde" systemen, maar dan zonder de zware training.
  • Op een lastigere test met echte supermarktproducten (Open Food Facts) won FoodOntoRAG het met grote afstand van de oude, getrainde systemen. Waarom? Omdat de oude systemen verward raakten door nieuwe, onbekende chemische namen, terwijl de nieuwe assistent gewoon in de database ging zoeken en de juiste term vond.

Conclusie

FoodOntoRAG is als het verschil tussen een student die een examen uit zijn hoofd leert (en faalt als de vragen veranderen) en een slimme rechercheur die een actuele database heeft, een team van experts heeft om te overleggen, en nooit moe wordt van het updaten van zijn kennis. Het maakt het mogelijk om voedseldata over de hele wereld te standaardiseren, zodat we allergenen, voedingswaarden en veiligheid makkelijker kunnen controleren.