Sabyasachi Sahoo, Bringing NLP and RL Together
Sabyasachi implemented NIPS 2017 paper “Thy Friend Is My Friend: Iterative Collaborative Filtering for Sparse Matrix Estimation”, and is a winner of the Global NIPS Paper Implementation Challenge. See his code implementation here.
Tell us a little about yourself?
I completed my Masters in Computational Science from the Indian Institute of Science (IISC) Bangalore and started working as a software engineer at NVIDIA. I have worked on parallel computing and a few deep learning projects. I participate regularly in Kaggle competitions. My primary research interests are centred around deep learning applications, most recently Natural Language Processing (NLP).
How did you get started in AI?
My first deep learning project was in college where we tried to extract semantic meaning from the final vectors obtained from images after passing through CNN layers. Inspired from word2vec, we did some analysis to better understand the vectors in vector space.
What are you most passionate about in AI?
The simple fact that we can create something magical using numbers and models that mimic complex tasks accomplished by a human brain, which itself was perfected by years of evolution, blows my mind. I think getting used to human-like robots will be a de-facto in the coming years.
I believe AI is a new way of thinking about old problems. The automation of our standard tasks ensures that humans spend most of their time working on abstract challenges and less on low-level tasks. Also, the infinite unthinkable possibilities that the AI industry is already bringing shows that it will be a leading force in safety, enforcing law and order, reducing gaps between different languages, and many more.
Can you give us an overview of your implementation in the Challenge?
The final code is well documented to get the complete picture. My primary motivation to implement this paper “Thy Friend Is My Friend: Iterative Collaborative Filtering for Sparse Matrix Estimation” was to understand how recommendation systems work.
The paper talks about a new way of user-item prediction in recommender systems for extremely sparse datasets. After reading the dataset, we make sure the dataset has been made symmetric and the values are normalised. In step 1, we divide the user-item rating pairs randomly into three parts and use each part in next 3 steps. In step 2, we take first part and calculate neighbourhood vector for every vertex i.e. get the product along the shortest path from given vertex to every possible vertex. In step 3, we use part 2 obtained and use it to calculate distance between any two vertices (like user and movie) as an inner product between r-hop and r+1 hop neighbourhood vector. In step 4, we average over all vertices within a distance threshold to predict user-item rating.
Were there any challenges while implementing your selected paper?
It was quite a theoretical paper that focused more on algorithms and less on the implementational details. Often, I would find myself lost in all the theoretical notations. I would like to thank the authors Christian Borgs, Jennifer Chayes, Devavrat Shah and especially Christina E. Lee for taking the time out to respond to my queries, which I have attached as a few email threads in the same GitHub repo. On completion, I felt the need to get my code reviewed for design and logical flaws that I might have overlooked. Big shout out to Manjunath Hegde, a data scientist at Microsoft who has been actively contributing in the NLP research, to help me on the code review!
What’s next for you in your work?
I am actively working on NLP and have recently been quite intrigued by the success of Reinforcement Learning models. I look forward to bringing both of them together (I can see some preliminary work happening in that direction already!)
Sabyasachi Sahoo is a Software Engineer at NVIDIA. To keep in touch with Sabyasachi, check out his Github.
This is a feature of the winner of the Global NIPS Paper Implementation Challenge. You can read other winners’ feature here. Let us know if you enjoyed this series and would like to see more of content like this, drop us a comment or an email at info@nurture.ai