¿Cuál es la diferencia entre los RNN de generación de texto basados ​​en palabras y basados ​​en caracteres?

15

Mientras leía sobre la generación de texto con redes neuronales recurrentes, noté que algunos ejemplos se implementaron para generar texto palabra por palabra y otros carácter por carácter sin decir realmente por qué.

Entonces, ¿cuál es la diferencia entre los modelos RNN que predicen texto por palabra y los que predicen texto por palabra ? ¿Los RNN basados ​​en palabras requieren un tamaño de cuerpo mayor? ¿RNN basado en char generaliza mejor? ¿Quizás la única diferencia es la representación de entrada (codificación única, incrustaciones de palabras)? ¿Cuáles elegir para la generación de texto?

minerales
fuente

Respuestas:

15

Aquí está lo que aprendí recientemente.

Obviamente, cuando hablamos de RNN de generación de texto, estamos hablando de modelos de lenguaje RNN. Al preguntar acerca de los RNN de generación de texto basados en palabras / char , estamos preguntando sobre los modelos de lenguaje RNN basados en palabras / char (LM).

Los LM basados ​​en palabras muestran una mayor precisión y un menor costo computacional que los LM basados ​​en caracteres.

Esta caída del rendimiento es poco probable debido a la dificultad para que el modelo de nivel de caracteres capture memoria a corto plazo más larga, ya que también las redes recurrentes de memoria a corto plazo más larga (LSTM) funcionan mejor con entrada basada en palabras.

Esto se debe a que los LM RNN basados ​​en caracteres requieren una capa oculta mucho más grande para modelar con éxito dependencias a largo plazo, lo que significa mayores costos computacionales.

Por lo tanto, podemos decir que

Una de las diferencias fundamentales entre los modelos de nivel de palabra y nivel de caracteres está en la cantidad de parámetros a los que el RNN tiene acceso durante el entrenamiento y la prueba. Cuanto más pequeña es la capa de entrada y salida de RNN, más grande debe ser la capa oculta totalmente conectada, lo que hace que la capacitación del modelo sea costosa.

Sin embargo, los RNN LM basados ​​en caracteres son mejores modelos de idiomas con una morfología rica como el finés, el turco, el ruso, etc. Usar RNN LM basados ​​en palabras para modelar dichos idiomas es difícil si es posible, y no se recomienda.

El análisis anterior tiene sentido especialmente cuando observa el texto de salida, generado por RNN basados ​​en caracteres :

Los sorprendidos en los inversores no iban a recaudar dinero. No soy la compañía con el tiempo en que todo es interesante rápidamente, no tengo que salir de los mismos programadores.

Si bien Simple Likelihood LM basado en caracteres con una ventana de 13 caracteres ofrece esto:

Y cuando hizo muchos ladrillos sólidos. Los apiló en montones y le pisoteó los pies. El médico lo diagnosticó con un murciélago. La niña y su novio la invitaron a salir.

Por supuesto, elegí el ejemplo (en realidad, la mayoría de los ejemplos de ML LM se veían mejor que cualquier texto generado por RNN que haya leído hasta ahora) y este pequeño ML LM fue entrenado en un corpus más simple, pero se entiende la idea: la probabilidad condicional directa genera mejor textos que RNN mucho más complejo basado en char .

Los RNN LM basados ​​en Char pueden imitar secuencias gramaticalmente correctas para una amplia gama de idiomas, requieren una capa oculta más grande y computacionalmente más costosos, mientras que los RMN LM basados ​​en palabras se entrenan más rápido y generan textos más coherentes y, sin embargo, incluso estos textos generados están lejos de tener sentido real .

minerales
fuente
1
Excelente comentario Debe agregarse que, para algunos problemas, uno u otro podría tener más sentido independientemente de las preocupaciones computacionales. Por ejemplo, si su objetivo es estudiar vectores de palabras para encontrar relaciones entre palabras o si desea generar un texto basado en un tema de palabras, entonces debe ir con RNN basado en palabras. Y, por el contrario, probablemente haya problemas en los que RNN basado en char es el camino a seguir. También depende de lo que el usuario esté tratando de hacer.
Ricardo Cruz
No entendí tu último comentario: "RNN LM basado en Char (...) se queda corto cuando se trata de tener sentido real". Tampoco he visto un RNN basado en Word que tenga sentido. ¿Por qué aislaste los modelos basados ​​en char aquí?
Ricardo Cruz
He actualizado el final ambiguo.
minerales
¡Gran respuesta! De hecho, alguien podría agregar fácilmente que depende mucho de la tarea involucrada, el tamaño de su conjunto de datos, los idiomas y el nivel de preprocesamiento que está dispuesto a hacer. Por ejemplo, para procesar de morfología más ricos y gestionar de vocabulario (OOV) palabra, también se puede utilizar la palabra-modelo con lematización, etiquetado POS, y añadir prefijos, sufijos, etc.
Claude COULOMBE
5

Hay un buen artículo sobre el lenguaje que modela mil millones de palabras . A continuación se presentan algunos extractos:

Los modelos a nivel de palabra tienen una ventaja importante sobre los modelos a nivel de personaje.
Tome la siguiente secuencia como ejemplo (una cita de Robert A. Heinlein):

Los madrugadores no progresan. Está hecho por hombres perezosos que intentan encontrar formas más fáciles de hacer algo.

Después de la tokenización, el modelo de nivel de palabra podría ver esta secuencia como que contiene 22 tokens. Por otro lado, el nivel de personaje verá esta secuencia como que contiene 102 tokens. Esta secuencia más larga hace que la tarea del modelo de caracteres sea más difícil que la palabra modelo, ya que debe tener en cuenta las dependencias entre más tokens durante más pasos de tiempo. Otro problema con los modelos de lenguaje de caracteres es que necesitan aprender ortografía además de sintaxis, semántica, etc. En cualquier caso, los modelos de lenguaje de palabras generalmente tendrán un error menor que los modelos de caracteres.

La principal ventaja de los personajes sobre los modelos de lenguaje de palabras es que tienen un vocabulario realmente pequeño. Por ejemplo, el conjunto de datos GBW contendrá aproximadamente 800 caracteres en comparación con 800,000 palabras (después de podar tokens de baja frecuencia). En la práctica, esto significa que los modelos de caracteres requerirán menos memoria y tendrán una inferencia más rápida que sus equivalentes de palabras. Otra ventaja es que no requieren tokenización como paso de preprocesamiento.

Neil
fuente
1

En mi opinión, los RNN basados ​​en caracteres también funcionarán mejor, pero necesitan mucha más información que los modelos basados ​​en palabras y los modelos basados ​​en caracteres necesitan entrenarse durante un período de tiempo mucho más largo. Diría que es más una prueba y error, así como una compensación entre los datos y la potencia de cálculo disponible.

Vivek Khetan
fuente