¿Por qué la longitud desigual del texto es un problema en el procesamiento del lenguaje natural?

La longitud de texto desigual de alto nivel nos obliga a introducir nuevos hiperparámetros O soluciones alternativas en nuestro modelo. Estos parámetros O la solución no son fundamentales para la PNL, pero están presentes para manejar solo longitudes de texto desiguales.

Longitud de texto desigual en modelos neuronales

La receta básica para procesar texto en modelos neuronales es la siguiente:

  • Convertir texto a tokens
  • Convertir tokens en ID de token
  • Busque vectores de incrustación para identificaciones y construya un tensor 3D que se ingresan a las capas posteriores.

Ahora, la mayoría de las API de redes neuronales son “definir y ejecutar”, por lo que no puede cambiar las dimensiones de varias matrices y tensores durante el tiempo de ejecución. Entonces, ¿cómo manejamos varias longitudes de texto:

  • Repara la longitud del texto. Use relleno O corte para fijar cada secuencia a la longitud del texto seleccionado. Esta es la estrategia más común.
  • Usa el bucketing. Definimos múltiples modelos para diferentes longitudes de texto. Luego divida los datos de entrenamiento entrantes en diferentes cubos. De nuevo no muy elegante.

Entonces, ambas técnicas están agregando complejidad a nuestro modelo:

  • La longitud del texto es un hiperparámetro que debe elegir. Puede utilizar la optimización de hiperparámetros.
  • El número total de cubos es un hiperparámetro.
  • El manejo de diferentes cubos agrega más código a su sistema. Aún más doloroso cuando implementa este modelo en producción.

Las API dinámicas proporcionan una solución a este problema. Los marcos como PyTorch pueden manejar secuencias de longitud variable. Sin embargo, esto hará que no acumulemos nuestros datos de entrenamiento y perderemos masivamente el rendimiento.

Hay muchos más ejemplos de cómo los diferentes modelos manejan longitudes de texto desiguales. En general, todos ellos introducen más complejidad al modelo.

Agregando a la excelente respuesta de @Abhishek Patnia, cuando los textos se rellenan a una longitud fija para tener la dimensionalidad intacta. También deberíamos tener que manejar y eliminar las predicciones debido a las palabras rellenadas, durante el cálculo de métricas como precisión, f1 o perplejidad. De lo contrario, eso conduciría a resultados inexactos.

Esto significa que debe tener un registro de la longitud original de cada una de las oraciones antes del relleno.

Todo el proceso agregaría una capa de complejidad a los modelos existentes.

More Interesting

En la clasificación automática de documentos, ¿cómo trato con categorías en conflicto?

¿Cuáles son las principales diferencias entre los MOOC de aprendizaje automático de Caltech y Stanford?

¿Qué significa la siguiente declaración: las redes neuronales son generalmente paramétricas y optimizadas para producir una estimación puntual?

¿Qué aspecto de los algoritmos de las redes de aprendizaje profundo requieren GPU además de, o en lugar de, CPU, y por qué?

¿Cuáles son algunas características comunes utilizadas en la clasificación basada en audio?

Cómo aplicar mis conocimientos de aprendizaje automático para invertir en el mercado de valores indio

¿La normalización por lotes ha vuelto obsoleta la inicialización de Xavier al entrenar redes neuronales?

¿Cómo puede un estudiante de primer año en la universidad comenzar su viaje para una carrera en ML e IA?

Cómo evaluar los mejores resultados posibles para un clasificador SVM

¿Cómo funcionan AdaGrad / RMSProp / Adam cuando descartan la dirección del degradado?

Podría ser el primer experto en aprendizaje automático en una empresa como consultor o a tiempo completo. En cualquier caso, ¿cuál debería ser mi tasa?

¿Cuáles son las diferentes áreas donde los bancos pueden usar NLP (procesamiento del lenguaje natural) para mejorar las operaciones comerciales?

¿Qué es la programación probabilística?

¿Hay abandonos universitarios que trabajan como científicos de datos o especialistas en aprendizaje automático?

¿Alguien siente que la programación de sistemas tradicionales es muy diferente del aprendizaje automático?