Intelligence Artificielle : trouver les bons leviers

--

Dans cet article, je compte vous présenter la méthode d’Hubware en Intelligence Artificielle.

Entendons-nous bien : je ne parle pas de l’offre que nous proposons (un Assistant Professionnel qui facilite les tâches quotidiennes du service client).

Je parle de ce qu’il y a derrière. Le mécanisme. Les fondations. Pourquoi ce que nous faisons marche, et pourquoi nous avons confiance en notre approche.

Avant de rentrer dans le vif du sujet, un peu de contexte.

Mystères et écrans de fumée

Vu de l’extérieur, dès que nous parlons de notre modèle prédictif, de notre système d’intelligence artificielle, ça fait un bel effet. Ce sont les termes techniques corrects pour ce que nous faisons, mais ils ne donnent aucun détail. Nous pourrions parler de boîte magique, de recette secrète, de technologie de pointe, ça ne vous avancerait pas plus, mais ça ferait moins sérieux.

Le domaine scientifique de l’intelligence artificielle a pour but de permettre aux machines de réaliser des tâches de plus en plus complexes. Il vous semblera normal, à moins que vous soyez au courant de l’état de l’art, que l’on vienne vous parler d’IA pour résoudre vos problèmes d’une manière originale.

Or, il existe un gouffre entre les dernières publications scientifiques en IA (qui ne sont généralement pas simples à reproduire) et les derniers outils et services à base d’IA disponibles publiquement.

Il existe de même un gouffre entre ces outils relativement génériques, conçus comme des briques réutilisables, et leur intégration dans un produit qui répond aux besoins d’un utilisateur « final ».

Le résultat est que la partie « magique » de l’IA, le cœur technique qui n’existe que grâce aux efforts de la recherche, ne représente que 10% du travail. Ces 10% sont irremplaçables, ils demandent une certaine expertise (qui devient heureusement de plus en plus accessible), mais il ne sont pas les plus intéressants.

Il s’agit surtout d’utiliser ces outils au bon endroit.

La répétition est un levier

Considérez le paragraphe suivant :

À Toulouse, la première station de la ligne B est Ramonville. La deuxième station de la ligne B est Université Paul Sabatier. La troisième station de la ligne B est Rangueil. La quatrième station…

Bien que parfaitement compréhensible, la lecture de ce paragraphe peut éveiller en vous un sentiment de gêne, d’inefficacité, de perte de temps. Ces informations possèdent une structure, et il est possible de l’exploiter pour gagner du temps et de l’espace :

À Toulouse, les stations de la ligne B sont, dans l’ordre: Ramonville, Université Paul Sabatier, Rangueil

S’il est possible de compresser de l’information en unifiant les répétitions, il est également possible de compresser des actions, des décisions, de sorte à ce qu’une machine spécialisée puisse se charger d’une tâche récurrente : c’est la base de l’automatisation !

Or, celle-ci n’est pas toujours possible. Un service client, pris dans son ensemble, n’est pas automatisable : comme décrit dans un de nos précédents articles, le monde est encore trop complexe pour la machine !

Toutefois, le métier de service client n’est pas un chaos total, où chaque réponse doit s’improviser. Il existe des régularités que nous pouvons explorer, qui nous permettent de construire un Assistant agissant là où il faut, avec vitesse et fiabilité.

Ces régularités deviennent apparentes au cours de notre analyse : les voici.

Des problèmes familiers

Vu de loin, un service client s’apparente à un système de questions-réponses . À partir d’un contexte donné et d’une demande, il faut trouver la réaction la plus appropriée en suivant les lois du discours : honnêteté, précision, politesse, etc.

Or, dans le cas général, pour une machine, c’est une tâche excessivement difficile. Ne serait-ce que pour des questions de culture générale, de raisonnement, le bagage cognitif nécessaire pour répondre correctement prend des années à acquérir chez l’humain !

Heureusement, dans le service client, un ensemble réduit de réponses convient à la majorité des questions, qui elles-mêmes se classent dans un nombre limité de catégories. Cela tient à la forme du domaine ! Pour un e-commerce, par exemple, les clients suivent tous le même chemin : choix des produits, paiement, livraison, réception, puis éventuellement retour ou remboursement en cas de souci.

Il est donc normal qu’une même réponse convienne à beaucoup de clients. Ce n’est pas un défaut de personnalisation, c’est une caractéristique du domaine !

Cette régularité nous permet d’envisager un modèle de classification. Au lieu de prédire directement le texte d’une réponse, nous allons prédire une catégorie de demande, et ensuite associer une sélection de réponses adaptées.

Pour la machine, c’est considérablement plus simple. La cible n’est plus une combinaison de mots parmi un nombre astronomique de possibilités, mais juste une catégorie parmi peu (jusqu’à une trentaine).

Qui dit classification, dit la plupart du temps apprentissage supervisé : les méthodes d’IA qui présentent à la machine un certain nombre d’exemples de catégorisation avant de la laisser faire le tri toute seule.

Or, obtenir ces exemples n’est pas nécessairement simple. Pour un modèle qui prend en compte la diversité des formulations qu’emploient les clients, il en faut au moins quelques milliers. Annoter manuellement, c’est-à-dire passer les paires message-réponse en revue une par une, c’est long, répétitif et coûteux.

Il serait tentant d’externaliser cette tâche à des services d’annotation spécialisés, mais… nous avons une meilleure méthode, basée sur une autre régularité.

Des réponses homogènes

Quand j’ai mentionné plus haut que les réponses des conseillers de service client étaient communes à beaucoup de messages, je parlais de leur sens général. Typiquement, beaucoup de questions sur la livraison d’un colis peuvent être gérées en faisant un point sur l’expédition et un rappel des délais de transport.

Or, la formulation de ces réponses est également commune ! Réécrire constamment les mêmes phrases, pour faire passer le même type d’information à plusieurs clients, est une perte de temps et d’énergie phénoménale.

La plupart des services clients ont donc des contenus préparés, des phrases, voire des messages entiers, qui servent de base à la rédaction. Nous en parlons plus amplement par ici :

Nous nous appuyons fortement sur ces régularités pour démultiplier l’efficacité de nos annotations, et obtenir une quantité d’exemples suffisante pour entraîner un modèle prédictif performant.

La réutilisation de contenu d’une réponse à l’autre forme une structure dans les réponses, que nous pouvons cette fois explorer à l’aide d’apprentissage non supervisé, ici du clustering, qui permet de former des groupes d’éléments à partir d’indicateurs de similarité.

Le grand groupe orange en bas à droite correspond à la procédure pour changer le numéro de téléphone associé à un compte. Réalisé en Python avec scikit-learn & matplotlib. Unités arbitraires.

Le principe de base est le suivant : la catégorisation d’un message a une forte probabilité d’être partagée par d’autres ayant reçu une réponse similaire. Une fois identifiés des groupes de réponse, il nous suffit de sélectionner un échantillon de chacun d’entre eux et de les annoter.

Si une majorité qualifiée d’un échantillon partage la même catégorisation, celle-ci peut être étendue aux groupements entiers, multipliant par plusieurs dizaines, voire centaines de fois, la portée d’une seule intervention humaine.

C’est en annotant des messages judicieusement choisis en fonction de la structure des réponses, que nous pouvons établir une base d’entraînement en un rien de temps !

Voilà pour le côté classification, celui qui prend un message en entrée et qui prédit une catégorie. Mais que se passe-t-il ensuite ?

Des procédures codifiées

Une fois la catégorie de la demande identifiée, il peut exister plusieurs réponses adaptées au contexte de celle-ci. Pour une même demande « où est mon colis », une conseillère n’enverra pas le même message si ledit colis n’a pas encore quitté l’entrepôt, ou s’il vient d’arriver en point relais.

Comme décrit dans un précédent article, le choix de cette réponse dépend d’une procédure métier, une connaissance partagée par l’ensemble de service, une collection de règles qui tentent de recouvrir un maximum de cas.

Nous quittons alors l’univers merveilleux du langage naturel, où il existe par défaut plusieurs centaines de manières d’exprimer une même idée, pour l’univers prodigieux des données structurées, où il en existe généralement une seule.

Sans grande surprise, les machines s’y retrouvent mieux !

Le choix d’une réponse est donc théoriquement guidé par un arbre de décision, où chaque résultat est lié à une combinaisons de facteurs bien définis ; par exemple, la présence d’une pièce jointe, la date et le montant d’une commande, etc.

Une approche similaire existe en apprentissage supervisé, où la machine construit un ensemble d’arbres de décisions possibles, dont la combinaison approche le processus employé par les conseillers.

Là encore, l’apprentissage s’appuie sur les groupements de réponses basés sur la réutilisation de leur contenu, mais aussi par des indicateurs supplémentaires, comme la journalisation des actions des conseillers.

Organisation implicite, pilotage explicite

À l’époque où Hubware déployait ses premiers modèles prédictifs, nous supposions que notre référence absolue pour l’entraînement de l’Assistant était l’observation du comportement réel des conseillers, des réponses envoyées, des actions déclenchées.

Autrement dit, que l’organisation du service client était implicite, que les procédures étaient une description approximative du métier des conseillers, et qu’il fallait faire pleinement confiance à leur raisonnement quotidien.

Or, nous avons rapidement compris que le fonctionnement d’un service client dans son ensemble est partiellement piloté, avec des instructions explicites. L’apparente homogénéité des réponses des conseillers ne vient pas de nulle part.

Certaines procédures métier, comme la réponse à donner en cas de commande incomplète, sont la source de vérité, la référence. Une réponse d’un conseiller qui dévie de cette procédure est fausse !

Pour une machine, le problème devient nettement plus délicat : comment apprendre de l’observation du comportement humain s’il ne faut pas toujours lui faire confiance ? Comment déterminer s’il y avait une règle à suivre, ou si les anomalies apparentes provenaient de cas particuliers ?

Il n’existera pas d’équilibre parfait avant que la machine puisse se substituer entièrement au jugement humain, ce qui encore très loin d’être possible (ni même souhaitable, pour certaines situations).

C’est pourquoi notre approche est hybride : nous concevons notre Assistant pour qu’il puisse agir selon ses observations ou selon des instructions plus strictes, en toute transparence.

Pas de mystère, mais des principes simples

Je ne mets généralement pas longtemps à expliquer notre infrastructure technique à un.e expert.e en IA. Nos méthodes sont relativement simples, comparées aux prouesses des publications scientifiques les plus médiatisées.

Explorer les différentes manières de s’adapter à un contexte précis, au spécificités du service client ; combiner les techniques existantes et comprendre pourquoi elles marcheront ou non dans chaque situation : c’est aussi de la recherche !

Faire des retouches incessantes, s’appuyer sur un empilement d’astuces pour attraper le point de performance supplémentaire, n’est pas viable sur le long terme.

Après plusieurs années d’expérience à tester des hypothèses et à garder notre méthode la plus claire possible, les principes qui restent sont les principes qui marchent.

Ces sujets vous concernent ? Vous souhaitez en savoir plus ?

Contactez-nous dès maintenant !

En attendant, retrouvez-nous sur Twitter, Facebook, LinkedIn et notre site hubwa.re !

Si vous aimez cet article, 👏 ci-dessous.

--

--