Each language version is independently generated for its own context, not a direct translation.
Stel je voor dat Uber Eats een gigantische bibliotheek is, maar dan niet met boeken, maar met miljoenen restaurants, gerechten en boodschappen. Vroeger was het zoeken in deze bibliotheek een beetje chaotisch. Als je zocht op "pizza", keek de computer alleen naar de letters in de naam. Als je zocht op "pan" in het Spaans, dacht hij misschien aan een bakpan in plaats van brood. Er waren aparte zoekmachines voor restaurants, aparte voor boodschappen en aparte voor gerechten. Het was als een bibliotheek met drie verschillende bibliothecarissen die elkaar niet spraken.
Deze paper beschrijft hoe Uber Eats dit heeft opgelost met een slimme, nieuwe zoekmachine die alles begrijpt, in alle talen, voor alles.
Hier is hoe ze dat hebben gedaan, vertaald in simpele termen:
1. De "Twee-Toren" Architectuur: De Vraag en het Antwoord
Stel je twee torens voor.
- Toren A (De Vraag): Deze torens luistert naar wat jij typt.
- Toren B (Het Antwoord): Deze torens kent alle restaurants en gerechten uit het hoofd.
Vroeger moesten deze torens samenwerken alsof ze in dezelfde kamer zaten (wat heel traag is). Nu werken ze los van elkaar. Toren B heeft al een "geheugenkaart" (een embedding) gemaakt van elk restaurant en elk gerecht, lang voordat je überhaupt zoekt. Als jij zoekt, maakt Toren A een kaartje van jouw vraag en kijkt: "Welke geheugenkaart van Toren B lijkt het meest op het mijne?"
Dit is als het vergelijken van een silhouet van een persoon met een fotoalbum. Je hoeft niet de hele foto te bekijken, je kijkt alleen naar de vorm. Dat gaat supersnel.
2. De "Matroesjka"-Pop: Eén Pop, Verschillende Maten
Een van de coolste dingen die ze hebben bedacht, heet Matroesjka Representation Learning (MRL).
Stel je voor dat je een Russische pop (Matroesjka) hebt.
- De hele pop (1536 dimensies) is heel gedetailleerd en precies, maar hij is groot en zwaar om mee te nemen.
- Als je de buitenste laag eraf haalt, heb je nog steeds een pop, maar dan kleiner (256 dimensies). Hij is minder gedetailleerd, maar wel veel lichter en sneller.
Uber Eats gebruikt dit slimme trucje. Voor een snelle zoekopdracht op een trage telefoon gebruiken ze de "kleine pop" (sneller, goedkoop). Voor een complexe zoekopdracht waar ze alles perfect willen vinden, gebruiken ze de "grote pop". Het mooie is: het is één en dezelfde pop. Ze hoeven niet tien verschillende modellen te onderhouden. Ze kunnen gewoon kiezen hoe groot ze de pop willen maken op het moment dat jij zoekt.
3. De "Leraar" en de "Leerling": Hoe ze het hebben getraind
Deze slimme computer is niet zomaar geboren; hij is getraind met een speciale methode:
- Fase 1: De Grote Oefening (InfoNCE): De computer kreeg miljoenen voorbeelden van wat mensen hebben geklikt. "Als iemand 'sushi' typt en op 'Sushiya' klikt, dan horen die bij elkaar." Hij leerde dit door duizenden voorbeelden tegelijk te vergelijken.
- Fase 2: De Moeilijke Proef (Triplet Loss): Soms is het lastig. "Burger" kan een hamburger zijn, maar ook een burger in een dorp. De computer maakte fouten. Daarom gebruikten ze een AI-leraar (een ander groot taalmodel) om de moeilijkste voorbeelden te vinden en de computer te corrigeren. "Nee, hier bedoel je het dorp, niet het eten." Hierdoor werd de computer veel slimmer in het maken van de juiste keuzes.
4. De "Vertaler" en de "Verteller" (Meertaligheid)
Omdat Uber Eats in veel landen werkt, moesten ze zorgen dat de computer niet alleen Engels begrijpt. Ze hebben de computer gevoed met data in het Spaans, Frans, Japans, etc.
Ze hebben de input in een JSON-formaat gestopt (een soort gestructureerd lijstje). In plaats van gewoon tekst te plakken, zeggen ze tegen de computer: "Dit is de naam, dit is het type keuken, dit is de locatie."
Dit helpt de computer om te begrijpen dat "pan" in het Spaans (brood) iets anders is dan "pan" in het Engels (bakpan), zelfs als het woord hetzelfde is. Het is alsof je de computer een labeltje geeft op elk voorwerp in de bibliotheek.
5. Het Resultaat: Sneller, Slimmer en Goedkoper
Wat leverde dit op?
- Meer resultaten: De zoekmachine vindt veel meer dingen die je echt wilt hebben (bijvoorbeeld 88% meer resultaten voor restaurants).
- Minder lege zoekopdrachten: Minder mensen die zeggen "Geen resultaten gevonden".
- Kostenbesparing: Door de "kleine poppen" (de gecomprimeerde versies) te gebruiken, besparen ze enorm veel op opslag en rekenkracht, zonder dat de kwaliteit veel achteruitgaat.
- Sneller: Het zoeken gaat zo snel dat je het niet merkt, zelfs niet als je in een ander land zit.
Kortom:
Uber Eats heeft een slimme, meertalige zoekrobot gebouwd die niet alleen letters matcht, maar de bedoeling van de gebruiker begrijpt. Ze gebruiken één slimme "pop" die in elke maat kan worden geknipt, zodat het snel en goedkoop blijft, en ze hebben de robot getraind met de hulp van een andere AI om de moeilijkste vragen te beantwoorden. Het resultaat is dat jij sneller dat lekkere eten of die boodschappen vindt waar je naar op zoek bent.