Resources to learn how to make deep-learning recommendation system

Hello everyone,

In the course “Machine Learning Specialization” Andrew mentions that we can build deep-learning recommendation systems, this piqued my interest as I had experience building recommendation systems without deep-learning networks.

I wanted to learn how to use NN/DL to build recommendation systems but couldn’t find any resources. I will be grateful if someone can guide me in the right direction.

Best Regards,
Dakshesh Jain

EDIT: I believe I understand the core concept but I want to learn about the implementation. I understand that this is a complex topic but I am looking for a resource that can guide me in the right direction.

1 Like

Recommender systems are covered in MLS Course 3 Week 2.

2 Likes

Also, honestly I didn’t know at the time, but he even teaches the math’s class here ! But Serrano’s video on this subject really helped me wrap my mind around the subject at the time: https://www.youtube.com/watch?v=ZspR5PZemcs

1 Like

Note: Luis’ videos tend to contain a lot of errors.

1 Like

Yes, you are correct. However, I was not able to translate the information into a practical implementation. I understood the concepts and various methods taught in the lecture. I want to develop a DL recommendation system, but I couldn’t find many resources that teach ‘somewhat’ practical implementation.

1 Like

I skimmed through the video and I can say I understand the concept because of the MLS course and other lectures I watched but my concern is how may I practically implement a DL recommendation system.

1 Like

In essence what you are dealing with here is a really big sparse matrix-- Meaning you likely have a lot of data in a giant matrix, but that matrix also has a lot of ‘holes’ in it like swiss cheese.

Just as a very example say you have User 1 and User 2 – and 5 movies (A, B, C, D, E) with their associated ratings from User 1 and User 2. Now User 1 has rated say, movies A, B, and E, but User 2 has rated movies B, E, but also C and D.

The question is can we find commonalities between these two users to suggest how User 1 might rate (which they have not yet seen) movie D ?

In the end this turns out to be a very complicated concept (Winning the Netflix Prize: A Summary), and ‘ensemble methods’ (i.e. combining the outputs of a number of model types, not just Neural Nets) generally produce the best result. (Reference the original winning Netflix paper, the Bellkor solution, here: https://www2.seas.gwu.edu/~simhaweb/champalg/cf/papers/KorenBellKor2009.pdf)

But Singular Value Decomposition (SVD) turns out to be one of the fastest, most efficient methods.

There are libraries that will run the recommendation system operation for you, but if you really want to learn the nuts and bolts I’d recommend getting started understanding SVD.

2 Likes

*Or, technically, I should say SVD/matrix factorization.

1 Like

Thank you very much @Nevermnd for such a detailed response. I will go through the resources provided by you. I have built recommendation projects that use the same concept you explained, but I think I should review more resources and SVD/matrix factorization seems like a good starting point.

Links to those projects:

Once again thank you for your time!

2 Likes

Yes, I mean in outside course I worked on this problem-- But in R, not Python. There Recosystem (CRAN - Package recosystem) or RecommenderLab (CRAN - Package recommenderlab) work really well, but as I haven’t done this yet on Python so off the top of my head I don’t know what packages are good.

Also, for a lot of ‘real world’ open source examples of people trying to solve this program you can look up recommender systems in the context of the ‘MovieLens’ database.

Hope this helps and best of luck !

2 Likes

Oh, I will look into open-sourced examples. ‘MovieLens’ is the keyword. Yep, this will be helpful I can find some resources and articles discussing the same with ‘MovieLens’ as their keyword.

1 Like