Auteurs:
(1) Aarav Patel, lycée régional Amity – email : [email protected] ;
(2) Peter Gloor, Center for Collective Intelligence, Massachusetts Institute of Technology et auteur correspondant – email : [email protected].
La création de ce projet a été divisée en trois étapes. La première étape a été la collecte de données via des web scrapers sur divers réseaux sociaux. Ensuite, les données textuelles ont été prétraitées et converties en scores de sous-catégories à l’aide du traitement du langage naturel. Enfin, des algorithmes d’apprentissage automatique ont été entraînés à l’aide de ces données pour calculer une notation ESG cohérente.
Plutôt que d’utiliser les déclarations autodéclarées des entreprises, les données des réseaux sociaux ont été utilisées pour quantifier l’ESG de manière globale. L'analyse des réseaux sociaux et le web scraping peuvent être utilisés pour identifier les tendances (Gloor et al., 2009). Les réseaux sociaux populaires tels que Twitter, LinkedIn et Google News disposent d’une multitude de données sur presque tous les sujets. Ces données peuvent fournir une vision équilibrée des pratiques ESG des entreprises et peuvent aider à couvrir les tendances ESG des entreprises à court et à long terme. Il peut également collecter des données qui pourraient ne pas être reflétées dans les dossiers. Enfin, ces données peuvent directement mettre en évidence les préoccupations des tiers, ce qui peut mieux guider les initiatives ESG des entreprises pour qu'elles aient plus d'impact.
Pour ce faire, une liste complète de mots-clés pertinents pour l’ESG a été créée (figure 3). Cette liste de mots-clés s'inspire des sous-catégories couramment utilisées dans les méthodologies de notation ESG actuelles. Cette liste a été utilisée pour aider à collecter des données d'entreprise accessibles au public sur Wikipedia, LinkedIn, Twitter et Google News. Pour collecter des données, des web scrapers ont été développés en Python. Les données Wikipédia ont été collectées à l'aide de l'interface de programmation d'applications (API) Wikipédia. Wikipédia sert à donner un aperçu général des pratiques d'une entreprise. Les données de Google Actualités ont été collectées en identifiant les principaux articles d'actualité sur la base d'une recherche Google. Les liens vers ces articles ont été stockés. Ces nouvelles servent à fournir des mises à jour globales sur les développements ESG notables. Les données Twitter ont été collectées à l'aide de la bibliothèque Snscrape. Snscrape est une API légère qui permet aux utilisateurs de collecter des Tweets presque illimités (avec certaines restrictions sur le nombre de tweets pouvant être collectés par heure) à partir de presque n'importe quelle période. Twitter a été choisi principalement pour donner des commentaires aux consommateurs sur les pratiques d'une entreprise. Étant donné que l'API LinkedIn ne prend pas en charge la collecte de publications LinkedIn, un algorithme a été créé de toutes pièces pour le faire. L'algorithme a utilisé le Selenium Chromedriver pour simuler un humain faisant défiler une requête LinkedIn. Sur cette base, le texte de chaque article a été collecté et stocké à l'aide de requêtes HTML via BeautifulSoup. LinkedIn sert à fournir des informations plus professionnelles sur les pratiques d'une entreprise. Cette architecture de collecte de données permet d'actualiser et de générer les évaluations en temps réel selon les besoins. Ensuite, les données de chaque sous-catégorie ont été stockées dans un fichier CSV.
Ces quatre réseaux sociaux couvrent un large éventail de données ESG des entreprises. Les données ont été collectées pour la plupart des sociétés du S&P 500 (hors immobilier). L’immobilier a été exclu principalement parce qu’il ne bénéficiait pas d’autant de couverture en matière d’ESG (sur la base d’une analyse en surface), de sorte qu’il ne semblait pas viable pour le système proposé. Cela garantit que les entreprises collectées étaient bien équilibrées entre les secteurs et les industries. Les web scrapers ont tenté de collecter environ 100 publications/articles pour chaque mot-clé sur un réseau social. Cependant, parfois moins de données sont collectées en raison des limites de débit des API et de la disponibilité limitée des données pour les entreprises les moins connues. Afin d'accélérer la collecte, plusieurs scripts ont été exécutés simultanément. Au début, les programmes étaient souvent limités en termes de débit pour collecter autant de données dans un laps de temps aussi court. Pour résoudre ce problème, des mesures de protection ont été ajoutées pour suspendre le programme au cas où il rencontrerait ce problème. Toute la collecte de données a été effectuée conformément aux termes et conditions de chaque site. Au total, environ 937 400 points de données ont été collectés auprès de 470 entreprises, avec une moyenne d'environ 37 points par mot-clé de réseau social. La plupart de ces données étaient concentrées en 2021. Cependant, aucune plage de dates stricte n’a été imposée car cela supprimerait des points de données pour les entreprises moins connues qui avaient déjà du mal à rassembler suffisamment d’informations.
Une fois toutes les données collectées, elles ont été exportées sur une feuille de calcul pour une analyse plus approfondie. Les données ont été prétraitées à l'aide de RegEx (expressions régulières). Premièrement, les URL et les liens ont été supprimés. Les mentions ont été remplacées par un mot générique pour abstraire les noms. Enfin, les caractères peu courants et la ponctuation ont été supprimés. Cela a permis de filtrer les mots/caractères susceptibles d'interférer avec l'analyse PNL.
Une fois les données nettoyées et organisées, un algorithme NLP a été créé pour analyse. Premièrement, un algorithme de pertinence ESG a été créé pour filtrer les données ESG non pertinentes qui pourraient entraver les résultats. Pour ce faire, la détection de mots clés a été utilisée pour voir si le message/article traitait de l'entreprise actuelle ainsi que d'une ou plusieurs sous-catégories ESG. Ensuite, la bibliothèque de reconnaissance d'entités nommées Natural Language Toolkit (NLTK) de Python a été utilisée pour déterminer si une publication était liée à l'organisation afin de supprimer les données involontaires. Par exemple, si la requête « climat des pommes » était recherchée, un message pourrait apparaître indiquant « Le climat printanier est le meilleur moment pour faire pousser des pommiers ». Cependant, Named Entity Recognition serait en mesure d’identifier que cette phrase n’est pas pertinente en matière ESG puisque « Apple » est utilisé comme adjectif. L’algorithme l’ignorera donc de l’analyse. D’un autre côté, si le message disait : « Apple investit 500 millions de dollars dans des initiatives de lutte contre le changement climatique », alors l’algorithme déterminerait que le message parle d’Apple, de l’organisation. Cette étape de filtration permet de supprimer les informations non pertinentes pour améliorer la qualité des données.
Après filtration, l’analyse des sentiments NLP a été utilisée pour déterminer si une publication était ESG positive ou négative. Deux algorithmes NLP ont été créés pour ce faire : l'algorithme NLP pour les articles courts analysait des corps de texte plus courts (Tweets, publications LinkedIn) tandis que l'algorithme NLP pour les articles longs analysait les plus longs (articles d'actualité, articles Wikipédia).
Une analyse littéraire de différentes bibliothèques d’analyse des sentiments Python a été réalisée. Après avoir comparé diverses bibliothèques d'analyse des sentiments telles que TextBlob, VADER, FastText et Flair, il a été constaté que Flair surpassait les autres classificateurs. Cela est probablement dû au fait que les simples classificateurs de mots, tels que VADER ou TextBlob, n'ont pas réussi à identifier les relations que les différents mots entretenaient entre eux. D'autre part, Flair a utilisé des vecteurs de mots contextuels pour analyser les relations d'une phrase au niveau des mots et des caractères. C'est probablement pourquoi, lorsque ces algorithmes ont été testés sur le Stanford Sentiment Treebank (SST) pour évaluer le sentiment des critiques de films sur une échelle de 1 à 5, il a été constaté que l'algorithme Flair était le plus performant avec un score F1 de 49,90 % (Akbik et al., 2018) (Rao et al., 2019) (figure 4). Ainsi, l'algorithme de publication courte a été construit à l'aide de la bibliothèque d'analyse des sentiments Flair. L'algorithme des articles longs est essentiellement l'algorithme des articles courts, mais il est moyenné sur tous les paragraphes du corps pertinents (c'est-à-dire les paragraphes contenant le nom de l'entreprise) dans un article.
Ces algorithmes généraux ont été optimisés pour chaque réseau social spécifique. Par exemple, l'algorithme LinkedIn a analysé le profil de l'auteur d'une publication LinkedIn pour éliminer les auto-déclarations. En effet, les dirigeants discutent souvent de leurs initiatives et objectifs positifs, ce qui peut diluer d’autres observations impartiales et ainsi interpréter les résultats. De plus, pour les algorithmes Twitter et LinkedIn, si une adresse de lien était trouvée dans le texte, l'algorithme analyserait cet article pour évaluation.
Au départ, l'algorithme d'analyse était très lent puisqu'il fallait à Flair 3 à 4 secondes pour analyser une publication. Ainsi, une variante appelée « Flair sentiment-fast » a été installée. Cela a permis à Flair d'effectuer une analyse par lots où il analyse plusieurs publications simultanément. Cela a considérablement réduit le temps d'analyse tout en sacrifiant légèrement la précision.
Une fois toutes les données brutes notées, les scores ont été moyennés dans une feuille de calcul cohérente. L'imputation moyenne a été utilisée pour compléter les données manquantes des sous-scores. Ces scores de sous-catégories peuvent fournir aux dirigeants une analyse du sentiment social sur des questions clés, leur fournissant des informations concrètes. Figure 4 : Comparaison de l'exactitude de différents algorithmes d'analyse des sentiments sur la base de données SST-5 sur les domaines à améliorer. Ces scores peuvent être utilisés bruts pour aider à orienter les initiatives, ou ils peuvent être compilés davantage grâce à l'apprentissage automatique pour fournir une prédiction ESG.
Après avoir compilé les données, différents modèles d’apprentissage automatique ont été testés. L’objectif de ces modèles était de prédire un score ESG compris entre 0 et 100, 0 étant le pire et 100 le meilleur. La plupart de ces modèles d’apprentissage supervisé étaient des algorithmes de régression légers capables d’apprendre des modèles non linéaires avec des données limitées. Certains de ces algorithmes incluent la régression de forêt aléatoire, la régression de vecteur de support, la régression des voisins les plus proches et la régression XGBoost (Extreme Gradient Boosting). La régression forestière aléatoire fonctionne en construisant plusieurs arbres de décision pendant le temps de formation et en produisant la prédiction moyenne (Tin Kam Ho, 1995). La régression du vecteur de support identifie la ligne la mieux ajustée dans un seuil de valeurs (Awad et al., 2015). La régression K-Nearest Neighbours prédit une valeur basée sur la valeur moyenne de ses points de données voisins (Kramer, 2013). La régression XGBoost (Extreme Gradient Boosting) utilise l'amplification de gradient en combinant les estimations/prédictions d'arbres de régression plus simples (Chen et al., 2016).
Ces algorithmes de régression ont été entraînés à l'aide de 19 fonctionnalités. Ces fonctionnalités incluent le sentiment moyen pour chacun des 18 mots-clés avec une catégorie supplémentaire pour Wikipédia. Ils ont été calibrés sur les notations ESG publiques de S&P Global afin de garantir qu’ils ne s’écartent pas beaucoup des solutions existantes. Un grattoir de notation ESG sous licence publique sur GitHub a été utilisé pour récupérer les scores ESG S&P Global de toutes les entreprises analysées (Shweta-29). Des techniques d'optimisation telles que la régularisation ont été utilisées pour éviter le surajustement et obtenir une plus grande précision.
Avant de créer les algorithmes, les entreprises avec moins de 5 articles/posts par sous-catégorie ESG ont été filtrées. Il restait donc environ 320 entreprises à analyser. Afin de créer et de tester l'algorithme, environ 256 entreprises ont été utilisées comme données de formation, tandis qu'environ 64 entreprises ont été utilisées pour tester les données. Ces résultats ont été utilisés pour déterminer les capacités prédictives de l’algorithme.
Cet article est disponible sur arxiv sous licence CC BY-NC-ND 4.0 DEED.