@werneck:2018:BocgBokg], while only a few others adopted late-fusion approaches [@dirsm17:KAhmadEtAl; @dirsm17:SAhmadEtAl].

Preliminaries {#secPrelim}
=============

Let a *sample* $s$ be any digital object, such as a document, an image, a video, or even a hybrid (multimodal) object. A sample is characterized by a *descriptor* ${\mathcal{D}}$, which relies on a particular point of view to describe $s$ as a vector, graph or another data structure $\epsilon(s)$. Descriptions allow samples to be compared to each other. Therefore, descriptors are the basis for retrieval and learning models.

A *comparator* ${\mathcal{C}}$, applied over a tuple $(\epsilon(s_i),\epsilon(s_j))$, produces a *score* ${\varsigma}\in \mathbb{R^+}$ (e.g., the Euclidean distance or the cosine similarity). Either similarity or dissimilarity functions can be used to implement ${\mathcal{C}}$. A query sample, or just *query* $q$, refers to a particular sample taken as an input object in the context of a search, whose purpose is to retrieve *response items* from a *response set* ($S$) according to relevance criteria. A response set ${S = \{ s_i\}}_{i=1}^n$ is a collection of $n$ *samples*, where $n$ is the collection size. In the context of prediction tasks, a query is called *test sample*, and a response set is called *train set*. These terms can be used interchangeably, but 