Finnair needs a system to recommend potentially interesting, personalised, trips to their customers. This requires access to user's data to know them better. Our system gets this data from social media accounts and uses it to find

Finnair has a lot of potential to grow in Asia, especially in China. But the main problem is that the customers behave quite differently there. They prefer travel agencies with ready-made packages to direct booking. Luckily, we have a solution to this problem

What it does

The system gathers information about the user's preferences and matches them automatically with possible travel destinations based on sights, events, general description of the destination, travel agencies ready made packages and so on.

This information is used to 1) provide a web interface to browse suitable trips, 2) personalise the Finnair newsletter and 3) show targeted ads on Finnair's website. The possibilities are unlimited because our data driven approach is not limited to only one user interface solution.

How we built it

User logs in with their social media account (or they link it with their Finnair Plus account for free loyalty program points) such as Twitter, Facebook and WeChat. In the process, we request access to read the user's posts and likes. From these, we identify the positive posts with sentiment analysis and extract the keywords used in them with Gavagai API. The sentiment analysis makes sure we extract keywords in posts that have a positive sentiment - we wouldn't like to recommend a trip to Paris if the person writes they hate Paris just because the city is mentioned.

The frequent keywords reveal more about what the user likes. For the keywords, we apply named entity recognition to separate the common nouns (such as music, football and golf) from proper nouns (such as Justin Bieber or Berlin). Proper nouns are used as they are because they might bare a special meaning for the user, where as common nouns are expanded based on a machine learning model, namely word2vec to get an expanded list of keywords the user likes. In other words, if the user writes about shoes and hats, we can expand this keyword list with other fashion items such as pants and shirts automatically.

What do we do with these keywords then, you might inquire. Well, we do a similar trick to descriptions about destinations crawled from the Lonely Planet, event descriptions obtained from the Eventbrite API and sightseeing descriptions obtained from TripAdvisor API. We extract the keywords from these sources of data as well and match them with the user's keywords. The more keywords a destination or an event has in common with the frequent keywords of the user, the higher the score we are giving to the matching travel option.

As we can just plugin any source of data in natural language, we can even crawl data from Chinese travel agencies' trip packages and offer them as suggestions to our users. This way, we don't have to try to alter the Chinese tourists' behaviour but we can rather direct them to the agencies and packages that use Finnair. Win-win. :-)

The fact that the system is built upon keyword matching makes it easy to also change the source of customer data. The customer might not be willing to login with their social media account, but from the user data Finnair is already collecting (such as purchases with Finnair Plus Diner's Club) can be used to populate the user keywords used in the matching.

Challenges we ran into

Most of the APIs were new to us. Also our group has had two core members from the beginning working on this idea while other members have been coming and going.

In a hackathon, time is your biggest enemy and we didn't have time to reach a fully functional prototype. Yet the ideas have been tested out and we have found out that the approach works. The Finnair staff has been of a tremendous help in this process.

Accomplishments that we're proud of

Combining natural language processing in a savvy way to solve this problem. Finding a way to use ML in the form of sentiment analysis and word2vec to give better accuracy to our system.

What we learned

A ton of what can and can't be done with different APIs. Also we learned about modelling meaning in natural language and new NLP methods.

What's next for Mile High Way

The next step is to have the implementation fully ready. Then making agreements with Asian travel agencies so that their packages can be smoothly integrated to the system. Also we are looking forward to i18n to adapt the system better into the Chinese market both by language and culture.

Share this project: