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:
- ¿Cuáles son algunos de los grandes usos de Google TensorFlow?
- ¿Para qué se utiliza el aprendizaje automático?
- ¿Existe algún modelo de aprendizaje profundo o algún otro método que ingrese como una colección de documentos y pueda predecir la probabilidad de un nuevo documento?
- ¿Cuáles son algunas aplicaciones actuales de las redes neuronales convolucionales además del análisis de imagen, video y discurso?
- ¿Pueden Kmeans y el algoritmo DBSCAN dar el mismo resultado para un conjunto de datos en particular?
- 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.