Compétition Kaggle Quora : La solution gagnante !

Kaggle et Quora ont récemment lancé une compétition de prédiction qui a rassemblé plus de 3300 équipes. 5 membres du Data Lab’ de BNP Paribas Cardif ont entrepris de participer  à la compétition en équipe (les DL guys) sur leur temps personnel.  Constituée de Maximilien Baudry, doctorant Labo SAF / BNP Paribas Cardif, Sébastien Conort, Chief Data Scientist de BNP Paribas Cardif, tous deux membres de la chaire DAMI, ainsi que de Tung Lam Dang, Guillaume Huard et Paul Todorov, l’équipe a 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 but du challenge était donc 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

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *