Il s'agit d'une continuation de la classification des documents à l'aide du Microsoft Cognitive Toolkit (CNTK).
Dans la partie 2, les données de document préparées dans la partie 1 seront utilisées pour classer les documents par CNTK. On suppose que CNTK et NVIDIA GPU CUDA sont installés.
Natural Language: Doc2Vec Part1 --livedoor NEWS Corpus a préparé des données de formation et des données de vérification.
Dans la partie 2, nous allons créer un modèle Doc2Vec et classer les phrases.
Doc2Vec Doc2Vec [1] [2] [3] est une extension de Word2Vec. Le Doc2Vec mis en œuvre cette fois est un modèle simple qui fait la moyenne de la sortie de la couche incorporée de tous les mots contenus dans un document et classe à quelle catégorie le document appartient.
La valeur initiale de chaque paramètre utilise le réglage par défaut de CNTK. Dans la plupart des cas, il a une distribution uniforme de Glorot [4].
Word2Vec a adopté Sampled Softmax [5] pour accélérer la couche de sortie pour prédire les mots, mais ce document Puisque la classification est de 9 catégories, j'ai utilisé la fonction Softmax normale et l'erreur d'entropie croisée.
Adam [6] a été utilisé comme algorithme d'optimisation. Le taux d'apprentissage d'Adam est de 0,01, l'hyperparamètre $ β_1 $ est de 0,9 et $ β_2 $ est la valeur par défaut pour CNTK.
La formation de modèle a couru 10 Epoch par formation mini-batch.
・ Processeur Intel (R) Core (TM) i7-6700K 4,00 GHz ・ GPU NVIDIA GeForce GTX 1060 6 Go
・ Windows 10 Professionnel 1909 ・ CUDA 10.0 ・ CuDNN 7.6 ・ Python 3.6.6 ・ Cntk-gpu 2.7 ・ Pandas 0.25.0
Le programme de formation est disponible sur GitHub.
doc2vec_training.py
Training loss and error
La figure ci-dessous est une visualisation de la fonction de perte et des journaux de taux de fausse reconnaissance pendant l'entraînement. Le graphique de gauche montre la fonction de perte, le graphique de droite montre le taux de fausse reconnaissance, l'axe horizontal montre le nombre d'époques et l'axe vertical montre la valeur et le taux de fausse reconnaissance de la fonction de perte, respectivement.
Validation accuracy and confusion matrix
Lorsque la performance a été évaluée à l'aide des données de vérification séparées lors de la préparation des données de la partie 1, les résultats suivants ont été obtenus.
Accuracy 90.00%
La figure ci-dessous est une visualisation de la matrice mixte des données de vérification. La direction de la colonne représente la prédiction et la direction de la ligne représente la réponse correcte.
J'ai essayé de savoir quels mots d'une phrase sont importants lors de la classification de documents en utilisant la rétropropagation des dégradés.
dojujo-tsushin
1 femme célibataire
2 filles adultes
3 Saori Abe
4 femme
5 Ne te marie pas
6 ans
7 moi
8 mariés
9 valeurs
10 exemplaires
Les mots sur les femmes sont soulignés dans les articles de la newsletter allemande.
it-life-hack
1 smartphone
2 services
3 services
4 applis
5 google
6 google
7 google
8 google
9 google
10 google
Les mots sur l'informatique sont soulignés dans l'article IT Life Hack.
sports-watch
1 formation
2 nombre de places
3 clubs
4 clubs
5 maison
6 Haut
7 Vision
8 Yoshida
9 Yoshida
Dix Yoshida
L'article de Sports Watch met l'accent sur les mots sur le sport.
Natural Language : Doc2Vec Part1 - livedoor NEWS Corpus Natural Language : Word2Vec Part2 - Skip-gram model
Recommended Posts