Hay dos maneras de usar un codificador como BERT para medir cuán
relacionados están dos textos, sean una consulta y un documento o dos oraciones. El
codificador cruzado (cross-encoder) los recibe juntos, separados por un token [SEP]
(token especial), de modo que la atención cruza de un texto
al otro, y devuelve un puntaje; no produce embeddings reutilizables
(Alammar y Grootendorst, 2024, p. 294). El bicodificador (bi-encoder) procesa cada texto por separado
con la misma red (dos copias con pesos compartidos, una arquitectura
siamesa) y los compara después, por ejemplo con similitud coseno
(2024, p. 295). Es la solución de Sentence-BERT.
Los costos son asimétricos. Con un codificador cruzado, hallar el par más parecido entre 10.000 oraciones exige n(n − 1)/2 = 49.995.000 pasadas por la red, unas 65 horas en una GPU V100; con un bicodificador se calculan 10.000 vectores (≈ 5 segundos) y luego cosenos (≈ 0,01 segundos) (Reimers y Gurevych, 2019, pp. 3982–3983). Pero el cruzado es más preciso: al evaluar la similitud de argumentos sobre un tema no visto, SBERT quedó unos 7 puntos de correlación por debajo de BERT, que puede comparar ambas oraciones palabra por palabra, mientras que SBERT debe ubicar cada una en el espacio sin ver la otra (2019, pp. 3986–3987).
Por eso los buscadores los encadenan: un bicodificador (o una búsqueda por palabras clave) preselecciona cien o mil candidatos y un codificador cruzado los reordena (reranking) (Alammar y Grootendorst, 2024, pp. 242, 244). En el benchmark multilingüe MIRACL, ese paso lleva el nDCG@10 de 36,5 a 62,8 (2024, p. 243). Es el esquema típico de la búsqueda semántica y de Generación aumentada por recuperación (RAG).
La diferencia tiene un aire filosófico. El bicodificador supone que el significado de cada texto puede fijarse de antemano, con independencia de aquello con lo que se lo comparará: un punto en un espacio, al modo atomista. El cruzado trata la pertinencia como una relación que solo se evalúa mirando ambos términos a la vez. ¿Se deja factorizar la relevancia (o la implicación) en dos representaciones separadas y una métrica?