--Encodeur: ** BERT ** --Décodeur: ** Transformateur **
Un modèle typique de codeur-décodeur (Seq2Seq). Pour Seq2Seq, cette zone est utile.
Implémentation de Seq2seq par PyTorch
BERT est utilisé pour le codeur et le transformateur est utilisé pour le décodeur. Le modèle de pré-apprentissage BERT utilisé est celui publié au laboratoire Kurohashi / Kawahara de l'Université de Kyoto. ** BERT peut être un encodeur hautes performances, mais pas un décodeur ** </ font>. La raison est qu'il ne peut pas recevoir l'entrée du codeur. Cependant, puisque BERT est structurellement un ensemble de transformateurs, il peut être considéré comme presque le même.
** Livedoor News ** a été utilisé comme ensemble de données pour la formation du modèle. Les données de formation sont d'environ 100 000 articles, les données de vérification d'environ 30 000 articles
--Dataset: Livedoor News --Données de formation: 100000 articles --Données de validation: 30000 articles --Nombre maximum de mots d'entrée: 512 mots --Mots de sortie maximum: 128 mots
Le côté droit de l'image ci-dessus, la partie inférieure est ** texte (texte d'entrée) **, et la partie entourée par le cadre rouge ci-dessus est ** résumé (sortie) **. Si le texte dépasse 512 mots, les mots en dessous sont tronqués. 128 mots pour un résumé. ** Cette technique est souvent utilisée dans les tâches de récapitulation de phrases et est basée sur l'idée que «les longues phrases contiennent souvent des éléments importants écrits dès le début». ** </ font>
Il existe deux principaux types de prétraitement cette fois. "Word split" et "Word Piece".
** MeCab + NEologd ** est utilisé pour la division des mots. → Pourquoi utiliser l'analyse morphologique?
Comme le montre l'image ci-dessus, des langues telles que l'anglais peuvent être divisées en mots avec des espaces demi-largeur, mais le japonais ne le peut pas. Par conséquent, il est divisé par l'outil d'analyse morphologique.
Par conséquent, une méthode appelée "** WordPiece **" est souvent utilisée. ** WordPiece consiste à diviser davantage les mots inconnus (mots qui ne sont pas dans le vocabulaire) et à les exprimer en combinant des mots qui sont dans le vocabulaire ** </ font>. En particulier,
Cela ressemble à l'image ci-dessus. Dans ce cas, le mot "Garden Village Hotel" ne figurait pas dans la liste de vocabulaire, il est donc exprimé par une combinaison de mots dans le vocabulaire tels que "Garden", "Villa" et "Hotel".
Comme le montre la figure ci-dessus, ** texte d'entrée ** (texte de l'article) est défini dans l'encodeur, et ** texte de sortie ** (texte de résumé) est défini dans le décodeur pour l'apprentissage.
Le journal au moment de l'apprentissage est le suivant.
En regardant l'image ci-dessus, on peut voir que la précision sur le côté gauche augmente progressivement et la perte sur le côté droit diminue progressivement.
Ce qui suit est un article BERT, veuillez donc consulter ici pour plus de détails. https://arxiv.org/abs/1810.04805
Contrairement aux modèles ordinaires, BERT a deux processus d'apprentissage.
Le pré-apprentissage consiste à former une tâche spécifique avec le modèle BERT seul. Cela permet d'apprendre le vecteur d'incorporation (vecteur de calque d'incorporation) de chaque mot. En d'autres termes, ** vous pouvez apprendre la signification d'un seul mot **.
L'apprentissage par transfert consiste à combiner un modèle pré-entraîné avec d'autres couches pour former vos propres tâches. Cela vous permet d'apprendre ** en peu de temps, par rapport à l'apprentissage de la tâche à partir de zéro **. De plus, comme le modèle utilisant BERT produit un grand nombre de SOTA (état de l'art), il est ** plus précis que le modèle appris à partir de zéro **.