Búsqueda semántica con vectores


Si has estado siguiendo las últimas noticias en la búsqueda, probablemente hayas oído hablar de búsqueda de vectores.

Y es posible que incluso hayas comenzado a profundizar en el tema para tratar de aprender más sobre él, solo para terminar confundido. ¿No dejaste las matemáticas en la universidad?

La búsqueda de vectores de construcción es complicado. Comprenderlo no tiene por qué serlo.

Y comprender que la búsqueda vectorial no es el futuro, sino la búsqueda híbrida, eso es igual de importante.

¿Qué son los vectores?

Cuando hablamos de vectores en el contexto del aprendizaje automático, nos referimos a esto: los vectores son grupos de números que representan algo.

Esa cosa podría ser una imagen, una palabra o casi cualquier cosa.

Las preguntas, por supuesto, son por qué esos vectores son útiles y cómo se crean.

Veamos primero de dónde vienen esos vectores. La respuesta corta: aprendizaje automático.

Jay Alammar tiene quizás la mejor publicación de blog jamás escrita sobre que son los vectores.

Sin embargo, como resumen, el aprendizaje automático modela elementos de entrada (supongamos que solo palabras de aquí en adelante) e intenta encontrar las mejores fórmulas para predecir algo más.

Por ejemplo, es posible que tenga un modelo que incluya la palabra «abeja» y esté tratando de encontrar las mejores fórmulas que predigan con precisión que «abeja» se ve en contextos similares como «insectos» y «avispas».

Una vez que ese modelo tiene la mejor fórmula, puede transformar la palabra «abeja» en un grupo de números que resultan ser similares al grupo de números para «insectos» y «avispas».

Por qué los vectores son poderosos

Los vectores son realmente poderosos por esta razón: Los grandes modelos de lenguaje como Generative Pre-trained Transformer 3 (GPT-3) o los de Google tienen en cuenta miles de millones de palabras y oraciones, por lo que pueden comenzar a hacer estas conexiones y volverse realmente inteligentes.

Es fácil entender por qué la gente está tan emocionada de aplicar esa inteligencia a la búsqueda.

Algunos incluso dicen que la búsqueda vectorial reemplazará la búsqueda por palabra clave hemos conocido y amado durante décadas.

Sin embargo, la cuestión es que la búsqueda de vectores no está reemplazando a la búsqueda de palabras clave en su totalidad. Pensar que la búsqueda de palabras clave no retendrá un valor inmenso genera demasiado optimismo en lo nuevo y brillante.

La búsqueda de vectores y las búsquedas de palabras clave tienen sus propias fortalezas y funcionan mejor cuando trabajan juntas.

Búsqueda de vectores para consultas de cola larga

Si trabaja en la búsqueda, es probable que esté íntimamente familiarizado con la larga cola de consultas.

Este concepto, popularizado por Chris Anderson para describir el contenido digitaldice que hay algunos artículos (para las consultas de búsqueda) que son mucho más populares que todo lo demás, pero que hay muchos artículos individuales que alguien todavía quiere.

Así es con la búsqueda.

Algunas consultas (también llamadas consultas «principales») se buscan mucho, pero la gran mayoría de las consultas se buscan muy poco, tal vez incluso una sola vez.

Los números diferirán de un sitio a otro, pero en un sitio promedio, aproximadamente un tercio de las búsquedas totales pueden provenir de unas pocas docenas de consultas, mientras que casi la mitad del volumen de búsqueda proviene de consultas que están fuera de las 1000 más populares.

Las consultas de cola larga tienden a ser más largas e incluso pueden ser consultas en lenguaje natural.

La investigación de mi empresa Algolia mostró que el 75% de las consultas son dos o menos palabras. El 90% de las consultas son cuatro o menos palabras. Entonces, para llegar al 99% de las consultas, ¡necesitas 13 palabras!

Sin embargo, no siempre son largos, simplemente pueden ser oscuros. Para un sitio web de moda femenina, «vestido malva» podría ser una consulta larga porque la gente no pide ese color muy a menudo. «Pulsera» también puede ser una consulta rara vez vista, incluso si el sitio web tiene pulseras a la venta.

La búsqueda de vectores generalmente funciona muy bien para consultas de cola larga. Puede entender que las muñequeras son similares a las pulseras, y las pulseras salen a la superficie incluso sin la configuración de sinónimos. Puede mostrar vestidos rosas o morados cuando alguien busca algo en malva.

La búsqueda vectorial incluso puede funcionar bien para esas consultas largas o de lenguaje natural. «Algo para mantener mis bebidas frías» mostrará refrigeradores en una búsqueda de vectores bien ajustada, mientras que, con la búsqueda de palabras clave, es mejor que el texto esté en algún lugar de la descripción de un producto.

En otras palabras, la búsqueda vectorial aumenta la recuperación de los resultados de la búsqueda, o la cantidad de resultados encontrados.

Cómo funciona la búsqueda de vectores

Búsqueda de vectores hace esto al tomar esos grupos de números que describimos anteriormente y hacer que el motor de búsqueda de vectores pregunte: «Si tuviera que graficar estos grupos de números como líneas, ¿cuáles estarían más cerca entre sí?»

Una manera fácil de conceptualizar esto es pensar en grupos que tienen solo dos números. El grupo [1,2] va a estar más cerca del grupo [2,2] de lo que sería para el grupo [2,500].

(Por supuesto, dado que los vectores tienen docenas de números dentro de ellos, están siendo «graficados» en docenas de dimensiones, lo cual no es tan fácil de visualizar).

Este enfoque para determinar la similitud es poderoso porque los vectores que representan palabras como «doctor» y «medicina» van a ser «graficados» mucho más similares que las palabras «doctor» y «rock».

Desventajas de la búsqueda de vectores

Sin embargo, hay desventajas en la búsqueda de vectores.

Primero está el costo. ¿Todo ese aprendizaje automático que discutimos anteriormente? tiene costos

Para empezar, almacenar los vectores es más costoso que almacenar un índice de búsqueda basado en palabras clave. La búsqueda de esos vectores también es más lenta que una búsqueda de palabras clave en la mayoría de los casos.

Ahora, el hashing puede calmar ambos problemas.

Sí, estamos introduciendo más conceptos técnicos, pero este es otro que es bastante simple de entender.

Hashing realiza una serie de pasos para transformar alguna información (como una cadena o un número) en un número, que ocupa menos memoria que la información original.

Resulta que también podemos usar hashing para reducir el tamaño de los vectores sin dejar de mantener lo que hace que los vectores sean útiles: su capacidad para unir elementos conceptualmente similares.

Mediante el uso de hashing, podemos realizar búsquedas de vectores mucho más rápido y hacer que los vectores utilicen menos espacio en general.

Los detalles son muy técnicos, pero lo importante es entender que es posible.

La utilidad continua de la búsqueda de palabras clave

¡Esto no significa que la búsqueda de palabras clave no siga siendo útil! La búsqueda de palabras clave es generalmente más rápida que la búsqueda de vectores.

Además, es más fácil de entender. por qué los resultados se clasifican de la forma en que se clasifican.

Tome el ejemplo de la consulta «texas» y «tejano» y «estado» como posibles coincidencias de palabras. Claramente, «tejano» está más cerca si observamos la comparación desde una perspectiva pura de búsqueda de palabras clave. Sin embargo, no es tan fácil decir cuál estaría más cerca desde un enfoque de búsqueda vectorial.

La búsqueda basada en palabras clave entiende que «texas» es más similar a «tejano» porque utiliza un enfoque basado en el texto para encontrar registros.

Si los registros contienen palabras que son exactamente iguales a las de la consulta (o dentro de un cierto nivel de diferencia para tener en cuenta los errores tipográficos), el registro se considera relevante y vuelve a aparecer en los conjuntos de resultados.

En otras palabras, la búsqueda de palabras clave se centra en la precisión de los resultados de la búsqueda o en garantizar que los registros que se obtienen sean relevantes, incluso si hay menos.

La búsqueda de palabras clave es beneficiosa para las consultas principales

Por esta razón, la búsqueda por palabra clave funciona muy bien para consultas principales: aquellas consultas que son las más populares.

Las consultas principales tienden a ser más cortas y también son más fáciles de optimizar. Eso significa que si, por cualquier motivo, una palabra clave no coincide con el texto correcto dentro de un registro, a menudo se detecta a través de análisis y Puedes agregar un sinónimo.

Debido a que la búsqueda de palabras clave funciona mejor para consultas principales y la búsqueda de vectores funciona mejor para consultas de cola larga, las dos funcionan mejor en conjunto.

Esto se conoce como búsqueda híbrida.

La búsqueda híbrida es cuando un motor de búsqueda utiliza tanto la búsqueda de palabras clave como la de vectores para una sola consulta y clasifica los registros correctamente, sin importar qué enfoque de búsqueda los haya generado.

Clasificación de registros en fuentes de búsqueda

Clasificar registros que provienen de dos fuentes diferentes no es fácil.

Los dos enfoques tienen, por su propia naturaleza, diferentes formas de marcar récords.

La búsqueda de vectores devolverá una puntuación, mientras que algunos motores basados ​​en palabras clave no lo harán. Incluso si los motores basados ​​en palabras clave arrojan una puntuación, no hay garantía de que las dos puntuaciones sean equivalentes.

Si las puntuaciones no son equivalentes, no puede decir que una puntuación de 0,8 del motor de palabras clave sea más relevante que una puntuación de 0,79 del motor de vectores.

Otra alternativa sería ejecutar todos los resultados a través de la puntuación del motor vectorial o del motor de palabras clave.

Esto tiene la ventaja de obtener la recuperación adicional del motor vectorial, pero también tiene algunas desventajas. Esos resultados extra recordados que provienen del motor de vectores no se clasificarán como relevantes a partir de una puntuación de palabra clave o, de lo contrario, ya habrían aparecido en el conjunto de resultados.

Alternativamente, podría ejecutar todos los resultados (palabra clave o de otro tipo) a través de la puntuación de vectores, pero esto es lento y costoso.

Búsqueda de vectores como respaldo

Es por eso que algunos motores de búsqueda ni siquiera intentan combinar los dos, sino que siempre mostrarán primero los resultados de las palabras clave y luego los resultados vectoriales en segundo lugar.

El pensamiento aquí es que si una búsqueda arroja cero o pocos resultados, entonces puede recurrir a los resultados vectoriales.

Recuerde, la búsqueda de vectores está orientada a mejorar el recuerdo o encontrar más resultados, por lo que puede encontrar resultados relevantes que la búsqueda de palabras clave no encontró.

Esta es una solución provisional decente, pero no es el futuro de la verdadera búsqueda híbrida.

La búsqueda híbrida real clasificará múltiples fuentes de búsqueda diferentes en el mismo conjunto de resultados al crear una puntuación que sea comparable entre diferentes fuentes.

Hay mucha investigación sobre este enfoque hoy en día, pero pocos lo están haciendo bien y proporcionando su motor públicamente.

¿Entonces que significa esto para usted?

En este momento, lo mejor que puede hacer es probablemente quedarse quieto y mantenerse al día con lo que está sucediendo en la industria.

La búsqueda híbrida basada en vectores y palabras clave llegará en los próximos años y estará disponible para personas sin equipos de ciencia de datos.

Mientras tanto, la búsqueda de palabras clave sigue siendo valiosa y solo se mejorará cuando se incorpore la búsqueda vectorial más adelante.

Más recursos:


Imagen destacada: pluie_r/Shutterstock





Consultar el artículo en la publicación original

Búsqueda semántica con vectores
A %d blogueros les gusta esto: