Localify is a web application designed to help people discover local artists and concerts based on the music they already like. It is built off of Spotify and uses their music library to generate playlists containing music for artists that our algorithms have determined are similar to the artists you already listen to. The application takes a users location and a distance they are willing to travel to use a radius to search for events, then using the users heavy rotation artists from Spotify and our machine learning algorithms it creates recommendations for upcoming events that are specific to each user.
When I first began working on the project back in the end of 2018 my main role was to come up with a way to collect data about events for cities across the country. We were already collecting information from the ticketing service Ticketfly, but wanted to expand to collecting events from Facebook due to it having smaller and more niche events. This proved to be quite the challenge for me, usually I would have been able to use Facebook’s API (Application Program Interface: something that would allow me access the information facebook has with ease), however after all the scandals that followed the 2016 election with Cambridge Analytica, Facebook closed off most of its API and what was left became placed behind complicated application processes. My solution to this was to use a programing library called Selenium which is something called a headless browser and works by automating the functions of a web browser. So I spent a good deal of time writing a robust script that would spoof a user looking at music events in different cities. ( For those interested here is a video of it running )
Then during the spring semester I worked primarily on small updates to the website for a better user experience but also worked a great deal on data analysis with my advisor Doug Turnbull and another student Daniel Akimchuk. Through our research we were able to write a research paper about playlist generation focused around local artists.
Once the summer started my focused shifted towards the machine learning side of things and began to work on an improved recommendation algorithm. Having just finished a Machine Learning course that semester I was rearing to go and spent the first week exploring the best options we had and determining the optimal route forward. I spent the next two weeks trying to implement the algorithm I had settled on for our purpose. We had a bit of a unique case in recommending artists based solely off of other artists we knew they were similar to. In most recommendation systems the data that the algorithms work off of is in a user x item fashion, where each row is a user and the column holds info about how much they liked or disliked a given item. In our case we were working with something more like an item x item dataset which caused some difficulty when trying to use algorithms designed for user x item datasets. However after a little tinkering I was able to get our first artist recommendations out of the model. From there on I shifted over to a more web development role. I spent some time replacing the old recommendation system we had in place with the new model I had created and once it was all set we said goodbye to the old version of Localify forever.
The rest of the summer was spent converting the current web application into an API so that the newly designed frontend of the website designed by another member of the team could interact with and use all the functionality of the app (and so others could as well in the future). And I am proud to say that after all that hard work the web app is currently live for all to try at localify.org
What The Future Holds
I will be continuing my work on this project for the next semester, until I graduate. Even though a very solid version of the app is currently live, there is still much to do. One of our largest goals is to collect data about how users interact with our site not only as a way to quantify how well the application is working, but also for academic research to be used by Ithaca and other institutions. This entails collecting implicit feedback which is the small interactions user have, something like pressing a button or listening to a track preview is very valuable information for us. We are also planning on sending the project to people who are part of the music streaming industry to get their opinions on it and hopefully gain some publicity for the application.
Finally, at the end of this semester I will officially be graduating from Ithaca College. I am planning on taking a prolonged break from the world of Academia and pursuing a career in the tech industry. However, I do see myself at some point in the future returning to Academia to gain an even higher education and immerse myself in research once again, but for now I am on the job hunt. If you are a current member of the tech industry or specifically work for a music tech company and are looking from someone with experience in Software Engineering, Web Development, and Machine Learning please reach out to me. I am always looking for new and interesting opportunities.