De machine leert achter Farecast

De zwarte doos met vluchtprijzen voorspellen

Een aantal jaar geleden kwam ik dit onderzoeksrapport tegen: 'Kopen of niet kopen: mijnluchtingsgegevens om de aankoopprijs van een ticket te minimaliseren', toen ik bij UCL werkte aan een project dat onderzocht hoe mensen beter door steden konden navigeren met behulp van gegevens. Ik had net een grote dataset van Oyster-kaarttransacties ontvangen van Transport for London. Dit artikel, waarin wordt aanbevolen om een ​​vliegticket te kopen, heeft ons geïnspireerd om een ​​soortgelijk concept toe te passen om mensen te helpen beslissen welke reiskaart ze kopen, met een aanbevelingssysteem dat zou leren van hun reispatronen. Dat onderzoek resulteerde in dit artikel "Mijnbouwmobiliteitsgegevens om de uitgaven van reizigers aan openbaar vervoer te minimaliseren" en dit BBC-nieuwsverhaal.

Ik heb het document met vliegtickets voor de Skyscanner-leesgroep opnieuw opgedoken - we zijn bijeengekomen om onderzoekspapers te bespreken die soortgelijke problemen aanpakken als die waarmee we in Skyscanner worden geconfronteerd. Net als het vorige bericht, is hier een kort, niet-technisch overzicht van wat we hebben besproken.

Een product maken uit prijsvoorspelling

Vluchtprijzen zijn notoir onderhevig aan verandering: ik weet zeker dat de meesten van ons naar een vlucht hebben gekeken, er een tijdje over hebben nagedacht en er vervolgens alleen op terug zijn gekomen om te ontdekken dat de prijs omhoog was geschoten (of, als we ' heb geluk, naar beneden).

Zoals de auteurs van dit artikel uitleggen, lijkt een deel van het voorspellen van een vluchtprijs te gaan over het decoderen van de verborgen beslissingsmotor die luchtvaartmaatschappijen gebruiken om hun eigen prijzen te bepalen: misschien is de prijs van een huidige route gebaseerd op beschikbare stoelen, op aanvraag, op de prijzen van de concurrent, op de tijd van het jaar, of een veelvoud van andere factoren. Gezien het feit dat er zoveel verschillende redenen zijn waarom vluchtprijzen kunnen veranderen (en we niet noodzakelijkerwijs toegang hebben tot alle gegevens die providers gebruiken om prijzen vast te stellen), zouden we ooit redelijkerwijs middelen kunnen ontwikkelen om vluchtprijzen te voorspellen?

In dit scenario kan machine learning te hulp komen. Met de enige veronderstelling dat er enige gelijkenis zal zijn tussen historische en toekomstige routeprijzen, creëren de auteurs een model dat alleen is gebaseerd op gegevens die direct beschikbaar zijn voor hen op het web: de route (bijv. Seattle-Washington), de dagen tot de vertrek (bijv. 10) en de historische prijzen. Dit model probeert de vraag te beantwoorden: gezien een route, een vertrekdatum en de huidige prijs, moet ik het kaartje kopen of moet ik wachten?

De auteurs werpen een aantal bekende methoden voor machinaal leren op het probleem, zoals leren van versterkingen en voorspelling van tijdreeksen, en een gecombineerd model dat (niet verrassend) het meest nauwkeurig blijkt te zijn. Het artikel houdt echter op een aantal fronten in: het geeft ons alleen resultaten voor een klein aantal met de hand geselecteerde routes, houd rekening met maximaal 21 dagen voor een vertrekdatum (wat betekent dat 75% van hun gebruikers niet om goedkopere opties te realiseren), en houdt geen rekening met langetermijneffecten zoals seizoensinvloeden (om eerlijk te zijn was het vóór het big data-tijdperk, vandaar dat schaalbaarheid een probleem voor hen was).

Toch zijn er een aantal belangrijke take-aways in deze paper:

  1. Voorspellingsnauwkeurigheid
  2. Voorspellen is niet hetzelfde als informeren. De recente aankondigingen van Google laten zien dat ze zoiets in hun zoektocht naar vluchten hebben geïmplementeerd. Ze informeren gebruikers echter op basis van historische trends ("dit tarief zal waarschijnlijk toenemen" in plaats van "we voorspellen dat dit tarief x zal zijn").
  3. Tijdbestelde gegevens betekenen geen probleem met tijdreeksen. Omdat de gegevens op tijd zijn geordend, was een van de ‘natuurlijke’ benaderingen om te proberen een model dat voorspelt of een prijs zal stijgen of dalen op basis van zijn recente gedrag. De auteurs ontdekten echter dat vluchtprijzen de neiging hebben om te stijgen - omhoog of omlaag - en dus het voorspellen van de volgende prijs op basis van wat er de afgelopen paar uur is gebeurd, was een van de slechtst presterende benaderingen.

De auteurs van dit artikel richtten later Farecast op, dat uiteindelijk werd overgenomen door Microsoft. Bing liet uiteindelijk de voorspellingsfunctie van de Farecast vallen, maar andere meta-zoekmachines hebben vergelijkbare producten ontwikkeld; Kajak heeft al meer dan 3 jaar een prijsvoorspellingstool (zie hun blogbericht waarin de functie wordt aangekondigd) en Google heeft zojuist een voorspellingstool gelanceerd in hun recente blogbericht.

Conclusie

Als je geïnteresseerd bent in de technische kant van dit werk, bekijk dan de krant, neem contact op via Twitter of volg me op Medium - meer leesgroepsamenvattingen zijn onderweg!