Algorithme NTM (Neural Topic Model) - Amazon SageMaker

Algorithme NTM (Neural Topic Model)

L'algorithme NTM Amazon SageMaker est un algorithme d'apprentissage non supervisé qui permet d'organiser un corpus de documents en rubriques contenant des regroupements de mots en fonction de leur distribution statistique. Les documents contenant de fréquentes occurrences de mots telles que « vélo », « voiture », « former », « kilométrage » et « vitesse » sont susceptibles de partager une rubrique sur les « transports » par exemple. La modélisation de rubrique permet de classer ou de résumer les documents en fonction des rubriques détectées, ainsi que de récupérer les informations ou de recommander du contenu en fonction des similitudes de rubriques. Les rubriques des documents que le modèle NTM apprend sont caractérisées comme une représentation latente, car les rubriques sont déduites des distributions de mots observées dans le corpus. La sémantique des rubriques est généralement déduite en examinant les mots les mieux classés de chaque rubrique. Comme la méthode est sans surveillance, seul le nombre de rubriques, et non les rubriques elles-mêmes, est préspécifié. En outre, il n'y a pas de garantie que les rubriques s'alignent sur la façon dont un être humain pourrait naturellement classer les documents.

La modélisation des rubriques offre un moyen de visualiser le contenu d'un vaste corpus de documents en termes de rubriques acquises. Les documents propres à chaque rubrique peuvent être indexés ou recherchés en fonction des étiquettes de leurs rubriques. Les représentations latentes des documents peuvent également être utilisées pour trouver des documents similaires dans l'espace des rubriques. Vous pouvez également utiliser les représentations latentes de documents que le modèle de rubriques apprend comme entrées d'un autre algorithme supervisé, tel qu'un classificateur de documents. Comme les représentations latentes des documents sont censées capturer la sémantique des documents sous-jacents, les algorithmes basés en partie sur ces représentations sont censés obtenir de meilleurs résultats que ceux fondés sur les seules caractéristiques lexicales.

Même si vous pouvez utiliser à la fois les algorithmes Amazon SageMaker NTM et LDA pour la modélisation des rubriques, ils sont distincts et censés produire des résultats différents sur les mêmes données en entrée.

Pour plus d'informations sur les mathématiques sous-jacents au modèle MNT, consultez Neural Variational Inference for Text Processing.

Interface d'entrée/sortie pour l'algorithme NTM

Le modèle NTM Amazon SageMaker prend en charge quatre canaux de données : entraînement (train), validation, test et auxiliaire (auxiliary). Les canaux de données validation, test et auxiliaire, sont facultatifs. Si vous spécifiez l'un de ces canaux facultatifs, définissez leur paramètre S3DataDistributionType avec la valeur FullyReplicated. Si vous fournissez les données de validation, la perte sur ces données est enregistrée à chaque date « epoch » et le modèle cesse la formation dès qu'il détecte que la perte de validation ne s'améliore pas. Si vous ne fournissez pas de données de validation, l'algorithme s'arrête dès les données de formation, mais cela peut être moins efficace. Si vous fournissez les données de test, l'algorithme reporte la perte de test depuis le modèle final.

Les canaux des données de formation, de validation et de test du modèle NTM prennent en charge les formats de fichier recordIO-wrapped-protobuf (dense et clairsemé) et CSV. Pour le format CSV, chaque ligne doit être représentée densément avec un nombre égal à zéro pour les mots qui ne sont pas présents dans le document correspondant, et qui ont une dimension égale à : (nombre d'enregistrements) * (taille du vocabulaire). Vous pouvez utiliser le mode File (Fichier) ou le mode Pipe (Tube) pour entraîner les modèles sur les données obéissant au format recordIO-wrapped-protobuf ou au format CSV. Le canal auxiliaire permet de fournir un fichier texte contenant du vocabulaire. En fournissant le fichier de vocabulaire, les utilisateurs sont en mesure de voir les principaux mots de chacune des rubriques imprimées dans le journal au lieu de leur ID entier. Le fait d'avoir le fichier de vocabulaire permet aussi à NTM de calculer les scores WETC (Word Embedding Topic Coherence), nouvelle métrique affichée dans le journal qui capture efficacement les similarités entre les mots classés en premier dans chaque rubrique. Le ContentType du canal auxiliaire est text/plain, avec chaque ligne contenant un seul mot, dans l'ordre correspondant à l'ID entier fourni dans les données. Le fichier de vocabulaire doit être nommé vocab.txt et actuellement seul l'encodage UTF-8 est pris en charge.

Pour l´inférence, les types de contenu text/csv, application/json, application/jsonlines et application/x-recordio-protobuf sont pris en charge. Les données fragmentées peuvent aussi être transmises pour application/json et application/x-recordio-protobuf. L'inférence du modèle NTM retourne les application/jsonprédictionsapplication/x-recordio-protobuf ou , qui comportent le vecteur topic_weights de chaque observation.

Consultez le billet de blog et le bloc-notes complémentaires pour en savoir plus sur l'utilisation du canal auxiliaire et des scores WETC. Pour plus d'informations sur la manière de calculer le score WETC, consultez la section Coherence-Aware Neural Topic Modeling. Nous avons utilisé la paire WETC décrite dans ce livre blanc pour le modèle NTM Amazon SageMaker.

Pour plus d'informations sur les formats de fichier en entrée et en sortie, consultez Formats de la réponse NTM pour l'inférence, ainsi que la rubrique Exemples de blocs-notes NTM.

Recommandations relatives aux instances EC2 pour l'algorithme NTM

La formation NTM prend en charge les types d'instance GPU et UC. Nous vous recommandons les instances GPU, mais pour certaines charges de travail, les instances UC peuvent entraîner une réduction des coûts de formation. Les instances UC doivent suffire pour l'inférence.

Exemples de blocs-notes NTM

Afin d'obtenir un exemple de bloc-notes utilisant l'algorithme SageMaker NTM pour découvrir les rubriques des documents à partir d'une source de données synthétique où les distributions des rubriques sont connues, consultez la section Introduction to Basic Functionality of NTM. Pour savoir comment créer des instances de blocs-notes Jupyter et y accéder afin de les utiliser pour exécuter l'exemple dans SageMaker, consultez Utilisation des instances de bloc-notes Amazon SageMaker. Une fois que vous avez créé une instance de bloc-notes et que vous l'avez ouverte, sélectionnez l'onglet SageMaker Examples (Exemples SageMaker) pour afficher la liste de tous les exemples SageMaker. Les exemples de blocs-notes de modélisation de rubrique utilisant les algorithmes NTM se trouvent dans la section Introduction to Amazon algorithms (Présentation des algorithmes Amazon). Pour ouvrir un bloc-notes, cliquez sur son onglet Use (Utiliser) et sélectionnez Create copy (Créer une copie).