Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2018-01 - Meetup Cognitive Services #3 - REX LUIS

2018-01 - Meetup Cognitive Services #3 - REX LUIS

Support de présentation du meetup Cognitive Services Paris #3
https://www.meetup.com/fr-FR/Cognitives-Services-Paris/events/245722154/

Nicolas ROBERT

January 18, 2018
Tweet

More Decks by Nicolas ROBERT

Other Decks in Programming

Transcript

  1. CONCEPTION Qui suis-je ? § Nicolas ROBERT § Technical Manager

    chez Cellenza § En charge de projets autour des thématiques : § Contact : https://stackoverflow.com/ users/3136339/nicolas-r https://www.linkedin.com/in/ robertnicolas/ @NicoRobPro Chatbot / Bot Framework AI, Cognitive Services
  2. Et vous… Qui êtes-vous ? Quelle expérience avez-vous autour des

    services cognitifs ? 1 Découverte des services ? 2 Utilisation de services autres que LUIS ? 3 Connaissance de LUIS ? 4 Utilisation basique de LUIS ? 5 Pourquoi n'êtes vous pas à ma place ??
  3. 1 LUIS / Microsoft « Cognitive Services » 4 REX

    - Application dans le cadre d’un projet mailbot 2 Et en pratique, comment cela s’utilise ? 3 Annexes
  4. Services cognitifs § La promesse de Microsoft : § 5

    familles de services et des labs : « Intégrez dans vos applications, sites web et bots des algorithmes intelligents pour voir, écouter, énoncer, comprendre et interpréter les besoins de vos utilisateurs au moyen de méthodes naturelles de communication. » Vision Microsoft Speech Langue Connaissance Rechercher + Labs https://azure.microsoft.com/fr-fr/services/cognitive-services/directory/
  5. Concepts clés § Un projet LUIS est une « application

    » § Chaque application possède s’articule autour des notions suivantes : § Intents : « intentions » métier § Exemple : « demande de RIB pour paiement par virement » § Utterances : phrases correspondant aux intentions § Entities : entités utiles § Exemple : un numéro client § Remarque : il existe une intention appelée « None » pour placer les contenus qui ne correspondent pas à des cas utiles pour l’application Utterances (énoncés) Intents (intentions) Entities (entités)
  6. Consommation via l’API § Consommation : § APIs REST, testables

    en ligne (avec clé d’API) § Librairies clientes en packages NuGet § Intégration directe dans certains SDK, exemple : LUIS au sein du Bot Framework § Entrée : 1 phrase / Sortie : scoring sur chaque intention
  7. Quelques limites… Langues supportées Longueur texte max (500 caractères) Nombre

    d'intentions max (500) Nombre de « phrase list » (10)
  8. Périmètre fonctionnel Objectif initial : traiter de manière automatique les

    emails reçus par le service client. Le contenu de ces emails est analysé pour déterminer si « l’intention » de l’utilisateur peut être traitée automatiquement (6 use-cases à traiter) Dans le cas contraire, l’email est traité manuellement Lecture régulière des emails reçus Analyse via LUIS Réponse + archivage / transfert / déplacement
  9. Architecture globale Azure Mailbot (via Azure Function) LUIS 1 SI

    Client WS #1 WS #2 3b 3a 2 1 : récupération régulière des emails 2 : analyse linguistique 3a, 3b… : préparation de la réponse (selon intention) 4 : envoi de la réponse au client Office 365 Boite aux lettres Dossier Inbox 4
  10. Les difficultés rencontrées § Mise en place LUIS : §

    Spécificités traitement « mailbot » : Qualité des exemples (Data client) Nombre d’intentions possibles en preview Proximité entre intentions Orthographe / fautes de frappe Longueur des données Pas d’interaction utilisateur (confirmation) Pas de droit à l’erreur Multiples demandes dans 1 seul email
  11. Les solutions mises en place § Limite des 500 caractères

    è Pré-traitement e-mail nécessaire § Elimination du HTML § Nettoyage signatures, salutations, éléments inutiles § Données client : plus de 16 000 cas en entrée… § Limitation aux cas utiles et quelques cas récurrents à exclure § Validation manuelle de la qualité des items § Utilisation des API pour alimenter LUIS § Et sur LUIS et les résultats fournis ? Perte ~10% encore trop longs Plus de 5000 cas à relire
  12. Détail de l’application LUIS créée § Intentions : l’application a

    été créée avec 1 intention par cas métier à traiter par le bot, ainsi que quelques intentions complémentaires utiles pour améliorer la distinction entre des cas. § Exemple : 2 intentions distinctes pour les factures, afin de séparer « demande de duplicata de facture » vs « demande de facture pro forma »
  13. Traitement réponse LUIS § Requête au moteur « LUIS »

    et traitement de la « prédiction » (score pour chaque intention) avec l’algorithme ci-contre.
  14. Traitement réponse LUIS § Exemple cas « idéal » :

    § '16 : Envoi de documents # RIB' 0.9718451 § '16 : Envoi de documents # Autorisation prélèvement’ 0.394227475 § 'Autres # Réponse autorisation prélèvement' 0.128801987 § '16 : Envoi de documents # Bordereau de retour' 0.02685209 § 'Autres # Commande inconnue' 0.0172940288 § '16 : Envoi de documents # Bon de commande’ 0.0125597464 § 'Autres # Suivi échange remboursement’ 0.009616837 § 'Autres # Activation cartes’ 0.004936239 § 'Autres # Confirmation paiement’ 0.00409040553 § '13 : Suivi de commande # Cas utiles' 0.003306997 § 'None' 0.00145273609 § 'Autres # Absence' 0.00140470185 § 'Autres # Demande facture proforma' 0.0009131125 § '16 : Envoi de documents # Duplicata de facture' 0.000102399834
  15. Traitement réponse LUIS § Exemple cas « ambigu » :

    § '16 : Envoi de documents # RIB' 0,943431437 § '16 : Envoi de documents # Autorisation prélèvement' 0,857947245 § 'None' 0,63 § 'Autres # Confirmation paiement' 0,254121572 § 'Autres # Réponse autorisation prélèvement' 0,2328189 § 'Autres # Commande inconnue' 0,00299074 § '16 : Envoi de documents # Duplicata de facture' 0,001627745 § 'Autres # Suivi échange remboursement' 0,000894286 § 'Autres # Activation cartes’ 0,000652843 § '13 : Suivi de commande # Cas utiles' 0,000237355 § 'Autres # Demande facture proforma' 0,000224232 § '16 : Envoi de documents # Bordereau de retour' 0,000218592 § '16 : Envoi de documents # Bon de commande' 6,45207E-05 § 'Autres # Absence' 2,61257E-11
  16. Conclusion - Conseils § Focus client : § Mettez en

    place un processus d’amélioration continue de vos phrases LUIS. § Prenez le temps de requalifier les données dès le début du projet § Adaptez votre algorithme de décision aux spécificités de vos cas client § Attention ! § Au délai d’entrainement potentiellement long selon la quantité d’items § Aux éventuelles boucles de traitement § A l’impossibilité de changer le propriétaire de l’app LUIS § Application LUIS : § Fournissez des cas à l’intention « None » § Automatisez la génération de votre app pour gagner du temps (via API ou import JSON) § Utilisez les « versions » de projets LUIS
  17. Pourquoi / comment je réutiliserai LUIS ? Interaction utilisateur Cas

    d'usage bien distincts Amélioration continue
  18. Pour aller plus loin § Quelques informations / documentations /

    outils / tutos : 1. Définition de l’API LUIS v2.0 + testeurs : West US / West Europe 2. Documentation Microsoft 3. Package NuGet 4. Exemples de code sur GitHub