Real-time aanbevelingen voor nieuws

Gerealiseerd door: Sam Leroux
Interne promotor: Rudy Stoop
Externe promotor: Luc Martens
Academiejaar: 2013-2014

Het aanbod van online nieuwsberichten is overweldigend. Naast de traditionele kranten zijn er ook veel gespecialiseerde niche blogs en sites die periodiek nieuwsberichten aanbieden. Wie up-to-date wil blijven zou verplicht zijn om alle deze bronnen periodiek te controleren. Een aanbevelingssysteem kan een handige hulp zijn. Dit systeem moet dan de nieuwsberichten filteren volgens de interesses van de gebruiker. Er is reeds veel onderzoek gedaan naar aanbevelingstechnieken en er zijn veel systemen die zich al in de praktijk bewezen hebben. Nieuws aanbevelen is echter veel moeilijker dan het aanbevelen van films, boeken of andere producten. Het grootste verschil is het vluchtige karakter van nieuws. De waarde van een artikel is het grootst vlak na het geschreven is en vermindert snel naarmate het artikel ouder wordt. Een succesvol aanbevelingssysteem voor nieuws moet dus in staat zijn om in realtime de aanbevelingen te kunnen berekenen, er is geen tijd om zware berekeningen op veel data te doen. Een andere factor die het aanbevelen van nieuws moeilijk maakt zijn de veranderende interesses van de gebruiker. Na een gebeurtenis met een grote impact wil de gebruiker hier artikels van lezen, zelfs al gaat het strikt genomen niet over een onderwerp waar hij vroeger reeds interesse in getoond heeft.
Omdat de artikels direct aanbevolen moeten worden kan men geen gebruik maken van de meningen van andere gebruikers (collaborative filtering). Een goede oplossing is aanbevelingen doen op basis van de inhoud van het artikel (content based). Een content based aanbevelingssysteem heeft veel gemeenschappelijk met een zoekmachine. Beiden breken de tekst op in woorden die een gewicht krijgen volgens hun belangrijkheid in de tekst. Een zoekmachine is ontworpen om snel een antwoord op een complexe vraag te geven. In deze thesis wordt er een aanbevelingssysteem voor nieuws ontworpen en ge¨ımplementeerd door te steunen op een zoekmachine. Artikels worden periodiek opgehaald en toegevoegd aan de index van de zoekmachine. Wil een gebruiker aanbevelingen ontvangen dan bouwt het systeem automatisch een zoekopdracht op, op basis van de geschiedenis van de gebruiker. De zoekresultaten zijn de aanbevelingen. Het genereren van aanbevelingen wordt dus vertaald naar het opbouwen en uitvoeren van een zoekopdracht.
Om ook de artikels over gebeurtenissen met een grote impact te kunnen aanbevelen bevat het systeem een component die in staat is om trending topics te detecteren, onderwerpen die momenteel veel meer in het nieuws komen dan wat verwacht zou worden op basis van het verleden.
Een belangrijke factor in het ontwerp van het systeem is de schaalbaarheid, het systeem moet in staat zijn om grote hoeveelheden berichten snel te verwerken. Door te steunen op Apache Storm, een framework voor schaalbare systemen, wordt dit doel bereikt.