GSoC 2020: Spam detection with online learning

Introduction

Hello Everyone!!

I am Rohit Dandamudi, more commonly known as diru1100 in IRC and all other sites. I am currently doing my final year in Computer Science and Engineering at Chaitanya Bharathi Institute of Technology, Hyderabad. This summer, I had the wonderful opportunity to work with MetaBrainz Foundation and it’s my first time participating in GSoC. I worked on the SpamBrainz project under the guidance of yvanzo to make a step forward on eliminating spam in MusicBrainz.

How it started

I started looking for some cool projects to apply for GSoC, eventually, after going through some which were involved in the web development side, I finally got to know about the MetaBrainz Foundation, and it was already pretty late (around 2½ weeks before the proposal deadline), most of my fellow GSoCers were already in good rapport with the community by then. After looking through the project ideas, I wanted to do my project on CritiqueBrainz, but later I found out that it’s not considered for this year. In the end, I liked the concept of SpamBrainz and how it involves a good combination (Deep Learning and Web Development) of technologies. After browsing through the project I understood what I could and tried to make some changes to the codebase and was successfully able to run the model and add some documentation. Finally, I submitted the proposal, which got accepted.

The proposal

My proposal was focused on extending the work done by Leo as part of GSoC 2018. It mainly involved the following:

  • Do the research and implement online learning to:
    • Update the model dynamically as new variations of editor spam accounts appear.
    • Make the model self-sufficient without depending on a particular file or a batch of data.
    • Explore different types of learnings that are applicable to enhance LodBrok and for better performance in production.
  • Complete SpamBrainz API to:
    • Use and update the model with API calls.
    • Connect LodBrok with MusicBrainz Server.
  • Do detailed documentation to make the project more public and involve more contributors

Achievements

LodBrok model improvements

Research for model live update

SpamBrainz API

  • Incorporated the above research in SpamBrainz API, which consists of 2 endpoints, namely:
    • /predict to return classification results by LodBrok for the editor accounts
    • /train to retrain the model with incorrect results sent to SpamNinja respectively
  • After discussing with Leo, I decided to implement the API using Flask and Redis combination. Going with Redis over RabbitMQ for this API is feasible as the API is pretty lightweight and has at most 2 events.
  • Documented the entire API, with internal working, steps to replicate, and images to understand the results obtained.
  • Completed dockerization of SpamBrainz_API for easier integration and testing with MusicBrainz docker.
  • This diagram explains the current workflow of the implemented API:diagram explaining the current workflow of the implemented API

Challenges ahead and future of SpamBrainz

  • The API has to be integrated with MusicBrainz and should undergo more testing with real live data, currently, my focus is on this part.
    • Note: All the work done till now on the model was on dummy data generated by scripts that tend to replicate the real accounts as much as they can be, by taking into account the inputs from Freso, yvanzo, and the analysis done by Leo, without affecting the data privacy policy.
  • To extend online learning to other use cases in MetaBrainz through Transfer Learning and Online Transfer Learning.
  • Also looking forward to writing a research paper about the work done, and eventually publish it in IEEE transactions, as I plan on using SpamBrainz as my final year major project.

Special thanks to…

  • My mentor, YvanZo for being incredibly patient with me, helping me create quality commits, and overall making me a better programmer. Have always learned something new in every interaction with him.
  • LeoVerto, for helping me out whenever stuck and getting me up to date with the project.
  • MetaBrainz Foundation, for creating an open, inclusive, and productive environment to build some amazing stuff.

Author: Rohit Dandamudi

Involved in Open Source, likes anime

2 thoughts on “GSoC 2020: Spam detection with online learning”

  1. Hey Rohit, Jay here! I really loved the execution of the project and what changes you made to the previous work to make it more useful(and easier to read too).

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.