Fermer

avril 12, 2018

La montée de l'interface utilisateur conversationnelle intelligente


Nous avons longtemps pensé à des interfaces strictement visuelles: des boutons, des listes déroulantes, des curseurs, des carrousels (pas plus de carrousels). Mais maintenant nous regardons un futur composé non seulement d'interfaces visuelles, mais aussi d'interfaces conversationnelles. Microsoft seul signale que trois mille nouveaux robots sont construits chaque semaine sur leur [17949002] bot framework . Chaque.

L'importance de l'interface conversationnelle ne peut être sous-estimée, même si certains d'entre nous souhaiteraient que cela ne se produise pas.

L'avancée la plus importante dans l'interface conversationnelle a été N atural L anguage P traitement (NLP). C'est le domaine de l'informatique qui ne traite pas du déchiffrage des mots exacts qu'un utilisateur a dit, mais de l'analyse de leur intention réelle. Si le bot est l'interface, la PNL est le cerveau. Dans cet article, nous allons voir pourquoi la PNL est si importante et comment vous ( oui, vous! ) pouvez construire la vôtre.

La plupart des gens se familiariseront avec Amazon Echo , Cortana, Siri ou Google Home, qui ont toutes une interface principalement conversationnelle. Ils utilisent également la PNL.

Mis à part ces assistants intelligents, la plupart des interfaces de conversation n'ont rien à voir avec la voix. Ils sont axés sur le texte. Ce sont les robots avec qui nous discutons dans Slack, Facebook Messenger ou par SMS. Ils fournissent des gifs de haute qualité dans nos chats, surveillent nos processus de construction et même gèrent nos demandes d'extraction.


Grand aperçu

Les UI conversationnelles construites sur du texte sont agréables car il n'y a pas de composant de reconnaissance vocale. Le texte est déjà analysé.

Quand il s'agit d'une interaction verbale, le problème fondamental n'est pas de reconnaître le discours. OK, alors peut-être que ce n'est pas parfait. Je reçois toujours des messages vocaux tous les jours comme un jeu de Mad Libs que je n'ai jamais demandé à jouer. iOS ne fait que coller une ligne vide à chaque fois qu'il ne sait pas exactement ce qui a été dit


Grand aperçu

Google, d'un autre côté, essaie juste de deviner. Comme celui-ci de mon père. Je n'ai absolument aucune idée de ce que ce message essaie réellement de dire à part "Be Safe" qui sonne honnêtement comme ma mère, et pas mon père. J'ai du mal à croire qu'il ait jamais dit ça. Je ne fais pas confiance à l'ordinateur.


Grand aperçu

Je choisis ici les transcriptions de la messagerie vocale, ce qui pourrait être la plus difficile à faire compte tenu de la dégradation de la qualité du son

. est en grande partie un problème résolu. Il est même intégré dans Chrome et fonctionne remarquablement bien.


Grand aperçu

Après avoir résolu le problème de la reconnaissance vocale, nous avons commencé à l'utiliser partout. C'était malheureux parce que la reconnaissance de la parole ne nous fait pas beaucoup de bien. Les interfaces qui reposent uniquement sur la reconnaissance de la parole exigent que l'utilisateur énonce les choses de façon précise et ne peuvent indiquer que le nombre limité de mots ou de phrases exacts que l'interface connaît. Ce n'est pas naturel.

Sans PNL, l'interface conversationnelle peut être un véritable cauchemar

Interface conversationnelle sans PNL

Nous connaissons probablement tous les menus téléphoniques automatisés. Ceux-ci sont connus comme I nteractive V oice R systèmes de réponse – ou IVRs pour faire court. Ils sont conçus pour prendre la place de l'opérateur traditionnel et transférer automatiquement les appelants au bon endroit sans avoir à parler à un humain. En surface, cela semble être une bonne idée. En pratique, c'est surtout vous qui attendez qu'une voix enregistrée lise une liste d'éléments de menu qui "ont pu changer".


Grand aperçu

Une étude de 2011 de l'Université de New York a trouvé 83 Pour cent des personnes, les systèmes de RVI «ne procurent aucun avantage, ou seulement un avantage économique pour l'entreprise». Ils ont également noté que les systèmes IVR «obtiennent des résultats inférieurs à toute autre option de service». un menu téléphonique automatisé.

La PNL a changé le marché de l'IVR de façon plutôt significative au cours des dernières années. NLP peut choisir l'intention d'un utilisateur à partir de tout ce qu'ils disent, il est donc préférable de les laisser le dire et de déterminer si vous soutenez l'action.

Découvrez comment AT & T le fait

AT & T a une interface conversationnelle vraiment intelligente . Il utilise la PNL pour me laisser dire mon intention. De plus, remarquez que je n'ai pas besoin de savoir quoi dire. Je peux fouiller tout autour de moi et je devine toujours mon intention.

AT & T utilise également les informations dont elle dispose déjà (mon numéro de téléphone) et utilise la messagerie texte pour m'envoyer un lien vers une interface visuelle traditionnelle. meilleur UX pour faire un paiement. PNL conduit toute l'expérience ici. Sans cela, le reste de l'interaction ne serait pas aussi lisse.

La PNL est puissante, mais plus important encore, elle est également accessible aux développeurs partout dans le monde. Vous n'avez pas besoin de savoir quoi que ce soit à propos de l'apprentissage automatique (ML) ou de l'intelligence artificielle (IA) pour l'utiliser. Tout ce que vous devez faire est de faire un appel AJAX. Même moi, je peux le faire!

Construire une interface NLP

Une grande partie de Machine Learning reste inaccessible aux développeurs. Même les meilleures vidéos YouTube sur le sujet deviennent rapidement difficiles à suivre avec des sujets comme Réseaux de neurones et Descentes de gradient . Nous avons cependant fait des progrès significatifs dans le domaine du traitement des langues, au point qu'il est accessible aux développeurs de presque n'importe quel niveau de compétence.

Le traitement du langage naturel diffère selon le service, mais l'idée générale est que l'utilisateur a une intention, et cette intention contient des entités. Cela ne veut rien dire pour le moment, alors travaillons sur un hypothétique robot Home Automation et voyons comment cela fonctionne.

L'exemple de la domotique

Dans le domaine du traitement automatique des langues, le "Hello World" est généralement une démo de domotique. C'est parce qu'il aide à démontrer clairement les concepts fondamentaux de la PNL sans surcharger votre cerveau.

Un Bot Home Automation est un service qui peut contrôler les lumières hypothétiques dans une maison hypothétique. Par exemple, nous pourrions vouloir dire "allumer les lumières de la cuisine". C'est notre intention. Si nous disons "bonjour", nous exprimons clairement une intention différente. A l'intérieur de cette intention, il y a deux éléments d'information dont nous avons besoin pour compléter l'action:

  1. La 'Localisation' de la lumière (cuisine)
  2. L'état souhaité des lumières 'Power' (on / off) [19659035] Ceux-ci (Location, Power) sont connus comme des entités.

    Lorsque nous aurons fini de concevoir notre interface NLP, nous pourrons appeler un point de terminaison HTTP et passer notre intention: "Allumez les lumières de la cuisine." Cet endpoint nous retournera l'intention (Control Lights) et deux objets représentant nos entités: Location et Pouvoir. Nous pouvons ensuite les passer dans une fonction qui contrôle réellement nos lumières …

     function controlLights (location, power) {
      console.log (`En tournant $ {power} les lumières $ {location }`);
      
      // TODO: appelle un endpoint imaginaire qui contrôle les lumières
    }
    

    Il y a beaucoup de services NLP disponibles aujourd'hui pour les développeurs. Pour cet exemple, je vais montrer le projet LUIS de Microsoft car il est libre d'utilisation.

    LUIS est un outil complètement visuel, donc nous n'écrirons pas de code du tout . Nous avons déjà parlé d'Intents and Entities, donc vous connaissez déjà la plupart des termes que vous devez connaître pour construire cette interface.

    La première étape consiste à créer une intention "Lights Control" dans LUIS.


    Large preview

    Avant de faire quoi que ce soit avec cette intention, j'ai besoin de définir mes entités Location et Pouvoir. Les entités peuvent être de différents types – sortes de types similaires dans un langage de programmation. Vous pouvez avoir des dates, des listes et même des entités liées à d'autres entités. Dans ce cas, Power est une liste de valeurs (on, off) et Location est une entité simple, qui peut avoir n'importe quelle valeur.

    LUIS devra être assez intelligent pour comprendre exactement quoi la Emplacement est


    Grand aperçu

    Grand aperçu

    Maintenant, nous pouvons commencer à former ce modèle pour comprendre toutes les différentes façons dont nous pourrions lui demander de contrôler les lumières dans un endroit différent. Pensons à toutes les différentes façons dont nous pourrions faire cela:

    • Éteignez les lumières de la cuisine
    • Éteignez les lumières du bureau
    • Les lumières du salon les allument
    • Lumières, cuisine, éteint;
    • Éteindre les lumières (pas d'emplacement).

    Comme je les nourris dans l'intention des Lumières de contrôle comme des énoncés, LUIS essaie de déterminer où se trouvent les entités dans l'intention. Vous pouvez voir que parce que Power est une liste discrète de valeurs, il obtient ce droit chaque fois.


    Grand aperçu

    Mais il n'a aucune idée de ce qu'est un Lieu. LUIS veut que nous parcourions cette liste et disions où se trouve l'emplacement. C'est fait en cliquant sur un mot ou un groupe de mots et en attribuant à la bonne entité. Comme nous faisons cela, nous sommes en train de créer un modèle d'apprentissage automatique que LUIS va utiliser pour estimer statistiquement ce qui qualifie de Lieu.


    Grand aperçu

    Quand j'ai fini de dire à LUIS où dans ces énoncés tous les les emplacements sont, mon tableau de bord ressemble à ceci …


    Grand aperçu

    Maintenant, nous formons le modèle en cliquant sur le bouton "Train" en haut. Vous sentez-vous comme un data scientist?

    Maintenant, je peux le tester en utilisant le panneau de test. Vous pouvez voir que LUIS est déjà assez intelligent. Le pouvoir est facile à repérer, mais il peut effectivement choisir des endroits qu'il n'a jamais vu auparavant. C'est faire ce que votre cerveau fait – en utilisant les informations dont il dispose pour faire une supposition éclairée. L'apprentissage automatique est à la fois impressionnant et effrayant.


    Grand aperçu

    Si nous essayons assez fort, nous pouvons tromper l'IA. Plus nous donnons d'énoncés et d'étiquettes, plus il sera intelligent. J'ai ajouté 35 énoncés à la mienne avant que j'aie terminé et il est proche de l'épreuve des balles.

    Donc maintenant nous arrivons à la partie importante, qui est comment nous utilisons réellement ce NLP dans une application. LUIS dispose d'une option de menu "Publier" qui nous permet de publier notre modèle sur Internet où il est exposé via un seul point de terminaison HTTP. Il ressemblera à quelque chose comme ça …

     https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/c4396135-ee3f-40a9-8b83-4704cddabf7a?subscription-key=19d29a12d3fc4d9084146b466638e62a&verbose=true&timezoneOffset= 0 & q = 

    La toute dernière partie de cette chaîne de requête est une variable q = . C'est ici que nous transmettrons notre intention.

     https://westus.api.cognitive.microsoft.com/luis/v2.0/apps/c4396135-ee3f-40a9-8b83-4704cddabf7a?subscription-key=19d29a12d3fc4d9084146b466638e62a&verbose= true & timezoneOffset = 0 & q = allumer les lumières de la cuisine 

    La réponse que nous récupérons est juste un objet JSON.

     {
      "requête": "allumer les lumières de la cuisine",
      "topScoringIntent": {
        "intention": "Lumières de contrôle",
        "score": 0.999999046
      },
      "intentions": [
        {
          "intent": "Control Lights",
          "score": 0.999999046
        },
        {
          "intent": "None",
          "score": 0.0532306843
        }
      ],
      "entités": [
        {
          "entity": "kitchen",
          "type": "Location",
          "startIndex": 12,
          "endIndex": 18,
          "score": 0.9516622
        },
        {
          "entity": "on",
          "type": "Power",
          "startIndex": 5,
          "endIndex": 6,
          "resolution": {
            "values": [
              "on"
            ]
          }
        }
      ]
    }
    

    Maintenant c'est quelque chose que nous pouvons travailler en tant que développeurs! C'est ainsi que vous ajoutez du PNL à n'importe quel projet – avec un seul point de terminaison REST. Maintenant vous êtes libre de créer un bot avec de vrais cerveaux!

    Brian Holt a utilisé l'API de la parole du navigateur et un modèle LUIS pour créer une calculatrice vocale fonctionnant directement dans CodePen. Chrome est requis pour l'API de la parole

    Voir le Pen Voice Calculator de Brian Holt ( @btholt ) le CodePen .

    Bot Design est toujours difficile

    Avoir un robot intelligent n'est que la moitié de la bataille. Nous devons toujours tenir compte de toutes les actions que notre système pourrait exposer, et cela peut conduire à un grand nombre de chemins logiques différents qui rend le code désordonné.

    Les conversations se font également par étapes, donc le bot doit être capable de orienter intelligemment les utilisateurs sur le bon chemin sans les frustrer ou ne pas être capable de récupérer en cas de problème. Il doit être capable de récupérer lorsque la conversation meurt à mi-chemin puis recommencer. C'est un tout autre article et j'ai inclus quelques ressources ci-dessous pour aider.

    Quand il s'agit de la compréhension de la langue, les plates-formes AI sont matures et prêt à utiliser aujourd'hui. Bien que cela ne vous aide pas à concevoir parfaitement votre bot, ce sera un composant clé pour construire un bot que les gens ne détestent pas.

    L'interface utilisateur est juste une interface utilisateur

    Une note finale: Comme nous vu de l'exemple AT & T, une interface intelligente vraiment combine une grande reconnaissance vocale, le traitement du langage naturel, différents types d'interface utilisateur conversationnelle (discours et texte) et même une interface utilisateur visuelle. En bref, une grande interface utilisateur est juste que – une grande interface utilisateur – et ce n'est pas un jeu à somme nulle. Les grandes interfaces utilisateurs tireront parti de toute la technologie disponible pour offrir la meilleure expérience utilisateur possible.

    Un merci spécial à Mat Velloso pour sa contribution à cet article.

    Autres ressources:

     Rédaction éditoriale (rb, ra, yk, il)






Source link