Systèmes de Questions-Réponses en Domaine Ouvert

Transcription

Systèmes de Questions-Réponses en Domaine Ouvert
Université de Nantes
Rapport de Stage de Master 2 ATAL
Systèmes de Questions-Réponses en
Domaine Ouvert
Auteur :
Emmanuel Turbé
Responsable Laboratoire :
Philippe Leray
Responsable Formation :
Colin de la Higuera
7 juillet 2015
Table des matières
Remerciements
3
1 Introduction
4
2 Cadre de travail
2.1 Laboratoire d’Informatique de Nantes Atlantique (LINA) . .
2.2 Équipe Data User Knowledge (DUKe) . . . . . . . . . . . . .
2.3 CogniTalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
5
5
3 Problématique
7
4 Étude de l’art académique
4.1 Outils du traitement automatiques de la langue . . . . . . . .
4.1.1 Étiquetage morphosyntaxique . . . . . . . . . . . . . .
4.1.2 Analyse en dépendances . . . . . . . . . . . . . . . . .
4.1.3 Reconnaissance des entités nommées . . . . . . . . . .
4.1.4 Mesures de similarité . . . . . . . . . . . . . . . . . . .
4.2 Ingénierie des connaissances . . . . . . . . . . . . . . . . . . .
4.2.1 Ontologies . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 Web Sémantique . . . . . . . . . . . . . . . . . . . . .
4.2.3 Bases de connaissances . . . . . . . . . . . . . . . . . .
4.3 Architecture des systèmes de questions-réponses sur des données textuelles . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Analyse du type de réponse attendu . . . . . . . . . .
4.3.2 Liens . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Architecture des systèmes de questions-réponses sur des données structurées . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Analyse de la question . . . . . . . . . . . . . . . . . .
4.4.2 Segmentation de la question . . . . . . . . . . . . . . .
4.4.3 Détection des relations . . . . . . . . . . . . . . . . . .
4.4.4 Mapping des éléments de la question avec la base de
connaissances . . . . . . . . . . . . . . . . . . . . . . .
4.4.5 Résolution et requête . . . . . . . . . . . . . . . . . . .
4.5 Évaluations et Benchmarks . . . . . . . . . . . . . . . . . . .
4.5.1 Compétitions . . . . . . . . . . . . . . . . . . . . . . .
4.5.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . .
4.5.3 Génération de Benchmark . . . . . . . . . . . . . . . .
1
8
8
8
8
9
10
11
11
12
13
14
14
16
16
17
17
19
19
20
20
20
21
22
5 Étude des systèmes existants
5.1 Introduction . . . . . . . . . . .
5.2 Systèmes purement linguistique
5.2.1 Squall2SPARQL . . . .
5.2.2 Casia . . . . . . . . . .
5.2.3 TBSL . . . . . . . . . .
5.2.4 ISOFT . . . . . . . . . .
5.3 Systèmes hybrides . . . . . . .
5.3.1 DEANNA . . . . . . . .
5.3.2 Xser . . . . . . . . . . .
5.3.3 gAnswer . . . . . . . . .
5.3.4 Casia v2 . . . . . . . . .
5.4 Systèmes non linguistiques . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6 Contributions
6.1 1er prototype de système de questions-réponses . . . . .
6.1.1 Spécifications . . . . . . . . . . . . . . . . . . . .
6.1.2 Conception . . . . . . . . . . . . . . . . . . . . .
6.1.3 Bibliothèques logicielles utilisées . . . . . . . . .
6.1.4 Résultats . . . . . . . . . . . . . . . . . . . . . .
6.1.5 Analyse des erreurs . . . . . . . . . . . . . . . . .
6.2 Génération de questions . . . . . . . . . . . . . . . . . .
6.2.1 Protocole de génération des questions . . . . . .
6.2.2 Corpus Wikipedia . . . . . . . . . . . . . . . . .
6.2.3 Algorithme de génération de questions . . . . . .
6.2.4 Résultats . . . . . . . . . . . . . . . . . . . . . .
6.3 Réseaux Logiques de Markov . . . . . . . . . . . . . . .
6.3.1 Objectifs . . . . . . . . . . . . . . . . . . . . . .
6.3.2 Principe . . . . . . . . . . . . . . . . . . . . . . .
6.3.3 Expériences . . . . . . . . . . . . . . . . . . . . .
6.4 2ème prototype : à partir de Réseaux Logiques de Markov
cours de développement) . . . . . . . . . . . . . . . . . .
6.4.1 Approche . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Ressources de Mapping . . . . . . . . . . . . . .
6.4.3 Résultats . . . . . . . . . . . . . . . . . . . . . .
7 Conclusions et perspectives
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
(en
. . .
. . .
. . .
. . .
23
23
23
23
23
23
24
24
25
25
25
25
26
28
28
28
28
30
31
32
33
33
34
34
34
35
35
36
36
37
37
37
38
39
2
Remerciements
Je souhaite remercier toutes les personnes qui m’ont aidé et accompagné
durant ce stage.
Je remercie Stefan Knerr, fondateur de Cognitalk, pour l’opportunité
qu’il m’a donné de travailler sur un projet passionnant ainsi que pour tous
les conseils et remarques qu’il a pu faire. Merci également à François-Marie
et Benjamin de Cognitalk pour leur bonne humeur.
Je remercie également Philippe Leray, mon encadrant au laboratoire,
pour son accompagnement lors de ce stage et son soutien.
Enfin j’adresse également mes remerciements à tous les membres de
l’équipe DUKe pour leur accueil.
3
1
Introduction
Depuis les débuts de l’informatique, un souhait récurrent est de pouvoir
parler avec la machine. Cette vision apparaît dans la culture populaire que
ce soit dans la littérature, le cinéma ou les jeux vidéos entre autres. Avec par
exemple Samantha dans Her de Spike Jonze ou avec Cortana dans les jeux
vidéos Halo. Mais de telles interfaces de communications avec la machine
n’existent pas encore.
Récemment de nombreux projets industriels ont commencé à obtenir
des résultats intéressants en passant par les systèmes de questions-réponses.
Parmi ces projets, nous retrouvons Watson d’IBM, Siri d’Apple et Google
Now de Google par exemple. Mais il n’existe toujours pas d’interface conversationnelle.
Créer une interface conversationnelle est l’objectif de Cognitalk, une
jeune start-up nantaise. Le stage que j’ai réalisé est en partenariat avec
celle-ci. Le stage a eu lieu de février à juillet 2015 et était un partenariat
entre l’équipe DUKe du LINA et Cognitalk. Il avait pour thème principal les
systèmes de questions-réponses. Philippe Leray a été mon encadrant au sein
du laboratoire et Colin de la Higuera mon tuteur de formation.
Le stage avait plusieurs objectifs. Le premier était de réaliser un état de
l’art sur les systèmes de questions-réponses. Le deuxième était de réaliser
des preuves de concepts de systèmes de questions-réponses. Enfin le dernier objectif était de proposer un système qui pouvait être enrichi avec des
connaissances sur l’utilisateur.
Ce rapport est organisé comme suit. Premièrement le cadre de travail sera
présenté. Ensuite nous détaillerons les problématiques autours des systèmes
de questions-réponses. En suite nous verrons l’état de l’art des systèmes de
questions-réponses. Après nous étudierons les systèmes existants s’appuyant
sur des données structurées de manière détaillée. Enfin nous parlerons des
contributions produites et nous conclurons.
4
2
Cadre de travail
Le stage se place dans le cadre d’une collaboration entre l’équipe Data
User Knowledge (DUKe) du Laboratoire d’Informatique de Nantes Atlantique (LINA) et la start-up Cognitalk.
2.1
Laboratoire d’Informatique de Nantes Atlantique (LINA)
Le laboratoire d’informatique de Nantes Atlantique est un laboratoire de
recherche en informatique. Il est adossé à l’Université de Nantes, à l’école
des Mines de Nantes ainsi qu’au CNRS. Une collaboration avec Inria existe
également depuis 2012. La recherche y est focalisée autour de cinq thèmes
scientifiques :
— Contraintes et optimisation : équipes OPTI et TASC
— Science des données : équipes DUKe et GDD
— Logiciels et systèmes répartis : équipes AeLos, ASCOLA, ATLANMOD et GDD
— Ressources et applications multilingues : équipe TALN
— Bio-informatique : équipes ComBi et DUKe
2.2
Équipe Data User Knowledge (DUKe)
Le stage a eu lieu dans l’équipe Data User Knowledge (DUKe) du laboratoire d’informatique de Nantes Atlantique (LINA), dans leurs bureaux à
Polytech Nantes, sous la supervision de Philippe Leray. L’équipe est spécialisée dans la science des données. La science des données recouvre les problématiques d’acquisition, de stockage, d’interrogation et de découverte de
connaissances. L’équipe est composée de 17 permanents, 4 associés, 11 doctorants et 6 ingénieurs. Phillipe Leray, mon encadrant, est spécialisé dans les
représentations graphiques probabilistes telles que les réseaux bayésiens et
les PRM (Probabilistic Relational Models) par exemple. Les bureaux de cette
équipe sont répartis entre la faculté des sciences et techniques et Polytech
Nantes.
2.3
CogniTalk
Cognitalk est une jeune start-up fondée en Octobre 2014 situé au Hub
Créatic à deux pas de Polytech. L’objectif de l’entreprise est de créer une
nouvelle manière d’interagir avec la machine par le biais d’un agent conversationnel. Pour cela l’entreprise s’appuie sur des techniques de machine lear-
5
ning.
Elle a été fondée par Stefan Knerr, un spécialiste des réseaux de neurones, qui a déjà connu le succès avec sa précédente entreprise, MyScript
spécialisée dans les outils de reconnaissance de l’écriture manuscrite.
L’équipe à la fin de ce stage comportait quatre personnes :
— Stefan Knerr, le fondateur ;
— François-Marie Giraud, un ingénieur de recherche en machine learning
et traitement automatique du langage naturel qui a travaillé au LIP6 ;
— Benjamin Maréchal, ingénieur de recherche qui a une double formation en mathématiques et machine learning ;
— Jérémy Morvan également ingénieur de recherche.
6
3
Problématique
L’objectif de ce stage en collaboration entre le Lina et Cognitalk est de
fournir un état de l’art et des preuves de concepts autour des systèmes de
questions-réponses.
Un système de questions-réponses est un système qui pour une question
en langage naturel en entrée, répond à l’utilisateur avec la bonne réponse.
Par exemple, à la question "Quelle est la capitale de la France" la réponse
attendue est "Paris" voir la figure 1.
"Quelle est la
capitale de la France"
Système de
Questions Réponses
"Paris"
Figure 1 – Systèmes de questions-réponses
Le sujet est ancien [Green Jr et al., 1961] [Simmons et al., 1964]. Il a été
remis au goût du jour avec le projet IBM Watson[Ferrucci et al., 2010] et les
systèmes vocaux sur smartphone avec Siri et Google Now.
Dans le cadre de ce stage les questions posées au système seront sous
la forme de texte, un module de reconnaissance vocale pouvant se brancher
sur le système. Les réponses seront trouvées dans une base de connaissances
structurée. La langue traitée sera l’anglais.
Un système de questions-réponses permet à l’utilisateur d’interagir de
manière naturelle avec l’ordinateur. Il permet également de gagner du temps
par rapport aux moteurs de cherche classique en déléguant à la machine
la partie évaluation des documents restitués et la récupération du fragment
contenant l’information.
7
4
Étude de l’art académique
Dans cette section nous ferons des rappels sur sur différents aspects du
traitement des langues et les bases de connaissances. Ensuite nous détaillerons l’architecture des systèmes de questions-réponses, d’abord avec des données textuelles comme ressources puis avec des données structurées.
4.1
4.1.1
Outils du traitement automatiques de la langue
Étiquetage morphosyntaxique
L’étiquetage morphosyntaxique est une tâche de linguistique qui consiste,
dans un texte, à associer à chaque mot les informations grammaticales qui le
concerne. Les inforations grammaticales sont par exemple la partie du discours (nom, verbe, . . . ), le genre, le nombre, . . . Comme on peut le voir avec
l’exemple 4.1.
Exemple 4.1 "The cat jumps on the table." devient "The/Déterminant
cat/Nom jumps/Verbe à la 3ème personne on/Préposition the/Déterminant
table/Nom."
Ce processus peut être réalisé par un programme de manière automatique. Pour ce faire, il existe deux familles de techniques, celle basées sur les
règles et les approches stochastiques. De nombreux outils sont disponibles
(avec différentes licences) comme par exemple Treetagger 1 , Brill tagger 2 ,
Stanford Core NLP 3 , . . .
4.1.2
Analyse en dépendances
L’analyse en dépendances d’une phrase a pour but de trouver la structure
des relations entre les mots de celle-ci. L’idée derrière cette analyse est que
chaque mot d’une phrase est relié à un autre par une relation de dépendance.
Cette idée est issue des travaux de Mel’čuk [Mel’čuk et Polguere, 1987]. Le
résultat d’une analyse en dépendance est un graphe orienté dont les arcs
portent le nom de la relation.
Exemple 4.2 "The cat jumps on the table"
1. http://www.cis.uni-muenchen.de/~schmid/tools/TreeTagger/
2. http://www.cs.cmu.edu/Groups/AI/areas/nlp/parsing/taggers/brill/0.html
3. http://nlp.stanford.edu/software/corenlp.shtml
8
ROOT
pobj
nsubj
det
The
cat
prep
jumps
det
on
the
table
.
Figure 2 – Analyse en dépendance pour la phrase "The cat jumps on the
table"
L’exemple 4.2 montre l’analyse en dépendance pour la phrase "The cat
jumps on the table". Le verbe jump est la racine du graphe. Il a deux mots
qui dépendent de lui "cat" avec la relation de sujet (nsubj) et "on" avec
la relation de préposition. Le mot "table" dépend de "on" avec la relation
objet (pobj). Selon la variante d’analyse en dépendance, les relations avec
les prépositions peuvent être portées par le verbe. On parle d’analyse en dépendance profonde.
L’analyse en dépendances repose sur des ressources linguistiques de haut
niveau, où les mots sont représentés dans un dictionnaire par un ensemble
de fonctions dont le nombre et le type de paramètres sont explicités.
4.1.3
Reconnaissance des entités nommées
La reconnaissance des entités nommées est une tâche du domaine de
l’extraction d’information. La tâche consiste à extraire dans les phrases, les
éléments (mot ou groupe de mots) catégorisables dans des classes prédéfinies.
Ces classes sont en général les suivantes :
— Personne
— Organisation
— Lieu
— Date
— Montant et quantité
L’exemple 4.3 montre le résultat d’une détection d’entités nommées sur la
phrase "François Hollande is the 24th and current President of France, since
2012".
Exemple 4.3 "François Hollande is the 24th and current President
of France, since 2012." devient après utilisation d’un détecteur d’entités
nommées : "François Hollande/Personne is the 24th/Ordinal and current/Date President of France/Lieu, since 2012/Date."
9
Il est également courant de créer des hiérarchies de classes avec, par
exemple, pour les lieux une distinction entre les villes et les régions. Les
systèmes de question-réponse utilisent souvent la reconnaissance d’entités
nommées avec des hiérarchie de plusieurs dizaines de classes.
Pour aller plus loin que ce que font les détecteurs d’entités nommées,
une action de désambiguïsation ajoute, en plus du type d’entités, le lien vers
la ressource Wikipedia correspondante. La difficulté ici est l’ambiguïté de
l’entité détectée.
L’exemple 4.4 issu de Wikipedia 4 montre bien cette difficulté. Il faut que
Michael Jordan soit lié à la page du chercheur et non à celle du sportif. De la
même manière Berkeley représente l’université de Berkeley dans cette phrase
et non la ville bien que ce ne soit pas entièrement faux.
Exemple 4.4 Michael Jordan/Personne is professor at Berkeley/Organisation.
4.1.4
Mesures de similarité
Les mesures de similarités vont calculer la proximité entre deux mots ou
groupes de mots.
L’une des mesures les plus utilisées est celle du cosinus. Elle est basée sur
la représentation vectorielle des mots. Sa formule est visible dans l’équation
1.
n
P
cos(θ) = s
Ai × B i
s
n
n
P
P
A2i ×
Bi2
i=1
i=1
(1)
i=1
C’est le produit scalaire des vecteurs de chacun des mots. Si deux mots
ont les mêmes contexte le cosinus sera de 1, au contraire s’ils n’ont rien en
commun le résultat sera 0.
Pour obtenir une représentation vectorielle des mots, une technique simple,
basée sur le principe que l’on reconnaît un mot par son voisinage, est de
compter les occurrences des voisins dans une fenêtre donnée dans un corpus. Une autre manière d’obtenir une représentation vectorielle est d’utiliser
4. http://en.wikipedia.org/wiki/Named-entity_recognition#Current_
challenges_and_research
10
Word2vec 5 . Word2vec est outil basé sur la représentation continue des sac
de mots [Mikolov et al., 2013].
Une autre mesure très utilisée est la mesure Jaccard. Comme pour la mesure cosinus, il faut entraîner des vecteurs sur un corpus. Pour comparer deux
vecteurs A et B voir la formule 2. Le résultat est donc le nombre d’éléments
communs à A et B divisés par le nombre total d’éléments différents.
J(A, B) =
|A ∩ B|
|A ∪ B|
(2)
Des mesures de similarités basées sur Wordnet existent également. Wordnet 6 est une base de données lexicale développée par des linguistes de l’université de Princeton. Elle contient des hiérarchies de synsets qui est l’unité
de base de cette ressource. Un synset est un ensemble de mots synonymes
avec la même classe grammaticale. La structure hiérarchique permet donc
d’obtenir les hyperonymes et les hyponymes facilement. La branche la plus
dense de Wordnet est celle des noms. Parmi les mesures de similarité, il y a
— [Hirst et St-Onge, 1998]
— [Leacock et Chodorow, 1998]
— [Banerjee et Pedersen, 2002]
— [Wu et Palmer, 1994]
— [Resnik, 1995]
— [Jiang et Conrath, 1997]
— [Lin, 1998]
Toutes ces mesures sont testables sur WN4J Demo qui est un site développé par Hideki Shima. Le site fourni aussi le code source Java 7 utilisé
mais la version de démonstration comporte des corrections non disponibles
dans la bibliothèque à disposition.
4.2
4.2.1
Ingénierie des connaissances
Ontologies
En informatique, une ontologie sert à représenter les connaissances d’un
domaine. Elle est représentée par un graphe qui se compose de plusieurs
éléments et caractéristiques :
5. https://code.google.com/p/word2vec/
6. https://wordnet.princeton.edu
7. https://code.google.com/p/ws4j/
11
— classes
— propriétés
— structure hiérarchique
— relations sémantiques
— instances
— axiomes
Les classes sont les éléments hiérarchiques. Par exemple la classe humain est une sous-classe de mammifère. Le schéma de la figure 3 montre un
exemple de structure de connaissances.
La population d’une ontologie est le fait d’ajouter de nouvelles instances
à celle-ci en gardant la structure des concepts déjà établie.
L’enrichissement d’une ontologie est l’ajout ou la modification des relations, des propriétés et des concepts.
Anne
Hidalgo
Type
Mayor
Paris
Party
Parti
Socialiste
(France)
Person
Figure 3 – Exemple de structure de connaissances
4.2.2
Web Sémantique
Le web sémantique [Berners-Lee et al., 2001] est un mouvement qui cherche
à structurer les connaissances du web, afin que celles-ci soient accessibles
pour différentes applications.
Pour cela, le web sémantique s’appuie sur les technologies de l’ingénierie
des connaissances, principalement sur les ontologies. Les connaissances sont
organisées en triples RDF dont la forme est sujet, prédicat, objet. Les bases
de données sont interrogeables avec le langage de requêtes SPARQL. Par
exemple dans la figure 3, un des triple serait Paris(sujet), Mayor(prédicat)
et Anne Hidalgo (objet).
Tim Berners-Lee est à l’initiative de ce projet soutenu par le W3C.
12
4.2.3
Bases de connaissances
Il existe plusieurs bases de données sémantiques disponible sur le web. Le
noyau du web sémantique est dbpedia [Auer et al., 2007] qui a été construit
à partir des infobox de Wikipedia 8 . Dbpedia, comme Wikipedia, a des ressources dans plusieurs langues. En 2014, la base de donnée représentait un
ensemble de :
— 4,58 million entités
— 3 milliards de triples RDF
En étant basée sur Wikipedia, Dbpedia est donc un projet participatif. Le
projet YAGO [Suchanek et al., 2007] est une extension de Dbpedia qui l’enrichie de 41,2 million données de classes.
Une autre grande base de donnée sémantique est Freebase 9 . Elle est issue de la société Metaweb racheté par Google en 2010. Elle est utilisé par
Google pour son Knowledge Graph 10 . Et sert de base pour la construction
de son Knowledge Vault[Dong et al., 2014]. Initialement créée par une entreprise, elle est maintenant enrichie de manière participative. Le 31/03/2015,
la base est verrouillée en lecture seule et ne sera plus accessible dans sa forme
actuelle le 30/06/2015. L’ensemble des données est transféré au projet Wikidata.
Wikidata est le dernier projet de la fondation Wikimedia. L’objectif de
Wikidata est de créer une base de connaissance qui va servir à l’enrichissement de Wikipedia. Pour cela, les articles de Wikipedia intégreront des liens
vers les données Wikidata. Cela permet de mettre à jour automatiquement
les données des articles dans différentes langues sans avoir à éditer chacun de
ceux-ci à la main et donc avoir une plus grande rapidité dans la propagation
de l’information. Wikidata est donc une base récente mais déjà riche grâce
à sa fusion avec Freebase.
Il existe de nombreuses autres bases de connaissances, que ce soit dans
le linked data avec par exemple la base LMDB spécialisé dans les films et
musicbrainz spécialisé dans la musique, . . .
8. https://www.wikipedia.org
9. https://www.freebase.com
10. http://en.wikipedia.org/wiki/Knowledge_Graph
13
4.3
Architecture des systèmes de questions-réponses sur des
données textuelles
Dans cette section, nous nous intéresserons aux systèmes de questionsréponses dont les résultats sont extraits de documents textes, le plus souvent
issue du web. Seules les approches sur des domaines ouverts seront vu. Pour
rappel, on considère que le domaine est ouvert s’il est possible de poser une
question sur n’importe quel sujet. L’architecture de ce type de systèmes est
de manière générale la suivante :
1. Analyse du type de réponse attendu
2. Génération de la requête pour la recherche de document
3. Recherche des documents pertinents
4. Recherche des passages pertinents
5. Extraction de la réponse
Un schéma de l’architecture est visible sur la figure 4.
4.3.1
Analyse du type de réponse attendu
Un des composants importants des systèmes de questions-réponses est
celui qui analyse le type de réponse attendu. Le type de réponse attendu est le
résultat d’une classification dans une taxonomie de type de réponses possible.
Connaître le type de réponse attendu permet d’améliorer la recherche de la
réponse et de valoriser des candidats à la fin du processus d’extraction de la
réponse.
Exemple 4.5 Pour la question "qui a écrit le seigneur des anneaux ? ", le
type de réponse attendu pourra être "une personne" ou si la taxonomie est
plus précise "un auteur".
Li and Roth fournissent dans leur article [Li et Roth, 2002] une taxonomie à deux niveaux, le premier avec 6 classes principales et un second
qui comporte cinquante classes. Un dataset avec des questions labellisées est
fourni pour l’apprentissage 11 . Mais les systèmes de questions-réponses utilisent souvent plus de classes dans leurs taxonomies, en allant parfois jusqu’à
plusieurs milliers de classes.
Pour identifier le type de réponse attendu, il existe trois approches possibles.
11. http://cogcomp.cs.illinois.edu/Data/QA/QC/
14
Système de Questions-réponses
Question en
Langage Naturel
Recherche
d'informations
Detection du
type de
réponse
Récupération
des
documents
Génération de
la requête
Analyse de la
question
Documents
Indexation
Documents
Récupération
des passages
Type de réponse
Passages
Génération de
la réponse
Réponse
Figure 4 – Architecture système de questions-réponses sur des documents
textuels
15
La première est par heuristiques, c’est à dire à l’aide de règles définie par
un expert. Cette approche est donc coûteuse et difficilement évolutive. Mais
elle permet une grande précision quand les règles sont utilisables mais n’est
pas robuste.
La deuxième approche est d’utiliser de l’apprentissage automatique à
l’aide de corpus annoté. Cette approche permet une meilleur couverture des
différentes question possible mais est moins précis que l’approche par heuristique.
La dernière approche est celle qui donne les meilleurs résultats. C’est l’approche hybride qui combine les deux approches précédentes. Des heuristiques
sont créées pour être utilisées comme feature des algorithmes d’apprentissage.
4.3.2
Liens
Pour aller plus loin sur les systèmes de question-réponse basés sur des recherches textuelles, voir les articles [Pasca et Harabagiu, 2001] et [Ferrucci et al., 2010],
ainsi que les articles liés à TREC QA 12
4.4
Architecture des systèmes de questions-réponses sur des
données structurées
De nombreux travaux ont émergé ces dernières années autours des systèmes de question-réponse sur les bases de données de triples RDF, notamment grâce à la compétition QALD (Question Answering over Linked
Data)[Unger et al., 2014].
L’objectif de ces systèmes est de profiter du mouvement web sémantique
pour obtenir des bases de connaissances riches et exploitables, avec des données de qualité. L’utilisation d’une base de connaissance structuré permet
de répondre à des questions complexes pour lesquelles il est difficile pour les
approches basées sur des ressources textuelles de répondre.
L’architecture de ces systèmes est assez semblable entre les approches et
se décompose de la manière suivante :
1. Analyse de la question
12. http://trec.nist.gov/data/qamain.html
16
2. Segmentation de la question
3. Détection des relations
4. Mapping de la question avec la base de connaissances
5. Interrogation de la base
Pour plus de détails voir le schéma sur la Figure :5.
4.4.1
Analyse de la question
La première étape, comme pour les approches sur les documents textuels,
consiste à analyser la question pour obtenir le type de réponse attendu. À la
différence des systèmes de questions-réponses basés sur des documents textuels, le type attendu peut être lié à l’ontologie de la base plutôt qu’à une
taxonomie créée spécifiquement sur cette tâche.
La phase d’analyse de la question permet également de déterminer quel
type de requête SPARQL devra être utilisé pour interroger la base. Si une
question attend une réponse booléenne alors une requête SPARQL de type
ASK est nécessaire. Dans les autres cas, une requête SELECT sera utilisé.
4.4.2
Segmentation de la question
L’étape suivante consiste à segmenter la question pour en extraire des
unités sémantiques. Plusieurs techniques sont utilisées pour cela.
La première consiste à utiliser un détecteur d’entités nommées qui permet de trouver les entités nommées. Les entités nommées sont les éléments
les plus simple à associer à une ressource sémantique même s’il peut exister
plusieurs candidats possible pour une entité nommée. Les détecteurs d’entités nommées ne sont pas utilisés dans tous les système car il leur est reproché
un faible rappel, ce qui dans un contexte court comme dans les questions est
préjudiciable pour le reste de la résolution.
Pour l’identification des segments correspondants aux relations une analyse sémantique utilisant les arbres de dépendances est souvent utilisée.
17
Système de Questions-réponses
Question en
Langage Naturel
Segmentation
Segments
Identification
des relations
Interrogation de la base
Graphe de segments
Mapping
Ressources
externes
Graphe d'éléments
RDF
Analyse Structurelle
Conversion
en Triples
Base de
données
sémantiques
Triples RDF
Requête
SPARQL
Résultats requête
Detection du
type de
réponse
Type de réponse
Traitement
des candidats
Réponse
Figure 5 – Architecture système de questions-réponses sur des bases de
données sémantiques
18
4.4.3
Détection des relations
L’étape de détection des relation consiste à identifier dans la question
comment les segments sont articulés.
Une relation peut être vu comme un triple de la forme :
Anne Hidalgo , est maire de , Paris. Un ensemble de triples forme un
graphe de relations.
Dans le cadre d’une question, la relation est incomplète et doit être résolu.
L’exemple 4.6 montre le résultat de la décomposition pour la question "In
which popular sport the father of Joakim Noah succeded ? "
Exemple 4.6 "In which popular sport the father of Joakim Noah succeded ?
"
— X, is a, Sport
— X, is, popular
— Y, succeded in X,
— Y, is father of, Joakim Noah
Pour identifier de telles relations, l’analyse en dépendance est un outil
puissant. Cependant il nécessite des ressources linguistiques et ne pourra
donc pas être utilisé dans toutes les langues.
Pour éviter une analyse en dépendance, longue en temps de traitement
et nécessitant des ressources spécifiques, une approche avec des dictionnaires de relations comme avec PATTY [Nakashole et al., 2012] ou ReVerb
[Fader et al., 2011] permet de réaliser une autre approche mais avec une précision moindre.
4.4.4
Mapping des éléments de la question avec la base de connaissances
Ensuite, il faut mapper les segments avec les ressources des bases de
connaissances. Les ressources sont les entités, classes et prédicats. En général chacune de ces ressources sont mappées avec des techniques différentes.
L’identification des relations à l’étape précédente permet d’améliorer le mapping.
L’approche la plus simple du mapping est celle qui utilise la comparaison
des chaînes de caractères de la question avec les labels des entités dans la
base de données. Cette approche marche bien pour les entités nommées mais
19
beaucoup moins pour le mapping des relations
Il est également possible de constituer des dictionnaires de mapping (pour
les entités et les prédicats) comme avec PATTY [Nakashole et al., 2012] par
exemple, pour lequel le mapping des relations extraites est déjà réalisé avec
225 prédicats de dbpedia. L’exemple de PATTY impose cependant de constituer des dictionnaires de qualités pour éviter une trop faible précision et la
génération de bruits.
Pour le mapping des prédicats, il est courant qu’une relation soit exprimée par un hyperonyme ou un hyponyme. Dans ce cas l’utilisation de
Wordnet pour le mapping permet d’obtenir de bons résultats.
L’utilisation des mesures de similarités permet aussi de réaliser les mappings en cherchant les similarités les plus proches. Il faudra définir un seuil
de similarité lors d’expérimentations.
4.4.5
Résolution et requête
Enfin la dernière étape consiste à créer les différents triples nécessaires
pour générer la requête SPARQL nécessaire à l’interrogation de la base de
données. Selon les stratégies employés précédemment, plusieurs candidats
peuvent exister pour chacune des étapes. Il faut donc mettre en place des
stratégies d’élimination de candidats à chaque étape ou le faire de manière
globale. Casia v2 [He et al., 2014] résout l’incertain en fin de processus grâce
aux Markov Logic Network. DEANNA [Yahya et al., 2012] le fait avec de
l’optimisation linéaire en nombres entiers (Integer Linear Programming) à la
fin aussi. Alors que dans Xser [Xu et al., 2014] l’opération d’élimination de
candidats est réalisé à chaque étape.
4.5
4.5.1
Évaluations et Benchmarks
Compétitions
Le sujet des systèmes de questions-réponses sur domaine ouvert a donné
lieu à l’organisation de nombreuses compétitions autour de ce sujet. Parmi
les plus connues, on retrouve TREC QA qui a eu lieu de 1999 à 2007 qui
évalue les systèmes sur des réponses basées sur des documents. Cette compétition faisait partie des campagnes TREC qui s’intéressent particulièrement
à la recherche d’information.
20
Les compétitions basées sur les bases sémantiques sont plus récentes. La
principale est la compétition QALD qui a lieu depuis 2011. Elle est aujourd’hui organisée dans le cadre de la campagne CLEF qui est aussi axée sur la
recherche d’information. La dernière compétition QALD évaluée (QALD-4
[Unger et al., 2014]) a eu lieu en 2014. La prochaine a lieu du 8 au 11 septembre 2015 à Toulouse.
La tâche QALD est de répondre à des questions sur domaine ouvert en se
basant sur des bases de données sémantique le plus souvent sur dbpédia. Les
questions sont multilingues mais peu de participant on essayé de répondre
au questions autres que celles en anglais.
Les datasets de questions QALD sont disponibles au format XML [Unger, 2013]
[Unger, 2014].
4.5.2
Évaluation
Pour évaluer la qualité d’un système de questions-réponses sur des domaines ouvert, il faut un nombre important de question et être capable d’évaluer automatiquement les réponses générées. Il faut donc des données où sont
fournies les questions et les réponses.
Pour l’évaluation des réponses, il y a quatre manières de procéder.
La première manière est l’évaluation par l’humain. L’opérateur indique
si oui ou non la réponse est bonne et aussi si elle est cohérente.
Exemple 4.7 Question : Où se trouve Paris ? Réponse : en France
Si le système répond en Europe pour l’exemple 4.7 , la réponse est cohérente bien que fausse vis-à-vis de l’attendu. Cette évaluation n’est pas
réalisable à grande échelle. Mais dans un système avec échange avec l’utilisateur, l’information sur la qualité de la réponse peut être récupéré. C’est le
cas pour le système Evi 13 d’Amazon qui permet d’indiquer si la réponse est
satisfaisante ou pas.
Pour évaluer les systèmes de questions-réponses, la méthode automatique la plus simple est d’avoir un ensemble de questions et leurs réponses.
Puis de lancer le systèmes sur ces questions et compter les bonnes réponses.
13. https://www.evi.com
21
Cette technique d’évaluation a l’avantage de pouvoir tester le système sur
de grandes échelles de manière automatique. Mais les réponses partielles ou
cohérentes ne sont pas prises en compte.
Une troisième technique d’évaluation, pour les système qui répondent
avec plusieurs candidats, est de calculer le rang d’apparition de la bonne
réponse si elle est fournie par le système. Cette évaluation permet de voir
l’amélioration globale des systèmes évalués et permet également d’identifier
les cas les plus problématiques.
La dernière méthode d’évaluation, qui est également pour les systèmes
à plusieurs candidats, est le MRR (Mean Reciprocal Rank) dont la formule
est la suivante :
|Q|
MRR =
1 X 1
|Q|
ranki
i=1
Où ranki est le rang de la bonne réponse parmi les candidats. Ce qui
donne pour une bonne réponse en rang 1 MRR= 1. Pour une question dont
la réponse est au rang 2 MRR= 0, 5. Dans la pratique au delà du rang 5 le
MRR= 0. Cette évaluation permet d’avantager les systèmes dont la réponse
est bien placée parmi les candidats.
4.5.3
Génération de Benchmark
Pour évaluer les systèmes de question-réponse, il est très utile de pouvoir produire des jeux de questions automatiquement. Michael Heilman s’est
intéressé à ce sujet dans sa thèse [Heilman, 2011]. Il propose un outil 14 qui
à partir de textes, produit des questions de manière automatique. Les questions produites sont fournies avec la réponse souhaitée.
La qualité des questions générées dépend en partie de la qualité du corpus
de textes. Dans sa thèse Michael Heilman émet un doute sur la capacité
de son programme à générer des questions de bonne qualité à partir de
Wikipedia. En effet selon lui, le côté participatif de Wikipedia produit des
textes parfois mal formés ou avec un style qui n’avantage pas les techniques
utilisées pour la génération de questions. Pour ses expérimentations, Michael
Heilman a utilisé principalement les textes de l’encyclopédie Britanica.
14. http://www.ark.cs.cmu.edu/mheilman/questions/
22
5
Étude des systèmes existants
5.1
Introduction
Différents systèmes de questions-réponses existent dans la littérature.
Seuls les systèmes sur des données structurées sont étudiés dans cette section.
On peut classer ces systèmes dans trois catégories :
1. les systèmes s’appuyant uniquement sur les ressources linguistiques ;
2. les systèmes s’appuyant à la fois sur des ressources linguistiques et du
machine learning ;
3. les systèmes s’appuyant uniquement sur des techniques de machine
learning
Les techniques et outils utilisés par les différents systèmes sont détaillés
pour chaque étape (voir section 4.3) du système dans les tableaux 1 à 4.
Les performances des systèmes sont visibles dans le tableau 5.
5.2
Systèmes purement linguistique
Les systèmes purement linguistique se basent sur les outils du traitement
automatique de la langue. Les règles heuristiques y sont très utilisées.
5.2.1
Squall2SPARQL
Squall2SPARQL [Ferré, 2013] est un système où les questions sont reformulés en anglais contrôlé : le squall, le mapping vers les ressources sémantiques est donné par l’utilisateur. L’approche se base sur les grammaires de
Montague qui utilisent des concepts de la logique.
5.2.2
Casia
Casia [He et al., 2013] a une architecture simple qui utilise une architecture en pipeline pour résoudre la question posée.
5.2.3
TBSL
TBSL [Unger et al., 2012] utilise d’abord un dictionnaire de mots clés génériques ("give me", "which", . . . ) pour ensuite à l’aide du parse tree choisir
un template dont les slots sont remplis avec les éléments en langage naturel.
Ensuite ces éléments sont mappés et enfin la meilleur requête exécutée. Avec
les templates, TBSL peut gérer les conditions Filter et les agrégations.
23
Système
Squall2SPARQL
Casia
TBSL
ISOFT
DEANNA
Xser
gAnswer
Casia v2
Segmentation
Grammaire de Montague
détecteur d’entités nommées ;
mots clés fournis ;
arbre de dépendances
détecteur d’entités nommées ;
heuristiques à partir du POS Tag
Templates
détecteur d’entités nommées ;
mots clés fournis ;
AIDA ;
Arbre de dépendances
Heuristiques ;
détecteur d’entités nommées
dictionnaire
Arbre de dépendances
Structured Perceptron
Arbre de dépendances
Heuristiques
à partir de la longueur et
du POS tag
Remarque
questions reformulée
par l’utilisateur
[Hoffart et al., 2011]
plusieurs candidats
plusieurs candidats
Table 1 – Phase de segmentation des différents systèmes
5.2.4
ISOFT
ISOFT [Park et al., 2014] est une extension de TBSL où le mapping des
ressources et l’analyse de la question ont été modifiés.
5.3
Systèmes hybrides
Les systèmes hybrides utilise les outils du traitement des langues combinés à des algorithmes d’apprentissage automatique. Cela permet de gérer
l’incertain et de faire apparaître des patterns à partir des données d’apprentissage.
24
Système
Squall2SPARQL
Casia
TBSL
ISOFT
DEANNA
Xser
gAnswer
Casia v2
Détection des relations
Grammaire de Montague
Arbre de dépendances
Templates
Templates
Remarque
construits à
partir du parse tree
et d’heuristiques
construits à
partir de l’arbre de
dépendances
Arbre de dépendances
Phrase DAG parsing
Arbre de dépendances
Arbre de dépendances
en feature
Table 2 – Phase de détection des relations des différents systèmes
5.3.1
DEANNA
Dans DEANNA [Yahya et al., 2012], l’originalité est l’utilisation d’Integer linear programming pour la gestion des hypothèses lors de la résolution
de la question.
5.3.2
Xser
Le système Xser [Xu et al., 2014] segmente et calcule les relations entre
les segments de manière indépendante de la base de connaissances. Ensuite
le mapping est fait avec la base de connaissances choisie.
5.3.3
gAnswer
L’approche de gAnswer [Zou et al., 2014] est de considérer le problème
du questions-réponses comme un problème de graph-matching. La question
est transformée en plusieurs graphes candidats. Le meilleur candidat est
considéré comme étant la requête qui donne la réponse. Le système serait un
des plus rapides en temps d’exécution.
5.3.4
Casia v2
Dans Casia v2 [He et al., 2014], toutes les incertitudes de chacune des
étapes de la résolution de la question sont conservées jusqu’à la fin. C’est
25
Système
Squall2SPARQL
Casia
TBSL
ISOFT
DEANNA
Xser
gAnswer
Casia v2
Mapping
fourni par l’utilisateur
lors de la reformulation
Matching
Dictionnaires
Levenshtein
Wordnet
Heuristiques
PATTY
Matching
BOA
Wordnet
Dictionnaire
similarité ESA
PATTY
dictionnaire
wikipedia miner tool 15
dictionnaire de prédicats
PATTY
dictionnaire de
paraphrases
Matching
Dictionnaires
Levenshtein
Wordnet
Heuristiques
Remarque
[Nakashole et al., 2012]
[Gerber et Ngomo, 2011]
apporte peu d’améliorations
construit à partir
de PATTY et ReVerb
Table 3 – Phase de mapping des différents systèmes
alors que le Markov Logic Network est utilisé pour résoudre de manière jointe
toutes les incertitudes.
5.4
Systèmes non linguistiques
Les systèmes non linguistique s’appuient uniquement sur les techniques
d’apprentissage automatique pour répondre aux questions.
L’article "Open Question Answering with Weakly Supervised Emmbedding Models" [Bordes et al., 2014] propose une approche pour réaliser un
système de question-réponse à partir d’une base de connaissances. Ici la base
26
Système
Squall2SPARQL
Casia
TBSL
ISOFT
DEANNA
Xser
gAnswer
Casia v2
Résolution
Traduction du langage
Squall en SPARQL
extraction de triples
Score pour choisir
le meilleur template
Score pour choisir
le meilleur template
Integer Linear Programming
Beam Search pour choisir
le meilleur mapping ;
heuristiques pour la
conversion en SPARQL
Graph matching
Markov Logic Network
Remarque
bidirectionnelle
Table 4 – Phase de résolution des différents systèmes
Système
Squall2SPARQL
Casia
TBSL
ISOFT
DEANNA
Xser
gAnswer
Casia v2
Rappel
0.88
0.36
0.61
0.26
0,37
0.71
0.37
0.40
Précision
0.93
0.35
0.63
0.21
0.50
0.72
0.37
0.32
F-mesure
0.90
0.36
0.62
0.23
0.43
0.72
0.37
0.36
Évaluation
QALD 3
QALD 3
QALD 1
QALD 4
QALD 1
QALD 4
QALD 4
QALD 4
Table 5 – Performances des différents systèmes
utilisée est ReVerb [Fader et al., 2011].
L’objectif du système proposé est de fournir le triple qui correspond à la
réponse de la question en langage naturel.
Pour l’apprentissage des embedding, une méthode pour générer automatiquement des triples en questions est proposé.
27
6
Contributions
6.1
6.1.1
1er prototype de système de questions-réponses
Spécifications
Le premier prototype de système de questions-réponses avait pour objectif de répondre à des questions simples. Une question simple est une question
qui commence par "What", "When, "Where" ou "Who" et qui ne contient
pas de relations en cascade. Par exemple la question "Who is the daughter
of Bill Clinton is married to ?" est une question avec des relations en cascade
(daughter et married to). Une autre contrainte pour les questions était la
présence obligatoire d’une entité nommée dans la question. Pour répondre à
la question, une approche par règles a été utilisée.
6.1.2
Conception
L’architecture retenue pour le prototype est visible sur la figure 6. L’architecture retenue est inspirée de celle du système CASIA v1 (voir section
5.2.2).
Pour décrire le fonctionnement des différents composants, la question
"What is the largest city in Australia" servira de fil conducteur.
D’abord la question en entrée est POS taggé avec Stanford Core NLP.
Ensuite le résultat du POS tagging est utilisé pour détecter les entités nommées de la question. Pour cela les suites de mots dont le POS tag est "NNP"
(nom propre au singulier) ou "NNPS" (nom propre pluriel) sont réunies.
Exemple 6.1 "What/WP is/VBZ the/DT largest/JJS city/NN in/IN
Australia/NNP"
Le détecteur d’entités nommés fourni par Stanford Core NLP n’est pas
utilisé car pendant les expérimentations, il avait un rappel trop faible. Toutes
les suites de noms propres sont retenues, bien que la contrainte sur les question les limite à une par question.
Pour chaque entité nommée identifiée, les ressources dbpedia correspondantes sont recherchés. Pour cela, une recherche sur la valeur du prédicat
"label" est effectuée. Cette opération est la plus longue du système, elle dure
parfois plusieurs minutes. À l’issue de cette recherche s’il y a zéro candidat
pour le mapping des entités nommées, le programme s’arrête.
28
Question en
Langage
Naturel
Pos Tagging
Question Taggée
Détection
des Entités
Nommées
Entités Nommées
Création
Arbre de
Dépendences
Question avec les entités
nommées identifiées
Mapping
des Entités
Nommées
Arbre de dépendences
Liste URI
Détection
des relations
en langage Relations en
naturel
langage naturel
Mapping
des
relations
Triples candidats
Interrogation
DBPedia
candidats URI réponse
Tri des
réponses
candidates
Type de
réponse attendu
URIs
Réponse
Figure 6 – Architecture du 1er prototype
29
Détection
Type de la
réponse
Ensuite, les relations sont détectées. La phrase est convertie en arbre de
dépendance. Les relations sont détectées dans l’arbre en partant de l’entité
nommée la plus éloignée de la racine puis en allant jusqu’au "Wh" word qui
commence la phrase. Chaque noeud de ce parcours est considéré comme une
relation. Comme avoir une seule relation est une contrainte sur les questions,
le programme s’arrête s’il y a plus d’un noeud dans le chemin. À l’issue de
cette étape, la relation en langage naturel est identifié. L’arbre de dépendance de l’exemple 6.1 est visible sur la Figure 7. Dans l’exemple le chemin
de la relation est What-city-Australia.
Maintenant c’est le module de mapping des relations qui commence.
D’abord la relation étendue en langage naturel est calculé. Pour l’exemple
6.1 cela signifie que de la relation "city", on passe à la relation "largest city".
L’extension de relation se fait en prenant les mots de l’arbre des dépendances
qui sont liés au mot relation et qui ne sont pas dans le chemin entre l’entité
nommée et le "Wh" word.
Avec cette relation étendue, on peut chercher le prédicat correspondant.
La liste des candidats est la liste des prédicats dont l’URI de l’entité nommée est sujet. Puis on concatène les mots de la relation en langage naturel
et s’il y a une correspondance alors le prédicat est sélectionnée et on passe
à l’étape suivante. Sinon on regarde si la forme courte de la relation ("city"
dans l’exemple) correspond. S’il n’y a toujours pas de prédicat correspondant
alors on essaye avec le lemme de la relation courte. En l’absence de correspondance, on cherche un prédicat qui contient la forme courte de la relation.
S’il n’y a toujours pas de correspondance alors on regarde si les synonymes
ou les hyperonymes de la relation permettent de définir un prédicat candidat.
Enfin s’il n’y toujours pas de prédicat candidat la distance de Levenshtein
est utilisé pour choisir un candidat. A l’issue de cette étape, un ou plusieurs
prédicats candidats sont sélectionnés
Dbpedia est interrogé pour chacun des candidats. Cela forme l’ensemble
des réponses candidates. Le type de la question permet de trier les candidats
en favorisant ceux avec le type attendu. Le candidat au rang 1 est la réponse
choisie par le système.
6.1.3
Bibliothèques logicielles utilisées
Le prototype est codé en Java et utilise Maven pour la gestion des dépendances. La version de Java utilisée est Java 7. Pour toutes les parties
30
ROOT
nsubj
det
What
prep in
amod
cop
is
the
largest
city
in
Australia
.
Figure 7 – Arbre de dépendances de la question : "What is the largest city
in Australia ?"
traitement du langage, Stanford Core NLP 16 (version 3.4.1) est utilisé. L’interrogation des bases de données sémantiques (via SPARQL endpoint) est
réalisé avec Apache Jena 17 (version 2.12.1). Pour l’exploitation de wordnet,
la librairie JWI 18 (MIT Java Wordnet Interface en version 2.2.3) qui est utilisée. Pour différentes opérations sur les chaines de caractères la bibliothèque
Apache Commons Lang 19 (en version 3.3.2).
6.1.4
Résultats
Trois versions de ce premier prototype ont été développées. La première
qui utilisait le dictionnaire de PATTY pour le mapping de relation, a donné
des résultats très médiocres et n’a pas été évalué. La deuxième version utilisait toutes les règles décrites précédemment pour constituer une liste mapping de prédicats. La dernière version se concentre sur la priorité données
aux règles afin d’avoir moins de candidats pour les réponses. Une modification de l’utilisation de Dbpedia pour le mapping des entités nommées a aussi
été mis en place pour cette version.
Dans la suite v1 signifiera la deuxième version du prototype et v2 la
troisième.
Version
v1
v2
NB questions
54
54
R
33, 3
38, 9
NB de réponses
28
26
P@1
64, 3
80, 8
P@all
78, 6
80, 8
Table 6 – Résultats des différentes version du 1er prototype, avec les précisions au rang 1 et à tout rang
16.
17.
18.
19.
http://nlp.stanford.edu/software/corenlp.shtml
https://jena.apache.org
http://projects.csail.mit.edu/jwi/
https://commons.apache.org/proper/commons-lang/
31
Les résultats de la table 6 correspondent aux questions de train de QALD
4, 200 questions filtrées pour ne garder que celles qui commencent par "who",
"when", "what" et "where".
6.1.5
Analyse des erreurs
Erreur (par fréquence d’apparition)
Question complexe
NB
8
Mauvaise identification entité nommée
6
Mapping de relation non trouvé
Pas d’entité nommée
Priorité des prédicats pour la réponse
Mauvais mapping entité nommée
Mauvais mapping relation
6
4
4
4
3
Sens relation
Total sans réponses
Total réponses fausses
Total
1
26
10
36
exemple
Who produced films
starring Natalie Portman ?
Who composed the music
for Harold and Maude ?
When did Michael Jackson die ?
What is the longest river ?
What is the birth name of Angela Merkel ?
Who was the father of Queen Elizabeth II ?
What is the second
highest mountain on Earth ?
Who produces Orangina ?
Table 7 – Différents types d’erreurs de la v1
Les principales erreurs viennent de la complexité des questions, de l’identification des entités nommées et du mapping des relations.
Pour la version 2, les corrections ont principalement porté sur l’ordre des
candidats de réponses. Ce qui a eu pour résultat d’augmenter la précision
des réponses et diminuer le nombre de candidats par questions.
Les erreurs sont toujours liées à la complexité des questions, à la détection
des entités nommées et au mapping des relations. Les entités nommées qui
ne sont pas bien détectées sont celles qui contiennent plusieurs mots avec des
nom communs. Le mapping des relations est difficile quand il s’agit de faire
correspondre un verbe et un nom. Par exemple, "die" n’est pas mappé avec
le prédicat "deathCause".
32
Erreur (par fréquence d’apparition)
Mapping de relation non trouvé
NB
8
Mauvaise identification de l’entité nommée
7
Question complexe
6
Pas d’entité nommée
4
Relation non trouvée
1
Boucle mapping entité nommée
Sens relation
Mapping entité nommée non trouvé
Total sans réponses
Total réponses fausses
Total
1
1
1
27
5
32
exemple
Who is the owner
of Universal Studios ?
Who painted The Storm
on the Sea of Galilee ?
Who is the daughter of Ingrid
Bergman married to ?
Who is the Formula 1 race driver
with the most races ?
What is the second highest
mountain on Earth ?
Who was called Scarface ?
Who produces Orangina ?
What is the highest place of the Urals ?
Table 8 – Différents types d’erreurs de la v2
6.2
Génération de questions
Pour obtenir plus de questions, afin d’évaluer le système de questionsréponses, nous avons généré des questions à partir des travaux de [Heilman, 2011]
et de son outil 20 . Ces travaux avaient pour objectif de générer automatiquement des questions factuelles à partir de textes dans un contexte éducatif
afin de faciliter le travail des enseignants.
6.2.1
Protocole de génération des questions
La génération des questions nécessite d’avoir des textes qui permettront
de générer des questions pour chacun d’entre eux. Afin d’avoir un maximum
de données factuelles, des données encyclopédiques sont recommandées. Heilman utilise dans sa thèse des données de Wikipedia et de l’encyclopédie Britanica. Pour l’expérience Wikipedia a été choisi comme corpus pour fournir
les textes. Après nettoyage des textes, les questions sont générées puis filtrées en deux temps. La première fois automatiquement et une deuxième fois
manuellement.
20. http://www.ark.cs.cmu.edu/mheilman/questions/
33
6.2.2
Corpus Wikipedia
Wikipedia étant une encyclopédie en ligne, elle contient de nombreuses
informations factuelles qui permettront de générer les questions. Des archives
de Wikipedia sont librement disponibles 21 . Les données sont fournies au
format wiki, elles ont donc été, dans un premier temps, nettoyé pour obtenir
des données à exploiter. Wikipedia Extractor 22 a été utilisé pour cette tâche.
Le dump est ainsi converti en un ensemble de fichiers xml contenant des
pages de Wikipedia. Un script supplémentaire a été écrit afin d’avoir un
fichier texte par page.
6.2.3
Algorithme de génération de questions
La génération de question se base la structure des phrases. L’algorithme
est constitué des étapes suivantes pour chaque phrases :
1. Reformulation des phrases
2. Création de questions candidates
3. Tri des questions générées
La reformulation des phrases se fait par extraction de fragments dans les
phrases complexes pour obtenir des phrases plus simples.
Ensuite pour la création des questions, l’arbre de dépendance syntaxique
de la phrase est utilisé pour obtenir la structure de la phrase. Après supersense tagger permet d’identifier les éléments afin de choisir le type de question
à générer (à partir du Wh-word). Supersense tagger (discriminative hidden
Markov model) est un logiciel de reconnaissance des entités nommées. ARKref coreference system sert à la résolution des coréférences pendant l’analyse
des phrases.
Enfin des règles sur la structure de l’arbre permet de générer la question.
2000 documents ont été choisis aléatoirement parmi les articles Wikipedia
pour générer les questions.
6.2.4
Résultats
Les questions générées sont filtrées en deux temps afin d’obtenir des questions de qualité. Le premier filtre est automatique et enlève les questions dont
21. https://dumps.wikimedia.org
22. http://medialab.di.unipi.it/wiki/Wikipedia_Extractor
34
les réponses sont composées de plus de 5 mots. Mais aussi les questions qui
dépassent plus de 10 mots. Ces deux premiers critères de filtre permettent de
retirer les questions qui sont le plus susceptibles d’être erronées sémantiquement ou grammaticalement. Ce premier filtre permet de réduire de 213.519
à 48.298 questions.
Le deuxième filtre consiste à retenir les questions pertinentes. Pour cela
une approche manuelle et collaborative est envisagée. Un fichier google-docs
est partagé entre les différents collaborateurs avec les questions et les réponses.
Pour évaluer le nombre de questions pertinentes, 100 questions ont été
choisi aléatoirement et évaluées manuellement. Le résultat est de 8% de questions pertinentes. Ce score pourrait être amélioré avec de meilleurs heuristiques de nettoyage (suppressions des questions/réponses contenant des pronoms, vérification de la présence d’une entité nommée, . . . ) ou en utilisant
un autre corpus comme par exemple simple english Wikipedia.
Les questions générées sont très souvent dépendantes du contexte (document) dont elles sont issues. Ce qui implique un nombre important de rejets.
Les thèmes des questions sont très variés du fait du choix aléatoire des articles sélectionnés. Une meilleure sélection (par thème ou centre d’intérêts)
des articles pour la génération de questions pourrait permettre de créer des
questions plus en phase avec ce que l’utilisateur pourrait demander.
6.3
6.3.1
Réseaux Logiques de Markov
Objectifs
Après le premier prototype qui a servi pour comprendre le problème,
l’objectif était de réaliser un nouveau prototype pouvant résoudre une partie des problèmes observés. Nous voulions aussi une approche qui pourrait
intégrer des connaissances sur l’utilisateur.
Pour cela nous avons choisi d’adopter la même approche que CASIA
v2[He et al., 2014]. Dans cette approche, l’incertain, présent dans chacune
des étapes pour répondre à la question, est géré et maintenu jusqu’à la fin
du processus pour être résolu de manière unifiée avec un réseau logique de
Markov (Markov Logic Network) [Richardson et Domingos, 2006].
35
Nous avons donc étudié les réseaux logiques de markov (ou Markov Logic
Network, MLN). Pour cela nous avons monté un groupe de travail autour de
cette problématique. Il était composé de chercheurs, de doctorants et de stagiaires de l’équipe DUKe. Romain Rincé, un autre étudiant du master ATAL
en stage, faisait parti de ce groupe. Les objectifs de chacun étaient différent,
l’idée avec ce groupe était d’étudier le fonctionnement de ces réseaux. Pour
cela nous nous sommes appuyés sur les cours 23 de l’université de Carnegie
Mellon et le logiciel Alchemy 24 .
6.3.2
Principe
Les réseaux logiques de Markov combinent la logique du premier ordre
et les probabilités. On y exprime des formules logiques, qui peuvent être apprises, afin de constituer une base de connaissances. Ce qui est intéressant
avec ce modèle est la possibilité de pouvoir violer des contraintes logique. Ce
cas de figure se traduit par une probabilité faible.
Ces formules sont ensuite transformées en un graphe non-orienté pour
lequel des poids sont calculés pour chaque clique. Le graphe est créé à partir des formules et des constantes on parle alors de ground Markov Network.
Pour chaque pair de formules où une constante est commune à deux formules
on créer un arc.
6.3.3
Expériences
Nous avons commencé nos expériences en étudiant la programmation
logique inductive. La programmation logique inductive est une approche de
l’apprentissage automatique qui cherche à apprendre les règles logique à partir d’une base de connaissances et d’exemples positifs et négatifs. Nous avons
utilisé le logiciel Aleph 25 .
Après cela nous avons commencé à expérimenter l’inférence à partir des
exemples du tutoriel d’Alchemy 26 . L’inférence nous a permis par la suite de
23.
24.
25.
26.
http://homes.cs.washington.edu/~pedrod/803/
http://alchemy.cs.washington.edu
http://www.cs.ox.ac.uk/activities/machlearn/Aleph/aleph.html
http://alchemy.cs.washington.edu/tutorial/
36
vérifier les résultats de l’apprentissage des poids et de la structure.
Après l’inférence, nous avons étudié l’apprentissage des poids. Afin de
pouvoir comparer les résultats avec d’autres algorithmes d’apprentissage,
nous avons d’abord créé des réseaux bayésiens sur lesquels un échantillonnage
a été réalisé. En même temps nous avons transformé les réseaux bayésiens
en bases de connaissances logique. Nous avons alors appris les probabilités
des différents réseaux bayésiens et des MLN avec les données générées. Nos
expériences successives ont montré que les MLN arrivent bien à apprendre
les probabilités. L’apprentissage des poids peut être discriminatif ou génératif.
Enfin les dernières expérimentations que nous avons effectué concernent
l’apprentissage de structure. L’article [Kok et Domingos, 2005] décrit l’apprentissage de structure des MLN. L’apprentissage se rapproche de la programmation logique inductive.
2ème prototype : à partir de Réseaux Logiques de Markov
(en cours de développement)
6.4
6.4.1
Approche
L’approche se déroule en 5 étapes.
1. Segmentation de la phrase à partir de critères basés sur le POS tag
et de la longueur du segment ;
2. Mapping des différents segments à partir des dictionnaires ;
3. Extraction des données pour le MLN, avec l’utilisation du POS tag,
de l’analyse en dépendance, des informations liées au mapping de la
base ;
4. Calcul de la combinaison la plus probable avec le MLN ;
5. Conversion en requête SPARQL.
6.4.2
Ressources de Mapping
Une ressource importante du système est l’ensemble des fichiers de mappings. Il y a trois fichiers de Mapping, un pour les classes, un autre pour les
entités et un dernier pour les relations. Les deux premiers sont relativement
simple à construire à partir de dbpedia mais le fichier de mapping des relations est beaucoup plus compliqué à établir.
37
Pour la création de ce fichier, il faut avoir un corpus de relations en
langage naturel comme ceux de PATTY [Nakashole et al., 2012] et ReVerb
[Fader et al., 2011], qu’il faut ensuite mettre en correspondance avec les donnée de Dbpedia. La difficulté est de trouver le prédicat qui correspond réellement à la relation en langage naturel. Pour cela les concepteurs de CASIA
V2 s’appuient sur une technique qu’ils ont développé et décrit dans un autre
article [Liu et al., 2013]. L’idée est dans un premier temps de faire correspondre les entités de la relation en langage naturel avec les nœuds de la
base de connaissance. Puis il faut mettre en correspondance le prédicat du
triple avec la relation en langage naturel. Pour filtrer et améliorer les résultat
une analyse linguistique basée sur les stem et sémantique à base d’ESA 27
est réalisé. Sans ce filtrage l’approche est trop naïve et donne de mauvais
résultats.
6.4.3
Résultats
Le prototype est toujours en cours de réalisation. Mais les résultats de
CASIA V2 montre que le modèle est intéressant. L’utilisation des Réseaux logiques de Markov permettra par la suite d’intégrer un modèle de l’utilisateur
grâce au formalisme souple. Cependant les auteurs de CASIA V2 pointent
du doigt le manque de questions disponibles pour l’entraînement du modèle.
27. https://en.wikipedia.org/wiki/Explicit_semantic_analysis
38
7
Conclusions et perspectives
Nous avons vu avec l’état de l’art qu’il existe de nombreuses approches
pour s’attaquer au problème des systèmes de questions-réponses. Nous avons
également mis en place un système simple qui nous a permis de voir que l’un
des obstacles pour la réalisation de ces systèmes est le manque de questions
pour leur évaluation. Ceci nous a poussé à chercher une solution afin de créer
automatiquement les questions. Ensuite nous avons vu les réseaux logiques
de Markov qui devrait permettre de développer un dernier prototype doit
nous permettre de franchir une autre étape dans la résolution de la question.
Au-delà de ce qui a été réalisé pendant ce stage, plusieurs obstacles restent à franchir. Le premier est réfléchir aux questions plus complexes avec
des négations et compositions par exemple. Un autre défi intéressant serait
de voir comment un système basé sur des données structurées peut-être renforcé avec de la recherche sur des données non structurées.
Pour résumer, le sujet est encore très ouvert et toujours très intéressant.
Ce qui devrait être le cas pour un moment.
39
Références
[Auer et al., 2007] Auer, S., Bizer, C., Kobilarov, G., Lehmann, J., Cyganiak, R. et Ives, Z. (2007). Dbpedia : A nucleus for a web of open data.
Springer.
[Banerjee et Pedersen, 2002] Banerjee, S. et Pedersen, T. (2002). An
adapted lesk algorithm for word sense disambiguation using wordnet. In
Computational linguistics and intelligent text processing, pages 136–145.
Springer.
[Berners-Lee et al., 2001] Berners-Lee, T., Hendler, J., Lassila, O.
et al. (2001). The semantic web. Scientific american, 284(5):28–37.
[Bordes et al., 2014] Bordes, A., Weston, J. et Usunier, N. (2014). Open
question answering with weakly supervised embedding models. In Machine Learning and Knowledge Discovery in Databases, pages 165–180.
Springer.
[Dong et al., 2014] Dong, X., Gabrilovich, E., Heitz, G., Horn, W.,
Lao, N., Murphy, K., Strohmann, T., Sun, S. et Zhang, W. (2014).
Knowledge vault : A web-scale approach to probabilistic knowledge fusion.
In Proceedings of the 20th ACM SIGKDD international conference on
Knowledge discovery and data mining, pages 601–610. ACM.
[Fader et al., 2011] Fader, A., Soderland, S. et Etzioni, O. (2011). Identifying relations for open information extraction. In Proceedings of the
Conference on Empirical Methods in Natural Language Processing, pages
1535–1545. Association for Computational Linguistics.
[Ferré, 2013] Ferré, S. (2013). squall2sparql : a translator from controlled
english to full sparql 1.1. In Work. Multilingual Question Answering over
Linked Data (QALD-3).
[Ferrucci et al., 2010] Ferrucci, D., Brown, E., Chu-Carroll, J., Fan,
J., Gondek, D., Kalyanpur, A. A., Lally, A., Murdock, J. W., Nyberg, E., Prager, J. et al. (2010). Building watson : An overview of the
deepqa project. AI magazine, 31(3):59–79.
[Gerber et Ngomo, 2011] Gerber, D. et Ngomo, A.-C. N. (2011). Bootstrapping the linked data web. In 1st Workshop on Web Scale Knowledge
Extraction@ ISWC, volume 2011.
[Green Jr et al., 1961] Green Jr, B. F., Wolf, A. K., Chomsky, C. et
Laughery, K. (1961). Baseball : an automatic question-answerer. In
Papers presented at the May 9-11, 1961, western joint IRE-AIEE-ACM
computer conference, pages 219–224. ACM.
40
[He et al., 2013] He, S., Liu, S., Chen, Y., Zhou, G., Liu, K. et Zhao, J.
(2013). Casia@ qald-3 : A question answering system over linked data.
Proceedings of the Question Answering over Linked Data lab (QALD-3)
at CLEF.
[He et al., 2014] He, S., Zhang, Y., Liu, K. et Zhao, J. (2014). Casia@
v2 : A mln-based question answering system over linked data.
[Heilman, 2011] Heilman, M. (2011). Automatic factual question generation
from text. Thèse de doctorat, Carnegie Mellon University.
[Hirst et St-Onge, 1998] Hirst, G. et St-Onge, D. (1998). Lexical chains
as representations of context for the detection and correction of malapropisms. WordNet : An electronic lexical database, 305:305–332.
[Hoffart et al., 2011] Hoffart, J., Yosef, M. A., Bordino, I., Fürstenau, H., Pinkal, M., Spaniol, M., Taneva, B., Thater, S. et Weikum, G. (2011). Robust disambiguation of named entities in text. In
Proceedings of the Conference on Empirical Methods in Natural Language
Processing, pages 782–792. Association for Computational Linguistics.
[Jiang et Conrath, 1997] Jiang, J. J. et Conrath, D. W. (1997). Semantic
similarity based on corpus statistics and lexical taxonomy. arXiv preprint
cmp-lg/9709008.
[Kok et Domingos, 2005] Kok, S. et Domingos, P. (2005). Learning the
structure of markov logic networks. In Proceedings of the 22nd international conference on Machine learning, pages 441–448. ACM.
[Leacock et Chodorow, 1998] Leacock, C. et Chodorow, M. (1998).
Combining local context and wordnet similarity for word sense identification. WordNet : An electronic lexical database, 49(2):265–283.
[Li et Roth, 2002] Li, X. et Roth, D. (2002). Learning question classifiers. In Proceedings of the 19th international conference on Computational
linguistics-Volume 1, pages 1–7. Association for Computational Linguistics.
[Lin, 1998] Lin, D. (1998). An information-theoretic definition of similarity.
In ICML, volume 98, pages 296–304.
[Liu et al., 2013] Liu, F., He, S., Liu, S., Zhou, G., Liu, K. et Zhao, J.
(2013). Open relation mapping based on instances and semantics expansion. In Information Retrieval Technology, pages 320–331. Springer.
[Mel’čuk et Polguere, 1987] Mel’čuk, I. A. et Polguere, A. (1987). A formal lexicon in the meaning-text theory :(or how to do lexica with words).
Computational linguistics, 13(3-4):261–275.
41
[Mikolov et al., 2013] Mikolov, T., Sutskever, I., Chen, K., Corrado,
G. S. et Dean, J. (2013). Distributed representations of words and phrases
and their compositionality. In Advances in Neural Information Processing
Systems, pages 3111–3119.
[Nakashole et al., 2012] Nakashole, N., Weikum, G. et Suchanek, F.
(2012). Patty : a taxonomy of relational patterns with semantic types.
In Proceedings of the 2012 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning,
pages 1135–1145. Association for Computational Linguistics.
[Park et al., 2014] Park, S., Shim, H. et Lee, G. G. (2014). Isoft at qald4 : Semantic similarity-based question answering system over linked data.
CLEF.
[Pasca et Harabagiu, 2001] Pasca, M. A. et Harabagiu, S. M. (2001).
High performance question/answering. In Proceedings of the 24th annual international ACM SIGIR conference on Research and development
in information retrieval, pages 366–374. ACM.
[Resnik, 1995] Resnik, P. (1995). Using information content to evaluate
semantic similarity in a taxonomy. arXiv preprint cmp-lg/9511007.
[Richardson et Domingos, 2006] Richardson, M. et Domingos, P. (2006).
Markov logic networks. Machine learning, 62(1-2):107–136.
[Simmons et al., 1964] Simmons, R. F., Klein, S. et McConlogue, K.
(1964). Indexing and dependency logic for answering english questions.
American Documentation, 15(3):196–204.
[Suchanek et al., 2007] Suchanek, F. M., Kasneci, G. et Weikum, G.
(2007). Yago : a core of semantic knowledge. In Proceedings of the 16th
international conference on World Wide Web, pages 697–706. ACM.
[Unger, 2013] Unger, C. (2013). Multilingual question answering over linked data : Qald-3 dataset.
[Unger, 2014] Unger, C. (2014). Multilingual question answering over linked data : Qald-4 dataset.
[Unger et al., 2012] Unger, C., Bühmann, L., Lehmann, J.,
Ngonga Ngomo, A.-C., Gerber, D. et Cimiano, P. (2012). Templatebased question answering over rdf data. In Proceedings of the 21st
international conference on World Wide Web, pages 639–648. ACM.
[Unger et al., 2014] Unger, C., Forascu, C., Lopez, V., Ngomo, A.C. N., Cabrio, E., Cimiano, P. et Walter, S. (2014). Question answering over linked data (qald-4). In Working Notes for CLEF 2014 Conference.
42
[Wu et Palmer, 1994] Wu, Z. et Palmer, M. (1994). Verbs semantics and
lexical selection. In Proceedings of the 32nd annual meeting on Association
for Computational Linguistics, pages 133–138. Association for Computational Linguistics.
[Xu et al., 2014] Xu, K., Feng, Y. et Zhao, D. (2014). Xser@ qald-4 :
Answering natural language questions via phrasal semantic parsing.
[Yahya et al., 2012] Yahya, M., Berberich, K., Elbassuoni, S., Ramanath, M., Tresp, V. et Weikum, G. (2012). Deep answers for naturally
asked questions on the web of data. In Proceedings of the 21st international conference companion on World Wide Web, pages 445–449. ACM.
[Zou et al., 2014] Zou, L., Huang, R., Wang, H., Yu, J. X., He, W. et
Zhao, D. (2014). Natural language question answering over rdf : a graph
data driven approach. In Proceedings of the 2014 ACM SIGMOD international conference on Management of data, pages 313–324. ACM.
43