Two Tower
The two tower model is a popularly used model for retrieval mainly because it can be set up efficiently for a large scale. At a very high level, the model consists of two towers - a user tower and a query tower. Here are some practical tips and tricks on training two tower model - Candidate Sampling: To solve a multi-class multi-label problem with a large number of classes, one of the tricks often applied is that of candidate sampling where you do not need to compute F(x,y) for every class y for every training example x. Candidate sampling involves constructing a training task such that you only update a subset of the classes. Some examples of candidate sampling algorithms are Noise Contrastive Estimation (NCE), Negative Sampling, Sampled Logistic, etc. Popularity correction : A typical two tower setup involves References Candidate Sampling Tutorial by TensorFlow