Ontwikkeling van een op ontologieën gebaseerd aanbevelingsalgoritme voor huishoudelijk voorraadbeheer
Aanbevelingsalgoritmes kennen de laatste jaren een grote opmars. Ze worden vooral gebruikt door online winkels zoals Amazon en door bedrijven die diensten leveren zoals Netflix. De algoritmes stellen, op basis van de interesses van een gebruiker, producten voor die hem eventueel kunnen interesseren. Zo zorgen ze ervoor dat de gebruiker niet eindeloos door producten moet browsen om te vinden wat hem interesseert. Voor het berekenen van deze voorstellen maken de algoritmes gebruik van de eigenschappen van producten en/of van de scores die gebruikers aan producten gaven.
Het grootste deel van deze aanbevelingsalgoritmes beschikt niet over de kennis uit het domein waarbinnen de voorspellingen worden gemaakt. Dit zorgt voor een losse koppeling tussen het algoritme en het domein waarover geredeneerd wordt, waardoor het algoritme eenvoudig elders inzetbaar is. We vermoeden echter dat de kwaliteit van de algoritmes verbeterd kan worden door ze wel over deze kennis te laten beschikken.
Het doel van deze masterproef is daarom het ontwerpen en testen van een algoritme dat deze kennis bevat, en dat in staat is om die te gebruiken voor het optimaliseren van zijn aanbevelingen. Het algoritme functioneert binnen een voorraadbeheerapplicatie en is eenvoudig uitbreidbaar met modules die de kwaliteit van de aanbevelingen verbeteren. De applicatie wordt verder uitgewerkt om de verschillende mogelijkheden te tonen die het beschikken over deze kennis met zich mee brengt.
Hiervoor is eerst een grondige studie nodig van de reeds bestaande aanbevelingsalgoritmes en van de gebruikte technieken om deze te ontwikkelen. Aan de hand hiervan wordt een algoritme uitgewerkt voor het aanbevelen van voedingsproducten, gebaseerd op het aankoop- en verbruiksgedrag van consumenten. Verder wordt er ook een model uitgewerkt dat de kennis van het voedingsdomein bevat. Er is hier gekozen voor ontologieën als modelleringstechniek, aangezien hiermee op een eenvoudige en transparante wijze de informatie en de relaties uit een domein kunnen worden vastgelegd. De ontologie wordt, eenmaal ontwikkeld, gedigitaliseerd, waarna het algoritme hem kan integreren.
Om het algoritme uit te voeren zijn er gebruikersgegevens nodig. Een volgende stap was daarom het uitwerken van de voorraadbeheerapplicatie, welke zorgt dat het consumentengedrag geregistreerd wordt. Dit houdt in dat geweten is welke producten zich wanneer in de voorraad bevinden. Hiervoor worden verschillende technologieën getest, waarbij uiteindelijk voor een variant van de 2D-barcode, in combinatie met een USB-camera, wordt gekozen. De verzamelde data wordt gebruikt als invoer voor het aanbevelingsalgoritme.
De voorraadbeheerapplicatie wordt verder gebruikt om de mogelijkheden van de ontologie te tonen. Zo is er een maaltijdplanner voorzien die, via de ontologie, gekoppeld wordt aan een boodschappenlijst. Om deze boodschappenlijst op te stellen zonder tussenkomst van een gebruiker wordt hier een expertsysteem voorzien. Na onderzoek blijkt de Drools rule engine de beste optie. Deze bepaalt op basis van voorgedefinieerde regels of een product al dan niet op de boodschappenlijst komt. Daarnaast is het ook mogelijk om recepten op te vragen die bereid kunnen worden met de huidige voorraadinhoud. Hierbij wordt rekening gehouden met de houdbaarheidsdatum van deze producten. Een laatste mogelijkheid van de ontologie, en van het beschikken over de kennis in deze ontologie, is het toevoegen van producten aan de boodschappenlijst en het toevoegen van recepten aan de maaltijdplanner. Hierbij krijgt de gebruiker de mogelijkheid om onrechtstreeks door de ontologiehiërarchie te bladeren.