Architecture des applications utilisant Watson.
INTRODUCTION
Le terme de l’intelligence artificielle symbolise la grande espérance dans le monde informatique du moment. C’est que, tout semble destiné à être révolutionné par cette technologie qui suscite autant d’espoirs que de craintes. Depuis quelques années, les ordinateurs font des progrès dans la maitrise des jeux comme les échecs1, le jeu de go2 , le jeu télévisé Jeopardy!3 ainsi que la reconnaissance d’image. Qu’en est-il dans la recherche d’information textuelle ? Actuellement trois états de fait encouragent les data scientists à se pencher sur les recherches textuelles utilisant le « Machin learning » 4 pour la recherche de l’information pertinente vis-à-vis d’une requête :
• La disponibilité d’immenses corpus numérisés sous format non structurés, ces données se multipliant 5 par 100 chaque 10 ans. Par données non structurées, nous entendons toute donnée extérieure à un type de structure.
Pour ces raisons nous allons tenter dans ce travail d’exposer, à travers le service Retrieve and Rank de Watson IBM, les composant essentiels qui permettent d’interroger une base de documents, chaque composant sera traité séparément pour essayer de montrer les possibilités et l’impact de chacun. Pour finir, une analyse des résultats sera effectuée d’abord pour voir si une évolution est remarquée par rapport aux recherches classiques, ensuite pour tenter de voir comment le système adapte ses réponses par rapport à la façon dont nous l’entraînons, et enfin nous allons tenter de faire quelques conclusions. Les tests porteront exclusivement sur un corpus d’environ 300 documents de lieux touristiques en Suisse issus d’internet7. Ce n’est pas un choix au hasard car avant de commencer mes études à la HEG, je travaillais comme créateur de voyages dans une agence de voyage. Selon mon expérience, nous pouvons gagner du temps en recourant à un système intelligent — dont le principe de fonctionnement consiste à prendre en compte les modèles des demandes traitées dans le passé — qui aide à traiter (ou à prétraiter) les demandes des clients, pour les adapter à leurs besoins spécifiques.
APPRENTISSAGE D’ORDONNANCEMENT
Parmi les techniques de machine learning utilisées pour les recherches textuelles, nous retrouvons les algorithmes d’apprentissage d’ordonnancement (learning to rank). Ces algorithmes — utilisés par le service Watson Retrieve and Rank — ont pour objectif d’ordonner les documents retrouvés en réponse à une requête ; ils utilisent un ensemble de données — appelé Training data — pour augmenter la pertinence des recherches. En effet, dans ce type de recherches, chaque couple requête/document est transformé en un vecteur de caractéristiques8 qui sont des propriétés mesurables représentant les scores de similarité entre la requête et le document. Nous pouvons également trouver parmi ces caractéristiques ceux qui sont propres à la requête ou au document comme, par exemple, le nombre de termes. Le Training data, qui est constitué de vecteurs de caractéristiques, sera utilisé par les algorithmes pour créer des modèles d’ordonnancement (Ranking Model). Par la suite, lesdits modèles pourront permettre au système de prédire l’ordre optimal des documents pour une requête ultérieure.
A. DOMAINES D’UTILISATION
R&R peut s’avérer utile pour les services clients tel que les équipes de support, les techniciens et tous les métiers qui ont besoin de trouver rapidement l’information la plus pertinente parmi une grande masse de documents. Par exemple, R&R peut s’avérer utile pour un technicien souhaitant trouver une solution dans un manuel d’utilisation très volumineux. Tout comme ce service peut s’avérer utile pour les services professionnels en chasse des personnes talentueuses possédant les compétences appropriées. Dans les forums tels que « stackoverflow », il est des questions récurrentes de sorte que la plupart des visiteurs de cette plateforme recherchent d’abord parmi les questions déjà posées, et donc les réponses apportées. Malheureusement cette recherche peut s’avérer difficile car la recherche, classique, implémentée par les moteurs de recherche (google, yahoo, etc…) recourt aux mots clés. C’est là qu’intervient la plue-value de R&R qui peut améliorer cette recherche en utilisant son système de ranking, car ladite recherche peut comprendre le sens du mot pour fournir les réponses existantes les plus pertinentes.
B. NOTRE CAS D’ÉTUDE
La performance d’une application utilisant le service R&R peut être mesurée à sa capacité de retourner les documents les plus pertinents pour l’utilisateur. Afin d’expérimenter le service R&R, nous avons décidé de créer un système qui contient un ensemble de lieux touristiques (des restaurants, musées, monuments etc…), et qui retournera une liste des lieux les plus appropriés par rapport à une requête.
L’objectif étant de vérifier la capacité du système à retourner les documents les plus pertinents, nous avons observé l’évolution de la pertinence des réponses suivant le nombre et le type de questions.
C. AVANT DE COMMENCER
La première étape avant de commencer est de créer un compte bluemix pour pouvoir utiliser les services offerts par Watson. Ensuite il faut créer une instance du service Retrieve and Rank pour avoir les credentials (username et password), en effet pour chaque instance d’un service Watson nous avons besoin d’un accès.
Le composant « Retrieve » du service Retrieve & Rank est implémenté par Apache Solr qui est l’un des outils de recherche Open Source les plus répandus (avec Sphinx et ElasticSearch). Pour effectuer ses recherches, Solr conserve les données sous un certain format. Ainsi, chaque document (appelée également section) est défini comme un ensemble de champs (fields) auxquels sont associées des valeurs. Ces champs permettent à Solr d’indexer les données et les métadonnées pour pouvoir effectuer les recherches idoines.
Comme mentionné précédemment, la partie Retrieve du service R&R est basée sur Apach Solr, de sorte que quelques connaissances du fonctionnement de Solr sont nécessaires car bien souvent R&R transmet les messages de Solr sans modification à l’utilisateur. Par exemple, lorsque Solr retourne une erreur au service R&R, celui-ci transmet cette erreur sans modification à l’utilisateur. Normalement, la préparation des documents est la première étape. Toutefois, pour comprendre pourquoi les documents non structurés sont formatés d’une certaine façon, nous avons commencé par décrire la configuration de Solr.
C) LES TYPES SOLR
Solr fournit tout un ensemble de types pré-définis. En effet un type Solr peut être comparé à une classe Java avec des types primitifs (int, double etc…), des types spécifiques à Solr comme par exemple le type text, ainsi que des classes dont nous pouvons modifier le comportement. Les types spécifiques à Solr sont toutefois très généraux et donc pas nécessairement adaptables aux spécificités de chaque cas. Solr donne la possibilité de créer des types spécifiques auxquels nous pouvons associer des options qui peuvent représenter, pour Solr, la façon dont le filtrage et la tokenization ainsi que d’autres techniques vont être appliqués à un certain champ lors de la recherche ou de l’indexation. C’est donc au développeur de définir ce dont son application a besoin comme options pour effectuer les recherches.
Maintenant que nous connaissons la structure des documents dont Solr a besoin pour faire ses recherches, nous avons besoin de formater les données non structurées dans le format Solr que nous venons de créer dans le fichier de configuration Schema.xml. Pour cela nous allons utiliser le service Document Conversion fournit par IBM. Mais nous allons d’abord préparer les documents dans lesquels le service R&R va chercher ceux qui répondent aux requêtes des utilisateurs.
Ce filtrage permet de garder seulement les informations dont nous avons besoin. Par exemple nous pouvons exclure un type de balises, ce qui permet de n’avoir que les informations pertinentes dans les sections que nous allons transmettre au service R&R.
A RETENIR
Ces graphiques nous montrent que les recherches du Ranker — qui utilise l’apprentissage d’ordonnancement sont beaucoup — plus pertinentes que celles des recherches classiques. Dans tous les cas au moins une augmentation de la pertinence de 5% a été remarquée avec les seules 50 premières questions. Nous constatons que la pertinence des réponses du système augmente avec le nombre de questions avec lesquelles nous l’entraînons, bien que cette augmentation puisse paraitre parfois légère, comme c’est le cas pour les « nouvelles questions » (courbe rouge), mais la tendance reste positive. Cette augmentation est remarquée lorsque les questions font partie du fichier d’entraînement, mais également lorsque les questions sont nouvelles. Toutefois nous constatons que lorsque les questions font partie du fichier d’entraînement, la tendance positive de la courbe est plus importante. Ce dernier constat nous laisse penser que lorsqu’un type de question est très fréquent, le fait de retourner un feedback au service sur ses réponses peut augmenter la pertinence de ses réponses ultérieures. Nous remarquons également que le type de questions peut avoir un impact sur la pertinence des documents retournés par le service R&R. Cela signifie que R&R doit être entrainé par des experts qui connaissent la nature des questions que l’application — qui utilise le service — a tendance à recevoir. Ceci confirme le fait que Watson est un « domain-oriented », car dans le développement d’une Architecture des applications utilisant Watson. Cas pratique de l’interrogation d’une base de documents BENTAHAR Bassim application qui peut recevoir des questions génériques (comme ça été le cas pour le jeu télévisé Jeopardy !), l’entraînement peut s’avérer bien plus compliqué. L’expérience du cas 50_50 qui retourne un feedback au service R&R indique que le système n’apprend pas les réponses mais extrait les caractéristiques les plus importantes qui l’aideront à répondre aux requêtes qu’il recevra dans le futur. Nous avons remarqué également que l’évolution des performances a été plus forte lorsque nous étions passés de 50 à 75 questions (d’entraînement), que lorsque nous étions passés de 75 à 100.
En effet ceci voudrait dire que la Ranker arrive mieux à extraire les caractéristiques d’un couple requête/document lorsque nous lui indiquons des notes de pertinence et aussi de non pertinence sur plusieurs documents. Parmi les problématiques qui peuvent détériorer les performances du service R&R, nous retrouvons le manque de plusieurs techniques de recherche d’information dans la partie Retrieve du service, — par exemple le fait qu’il ne prend pas en compte la racinisation en Français.
Comme nous l’avons mentionné précédemment, l’ordonnancement est effectué à partir des documents retournés par la recherche Solr. Or, la nature des documents sélectionnés peut ne pas inclure de mots clés, ce qui peut causer l’élimination des documents les plus pertinents dès la première phase(Retrieve). Une solution pour être sûr d’avoir les bons résultats parmi les documents retournés par « Retrieve » est de modifier le paramètre « rows » (augmenter le chiffre), en sachant que, par défaut, il retourne 10 documents.
A travers ce document, nous avons essayé d’exposer les différents composants du service Retrieve and Rank. Nous avons constaté que chacun de ses composants représente un élément important dont la maitrise influence fortement la pertinence des recherches. En effet, à travers cette architecture décomposée, IBM tente de donner le moyen de mieux adapter les différents éléments du service aux objectifs visés, par exemple le fait que chaque composant donne un résultat partiel, nous donne la possibilité d’inclure dans le calcul du degré de confiance d’autres critères — comme les avis des clients —, ce qui améliorer la pertinence des documents retournés. Ce service peut également être intégré dans une architecture beaucoup plus riche, avec d’autres services Watson comme le montre la figure 28.
L’amélioration des résultats est corrélée à constater l’efficience de l’entraînement du système. Non seulement le nombre de questions d’entraînement dans le « ground truth » est important mais également la nature des questions, le cas 50_50 illustre bien le fait que les feedbacks que nous donnons au système peuvent fortement contribuer à améliorer ses performances pour un type spécifique de questions. Ces améliorations qu’offre l’intelligence artificielle dans le domaine des recherches textuelles, peuvent être très bénéfiques pour les entreprises et les particuliers, et il serait dommage de ne pas en profiter.
|
Table des matières
I. Introduction
II. Apprentissage d’ordonnancement
III. Retrieve and Rank
A. Domaines d’utilisation
B. Notre Cas d’étude
C. Avant de commencer
D. Retrieve
1. Solr
2. Configuration
3. Documents conversion
4. Préparation des documents
5. Création du Solr cluster
6. Création de la collection
7. Indexer les documents
E. Rank
1. Créer et entrainer le ranker
2. Re-entrainer le système
IV. Evaluation des résultats
A. Données du training
B. Pertinence
C. Types de questions des requêtes
D. Evaluation des résultats
1. L’évolution de la première réponse
Architecture des applications utilisant Watson. Cas pratique de l’interrogation d’une base de documents
2. L’évolution des trois premières réponses
3. A retenir
V. Application
VI. Conclusion
Télécharger le rapport complet