PC & Mobile

Enseigner aux ordinateurs à comprendre le sentiment des tweets

Enseigner aux ordinateurs à comprendre le sentiment des tweets


Comprendre si un tweet est censé être positif ou négatif est un problème avec lequel les humains ont rarement des problèmes. Pour les ordinateurs, cependant, il s’agit d’une histoire totalement différente: une structure de phrase compliquée, un sarcasme, un langage figuré, etc. rendent difficile pour les ordinateurs le jugement du sens et du sentiment d’une phrase. Toutefois, l’évaluation automatique du sentiment d’un tweet permettrait d’exploiter à grande échelle la population sur diverses questions et d’aider à comprendre pourquoi certains groupes de la population ont certaines opinions.

À un niveau plus fondamental, comprendre le sentiment du texte est un élément clé de la compréhension du langage naturel et donc une tâche essentielle à résoudre si nous voulons que les ordinateurs puissent communiquer efficacement avec nous.

Dans ce billet de blog, je présenterai les résultats d'un petit projet de recherche mené dans le cadre du projet SoBigData de l'Université de Sheffield. Nous avons testé différentes approches de traitement de texte et analysé le degré de sentiment qu’ils sont capables de capter. Continuez votre lecture pour une visite complète du projet et des résultats!

introduction

L'objectif du projet était de tester dans quelle mesure les ordinateurs peuvent comprendre le sentiment du texte à l'aide de l'apprentissage automatique. Pour ce faire, nous avons alimenté l'ordinateur avec de nombreux tweets étiquetés comme ayant un sentiment positif, neutre ou négatif par les humains. Chaque sujet a également un sujet associé, ce qui est important car une phrase peut avoir un sentiment très différent selon le sujet traité. Par exemple, le mot «élevé» est positif si nous parlons de qualité, mais négatif si nous parlons de prix. «Vert» est positif lorsqu’on discute de questions environnementales, mais peut être neutre lorsqu’il est question d’art. La tâche de l’ordinateur consiste maintenant à prédire l’opinion donnée à un tweet et à un sujet associé.

Comment les ordinateurs lisent-ils le texte?

Si vous n'avez pas d'expérience avec l'apprentissage automatique, cela peut sembler une question étrange. Mais l’apprentissage automatique étant basé sur des statistiques, tout système d’apprentissage automatique doit être représenté par des chiffres. Transformer du texte en chiffres se produit avec ce qu'on appelle modèles d'intégration, et c’est un domaine de recherche majeur en lui-même. Un modèle d'inclusion transforme un mot ou une phrase en un vecteur, qui est ajusté en permanence pendant l'entraînement, de sorte que les mots et les phrases ayant une signification similaire se retrouvent avec des vecteurs similaires. Idéalement, le vecteur devrait donc capturer le sens, le contexte, le sentiment, etc. d'une phrase, mais ce n'est pas une tâche facile, c'est pourquoi de nombreux modèles d'intégration différents ont été développés. En règle générale, les nouveaux modèles fonctionnent mieux, mais ils peuvent également être adaptés à des tâches spécifiques.

Des systèmes complets d'apprentissage automatique capables de réaliser des analyses de pointe sur les sentiments, par exemple, sont des bêtes. Ils sont constitués de plusieurs composants, parmi lesquels les incorporations de texte ne sont qu’un, et il est généralement très difficile de déterminer quelles parties des systèmes constituent les goulots d’étranglement liés aux performances. Comme tout texte doit être représenté comme un vecteur pour qu'un système d'apprentissage automatique puisse fonctionner avec ce dernier, toute analyse, y compris la prédiction du sentiment d'un tweet, repose fortement sur le modèle d'incorporation choisi. Mais cela ne veut pas dire que d'autres parties du système pourraient être d'égale importance.

Pour rendre le rôle et les contributions des textes incorporés plus transparents, nous avons essayé de tester leurs performances pour prédire les sentiments avec un système conçu pour être le moins possible obscurci.

Comment pouvons-nous prédire le sentiment?

Notre approche pour prédire le sentiment est assez simple et s’inspire du filtrage collaboratif. Chaque tweet a un sujet associé et il est essentiel que le sentiment soit évalué par rapport au sujet (puisqu'un énoncé peut facilement être positif pour un aspect et négatif pour un autre). Comme le tweet et le sujet correspondant sont tous deux représentés par des vecteurs de même dimensionnalité, nous pouvons prendre le produit intérieur des deux, nous donnant un nombre unique représentant le sentiment. Il n’existe aucune raison pour que cela fonctionne avec des opérations d’emboîtement «brutes». Par conséquent, avant de prendre le produit intérieur, nous apprenons et appliquons transformation (plus de détails plus tard) dans l’espace vectoriel. De cette façon, nous pouvons obtenir le sentiment même lorsque le sujet n'a pas été vu auparavant.

Nous voulons être capables de prédire trois types de sentiments différents (positif, neutre, négatif). Trois différentes transformations de l’espace de sujet: une prédiction du sentiment positif, une prédiction du sentiment neutre et une prédiction du sentiment négatif. Lorsque nous prenons le produit intérieur du tweet avec chacun des trois vecteurs de sujet transformés, nous obtenons trois chiffres qui peuvent être compris comme le pari du modèle sur chacun des sentiments - plus le nombre est élevé, plus le modèle croit que tel est le sentiment. du tweet.

Résumé du projet

Nous voulons tester la quantité d’informations véhiculées par différents mots intégrés au sentiment d’un tweet. Pour prédire le sentiment, nous formons un modèle qui apprend trois transformations du vecteur de sujet de sorte que le produit intérieur du tweet et chacun des trois vecteurs de sujet constituent le vote du modèle pour chacun des trois sentiments.

Nous avons plusieurs choix à faire. Tout d’abord, nous devons choisir les modèles d’incorporation à tester. Deuxièmement, nous devons décider de la transformation des vecteurs de sujet. Troisièmement, nous avons besoin d'un ensemble de données de tweets étiquetés avec le sentiment de la part des humains, de sorte que nous puissions former et tester le modèle.

Décider de la mise en place

Le jeu de données

Nous avons utilisé le jeu de données anglais fourni pour la tâche 4 de SemEval-2017. Il consiste en environ 26 000 tweets sur différents sujets, tous étiquetés manuellement avec sentiment. Nous conservons la répartition définie par les organisateurs de tâches, ce qui représente environ 20 000 tweets pour la formation et 6 000 tweets pour les tests.

Les modèles d'intégration

Nous avons choisi de tester les quatre modèles d'intégration suivants:

  1. Les modèles de langage Neural-Net (NNLM) à partir de 2003, l’une des premières tentatives d’apprentissage de l’intégration de mots avec des réseaux de neurones. Le modèle construit des vecteurs de mots de 128 dimensions et fonctionnera comme une sorte de base incorporant des mots, que les modèles les plus avancés devraient clairement battre.
  2. Modèles de langage Neural-Net comme ci-dessus, mais avec des vecteurs de mots normalisés, dont on a parfois observé qu'ils produisaient de meilleurs résultats.
  3. Les inscriptions à partir de modèles de langage (ELMo) début 2018, qui ont permis d'obtenir des résultats de pointe dans de nombreuses tâches différentes. Construit 1024 vecteurs de mots dimensionnels.
  4. Universal Sentence Encoder (USE) à partir de début 2018, un modèle formé à la recherche de mots incorporés utiles pour de nombreuses tâches. Construit 512 vecteurs de mots dimensionnels.

Les quatre modèles d'intégration sont disponibles auprès de TensorFlow Hub.

Les modèles de transformation

Choisir un modèle pour transformer l'espace vectoriel du sujet est délicat. D'une part, nous voudrions que l'espace vectoriel d'origine soit aussi inchangé que possible. D'autre part, nous souhaiterions que la transformation soit suffisamment souple pour que les informations contenues dans le mot imbriquées puissent réellement être utilisées pour prédire le sentiment. Nous avons donc décidé de tester deux modèles de transformation différents:

  • Une transformation simple et affine. Une telle transformation ne peut représenter que les transformations les plus élémentaires telles que la mise à l'échelle, la rotation, le cisaillement et la translation. Ainsi, dans un certain sens, cela testera la quantité d'informations capturées par les incorporations «brutes».
  • Une transformation plus complexe, représentée par un réseau de neurones. Nous utilisons un réseau de neurones avec deux couches cachées, chacune correspondant à 8 fois la dimensionnalité d'intégration, les fonctions d'activation ReLU et les abandons. Le réseau prend en entrée le vecteur de sujet et génère le vecteur de sujet transformé. Une telle transformation peut fausser l’espace de sujet de manière extrêmement non linéaire, ce qui devrait permettre d’obtenir des précisions plus élevées. Cependant, il sera plus difficile de s’entraîner et d’être trop enclin à trop adapter le jeu d’entraînement.

Le modèle final apprendra trois transformations de chacun des types ci-dessus, correspondant aux trois sentiments que nous voulons prédire.

Correction des déséquilibres dans le jeu de données

Il est toujours difficile de travailler avec des données réelles. En particulier, si un seul sentiment ou un seul sujet est énormément surreprésenté, le modèle pourrait se concentrer entièrement sur cela pendant la formation, ce qui permettra de prédire d'autres sentiments ou d'utiliser d'autres sujets de façon très différente. Au lieu de cela, nous voulons nous assurer que le modèle accorde un poids égal à tous les sujets et à tous les sentiments, quelle que soit leur fréquence. L’effet de ces corrections est plutôt dramatique et une bonne leçon à garder à l’esprit, alors prenons quelques minutes à ce sujet.

Déséquilibres dans le jeu de données

En traçant le nombre de tweets par sentiment, les jeux de données montrent des déséquilibres de classe importants.

Répartition des classes de sentiment pour la formation et le test.

Le sentiment particulièrement positif est largement surreprésenté dans les données sur la formation - en fait, près de 73% des tweets sur la formation ont un sentiment positif. Cela signifie que le modèle bénéficiera beaucoup plus d'apprendre à prédire le sentiment positif que tout autre. Le sentiment neutre, en revanche, est associé à moins de 10% des tweets, et le modèle peut simplement apprendre à ignorer ce sentiment si cela permet de prédire un sentiment positif.

Les distributions dans l'ensemble de test sont remarquablement différentes. Le sentiment négatif est plus abondant que le positif, et aucun tweet n’a un sentiment neutre. Cela rend d'autant plus important que le modèle traite tous les sentiments de la même manière.

En effet, un test avec le modèle de transformation affine sur NNLM montre que le modèle formé favorise clairement le sentiment positif en raison de sa prévalence dans les données de formation. Dans ce test, les sujets des données de formation ont été divisés en une formation et un ensemble d’évaluations représentant respectivement 90% et 10% des sujets.

Une matrice de confusion montrant le sentiment réel des tweets par rapport aux prévisions du modèle. Les pourcentages indiquent la fréquence à laquelle un modèle exprimait un sentiment réel spécifique. Un modèle parfait aurait 100% le long de la diagonale, ce qui signifie que les prédictions sont toujours correctes. Ici, cependant, on voit que le modèle choisit souvent de prédire un sentiment positif, quel que soit le sentiment réel.

La figure montre une matrice de confusion pour les prédictions de sentiment, chaque colonne correspondant à un sentiment prédit. Chaque ligne indique le sentiment réel, et pour chacune de ces lignes, le nombre et la couleur de chaque élément de la matrice indiquent le pourcentage de tweets contenant ce sentiment qui ont été prédits et qui sont affichés dans les colonnes.

Idéalement, la diagonale devrait être proche de 100%, ce qui signifie que le sentiment prédit était correct pour presque tous les tweets, mais même pour l'ensemble de formation, il existe de grands éléments non diagonaux. Cela signifie que même lorsque le modèle connaît le bon sentiment, il préfère par défaut pour prédire un sentiment positif la plupart du temps. 43% des tweets avec un sentiment négatif et plus de 55% des tweets avec un sentiment neutre devraient avoir un sentiment positif. C'est encore pire pour l'ensemble d'évaluation avec 39% et 78%, respectivement.

Cependant, le nombre de tweets par sujet varie également beaucoup dans les ensembles de formation et de test.

Nombre de tweets associés à chaque sujet pour la formation et l'ensemble de tests. Les sujets ont été triés de gauche à droite en fonction du nombre de tweets associés et leurs noms ont été omis pour plus de clarté.

En ce qui concerne l'ensemble de formation, nous constatons une nette différence dans le nombre de tweets par sujet: certains sujets ont plus de 100 tweets, tandis qu'environ la moitié ont environ 20 tweets ou moins.

Revenir au test avec le modèle affine et examiner la précision moyenne de la prédiction de sentiment pour les tweets avec un sujet donné montre que les sujets avec plus de tweets ont généralement une précision supérieure.

La précision moyenne de la prévision du sentiment pour les tweets dans un sujet donné. Il existe une tendance claire en ce que les sujets avec plus de tweets associés obtiennent généralement une précision moyenne plus élevée.

Cette tendance est logique: le modèle tire davantage parti de l'apprentissage d'une transformation qui fonctionne bien pour les sujets comportant plus de tweets. Mais ce n’est en réalité pas ce que nous voulons, car cela signifie que le modèle ne peut pas généraliser bien. Nous voulons que le modèle fonctionne bien sur des sujets même non vus, et sur-adapter à quelques sujets ne sera probablement pas utile à cet égard.

Une façon de traiter de tels déséquilibres de classe consiste à pondérer la pénalité que le modèle reçoit pour une prévision erronée par l'inverse de la fréquence de la classe. Cela signifie que le modèle reçoit une erreur plus importante pour des données moins fréquentes, accordant ainsi une plus grande attention à celles-ci. Voyons comment cela affecte la formation du modèle.

Correction du déséquilibre des sentiments

En recyclant le modèle et en pénalisant les erreurs avec l'inverse de la fréquence des sentiments uniquement, nous obtenons déjà un modèle bien meilleur.

Matrices de confusion pour le modèle affine sur NNML, corrigeant les déséquilibres de sentiment dans l'ensemble de formation.

Pour l'ensemble d'entraînement, la diagonale est proche de 100% pour tous les sentiments. Les prévisions relatives à l'ensemble d'évaluation se sont également améliorées, même s'il reste encore beaucoup à faire.

Nous constatons également une amélioration de la précision par sujet pour l'ensemble de formation, même si cela n'a pas été explicitement encouragé.

Précision moyenne des sujets pour le modèle affine sur NNML, corrigeant les déséquilibres de sentiment dans l’ensemble de formation.

Fait intéressant, la performance sur l'ensemble d'évaluation semble avoir diminué. Une explication pourrait être que la plupart des tweets de l'ensemble d'évaluation ont un sentiment positif, pour lequel le modèle a sacrifié une certaine précision pour améliorer les performances pour les sentiments négatifs et neutres.

Correction du déséquilibre du sujet

Voyons maintenant ce qui se passe lorsqu’il s’agit de pénaliser les erreurs avec l’inverse de la fréquence des sujets seulement. Cela permet également d'obtenir de bien meilleures prédictions de sentiment sur l'ensemble de la formation, ce qui peut s'expliquer par le fait que la pondération égale des sujets indépendamment du nombre de tweets qui leur sont associés expose le modèle à une plus grande variété de sentiments.

Matrices de confusion pour le modèle affine sur NNML, corrigeant les déséquilibres de sujets dans l'ensemble de formation.

Mais l’effet réel est visible lorsque l’on examine la précision par sujet. Pour l'ensemble de formation, la précision est maintenant à peu près indépendante du nombre de tweets dans un sujet, la plupart des sujets étant proches de 1.

Précision moyenne des sujets pour le modèle affine sur NNML, corrigeant les déséquilibres des sujets dans l'ensemble de formation.

Correction du déséquilibre des sentiments et des sujets

Le modèle final va peser la pénalité pour une prédiction erronée basée sur les fréquences du sentiment et du sujet. Pour ce faire, il suffit de multiplier les inverses de la fréquence du sujet et de la fréquence des sentiments et d'utiliser la quantité résultante comme poids. Cela devrait encourager le modèle à traiter tous les sentiments et tous les sujets de la même manière pendant la formation.

Le modèle qui en résulte semble en effet être un bon compromis entre la prise en compte du sentiment et le déséquilibre des sujets. Les sentiments sont prédits avec assez de précision, et la performance sur l'ensemble d'évaluation n'a pas souffert.

Matrices de confusion pour le modèle affine sur NNML, corrigeant les deux déséquilibres de l'ensemble d'apprentissage.

La précision moyenne par sujet est à nouveau indépendante du nombre de tweets associés au sujet.

Précision moyenne des sujets pour le modèle affine sur NNML, corrigeant les deux déséquilibres de l'ensemble de formation.

Bien que la correction des déséquilibres de classe ait clairement aidé sur le set d’entraînement, la performance sur le set d’évaluation n’a toujours pas changé de façon notable. Le modèle ne semble pas être en mesure de généraliser bien à de nouveaux sujets, ce qui pourrait signifier que la transformation affine est trop restrictive ou que l'ensemble de formation n'est pas très représentatif de l'ensemble d'évaluation. Nous y reviendrons en jetant un coup d'œil aux dernières expériences.

Mettre tous ensemble

Maintenant, après avoir pris en compte les déséquilibres de classes dans le jeu de données et décidé d’incorporer et de transformer les modèles, nous sommes prêts à tester les modèles et à voir le degré d’information sur les sentiments que les mots incorporés ont pu capter.

La configuration suit l'approche standard d'apprentissage automatique: nous avons formé le modèle à l'aide d'une validation croisée (CV) de 10 fois et avons évalué le meilleur modèle de chaque pli de l'ensemble de tests. Cela nous donne une mesure de la mesure dans laquelle nous pouvons nous attendre à ce que la performance du modèle varie lorsque nous sommes formés à des jeux de données (légèrement) différents.

C'est toujours une bonne idée d'inclure des expériences de base. Celles-ci devraient être les approches les plus simples que vous puissiez imaginer et si votre modèle avancé ne peut pas les battre, vous savez que quelque chose ne va pas. Nous avons choisi deux bases simples: 1) utiliser comme prédiction de tout tweet le sentiment le plus fréquent de l'ensemble de formation (qui sera «positif») et 2) utiliser des prédictions au hasard de l'ensemble de formation.

Les résultats de la formation des huit modèles et des deux bases de référence et de l'évaluation sur un ensemble de tests non visibles sont illustrés dans la figure ci-dessous. Les lignes verticales à travers les points de données indiquent un écart-type sur les 10 plis du CV.

Il y a un certain nombre d'observations intéressantes à faire ici. Tout d'abord, il y a une grande amélioration pour tout modèle d'intégration par rapport aux lignes de base. Comme on pouvait s'y attendre, le mot embeddings contient des informations qui peuvent être utilisées pour obtenir le sentiment d'un tweet. Deuxièmement, en ce qui concerne les intégrations NNLM, il ne semble pas y avoir d’amélioration lorsqu’on utilise le modèle non linéaire par rapport au modèle affine. Ceci est intéressant car cela suggère que l’intégration d’espace est assez simple pour que le modèle affine puisse utiliser toutes les informations de sentiment disponibles dans les intégrations. Cela contraste avec les nouvelles incorporations, ELMo et USE, où nous observons une amélioration lors de l’utilisation du modèle non linéaire, ce qui suggère que les espaces d’incorporation appris par ces modèles sont plus complexes. Pour NNLM, les vecteurs normalisés ont tendance à avoir de meilleures performances que ceux non normalisés, mais l’effet est loin d’être significatif dans nos expériences. Enfin, bien que ELMo et USE contiennent tous deux beaucoup plus d’informations que les implémentations NNLM, ils ont des performances assez similaires dans ces expériences. USE semble généralement contenir un peu plus d’informations que ELMo, mais pas beaucoup plus. Cela reste toutefois intéressant car l’espace d’embarquement USE a une dimensionnalité bien inférieure à l’espace ELMo et, par conséquent, les modèles sont beaucoup plus rapides à entraîner.

Sommes-nous déjà là?

Non, absolument pas. Il y a une foule de questions intéressantes à répondre concernant le contenu informatif des intégrations de mots.

Par exemple, nous avons travaillé avec le sentiment sur une échelle en trois points (négatif, neutre, positif). Étendre à un sentiment plus fin sur une échelle de cinq points, par exemple, nécessiterait davantage d’incorporations. Les embeddings contiennent-ils autant d'informations?

Il est également raisonnable de demander si les immenses espaces d'intégration sont nécessaires. Les encapsulations ELMo ont 1024 dimensions, mais les informations sont probablement intégrées dans un espace beaucoup plus petit. Comment une réduction de dimensionnalité de l'espace d'intégration affecte-t-elle la prédiction de sentiments?

Lors du test des deux différentes transformations de l'espace de sujet, nous avons constaté que seules les nouvelles incorporations nécessitaient une transformation non linéaire. Il serait intéressant d'étendre les types de transformations, notamment en créant des réseaux de neurones beaucoup plus complexes, et de tester les intégrations qui bénéficient de quelles transformations. Cela pourrait nous donner un aperçu de la complexité des différents espaces d'intégration.

La livraison

Dans ce projet, nous voulions tester la quantité d’informations que les mots incorporés sur le sentiment des tweets contiennent. Pour ce faire, nous avons construit deux modèles permettant de prédire un sentiment aussi non intrusif que possible, ce qui nous a permis de voir combien d'informations de sentiment sont contenues dans les mots incorporés.

Les résultats montrent que les anciens et les nouveaux systèmes d’incorporation de mots contiennent certainement des informations sur le sentiment et que les nouveaux systèmes d’incorporation, sans surprise, en contiennent plus que les anciens. Les résultats montrent également qu'une transformation non linéaire des vecteurs thématiques est nettement meilleure qu'une transformation affine pour les nouvelles opérations d'intégration, ce qui suggère que ces espaces sont plus complexes que pour les anciennes.

En conclusion, les mots-clés contiennent généralement beaucoup d'informations sur le sentiment des tweets, les nouveaux modèles contenant beaucoup plus d'informations. Bien que cela ne soit pas trop surprenant, il souligne l’importance des modèles d’incorporation avancés pour prédire le sentiment des tweets.

Remerciements

Le projet a été réalisé dans le cadre d'une mission scientifique à court terme SoBigData 2017 (STSM) au département d'informatique de l'Université de Sheffield, en collaboration avec le Dr Diana Maynard. Un grand bravo au Dr Isabelle Augenstein pour de nombreuses discussions et conseils tout au long de ce projet.

Show More

SupportIvy

SupportIvy.com : Un lieu pour partager le savoir et mieux comprendre le monde. Meilleure plate-forme de support gratuit pour vous, Documentation &Tutoriels par les experts.

Related Articles

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Close
Close