Quelle est la différence entre les RNN de génération de texte à base de mots et à base de caractères?


15

En lisant sur la génération de texte avec les réseaux de neurones récurrents, j'ai remarqué que certains exemples ont été mis en œuvre pour générer du texte mot par mot et d'autres caractère par caractère sans vraiment expliquer pourquoi.

Alors, quelle est la différence entre les modèles RNN qui prédisent la base texte par mot et ceux qui prédisent la base texte par caractère ? Les RNN basés sur des mots nécessitent-ils une taille de corpus plus grande? Les RNN basés sur les caractères génèrent-ils mieux? Peut-être que la seule différence est la représentation d'entrée (encodage à chaud, intégration de mots)? Lesquels choisir pour la génération de texte?

Réponses:


15

Voici ce que j'ai appris récemment.

Évidemment, lorsque nous parlons de RNN de génération de texte, nous parlons de modèles de langage RNN. Lorsque nous posons des questions sur les RNN de génération de texte basé sur des mots / caractères, nous posons des questions sur les modèles de langage (LM) basés sur des mots / caractères .

Les LM basés sur des mots affichent une précision plus élevée et un coût de calcul inférieur à ceux des LM basés sur des caractères .

Cette baisse de performances est peu probable en raison de la difficulté pour le modèle au niveau des caractères de capturer une mémoire à court terme plus longue, car les réseaux récurrents de mémoire à long terme plus longue (LSTM) fonctionnent mieux avec une entrée basée sur des mots.

En effet, les RNN LM basés sur les caractères nécessitent une couche cachée beaucoup plus grande pour modéliser avec succès les dépendances à long terme, ce qui signifie des coûts de calcul plus élevés.

Par conséquent, nous pouvons dire que

l'une des différences fondamentales entre les modèles au niveau des mots et au niveau des caractères réside dans le nombre de paramètres auxquels le RNN doit accéder pendant la formation et le test. Plus la couche d'entrée et de sortie de RNN est petite, plus la couche cachée entièrement connectée doit être grande, ce qui rend la formation du modèle coûteuse.

Cependant, sur la base char- langues modèle lms RNN mieux avec une morphologie riche tels que finition, turc, russe , etc. En utilisant la base de mots RNN LMs pour modéliser ces langues est difficile , si possible , du tout et n'est pas conseillé.

L'analyse ci-dessus est particulièrement intéressante lorsque vous regardez le texte de sortie, généré par des RNN basés sur des caractères:

La surprise des investisseurs n'allait pas lever d'argent. Je ne suis pas l'entreprise avec le temps là-bas sont tous intéressants rapidement, ne pas avoir à descendre des mêmes programmeurs.

Alors que le simple maximum de vraisemblance basé sur les caractères avec une fenêtre de 13 caractères offre ceci:

Et quand elle a fait beaucoup de briques solides. Il les a empilés en tas et lui a piétiné les pieds. Le médecin lui a diagnostiqué une chauve-souris. La fille et son petit ami lui ont demandé de sortir.

Bien sûr, j'ai choisi l'exemple (en fait, la plupart des exemples ML LM étaient meilleurs que tout texte généré par RNN que j'ai lu jusqu'à présent) et ce petit ML LM a été formé sur un corpus plus simple, mais vous avez l'idée: une probabilité conditionnelle simple génère mieux textes que RNN à base de caractères beaucoup plus complexe .

Les RNN LM basés sur les caractères peuvent imiter des séquences grammaticalement correctes pour un large éventail de langues, nécessitent une couche cachée plus grande et plus coûteuse en calcul tandis que les RNN LM basés sur les mots s'entraînent plus rapidement et génèrent des textes plus cohérents et pourtant, même ces textes générés sont loin d'avoir un sens réel .


1
Excellent commentaire. Il convient d'ajouter que pour certains problèmes, l'un ou l'autre pourrait avoir plus de sens indépendamment des préoccupations de calcul. Par exemple, si votre objectif est d'étudier les vecteurs de mots pour trouver des relations entre les mots ou si vous souhaitez générer un texte basé sur un sujet de mot, vous devez opter pour un RNN basé sur des mots. Et, inversement, il y a probablement des problèmes où le RNN basé sur les caractères est la voie à suivre. Cela dépend également de ce que l'utilisateur essaie de faire.
Ricardo Cruz

Je n'ai pas compris votre dernier commentaire: "Le RNN LM basé sur les chars (...) ne parvient pas à donner un sens réel." Je n'ai pas vu non plus de RNN basé sur Word. Pourquoi avez-vous isolé des modèles basés sur des caractères ici?
Ricardo Cruz

J'ai mis à jour la fin ambiguë.
minéraux

Très bonne réponse! En effet, quelqu'un pourrait facilement ajouter que cela dépend beaucoup de la tâche impliquée, de la taille de votre ensemble de données, des langues et du niveau de prétraitement que vous êtes prêt à faire. Par exemple, pour traiter des langages de morphologie plus riches et gérer des mots hors vocabulaire (OOV), vous pouvez également utiliser le modèle de mots avec lemmatisation, étiquetage pos et ajouter des préfixes, suffixes, etc.
Claude COULOMBE

5

Il y a une belle écriture sur la modélisation de la langue d'un milliard de mots . Voici quelques extraits:

Les modèles au niveau des mots ont un avantage important sur les modèles au niveau des caractères.
Prenons l'exemple suivant (une citation de Robert A. Heinlein):

Les lève-tôt ne progressent pas. Il est fait par des hommes paresseux qui essaient de trouver des moyens plus faciles de faire quelque chose.

Après la tokenisation, le modèle au niveau des mots peut afficher cette séquence comme contenant 22 jetons. D'un autre côté, le niveau du personnage verra cette séquence comme contenant 102 jetons. Cette séquence plus longue rend la tâche du modèle de caractère plus difficile que le modèle de mot, car elle doit prendre en compte les dépendances entre plus de jetons sur plus de pas de temps. Un autre problème avec les modèles de langage de caractères est qu'ils doivent apprendre l'orthographe en plus de la syntaxe, de la sémantique, etc. Dans tous les cas, les modèles de langage de mots auront généralement moins d'erreurs que les modèles de caractères

Le principal avantage du caractère par rapport aux modèles de langage de mots est qu'ils ont un vocabulaire très petit. Par exemple, l'ensemble de données GBW contiendra environ 800 caractères par rapport à 800 000 mots (après élagage des jetons basse fréquence). En pratique, cela signifie que les modèles de caractères nécessiteront moins de mémoire et auront une inférence plus rapide que leurs homologues de mots. Un autre avantage est qu'ils ne nécessitent pas de tokenisation comme étape de prétraitement.


1

À mon avis, les RNN basés sur les caractères fonctionneront également mieux, mais ils ont besoin de beaucoup plus de données que les modèles basés sur les mots et les modèles basés sur les caractères doivent s'entraîner pendant une période beaucoup plus longue. Je dirais qu'il s'agit davantage d'un essai et d'une erreur que d'un compromis entre les données et la puissance de calcul disponibles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.