On Saturday, 9th of June, the first Machine Learning Hackathon took place at the XSolve HQ in Gliwice. It was organized by our Machine Learning Chapter and its goal was to introduce Machine Learning to the rest of the organization.
Despite Saturday being beautifully sunny, the Machine Learning Hackathon attracted12 participants and 3 judges. Hacking duration was set to 5 hours and participants were split into 3 teams with mixed skills (including front end, back end and ML experience).
The goal was to create a ‘movie recommender’ that would utilize the MovieLens dataset, and which would also allow linking to IMDb and The Movie DB to feed the application with additional content, such as images. The presented solutions were judged for user experience and recommendation accuracy.
With no strict instructions or rules, the possibilities were endless. The three teams took different approaches to the challenge, creating completely different tools.
When the development was over, each team had ten minutes to present their solution. Afterwards, the board of judges announced their verdict. The winner was the Destiny Team!
“At that moment, we knew that our focus on building a UI-centric solution had paid off. In order to deliver a product that is not only usable but pleasant to use, we decided to implement a simple Slack bot, named Hitch. You can start a session, get a set of movies to rate, submit the scores and get a set of recommended films as a reply. Building a Slack bot has a major advantage over building a web app – you get a nice UI out-of-the-box. Just add some thumbnails, headers and you’re good to go!” – Maciej Papież.
How does the product work, you may ask? The logic is simple:
1) select 10 random movies from the list of the top 2.5% best-rated ones,
2) ask the user to rate them, on a scale of 1-5,
3) find others that have rated the same movies as the user and create a movie similarity matrix on that basis,
4) use the matrix to select 10 movies similar to movies that were rated highly by the user.
How did the Machine Learning Hackathon go?
After 6 hours, the hackathon was coming to an end. The participants looked tired but satisfied. No wonder, they had spent almost a whole day on hardcore coding. I really wanted to know what they were feeling and thinking after a day with Machine Learning, so I went “hunting” for interviews. These are my “trophies”:
What motivated you to take part in the Machine Learning Hackathon?
Ania Bobola: Doing the same things over and over can be boring and make you tired, so I think that the best way to learn new skills is to choose a subject not so strongly related with our daily work. I have been getting interested in machine learning over the last few months.
There’s a lot of powerful solutions provided by Google or Amazon which people are using all the time, e.g. recommendations on YouTube or Amazon Store. I discovered that they share their API. Thanks to that, implementing these kind of functionalities can be made much easier.
But for me, the most interesting part of this job is understanding how it’s working inside, how the algorithms look like. With a little bit of theoretical knowledge, I had the opportunity to test myself in the hackathon.
The possibility of collaborating with other guys from my team was an additional motivation for me and made it extra fun.
As a person who had never used Python, how would you describe these first experiences?
Ania Skawińska: The hackathon was the first opportunity to code in Python for me, a life-long Java developer with little experience with other programming languages. Without a proper course on Python’s fundamentals, I laughed hysterically when successfully declaring a variable :).
However, writing a useful piece of code, analyzing data from CSV files using the Pandas Data Analysis Library and seeing the results live on the Jupyter platform was really rewarding, even if the language’s quirks looked funny sometimes.
What kind of barriers did you experience during that exercise? What was the most useful lesson for you?
Jacek Lange: I was amazed by how quickly one can build a basic recommendation system based on Python libraries – it can be done in less than 3 hours!
However, we quickly realized that presenting live recommendations, so that the user can see the result in a couple of seconds, requires a special approach and out-of-the-box thinking, which was the most useful lesson from this event for me.
What do you think about taking part in this kind of internal initiatives?
Łukasz Mitusiński:I am always willing to take a part in such initiatives. The biggest advantage is the opportunity to test yourself in a competition against other teams, find the areas where you can improve your skills and also reveal your strongest attributes.
In everyday work, you are always trying to get the best results via teamwork, so there is no place for competition. This is also a great opportunity to test unconventional approaches to a problem, along with your team you can test your crazy ideas and check the outcome.
You can see how many different routes may be taken to tackle the problem, and which one is the best. You can also find a lot of new inspiration for completing tasks that you must handle on daily basis.
And of course, the most important thing is that you can learn and share your knowledge with others efficiently, as you are handling problems that are very similar to issues that you will very likely stumble upon in real projects sooner or later.
I am very glad that I was able to participate in this hackathon, this was time well-spent and I am looking forward to the next initiative.
Do you plan to organize such an event again? Is there anything that you would like to change in the next edition?
Paweł Krynicki:Obviously we do! After the event, we gathered valuable feedback from the participants and nearly everyone was really satisfied, both with the way we organized it and the outcome – the things they’ve learned.
Some of them also asked whether we plan to make another one and we will be more than happy to, once again, make something cool together.
While gathering the feedback we were also getting some helpful hints on how to make the next event even better. Next time we’ll try to better assign roles within the teams.
Some of the participants were more into building machine learning models than others and we want to give them a chance to work strictly on machine learning related topics. We believe this can be achieved by improving the process of assigning developers to the teams and for the next hackathon, we’ll try to start working on it a bit earlier.
We’re also thinking of opening it up to the wider world – we could invite any developers keen on learning about ML and exchanging knowledge.
It was our first Machine Learning Hackathon, but rest assured – it’s not the last one. We have learned a lot from organizing this event and we already have a ton of ideas on how to improve it and make it even better.
We are also planning to make the next edition open to you – we’d love to meet other geeks eager to learn something new in the ML domain, share knowledge and create something amazing. Stay tuned and let us know if you’d like to take part in the next Machine Learning Hackathon! You can also suggest a topic for the next event.