mutual containment rates that vary significantly. Finally, in the third and last step, using the queries obtained from both previous steps, the queries generator generates pairs of queries whose FROM clauses are identical. (Note that our queries generator’s first step is similar to MSCN’s generator [@LearnedCrd], however, in the second step we create more complicated queries).

After generating the dataset, we execute the dataset queries on the IMDb database, to obtain their true containment rates. Using this process, we obtain an initial training set for our model, which consists of 100,000 pairs of queries with zero to two joins. We split the training samples into 80% training samples and 20% validation samples.

Model {#Model}
-----

Featurizing all the queries’ literals and predicates as one “big hot vector”, over all the possible words that may appear in the queries, is impractical. Also, serializing the queries’ SELECT, FROM, and WHERE clauses elements into an ordered sequence of elements, is not practical, since the order in these clauses is arbitrary.

Thus, standard deep neural network architectures such as simple multi-layer perceptrons [@RNNMLPCNN], convolutional neural networks [@RNNMLPCNN], or recurrent neural networks [@RNNMLPCNN], are not directly proper to our problem.

Our *Containment Rate Network* (CRN) 