Hi guys, I finished the course 1 week 4 assignment, but I feel like I’m not completly understand the LSH and approximate nearest neighbors. Should I dive more and search them on internet or there is no need ?
I think it depends on your preference. Let me describe my own experience.
When I took the specialization I simply continued with the next course. I did this because I felt that there was a lot to learn and things were (and are) moving fast. Afterwards it took me quite some time and repetition to understand LSH and approximate nearest neighbors and particularly their relevance.
I now feel that a conceptual understanding may be sufficient unless you are going to code up LSH and approximate nearest neighbors yourself.
Conceptually, think of it like this:
You are using a model to translate from one language to another, but the output of the model does not directly match a word vector of the target language. How should the model select a good output word and do so relatively fast?
This is what LSH and approximate nearest neighbors allow the model to do. LSH puts the output of the model in a particular limited space in the overall vector space. It also puts the word vectors from the target language in several limited spaces in the overall vector space.
Subsequently, nearest neighbors selects those word vectors from the target language that are closest to the output of the model from the limited space that contains the output of the model. It then returns those word vectors. Then it’s up to a selection algorithm to select the output word. This is faster than having to consider all possible word vectors of the target language.
I hope this is helpful. The choice is yours, whether you prefer to get a deeper understanding of this first (e.g. by googling), or whether, like me, you continue and come back to this issue later.