Partilhar via


Lorsque le Machine Learning permet d’identifier les sujets dit « tendance » de l’actualité - 5ème partie

Nous en arrivons maintenant au 5ème et avant dernier billet de notre série consacrée au sujet des « Trending Topics » en partenariat avec News Republic.

Si vous nous suivez depuis le premier billet d’introduction au cas d’usage de cette série, vous connaissez notre démarche, l’approche développée avec du #MachineLearning, ses résultats, les choix et arbitrages qui ont été réalisés pour construire une solution telle qu’elle se présente aujourd’hui.

Le présent billet, lui, est destiné à un autre type de demande et se veut présenter une autre casquette encore qu’endosse le scientifique des données (Data Scientist) : celle de faire parler les données au-delà de ce que nous connaissons et sommes habitués à voir.

Comme la proposition courante en termes d’approche permet d’identifier les « Trending Topics », pourrait-on créer une autre solution, solution qui nous permettrait de prédire les « Trendings Topics » de demain ? C’est ce que nous verrons dans ce billet.

C’est autour de cette question que nous avons construit, toujours sur Azure Machine Learning (Azure ML), des prévisions sur la dernière semaine de nos simulations.

Après une présentation des résultats finalement obtenus, nous aborderons ainsi les 2 approches testées pour la prévision des audiences sur les tags, les résultats obtenus avec ses 2 approches et enfin les conclusions qui en ont été faites.

L’expérimentation Azure ML

Voici l’expérimentation Azure ML qui réalise nos prévisions sur les simulations.

image

  • Le module Reader nous permet de lire le fichier initial des simulations

clip_image004

  • Le module Project Columns nous permet d’extraire les variables qui ne nous intéressent pas
  • Le Partition and sample nous permet de construire un data frame qui retire la dernière semaine des simulations. Ce data frame nous permettra de réaliser nos prévisions sur la dernière semaine et de les comparer avec la vraie simulation.
  • Le module Execute R Script nous permet de réaliser toutes nos prévisions selon les différentes approches ainsi que les graphes et autres visualisations présentées dans la suite de ce billet.

Dans sa sortie gauche on obtient un data frame présentant toutes les prévisions :

clip_image006

Dans sa partie droite on récupère toutes les visualisations

clip_image008

  • Le PackagesR.zip est le fichier qui contient tous les packages R dont nous avons besoin pour réaliser nos traitements.

Les résultats obtenus

Voici d’abord les résultats que nous avons finalement obtenus sur Azure ML :

Football

clip_image010

François Hollande

clip_image012

Julie Gayet

clip_image014

Germanwings

clip_image016

Meurtre en Moselle

clip_image018

Programme TV

clip_image020

Avec le tag « Football » on peut voir que le modèle de prévision prend bien en compte et reproduit la saisonnalité. En grisé se trouvent les intervalles de confiance à 85% et 95%.

De la même manière que pour les précédents travaux sur les « Trending Topics », nous avons dû faire un choix sur la méthode de prévision.

Les 2 méthodes de prévision envisagées

Il existe de nombreuses manières de faire des prévisions de séries chronologiques. Nous avons choisi de nous concentrer sur 2 approches :

  1. La méthode saisonnière additive de HW
  2. Le modèle ARIMA

La méthode saisonnière additive de Holt-Winters est une méthode additive permettant d’estimer le niveau, la tendance et la composante saisonnière d’une série chronologique. Elle donne plus ou moins d’importance aux observations récentes et ne prend pas en compte la corrélation entre les valeurs successives.

Le modèle ARIMA (Autoregressive Integrated Moving Average), lui, est un modèle statistique qui prend en compte la corrélation entre les valeurs successives.

L’idée est encore une fois ici de comparer les 2 approches et de choisir celle dont les résultats sont le plus en accord avec nos besoins.

On se place pour cela au moment T cerclé en violet sur le graphe ci-dessous.

clip_image022

Les résultats obtenus avec ces 2 approches

On prédit sur une semaine l’évolution de la part d’audience pour chacune des 6 simulations de tags.

Voici ce qu’on obtient sur Azure ML :

Football

clip_image024

François Hollande

clip_image026

Julie Gayet

clip_image028

Germanwings

clip_image030

Meurtre en Moselle

clip_image032

Programme TV

clip_image034

En noir la simulation, en rouge la méthode additive saisonnière de Holt-Winters et en vert le modèle ARIMA associé.

En guise de conclusion pour cette partie

Comme on peut le voir avec le tag « Germanwings », le modèle ARIMA est plus proche des évolutions connues par les parts d’audiences.

Nous avons donc choisi de conserver le modèle ARIMA. Il nous faut alors faire certaines vérifications que voici par exemple pour le tag « Programme TV ».

On vérifie à la fin de notre prévisions qu’il n’y a pas d’autocorrélation des résidus, que ceux-ci suivent bien mouvement de type bruit blanc suivant une loi normale centrée réduite.

Série initiale

clip_image036

Prévision sur une semaine

clip_image038

Pas d’autocorrélation des résidus

clip_image040

Résidus de type bruits blanc

clip_image042

Résidus suivant la loi normale centrée réduite

clip_image044

Pour le tag « Football », la prévision sur une semaine semble concorde bien avec les évolutions simulées. Ceci est essentiellement dû à une saisonnalité forte de ce tag. Une fois connu ses mouvements passés, il est plus facile pour la machine d’en anticiper les mouvements futurs.

Cependant, l’actualité est par définition imprévisible. En effet, à chaque instant de nouveaux sujets peuvent surgir de nulle part. A moins d’être devin, il est quasiment impossible d’anticiper toutes les catastrophes naturelles ou humaines, les incidents qui surviennent partout dans le monde et qui font chaque jour l’actualité. Cette partie-là reste donc en suspens malgré l’intérêt qu’elle pourrait avoir.

La 6ème et dernière partie de cette série de billets changera un peu de registre puisqu’elle sera consacrée à l’automatisation des processus de partitionnement des données (clustering) sur les tags et de calculs des “Tops & Flops” dans Microsoft Azure grâce à des WebJobs.