Concours Kaggle Quora : La solution gagnante par un doctorant SAF Lyon 1
Machine Learning
Maximilien Baudry, Doctorant au labo SAF Lyon 1 remporte le concours de prédiction Kaggle Quora.
Juin 2017 - Kaggle et Quora ont récemment lancé une compétition de prédiction qui a rassemblé plus de 3300 équipes.
Maximilien Baudry, doctorant Labo SAF / chaire BNP Paribas Cardif, ainsi que 4 autres membres du Data Lab' de BNP Paribas Cardif ont remporté la compétition!
Quora est un site internet de partage de connaissances qui permet à ses utilisateurs de créer/éditer/organiser des discussions sous forme de questions/réponses. Les questions que les utilisateurs posent portent sur tous les sujets, des dernières actualités aux problèmes d’ado en passant par du soutien en maths.
Lorsqu’un utilisateur ne sait pas que sa question a déjà été posée, soit parce qu’il n’a pas cherché au préalable, soit parce qu’il ne l’a pas trouvée, il arrive qu’une question soit posée une deuxième fois; Cela crée des doublons de discussions, indésirables à la fois pour Quora et pour ses utilisateurs.
Le Challenge Kaggle Quora
Le but du challenge était de détecter des questions doublonées. Les données se présentaient sous forme de couples de questions (question 1, question 2), pour lesquels nous devions prédire si oui ou non, l’intention des deux questions était la même.
Exemple de non-doublon :
1/ What is the best book to learn english?
2/ What is the best book to learn french?
Exemple de doublon :
1/ Do you believe there is a life after death?
2/ Is it true that there is a life after death?
Nous avons donc utilisé naturellement des techniques classiques de text-mining, comme des mesures de similarité entre chaîne de caractère, afin de quantifier la différence des deux questions, au sens syntaxique.
Nous avons ensuite utilisé des techniques de deep learning avec des architectures appropriées à l’état de l’art, auxquelles nous avons donné en entrée des word embeddings.
Les word embeddings consistent à transformer chaque mot en un vecteur de grande dimension, dont les coordonnées sont déterminées de façon à respecter au plus l’aspect sémantique de chaque mot. Ainsi, si les deux questions sont proches sémantiquement, alors leurs vecteurs des mots les composant auront des coordonnées proches.
Enfin, nous avons exploité la façon dont les questions nous étaient présentées à l’aide d’un graphe, dont les nœuds représentent les questions et les arêtes représentent l’existence, dans la base de données, du couple de question.
L’idée est d’exploiter le fait qu’une question dupliquée sera très souvent comparée à d’autres questions, ce qui se traduit par un signal fort sur la connectivité des nœuds.
D’autre part, cela permet aussi, grâce aux composantes connexes du graphe, de détecter les thèmes abordés dans les questions.
Quora_winning_solution
Maximilien Baudry, doctorant Labo SAF / chaire BNP Paribas Cardif, ainsi que 4 autres membres du Data Lab' de BNP Paribas Cardif ont remporté la compétition!
Quora est un site internet de partage de connaissances qui permet à ses utilisateurs de créer/éditer/organiser des discussions sous forme de questions/réponses. Les questions que les utilisateurs posent portent sur tous les sujets, des dernières actualités aux problèmes d’ado en passant par du soutien en maths.
Lorsqu’un utilisateur ne sait pas que sa question a déjà été posée, soit parce qu’il n’a pas cherché au préalable, soit parce qu’il ne l’a pas trouvée, il arrive qu’une question soit posée une deuxième fois; Cela crée des doublons de discussions, indésirables à la fois pour Quora et pour ses utilisateurs.
Le Challenge Kaggle Quora
Le but du challenge était de détecter des questions doublonées. Les données se présentaient sous forme de couples de questions (question 1, question 2), pour lesquels nous devions prédire si oui ou non, l’intention des deux questions était la même.
Exemple de non-doublon :
1/ What is the best book to learn english?
2/ What is the best book to learn french?
Exemple de doublon :
1/ Do you believe there is a life after death?
2/ Is it true that there is a life after death?
Nous avons donc utilisé naturellement des techniques classiques de text-mining, comme des mesures de similarité entre chaîne de caractère, afin de quantifier la différence des deux questions, au sens syntaxique.
Nous avons ensuite utilisé des techniques de deep learning avec des architectures appropriées à l’état de l’art, auxquelles nous avons donné en entrée des word embeddings.
Les word embeddings consistent à transformer chaque mot en un vecteur de grande dimension, dont les coordonnées sont déterminées de façon à respecter au plus l’aspect sémantique de chaque mot. Ainsi, si les deux questions sont proches sémantiquement, alors leurs vecteurs des mots les composant auront des coordonnées proches.
Enfin, nous avons exploité la façon dont les questions nous étaient présentées à l’aide d’un graphe, dont les nœuds représentent les questions et les arêtes représentent l’existence, dans la base de données, du couple de question.
L’idée est d’exploiter le fait qu’une question dupliquée sera très souvent comparée à d’autres questions, ce qui se traduit par un signal fort sur la connectivité des nœuds.
D’autre part, cela permet aussi, grâce aux composantes connexes du graphe, de détecter les thèmes abordés dans les questions.
Quora_winning_solution
Publié le 13 juillet 2017 – Mis à jour le 19 juillet 2017