Comment mesurer la proximité du sens de deux phrases sans aucun mot en commun ?

Introduction

La tâche de similarité sémantique est une sous-tâche de la tâche Sentence Pair qui consiste à comparer un couple de textes et d’en déterminer une relation.

Dans notre cas, ce couple de textes est un couple de phrases grammaticales, pour lesquelles l’on cherche à déterminer la relation sémantique. C’est-à-dire est-ce que ces deux phrases sont synonymes ? antonymes ? ou plutôt sans aucune relation sémantique ? 

sense4data propose l’utilisation de la similarité sémantique dans son algorithme de Matching entre demandeurs et offreurs d’emploi (Sense4Matching) dans le but de comparer les compétences décrites par les candidats dans leurs curriculum vitae à celles demandées dans l’offre. Cela permet de calculer en partie le taux de compatibilité entre offre et CV.

Différentes approches

Approche “mots-clefs”

Une première approche consiste à comparer les mots contenus dans les deux textes et calculer un score de similarité par rapport au nombre de mots en communs.

La méthode de scoring la plus commune est celle de l’indice Jaccard, de formule :

Jaccard (A, B)∈ [0, 1] = || A∩B |||| AUB ||

Soit le couple de phrases (A, B) suivant:

A : Accompagnement des travaux de construction

B : Suivi du chantier

L’indice jaccard (A, B) obtenu est de 0. Cela se justifie par le fait que les deux phrases sont totalement différentes d’un point de vue de la forme : elles n’ont aucun mot en commun. Pourtant, ce sont des phrases très proches d’un point de vue sémantique. On peut affirmer, par conséquent, que le calcul de la similarité entre deux phrases d’un point de vue morphologique n’est pas suffisant. Il est nécessaire d’examiner les phrases en utilisant leur sens.

Plongements lexicaux

Une des techniques pour mesurer la proximité du sens de deux phrases n’ayant aucun mot en commun et répondre aux limites des approches “mots-clefs” est celle de l’utilisation des plongements lexicaux. Ces derniers, aussi appelés embeddings, sont des représentations mathématiques des mots, sous forme de vecteurs dans un espace multidimensionnel.

Un des premiers modèles conçu à cet effet est le Word2Vec [1] développé par Google sous la directive de T. Mikolov en 2013. Ce modèle, composé de réseaux de neurones à deux couches, est entraîné de manière à produire, pour les mots partageant le même contexte, des vecteurs numériques proches dans l’espace. Les vecteurs résultants de l’entraînement sont des vecteurs statiques.

Comme ce sont des vecteurs mathématiques, il est possible de réaliser des opérations algébriques (addition, soustraction, etc.) pour en déduire des relations.

Prenons les mots “maman”, “papa”, “femme”, “homme”, on peut déduire la relation suivante : 

maman = papa – homme + femme

Les vecteurs Word2Vec ont été calculés de telle sorte à ce que cette équation puisse être vraie en utilisant les vecteurs correspondants.

La figure suivante représente un ensemble de mots encodés avec l’algorithme Word2Vec. Une réduction de dimensionnalité [2] a été appliquée aux vecteurs résultants pour les représenter dans un espace bi-dimentionnel.

On observe que la plupart des mots se référant au même champ lexical se trouvent à proximité dans l’espace. C’est le cas des mots comme “mangue”, “banane”, qui se rapporte à la même idée : l’alimentation. 

Cependant, prenons le cas du mot ambigu « avocat », qui peut être en fonction du contexte un fruit ou un individu exerçant une fonction de juriste. On remarque qu’il se trouve inclus dans le champ lexical juridique mais à une grande distance du champ lexical alimentaire.

Modèles contextuels

Pour résoudre le problème mentionné précédemment et obtenir une représentation plus efficace et plus significative des mots, divers modèles ont vu le jour ces dernières années. Ces modèles dits contextuels permettent d’obtenir, pour un mot donné de phrase, une représentation vectorielle calculée en fonction des mots qui l’entourent, au lieu d’un vecteur fixe. 

Parmi les modèles développés à cet effet, BERT [3] est celui qui a révolutionné le monde du traitement automatique du langage naturel, en battant plusieurs records sur des tâches basées sur le langage.

Qu’est-ce que BERT et quel est son fonctionnement ?

BERT (Bidirectional Encoder Representations from Transformers) est un modèle de langage développé par Google en 2018. Il est plus performant que ses prédécesseurs en termes de résultats et de rapidité d’apprentissage. Une fois pré-entraîné en non supervisé, il peut être fine-tuné pour réaliser une tâche plus spécifique avec peu de données.

Ce modèle reposant sur des Transformers bidirectionnels peut traiter diverses tâches telles que la traduction automatique, le PoS Tagging, la génération de textes, la similarité sémantique et bien plus encore.

Un Transformer est un modèle qui prend en entrée une phrase et en produit une autre en sortie. Il est composé d’un nombre égal d’encodeurs et de décodeurs.

Tous les encodeurs ont une architecture identique, illustrée par la figure ci-dessous. 

Ils sont composés chacun d’une couche d’auto-attention (self-attention) et d’un réseau neuronal à propagation avant (feed-forward) [4].

Le mécanisme d’auto-attention permet à un encodeur de communiquer avec les autres encodeurs et de comprendre quels sont les mots de la séquence d’entrée les plus pertinents pour aider à générer la meilleure représentation vectorielle du mot courant. Quels sont donc les mots de la séquence d’entrée qui se rapportent le plus, d’un point de vue contextuel et sémantique, au mot qui est en cours d’encodage. Chaque encodeur peut donc consulter les mots du passé et du futur.

Les décodeurs possèdent également ces deux couches, sauf qu’entre les deux se trouve une autre couche appelée encoder-decoder attention qui permet la communication entre encodeurs et décodeurs. 

Ce mécanisme d’attention permet aux décodeurs de comprendre quels sont les mots de la séquence d’entrée les plus pertinents pour générer un mot de sortie. Chaque décodeur consulte uniquement les mots à des positions antérieures pour générer le mot courant vu que le futur est encore à prédire.

L’architecture des décodeurs est représentée par la figure ci-dessous :

BERT n’utilise qu’une partie de l’architecture des Transformers. En effet, comme son nom l’indique, il est composé d’un empilement de blocs d’encodeurs bidirectionnels, sans décodeurs. Il prend en entrée une séquence de tokens (mots, ponctuations, etc) qui traversent ces couches d’encodeurs et produit en sortie une séquence de vecteurs contextuels.

BERT est disponible en deux modèles :

  • modèle base comprenant 12 encodeurs
  • modèle large composé de 24 encodeurs.

Pour plus d’informations sur les Transformers et BERT, consulter les articles de J. Alammar [5] et P. Denoyes [6] sur le sujet.

Représentation vectorielle de la phrase

Comme vu précédemment, la sortie du modèle BERT est une liste de vecteurs correspondant aux représentations vectorielles des tokens de la phrase input. Pour obtenir un embedding unique propre à la phrase entière, de nombreuses méthodes peuvent être appliquées comme la moyenne des vecteurs de mots, leur addition… 

La méthode que nous allons privilégier est celle utilisant le modèle Sentence-BERT (S-BERT) développée par Reimers et Gurevych [6].

S-BERT est une version modifiée du modèle BERT dans laquelle on a introduit des réseaux BERT siamois. Cela permet de faciliter la représentation des phrases, paragraphes et images sous une forme vectorielle. Le texte est ainsi encodé dans un espace vectoriel de manière à ce que les textes ayant le même sens soient proches dans l’espace et puissent être identifiés en utilisant la distance cosinus.

La distance ou similarité cosinus est un score de similarité entre deux vecteurs à n dimensions. Elle détermine la valeur du cosinus de leur angle. 

Soit deux vecteurs A et B, on a comme formule :

Cosinus (A, B)∈ [-1, 1] = A.B|| A || || B ||

  • Plus le cosinus est proche de 1, plus les phrases sont synonymes,
  • Plus il est proche de -1, plus les phrases sont opposées, 
  • Plus il est proche de 0, moins il existe de relation sémantique entre les phrases.

S-BERT est proposé avec un large panel de modèles pré-entraînés.

L’algorithme Sense4Matching utilise celui entraîné avec des réseaux siamois BERT multilingues. 

Cela permet de capturer la similarité sémantique des compétences décrites dans la même langue, comme celles décrites dans des langues différentes. Par conséquent, cela permet traiter les documents sans mots en commun et de ne pas discriminer des CV avec des formulations de compétences/expériences différentes de celles de l’offre. C’est notamment le cas des CV et offres techniques, dans lesquels on retrouve un grand nombre de termes anglais.

Ci-dessous des exemples de résultats obtenus en déterminant la similarité sémantique entre compétences via S-BERT et similarité cosinus :

A : Accompagnement des travaux de construction

B : Suivi du chantier

cosinus (A, B) = 0.79

C : Génération de graphiques

D : Production de dessins

cosinus (C, D) = 0.72

E : Correction de défauts

F : Rectification des anomalies

cosinus (E, F) = 0.67

G : Traitement du langage naturel

H : Natural language processing

cosinus (G, H) = 0.78

I : Gestion de projets

J : Projects management

cosinus (I, J) = 0.97

Conclusion

Nombreuses sont les tâches pour lesquelles la similarité sémantique peut intervenir. Elle peut être utilisée pour : 

  • Améliorer les résultats d’un moteur de recherche, 
  • Construire un système de recommandations d’articles de presses, 
  • Aider les supports clients à trouver des réponses adaptées aux questions plus rapidement, notamment par l’intermédiaire de chatbots,
  • Améliorer un site internet/produit en regroupant les commentaires clients ayant le même thème, 
  • etc.

Grâce à ses compétences en matière d’intelligence artificielle, Sense4data est capable de fournir des solutions pour toutes ces tâches mais également répondre à des problématiques de traitement automatique du langage naturel de manière générale. Effectivement, l’entreprise est en mesure de fournir aux équipes des outils pour automatiser des tâches qui leur seraient répétitives, coûteuses en temps et en moyens humains sur diverses thématiques NLP telles que : l’extraction d’informations, la classification de documents, la génération automatique de textes, la reconnaissance d’entité nommée, etc.

Pour en savoir plus sur le panel de compétences au sein de Sense4data, rendez-vous sur notre site. Suivez nous également sur LinkedIn.

Références

Articles

[1] Tomas Mikolov (2013), Efficient Estimation of Word Representations in Vector Space

[3] Zell, Andreas (1994), Simulation Neuronaler Netze [Simulation of Neural Networks]

[6] Nils Reimers, Iryna Gurevych (2019), Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks

Liens

[2] https://fr.wikipedia.org/wiki/Algorithme_t-SNE

[4] https://jalammar.github.io/illustrated-transformer/

[5] https://lesdieuxducode.com/blog/2019/4/bert–le-transformer-model-qui-sentraine-et-qui-represente#:~:text=BERT%20%3A%20Le%20%22Transformer%20model%22,repr%C3%A9sente%20%7C%20Les%20Dieux%20Du%20Code