Un cross-encoder è un modello neurale che riceve in input query + documento concatenati e calcola direttamente un punteggio di rilevanza. È molto più preciso di un bi-encoder, ma anche più costoso in termini computazionali.
Mentre i bi-encoder mappano query e documenti in vettori indipendenti, i cross-encoder processano insieme la coppia (query, documento) sfruttando l’attenzione incrociata.
Il modello valuta ogni token della query rispetto a quelli del documento, producendo un relevance score.
Questo approccio massimizza la precision, ma non è scalabile per grandi collezioni: richiede un calcolo per ogni coppia query-documento.
Per questo motivo, i cross-encoder sono usati tipicamente nello stadio 2 di una pipeline neurale (recall → rerank).