Saltar a contenido

title: 8 · Filtrar después de buscar: el post-filtrado

8 · Filtrar después de buscar: el post-filtrado

Si el capítulo anterior defendió el filtro antes de buscar, este hace justicia con el otro hermano, porque el post-filtrado no es un error de novato: es una herramienta legítima, con ventajas reales, que en determinadas manos es la opción correcta. El problema es que sus condiciones de uso casi nunca se explican, y aplicado fuera de ellas produce un fallo tan silencioso como demoledor que este capítulo quiere dejar visto para siempre: el hueco de resultados.

Qué hace y por qué alguien lo preferiría

El post-filtrado invierte el orden del capítulo anterior: primero el motor calcula similitudes sobre todo el corpus y devuelve los k más parecidos; después, un paso posterior descarta los que no cumplen las condiciones. Las puertas abiertas, la linterna encendida en todas las estanterías, y el portero revisando las mochilas al salir.

Que nadie lo confunda con mala praxis: tiene dos ventajas técnicas genuinas. La primera es eficiencia de índice perfecta: el motor recorre el mapa de barrios sin restricción alguna, sin degradaciones por selectividad, exactamente como fue diseñado; el filtro no le toca. El coste exacto que el pre-filtrado pagaba con filtros hiperselectivos, aquí no existe. La segunda es frescura de la ordenación: al filtrar después de ordenar, se conserva la escala real de similitudes de todo el corpus, lo que permite decisiones más finas —umbrales globales, comparaciones entre dominios— que con el filtro previo quedan distorsionadas al cambiar el universo de comparación.

Y hay una tercera razón, la que en la práctica decide más post-filtrados que cualquier argumento técnico: conviene al rerank. Cuando la pieza siguiente del pipeline es un reranker —el capítulo quince—, la estrategia habitual es recuperar ancho y reordenar estrecho. En ese diseño, el filtro posterior se integra de forma natural en el tramo ancho: se recupera generosamente, se aplica la condición y el rerank ordena lo superviviente. El filtro tardío deja de ser un portero improvisado y pasa a ser el primer eslabón del tamiz.

La trampa: el hueco de resultados

Ahora la trampa, con números, porque el post-filtrado falla con aritmética y no con filosofía. Supóngase top-k de diez y una condición que en el corpus solo cumple el 10 por ciento de las píldoras —una materia minoritaria, un tipo de documento concreto—. El motor devuelve los diez más parecidos del corpus entero; la condición, en promedio, deja pasar uno. El usuario pidió diez y recibe uno. Pero el fallo real es peor que "recibir menos": es recibir menos sin que nadie lo sepa. El sistema no devolvió un error; devolvió un resultado pequeño con cara de éxito, y quien pregunta no puede distinguir "lo elegible es solo esto" de "el corpus tiene muy poco de esto" de "el filtro se comió los demás".

En el despacho pasó literalmente, y la anécdota es perfecta porque nadie cometió ninguna imprudencia. Una consulta pedía evidencia en convenios colectivos sobre un asunto que también estaba tratado en sentencias —mucho más parecidas en similitud, porque las sentencias redactan con más densidad semántica—. El post-filtro por tipo de documento sobre un top-diez dejó dos convenios. Dos resultados, presentados con su cita y su confianza, cuando el corpus contenía once convenios elegibles. Un usuario concluyó, razonablemente, que el convenio "no decía nada" del asunto. Decía once cosas; nueve habían quedado a las puertas, descartadas por sentencias más parecidas. Ese es el hueco: no es un problema de calidad del resultado, es un problema de integridad de la muestra. Y su naturaleza es estadística, no accidental: cuanto más selectivo el filtro, más garantizado el hueco.

La aritmética que arregla el hueco: over-fetch

La solución tiene nombre técnico y una idea sencilla debajo: si el filtro va a dejar pasar solo una fracción f de lo recuperado, hay que recuperar k/f para acabar con k. Se llama over-fetch: pedir de más para acabar con lo justo. Un filtro que deja pasar uno de cada diez exige pedir cien para entregar diez. La práctica sólida no calcula f a mano por consulta —no se sabe de antemano—: se fija un múltiplo de seguridad —pedir diez o veinte veces el tope final— y se acompaña de una regla de honestidad: si tras el filtro los supervivientes son menos que k, el sistema lo declara —"el filtro redujo los resultados de 100 a 3"— y se comporta según la política del vacío del capítulo diez, en vez de disimular.

Con esto queda trazada la línea que separa las dos familias, y conviene grabarla como criterio de arquitectura del libro: las restricciones duras van pre-búsqueda; las preferencias blandas, post-búsqueda. Duro es lo que define elegibilidad —dominio, permiso, vigencia, estado—: lo que no depende del contenido de la consulta y lo que el contrato exige sin excepción. Blando es lo que matiza pero no define —preferir tal tipo de documento, tal frescura, tal fuente—: condiciones que al usuario le gustaría cumplir pero que no deben abrir huecos para cumplirse. La materia minoritaria del caso anterior era, revisada en frío, una preferencia blanda disfrazada de requisito: el arreglo correcto no fue apretar el post-filtro, fue degradarlo a preferencia —favorecer convenios sin excluirlos— y dejar que el rerank del capítulo quince afinara el gusto.

Y una nota para el diseño, antes de cerrar: el over-fetch tiene coste —recuperar cien para entregar diez cobra memoria y latencia— y el múltiplo de seguridad se calibra con datos, no con miedo: el capítulo veinte, de observabilidad, dirá cómo medir cuántas veces el filtro superó al top y ajustar el múltiplo con evidencia. Como casi todo en este libro, la técnica no es difícil; lo difícil es saber que se necesita.

Criterio de salida

Escrito y aplicado el reparto de condiciones: duras en pre-filtrado, blandas en post-filtrado o en rerank. Donde exista filtro post, hay over-fetch calibrado y declaración explícita cuando los supervivientes bajen del tope — nunca un resultado recortado con cara de completo.

Pre-filtrado y post-filtrado ya tienen su lugar. Pero hay un filtro que no compite con ninguno: el que no busca nada, el que solo protege — permisos, confidencialidad y el ciclo de vida. El más importante del libro, en la siguiente página.