Récemment, nous, l'équipe Data Science Big Data de Sbertech, avons réalisé un projet pilote intéressant dans le domaine de l'apprentissage automatique: nous avons essayé d'identifier les incidents dans le travail de la Sberbank Online mobile en l'utilisant, sur la base des commentaires des utilisateurs dans les magasins d'applications. Nous avons pris un ensemble de données d'avis de Google Play pour la période d'octobre 2014 à octobre 2017 (882 864 avis), filtré 92 711 négatifs (1-2 étoiles) et commencé à travailler. Lequel nous dirons sous la coupe.

Nous répondrons immédiatement à une éventuelle question. Le rapport entre rétroaction positive et négative s'est avéré n'avoir aucun lien avec les incidents, des méthodes plus astucieuses étaient donc nécessaires. De plus, nous avons voulu identifier les sujets des incidents.
Pour identifier les anomalies, nous avons choisi le modèle Arima de moyenne mobile intégrée autorégressive.
ARIMA (p, d, q) pour la série temporelle non stationnaire
Xt a la forme:

Où
εt est la série chronologique stationnaire;
c, ai, bj - paramètres du modèle; △
d est l'opérateur de la différence dans les séries temporelles d'ordre
d (en prenant séquentiellement
d les différences des différences du premier ordre - d'abord à partir des séries temporelles, puis à partir des différences obtenues du premier ordre, puis du deuxième ordre, etc.).
Nous avons formé le modèle tout au long de l'échantillon. Pour prévoir le niveau normal de critiques négatives pour la date sélectionnée, un intervalle de trois mois a été utilisé. La prédiction a été construite une semaine à l'avance à partir de la date sélectionnée, avec une discrétisation d'un jour.
Puis formé un niveau de confiance. Pour ce faire, la valeur calculée de l'intervalle de confiance a été ajoutée à la valeur de la fonction de prévision pour chaque date. Le troisième quantile de la distribution de tous les écarts de la fonction de prédiction par rapport au nombre réel de révisions négatives sur l'intervalle de trois mois sur lequel la prévision du niveau normal est basée a été pris pour cela.
L'anomalie a été enregistrée lorsque le nombre réel de critiques négatives a dépassé le niveau de confiance (valeur prévisionnelle + intervalle de confiance). Voici à quoi cela ressemble sur un graphique:
Le rouge est le nombre réel d'avis. Couleur jaune - la valeur prédite du niveau normal avec un intervalle de confiancePour une analyse plus approfondie, 5 pics distincts ont été sélectionnés, qui ont eu lieu le 27/02/2017, le 15/03/2017, le 14/09/2017, le 18/09/2017, le 20/09/2017.
L'identification des incidents a été réalisée en regroupant les textes de révision avec deux modèles basés sur BIGARTM et Word2Vec avec le regroupement intégré de Kmeans.
Bibliothèque BIGARTM (modèle thématique)
Le modèle thématique est une représentation de la distribution conditionnelle observée
p (w | d) des termes (mots ou phrases)
w dans les documents
d de la collection
D :

où T est une variété de sujets;

- distribution inconnue des termes du sujet
t ;

- distribution inconnue des sujets dans le document
d .
Paramètres du modèle thématique - matrice

et

- sont trouvés en résolvant le problème de la maximisation de la probabilité:

Le principal avantage par rapport aux autres modèles probabilistes est la disponibilité de régularisateurs pour le lissage, l'amincissement, la décorrélation.
Modèle avec Word2Vec
Le modèle utilisant Word2Vec est basé sur l'algèbre tensorielle. Sous elle a été compilé un dictionnaire de tous les mots dans les critiques. La représentation vectorielle des mots Word2Vec est devenue l'espace de base des clusters.
L'algorithme est tel qu'il cherche à minimiser l'écart quadratique total des points des clusters par rapport aux centres de ces clusters:
k est le nombre de clusters,
S i sont les clusters résultants,
i = 1,2 ...
k , et
μ i sont les centres de masse de tous les vecteurs
x du cluster
S i . Voyons maintenant les résultats des modèles sur des exemples spécifiques.
La période anormale avec un pic 15/03/2017
BIGARTM :
Numéro de cluster
| Balises
| Exemples de revue de cluster (vocabulaire source)
|
1
| erreur de travail du compte d'opération de mise à jour de la version impossible d'installer
| «L'ancienne version ne fonctionne pas. Je n'ai pas besoin d'une mise à jour. Il n'y a pas d'espace sur le téléphone! Renvoyez l'opportunité d'utiliser l'ancienne version !!! "
"Je ne peux pas installer l'application du tout, il y a suffisamment de mémoire sur le téléphone, plus de 50%, mais l'application écrit obstinément qu'il n'y a aucun moyen d'installer, erreur 24! Corriger l'erreur, l'utiliser avant, vraiment aimé !!! ”
«Après la mise à niveau, elle a cessé de fonctionner! Une fenêtre apparaît avec le message: "" Une erreur s'est produite dans l'application "" Sberbank "" "et au revoir. Putain de mise à jour! Avant la mise à jour, tout fonctionnait bien, complètement satisfait. Et en cours de route, je n'ai pas une telle merde! "
|
2
| connexion pour aller écrire pour travailler la mémoire ne peut pas voler constamment horriblement supprimer le problème
| "Je ne peux pas entrer dans l'application, j'entre le code, écrit, je ne peux pas rétablir la connexion sécurisée! que fais tu!? Ou alors vous forcez à être mis à jour! J'étais content de l'ancienne mise à jour! Résolvez le problème! "
«Qu'avez-vous fait avec un excellent programme? Révélé et regretté. Toutes les 2 minutes, une fenêtre apparaît avec le texte "" la connexion à Sberbank est interrompue "". J'ai décidé de supprimer et de réinstaller. Maintenant, il ne s'ouvre pas du tout. Le jette immédiatement hors du programme. Les gars, retournez l'ancienne version »
|
3
| sms not_to come in code card you need thank you not_work input not_may be able to fly out
| "Les SMS ne parviennent pas au téléphone avec un mot de passe"
"Ne s'enregistre pas, écrit que les SMS viendront avec le code et rien ...."
«Après la mise à jour, un SMS sur l'entrée entre, mais le seuil s'envole au bout de 4 secondes. Comment être? "
|
Word2Vec + Kmeans:Numéro de cluster
| Balises
| Exemples de revue de cluster (vocabulaire source)
|
1
| mettre à jour le journal de connexion utiliser la mise à jour
| "Je ne peux pas entrer dans l'application, j'entre le code, écrit, je ne peux pas rétablir la connexion sécurisée! que fais tu!? Ou alors vous forcez à être mis à jour! J'étais content de l'ancienne mise à jour! Résolvez le problème! "
«La connexion est rompue, connectez-vous à un autre réseau - c'est ce que je vois le plus souvent lorsque je veux accéder à l'application. Je mets toujours les mises à jour immédiatement dès leur sortie. Si vous réussissez, tout fonctionne bien. »
|
2
| sms viennent entrée connexion téléphone
| «Après la mise à jour, un SMS sur l'entrée entre, mais le seuil s'envole au bout de 4 secondes. Comment être? "
"Les SMS ne parviennent pas au téléphone avec un mot de passe"
"Lors de l'inscription, les SMS ne sont pas accompagnés d'un code ..."
"Il n'est pas possible d'entrer. Le code SMS ne vient pas. Corrigez tout plus tôt."
|
Bigartm
| Word2Vec + Kmeans
|

| 
|
- Seulement 194 avis.
- Identifié 3 clusters.
Problèmes identifiés lors du clustering:
- Problème de performances des applications lié à la mise à niveau de la version.
- Le problème de l'application concernait la connexion avec Sberbank.
- Le problème de l'envoi de SMS à l'utilisateur avec le code.
| - Seulement 190 avis.
- 2 grappes identifiées.
Problèmes identifiés lors du clustering:
- Problème de connexion avec la connexion et la mise à niveau de la version.
- Le problème de l'envoi de SMS à l'utilisateur avec le code.
|
Comme vous pouvez le voir sur les résultats, BIGARTM met en évidence les thèmes plus clairement que Word2Vec + Kmeans. Pour le modèle Word2Vec + Kmeans, de courtes revues non informatives avec des mots qui n'avaient pas de représentation vectorielle (mots avec erreurs, blasphèmes, etc.) n'ont pas été prises en compte.
Fait intéressant, au cours de cette période, les incidents dans le système interne de ServiceDesk n'étaient pas classés en fonction du problème de mise à jour de la version et ont été traités séparément. Cela signifie que dans ce cas, le modèle a mieux fait face à la tâche qu'une personne.
Reconnaissance précoce
Et voici un exemple qui démontre la capacité de notre modèle à travailler de manière proactive. 18/09/2017 un énorme problème a été enregistré dans ServiceDesk lié à l'impossibilité d'entrer dans l'application et d'effectuer des paiements pour certains utilisateurs. Sur le graphique Arima, nous voyons une forte augmentation des critiques négatives à cette date, ainsi qu'une légère explosion quatre jours plus tôt.

Nous avons analysé ces deux valeurs aberrantes.
14 septembre 2017:Bigartm
| Word2Vec + Kmeans
|

| 
|
- Seulement 243 avis.
- Identifié 3 clusters.
Problèmes identifiés lors du clustering:
- Le problème avec le transfert de fonds. Le problème avec l'interface.
- Le problème avec l'entrée de l'application après la mise à jour.
- Problème de connexion à l'application. L'utilisateur n'est pas satisfait de la politique de confidentialité.
| - Seulement 171 avis.
- 1 cluster identifié.
Le problème identifié lors du clustering:
- Le problème de travailler dans l'application après la mise à jour. L'utilisateur n'est pas satisfait de la politique de confidentialité, il y a également un problème avec le transfert de fonds.
|
18 septembre 2017:Bigartm
| Word2Vec + Kmeans
|

| 
|
- Seulement 935 avis.
- Identifié 3 clusters.
Problèmes identifiés lors du clustering:
- Le problème avec l'entrée de l'application après la mise à jour de la version. L'application donne à l'utilisateur un message sur la version obsolète.
- Problème de connexion à l'application. L'utilisateur entre le mot de passe plusieurs fois, l'application se bloque.
- Problème de performances des applications lié à l'antivirus intégré.
| - Seulement 828 avis.
- 1 cluster identifié.
Le problème identifié lors du clustering:
- Le problème avec la saisie d'un mot de passe et la saisie de l'application. Erreur lors de la mise à jour de la version.
|
Et voici comment ces résultats se comparent aux données de ServiceDesk.
Anomalie de date détectée
| Problème signalé dans SM
| Déterminer la nature du problème à l'aide Bigartm
| Déterminer la nature du problème à l'aide Word2Vec + Kmeans
|
2017-09-14 00:00 - 24:00
| Après la mise à jour de l'application, un fond accru d'appels provenant d'applications mises à jour s'est formé.
| Le problème avec le transfert de fonds. Le problème avec l'interface.
Le problème avec l'entrée de l'application après la mise à jour. Problème de connexion à l'application.
L'utilisateur n'est pas satisfait de la politique de confidentialité.
| Le problème de travailler dans l'application après la mise à jour. L'utilisateur n'est pas satisfait de la politique de confidentialité, il y a également un problème avec le transfert de fonds.
|
2017-09-18 00:00 - 24:00
| Entre 09:23 à 15 h 20, heure de Moscou, pour certains clients de la Banque, une augmentation du délai d'entrée et de réalisation des opérations avec Sberbank Online a été enregistrée. Les incidents n'avaient pratiquement aucun effet sur le travail des clients utilisant iOS. Augmentation du nombre d'appels clients au centre de contact de la Banque (jusqu'à 1369 appels supplémentaires en 15 minutes).
| Le problème avec l'entrée de l'application après la mise à jour de la version. L'application donne à l'utilisateur un message sur la version obsolète.
Problème de connexion à l'application. L'utilisateur entre le mot de passe plusieurs fois, l'application se bloque.
Problème de performances des applications lié à l'antivirus intégré.
| Le problème avec la saisie d'un mot de passe et la saisie de l'application. Erreur lors de la mise à jour de la version.
|
Il est évident que le 18 septembre, un grand nombre de critiques négatives des clients et d'appels au centre de contact a été causé par l'absence de réaction appropriée à l'augmentation du contexte du 14 septembre. Cet exemple montre que le modèle pourrait aider à éviter un problème de masse en le reconnaissant à un stade précoce.
Il est également intéressant de noter qu'en même temps, le modèle a détecté un autre problème (avec antivirus intégré) qui n'était pas mis en évidence dans le contexte du problème principal. Sur celui-ci, l'enregistrement dans ServiceDesk est absent.
Pour résumer
L'apprentissage automatique analyse bien les commentaires des utilisateurs. Parfois encore plus précis que le traitement manuel. Cela contribuera à réduire le temps de résolution des incidents de l'application mobile et à l'améliorer.
Peut-être que ces méthodes conviennent non seulement pour identifier les incidents, mais aussi pour analyser les commentaires neutres et positifs afin de mettre en évidence les cas d'utilisateurs prioritaires. Cela aidera à développer les fonctionnalités de l'application en fonction des préférences des clients sans frais supplémentaires pour leur collecte et leur analyse. Mais cette idée doit encore être vérifiée ...