We fully understand the pain of our end-user. All members of our team are passionate about travelling and we also experience problems with identifying too many things beforehand. It gives us the possibility to see the whole picture from developer's and from user's points of view... So it all was like making the best to ourselves.
What it does
Just imagine: instead of choosing place to go to you can now choose what adventure you will take in the closest future! In addition to the tickets, we also tell users about what cultural events are happening in the world, help them to visit the most interesting games or spend their holidays in the best way and even help to surprise people our customers love. We offer a wide variety of topics in which ticket searching will happen: romantic, skiing, musical festivals and concerts, major sport games and many other. To fit the best to caprises of the users we use machine learned algorithms and collect (with their permission) the most relevant data.
First, it collects as much data as possible about your preferences. All you need to do is to add links to your Facebook/Instagram/Twitter/Spotify/LinkedIn/Google Calendar/BandsInTown accounts. The more user tells us what he/she likes, the more precisely we can fit user's needs and wishes. However, we didn't forget about those people who prefer not to share their personal data; that's why we added the possibility to take a simple survey to find out his or her preferences.
As there are plenty of information which is collected from users, they can filter their travel suggestions i.e choose just sport events or their favorite weather. Also, we added the possibility to get recommendations for travel destinations according to travel experience of those travelers who has the same taste of music/interests as you.
How we built it:
We ended up with a recommendation system that could suggest where you should fly to out of the Finnair destinations based on what your social media data/survey.
How we built it: We ended up with a recommendation engine that could suggest where you should fly to out of the Finnair destinations based on what your social media data/survey.
Rich location data. Using the Finnair destination API we extract a list of every location that Finnair flies to. We then merge this with some other datasets to find out the location, nearest city and country.
Global popularity. We use Instagram to collect geotags and locations of popular public content. We use this as a measure of global popularity. We can then filter a list of the top 100 Finnair destinations (with rich data).
User data. Using the top 100 destinations we want to do personalised recommendations for each user. How do we do this? We collect data in 2 ways. Firstly we integrations with Facebook, Instagram, and Twitter (more are on the way). We collect information about users interests, what they like and don't like. And most importantly what locations they like or would like to visit. For people who don't want to share that information we have a survey that they can answer that collects similar information.
Classifiers. We have a content based classifier for each of the 100 top Finnair destinations. Each classifier can predict if a specific user with their information will like each location. We then filter by the 'yes's and rank in order of confidence. It currently uses naive bayes (which handled a large number of features well).
Clustering. Lastly using the same user info we can cluster users and find people similar to them. This allows us to also do a more collaborative filtering approach in future.
We had alot! Only some are listed here:
- instagram API was restricted to sandbox mode (10 users max). We cleverly repurpposed it for calculating global popularity of the locations
- initially we had one mega-classifier for predicting all locations. The problem was it was only effective at picking between a small number of them. We changed this for the more complex classifier per location approach
- naive bayes is quick and does a good job of considering each feature's direct impact on the class. The problem is we miss out on interesting causal relationships in the data. For example: if someone hates cold weather, except for skiing, then you have to consider the 2 variables together and how they influence each other. We started working on a random forest approach but didn't have time
Accomplishments that we're proud of
We created the web-service which we would be happy to use by ourselves.
What we learned
Check things twice, even if we are sure about them. If we did that, we would have a little bit of free time to accomplish our tasks. It is hard to fit everyone. But we did our best in it! Different points of view are very important in idea making, as it allows to polish idea much more thoroughly
What's next for Personalize my Finnair
Getting things done. Such an ambitious idea cannot be executed in 48 hours, and we need to make it happen.