Modèles d’embeddings
État de l’art
Dans la recherche biomédicale, il est essentiel de tester de nouveaux processus ou médicaments sur un groupe de personnes qui partagent les mêmes caractéristiques physiques ou physiologiques. Il est beaucoup plus simple d’isoler les effets biologiques d’un traitement dans une population homogène [7]. Cette population homogène est appelée une cohorte. Dans les essais cliniques, définir cette cohorte et sélectionner les patients est un processus crucial demandant beaucoup de temps aux chercheurs en raison de la variété de cas possibles et du grand nombre de dossiers de patients qui doivent être traités manuellement [8]. Grâce aux récentes découvertes technologiques, des essais d’automatisation du processus de sélection de cohorte ont été menés. Cela est un énorme défi en raison des nombreuses manières dont les données ont été récupérées et stockées. Il est possible de formuler le problème de sélection de patient comme un problème de classification multi-labels dont l’objectif est de déterminer quels critères correspondent à chaque patient [8]. Avec les avancements récents dans le traitement du langage naturel (NLP) [6], il devient possible de fournir un accès rapide aux dossiers des patients qui correspondent le mieux à l’étude. Actuellement, quelques algorithmes basés sur des règles [6, 9] sont capables de faire correspondre des patients à des critères avec une précision acceptable mais ne peuvent pas être généralisés aux autres études. En effet, le nombre limité et la complexité des données rendent la généralisation des modèles très compliquée.
D’autres études ont essayé différentes approches utilisant l’apprentissage machine (Machine Learning). Segura Debmar et cie [10] ont essayé différents modèles d’apprentissage classiques et profond pour détecter si des patients sont atteints d’une maladie spécifique sur la base de leurs dossiers médicaux. Pour une maladie spécifique, ils ont réussi à obtenir un score F1 de 95.6% avec un modèle CNN et un score 95.8% avec un modèle SVM, dont la complexité de calcul est bien moindre. Comme vu précédemment, l’utilisation de l’apprentissage approfondi (Deep-Learning) permet d’obtenir de très bons résultats pour une tâche spécifique. Dans une seconde étude, Segura Debmar et Pablo Raez [8] ont essayé de faire correspondre des critères d’inclusion avec des dossiers patients, une tâche bien plus généralisée, en se basant sur les données de la tâche partagée N2C2 [11]. Ils ont utilisé un CNN, un RNN et un modèle hybride (CNN et RNN) et ont testé si l’ajout d’une couche de classification dense et l’initialisation aléatoire des poids avaient un impact positif sur les résultats. Avec leur meilleur modèle (hybride, pas de couche de classification et poids pré-entraînés), ils ont obtenu un score F1 de 78.56%.
En général, l’utilisation d’une couche de classification améliore les résultats, sauf pour l’architecture hybride. La difficulté du problème de sélection de cohorte réside dans la grande diversité des critères. Chaque domaine médical a ses mots et abréviations spécifiques. En raison de cette diversité, il est difficile de créer un modèle généralisé à l’ensemble des domaines médicaux. Pour ajouter du contexte et de la compréhension aux critères, des connaissances médicales peuvent être injectées dans les textes. Cette architecture aide à identifier la sémantique du domaine médical [12]. Toutes les phrases qui n’ajoutent pas de contexte, basé sur un dictionnaire de mots importants, seront supprimées du texte. L’avantage de cette architecture est qu’elle peut être plus facilement généralisée, en fonction du dictionnaire utilisé. Le MKCNN (Medical Knowledge Convolutional Neural Network) a surpassé certains modèles en obtenant un score F1 de 86.1%.
Une autre approche consiste à ne pas utiliser un seul classificateur multi-labels mais un classificateur pour chaque critère [13]. Chaque classificateur utilise un modèle simple (BoW [14]) mais doit utiliser en contrepartie une approche de correspondance des modèles pour conserver les informations pertinentes du texte. Toutes ces informations sont réintégrées dans le texte sous forme de jetons lexicalement distinguables. Pour les critères comportant un nombre suffisant d’instances, Spasci et cie [13] ont utilisé de l’apprentissage surpervisé. Pour les autres, une approche basée sur des règles a été choisie. Cette architecture a permis d’obtenir un score F1 de 89.04%. Le modèle Gradient Tree Boosting semble être le modèle le plus consistant.
Le plus grand défi de la communauté médicale est la collecte de données. La quantité de données disponibles est très limité et ces données sont souvent incomplètes. La génération de données synthétiques [13, 15, 16, 17], peut résoudre ce problème. En outre, cela permet d’anonymiser les données. Une autre difficulté réside dans le type de données qui peuvent être collectées. Certaines données peuvent être catégoriques mais la plupart sont au format textuel. Il est alors nécessaire d’en extraire les éléments pertinents et de les transformer en un format vectoriel, compréhensible par l’ordinateur. Une approche consiste à utiliser des méthodologies basées sur des règles [18]. Cela prend beaucoup de temps mais donne de très bons résultats. Néanmoins, il est alors très compliqué de généraliser ces transformations à de nouveaux textes. Une seconde approche consiste à utiliser l’incorporation de mots / documents [19]. Ce système permet de créer une représentation unique d’un mot / document, permettant de généraliser le modèle. Il est également possible de combiner les deux approches [20]. De nombreux modèles d’embeddings existent, comme GloVe [21], ELMo [22], BERT [23], Word2Vec [19], etc.
Ceux les plus performants actuellement sont basés sur l’architecture Transformers [24], imaginée en 2017. Cette dernière permet d’augmenter grandement le nombre de mots sur lesquels la contextualisation peut être appliquée. BERT [23] est le modèle d’embeddings basé sur l’architecture Transformers le plus connu. Beaucoup de personnes ont essayé d’utiliser ces outils pour créer les meilleurs modèles de sélection de cohorte. La fondation I2B2 [25] a permis de tester de nombreuses approches dans le domaine de la médecine. Depuis que de nouvelles technologies ont vu le jour, la fondation a changé de nom pour y intégrer le traitement du langage naturel. N2C2 [11] est maintenant une fondation internationale essayant de résoudre des problèmes médicaux en se basant sur le NLP [6]. La tâche partagée créée en 2018 avait pour but de résoudre le problème de sélection de cohorte. Quarante-sept équipes ont participé et la meilleure a réalisé un score F1 de 91% en utilisant un algorithme basé sur des règles. Les dix meilleures équipes ont toutes utilisé une architecture à base de règles et de modèles hybrides [26]. L’utilisation de ces algorithmes augmente considérablement les résultats mais supprime toute possibilité de généralisation à d’autres problèmes.
Description des données
Les données utilisées durant ce travail proviennent du challenge 2018 N2C2 shared task (track 1) [26]. Ce dernier a été créé pour résoudre le problème de sélection de cohorte lors d’essais cliniques. Il est composé de données relatives à 288 patients, 202 pour l’entraînement des modèles et 86 pour les tests. Chaque patient est décrit par 2 à 5 enregistrements textuels ainsi que par 13 critères, expliqués au tableau 3.1, pour un total de 1267 instances d’entraînement et 377 instances de test. L’ensemble des enregistrements d’un même patient sont classifiés de la même façon. Chaque critère est défini par une phrase et abrégé par un tag, comme il est possible de le voir dans le tableau 3.1. Chacun d’eux peuvent avoir comme valeur « met », qui indique que l’enregistrement correspond au critère, ou « no met » qui indique que l’enregistrement ne correspond pas au critère. La plupart des critères relèvent du monde médical mais d’autres, tel que « ENGLISH » ou « MAKESDECISION » y sont moins spécifiques. Certains critères, par exemple MI-6MOS, ont une signification sur la durée (… in the past 6 months) et nécessitent donc de connaître la date de l’enregistrement. Cette date est indiquée sur la première ligne de chaque enregistrement. Toutes les dates présentes dans les enregistrements sont anonymisées (la date est modifiée) tout en gardant le bon espace temporel entre les différentes dates. Tous les enregistrements sont écrits en anglais et peuvent prendre des formes diverses: email, rapport médical, ordonnance, etc.
Comme décrit dans le tableau 3.2, l’enregistrement le plus long comporte 2984 mots pour 21’189 caractères. Le plus court fait 74 mots pour un total de 435 caractères. En moyenne, les enregistrements ont 615 mots pour 4’284 caractères. Bien qu’il y ait de grandes différences dans les longueurs des textes, la distribution de ceux-ci est plutôt égale entre les données d’entraînement et les données de test. Toutes les données du N2C2 shared task (track 1) sont stockées au format XML. Un fichier est utilisé par patient. La structure de l’arbre XML de chaque fichier est décrite à la figure 3.1. Comme visibile à la figure 3.1, la structure XML est découpée en 2 partie : TEXT et TAGS. L’ensemble des enregistrements sont écrits dans la balise TEXT, plus spécifiquement à l’intérieur de la sousbalise CDATA. Cette dernière permet d’éviter que certains caractères des enregistrements soient intérprétés en XML et détruisent la structure de l’arbre. Comme chaque patient peut avoir entre 2 et 5 enregistrements, ceux-ci sont séparés par une ligne contenant 100 astérisques. Les critères relatifs au patient sont stockés dans la balise TAGS. Chaque critère dispose de sa propre sous-balise et leur valeur est décrite par l’attribut met, pouvant avoir la valeur met ou not met. Avec un total de seulement 1644 instances, le jeu de données N2C2 shared task (track 1) est très limité en taille, surtout dans un domaine comme la médecine où les données sont très complexes.
Les modèles d’embeddings les plus connus
Parmi les différents modèles d’embeddings non contextualisés, les plus connus sont Word2Vec [41] et Glove [21]. Ces derniers ne prennent pas en compte l’ordre des mots et leur signification dans le texte. Pour transformer un mot en vecteur, il n’est pas nécessaire d’avoir le modèle complet mais seulement la liste des mots et leurs vecteurs associés. Cela rend la transformation d’un mot en vecteur très rapide mais limitée aux seuls mots compris dans cette liste. Par la suite sont arrivés les modèles d’embeddings contextualisés. ELMo [42], l’un des plus connu, prend en compte la position et le contexte du mot dans la phrase pour créer la représentation vectorielle. La possibilité de contextualisé le mot engendre néanmoins un désavantage: il est indispensable d’utiliser directement le modèle pour embedder un mot, contrairement aux modèles non contextualisés, engendrant des temps de calculs plus élevés. L’architecture la plus récente est l’architecture Transformers, introduite par Vaswani et cie [24]. Cette architecture a battu les derniers records de l’état de l’art.
Elle est basée sur une couche « d’attention » qui augmente considérablement la longueur de la mémoire du modèle, permettant la contextualisation sur l’ensemble des mots d’une document. Contrairement à un modèle contextualisé basique, l’architecture Transformers utilise un système d’encoder / decoder, spécifiquement très efficace dans les tâches de traduction. L’encoder, entraîné à comprendre une langue particulière, crée une représentation vectorielle neutre d’un mot ou d’un document. Le decoder, entraîné également dans une langue particulière (qui n’est pas forcément la même que celle de l’encoder), prend ce vecteur et le transforme afin d’obtenir le résultat attendu. Cette architecture permet de greffer n’importe quel décodeur sur l’encoder, le rendent plus facilement généralisable à toutes les langues. Cette étape du vecteur « neutre », que n’ont pas les autres architectures, oblige l’encoder à créer une représentation vectorielle la plus fidèle au mot, possible grâce à la couche d’attention. Actuellement, le modèle de Transformers le plus connu et utilisé est BERT [23].
Une différence notable entre ELMo et BERT, mis à part l’architecture de leur modèle, est leur gestion des mots. ELMo va considérer chaque mot directement, le contextualisant dans la phrase tandis que BERT va découper le mot en « sous-mots » (ex: sous-marin : sous et marin), si c’est possible, augmentant considérablement la taille du dictionnaire couvert. Ce système permet également de traiter des mots qui ne sont pas dans le dictionnaire d’entraînement et donc que le modèle n’a jamais vu, pour autant qu’il soit composé de « sous-mots » connus par ce dernier. Cette architecture permet également de faire de la classification de texte. Seulement l’encoder doit alors être utilisé en amont d’une couche de classification basique (MLP par exemple) .
|
Table des matières
Déclaration
Remerciements
Résumé
Liste des tableaux
Listes des images
Nomenclature
1 Introduction
1.1 Introduction
1.2 Le projet
1.3 Objectifs
1.4 Contenu de ce travail
2 État de l’art
3 Les données
3.1 Description des données
3.2 Distribution des données
3.3 Corrélation des critères
4 Méthodologie
4.1 Modèles naïfs – baseline
4.2 Modèles classiques
4.2.1 K-Nearest Neighbors (KNN)
4.2.2 Radius Neighbors
4.2.3 Arbre de décision
4.2.4 Random Forest
4.2.5 Régression linéaire
4.2.6 Régression logistique
4.3 Modèles de Deep Learning
4.3.1 Perceptron multicouches
4.3.2 CNN
4.3.3 RNN
4.4 Modèles d’embeddings
4.4.1 One-hot encoding embedding
4.4.2 Réduire la dimensionalité de l’embedding
4.4.3 Embedder un document
4.4.4 Les modèles d’embeddings les plus connus
4.5 Métriques d’évaluation
4.5.1 Exactitude
4.5.2 Précision
4.5.3 Rappel
4.5.4 Score F1
4.5.5 Micro vs Macro métriques
4.5.6 Informations importantes à propos des métriques
4.5.7 Test de Kolmogorov-Smirnov
5 Résultats
5.1 Algorithmes naïfs
5.2 Analyse des modèles d’embeddings
5.3 Régression logistique
5.4 KNN
5.5 Radius Neighbors
5.6 Arbre de décision
5.7 Random Forest
5.8 MLP
5.9 CNN
5.10 RNN
5.11 Classification end-to-end
5.12 Discussion
5.12.1 Optimisation des paramètres
5.12.2 Impact des longueurs de texte
6 Conclusion
Bibliographie
Télécharger le rapport complet