Articles

Hash sensible a la localidad (LSH): una solución escalable para la deduplicación de trabajos de múltiples fuentes

Volver al tema: ¿por qué importa la deduplicación?

Utilizamos un corpus masivo de puestos de trabajo de Kalibrr combinado con puestos de trabajo extraídos de varias ofertas de trabajo públicas para entrenar nuestro modelo. Tener varios trabajos en nuestro corpus que contengan descripciones de trabajo similares será perjudicial para el modelo. Ejemplo de lo cual se muestra en la imagen de abajo.

Different jobs with the same descriptions

Duplicate job descriptions associated to varying positions can affect the model’s performance in distinguishing context between different job titles. Dado que el aprendizaje profundo y, en general, el aprendizaje automático, los modelos están capacitados para aprender una función que asigna un conjunto de características a categorías u optimiza un objetivo, tener entradas que son similares pero están asociadas a objetivos diferentes definitivamente afectará la confianza y el rendimiento del modelo.

Además del problema de rendimiento predictivo, entrenar un modelo con un corpus grande donde la mayoría de los datos son duplicados consumirá recursos computacionales innecesarios.

Esta es una ilustración de cómo la comprensión de los datos puede afectar fácilmente el rendimiento del modelo.

Tf-Idf-un algoritmo de deduplicación simple

La detección de duplicados se puede realizar de varias maneras. Representar documentos en representaciones vectoriales simples como tf-idf puede ser un método razonable para descubrir documentos casi similares. Esto se puede hacer comparando métricas de similitud como coseno o similitud euclidiana entre vectores de documentos.

Mostramos en el siguiente fragmento cómo podemos aplicar el algoritmo para identificar textos casi idénticos.

Tf-Idf aplica a casi duplicar el texto de descubrimiento.

Aunque este método funciona en cuerpos pequeños, es bastante difícil de escalar debido a la dimensionalidad resultante de los vectores después de transformar los documentos. También tenga en cuenta que el script tardó 319 ms en ejecutar toda la canalización. Esta es una de las muchas manifestaciones de la» maldición de la dimensionalidad»: la alta dimensionalidad de la transformación impacta tanto en la complejidad del espacio como en el tiempo del análisis.

Hashing Sensible a la Localidad (LSH): la técnica escalable

Una solución a este problema es el Hashing Sensible a la Localidad (LSH). El método LSH puede realizar análisis de casi similitud en conjuntos de datos masivos. Utiliza hash para mapear documentos en cubos con dimensiones que son órdenes de magnitud inferiores a una transformación tf-idf equivalente. Esta propiedad hace que LSH sea conveniente de usar en aplicaciones a gran escala, como la minería de texto.

LSH utiliza el algoritmo minhash para calcular la probabilidad de colisión. Se ha demostrado que la probabilidad de colisión en LSH usando minhash es equivalente a la métrica de similitud de Jaccard. En resumen, la similitud de Jaccard calcula la intersección de dos conjuntos divididos por la unión de los elementos en cada conjunto. La fórmula de la cual se muestra a continuación.

La similitud de Jaccard cuantifica la siguiente idea — dos grupos que tienen más elementos comunes probablemente son similares.

Aquí hay un fragmento sobre LSH según wikipedia:

El hash sensible a la localidad (LSH) reduce la dimensionalidad de los datos de alta dimensión. LSH hashea los elementos de entrada para que los elementos similares se asignen a los mismos «cubos» con alta probabilidad (el número de cubos es mucho menor que el universo de posibles elementos de entrada). LSH difiere de las funciones hash convencionales y criptográficas porque su objetivo es maximizar la probabilidad de una» colisión » para elementos similares. El hash sensible a la localidad tiene mucho en común con la agrupación de datos y la búsqueda de vecinos más cercanos.

LSH en el trabajo

Mostramos a continuación una implementación de LSH, utilizando este módulo, aplicada al mismo ejemplo ilustrado arriba.

LSH aplica a casi duplicar el texto de descubrimiento.

Los resultados muestran que toda la canalización es aproximadamente 4 veces más rápida que la versión Tf-Idf. Esta diferencia es más drástica una vez que se utiliza un conjunto de datos más grande. Hemos excluido el análisis del rendimiento de la memoria ahora, pero escribiremos un punto de referencia más completo entre los dos métodos en una publicación separada.

Hemos aplicado LSH a nuestro corpus y hemos visto que algunas publicaciones de trabajo con contenido casi similar aparecen más de 200 veces.

Pensamientos finales

Mientras que Tf-Idf es un modelo más popular y familiar para trabajar con similitud de texto; si se trata de conjuntos de datos que se escalan, LSH es un modelo más conveniente. Incluso para conjuntos de datos más pequeños, LSH ofrece una mejora considerable en el tiempo computacional.

Poder deduplicar correctamente un corpus reduce el ruido en los datos de entrenamiento, ahorra recursos computacionales y ayuda a aprender un modelo más preciso para nuestro caso de uso.

Creemos que hay multitud de problemas a los que se puede aplicar LSH, como:

  • Limpieza de imagen duplicada: aplique LSH a las funciones de imagen y conserve solo una imagen única de cada bandeja.
  • Chatbots: identifica entradas similares y entrena un modelo para identificar la mejor respuesta de la base de conocimientos.
  • Motor de recomendaciones: agrupa elementos con características casi similares y avala elementos a los usuarios.

¡Siéntase libre de explorar y probar LSH para resolver sus propios problemas! 🙂

Referencias en LSH

Estos artículos ilustran bastante bien cómo funciona LSH y también muestran ejemplos.

Aquí hay un curso sobre la minería de conjuntos de datos masivos que analiza LSH.

¡Síguenos!

Publicamos continuamente artículos sobre Aprendizaje Automático, Aprendizaje Profundo, PNL, Programación Probabilística y proyectos de análisis que realizamos en Kalibrr Research. ¡Síguenos para recibir notificaciones en nuestras próximas publicaciones! 🙂