Retour au blog

Embeddings pour le codage clinique : généraux ou spécifiques ?

Un médecin expérimenté

Une étude de Tietai montrant qu’un bi-encodeur biomédical espagnol avec reclassement par cross-encodeur surpasse les embeddings publics et BM25 pour la recherche de codes CIM-10 / CIE-10-ES.

Note de recherche. Cette étude évalue des modèles de recherche d’information sur des benchmarks publics. Elle ne décrit pas un produit disponible ni sa performance clinique.

Mention clinique

Une courte requête en EN, ES, CA, IT, PT ou FR

Étape 1 · Bi-encodeur (multilingue)

Encode séparément la requête et chaque description CIE-10, puis les classe par similarité cosinus. Entraîné sur 19 502 exemples synthétiques triés couvrant 17 chapitres de la CIM-10.

Les k meilleurs candidats

Étape 2 · Reclasseur cross-encodeur (espagnol)

Lit conjointement chaque paire requête–code et reclasse la liste restreinte. Entraîné sur 10 628 groupes listwise avec des négatifs difficiles cliniquement plausibles.

Codes CIE-10-ES classés

Latéralité, sévérité, étiologie et type d’épisode résolus dans l’ordre final

Recherche CIM en deux étapes. Un bi-encodeur multilingue récupère des codes CIE-10 candidats, puis un cross-encodeur adapté à l’espagnol reclasse la liste restreinte pour retrouver des distinctions cliniquement pertinentes comme la latéralité, la sévérité, l’étiologie et le type d’épisode.

01 - La question

Des récupérateurs compacts et spécialisés peuvent-ils surpasser les embeddings publics généralistes ?

Les embeddings de phrases fonctionnent bien pour la recherche sémantique large, mais le codage CIM n’est pas une recherche sémantique large. Le modèle doit rattacher de courtes mentions cliniques à un vocabulaire contrôlé où des codes voisins diffèrent souvent par un qualificatif : site anatomique, latéralité, sévérité, type de rencontre ou étiologie.

L’article se demande si une supervision synthétique de haute qualité peut combler cet écart pour le codage clinique en espagnol. Nous utilisons un LLM de pointe pour générer des exemples multilingues ancrés dans la hiérarchie de la CIM-10, ajustons un bi-encodeur biomédical espagnol, puis entraînons un reclasseur cross-encodeur sur des groupes listwise avec des négatifs difficiles cliniquement plausibles.

Le résultat principal : pour la recherche CIM-10/CIE-10-ES en espagnol, une supervision alignée sur la tâche et des négatifs cliniquement significatifs comptent davantage que la taille de l’embedding ou un pré-entraînement biomédical générique en anglais.

02 - Méthode

Un bi-encodeur pour le rappel, un cross-encodeur pour la précision du code exact.

Le récupérateur utilise une architecture standard en deux étapes, mais soigneusement alignée. L’étape 1 encode séparément chaque requête et chaque description CIE-10 et classe par similarité cosinus. L’étape 2 lit conjointement chaque paire requête-code et reclasse les meilleurs candidats avec un objectif listwise.

Les données d’entraînement n’ont pas été traitées comme une sortie synthétique brute. Nous avons trié les exemples générés par validation à base de règles, déduplication sémantique, contrôles de cohérence linguistique et inspection manuelle par sondage avant de les utiliser pour construire le bi-encodeur et les classifieurs de reclassement. Cette curation est centrale dans l’article : le but n’est pas simplement de produire plus de données, mais de créer des exemples et des négatifs difficiles qui reflètent les distinctions cliniques encodées dans la CIM-10/CIE-10.

Exemples synthétiques pour le bi-encodeur couvrant 17 chapitres de la CIM-10.
19 502
Langues utilisées pour la supervision synthétique : EN, ES, CA, IT, PT et FR.
6
Groupes listwise espagnols pour le cross-encodeur, avec un positif et des négatifs difficiles.
10 628
Niveaux d’évaluation : code complet, catégorie à 3 caractères et chapitre.
3

Stratégies de recherche comparées

StratégieRôle dans l’étude
Tietai Cross-EncoderReclasse la liste restreinte du bi-encodeur et optimise l’ordre du code exact.
Tietai Bi-EncoderSocle de recherche dense biomédicale en espagnol, ajusté par supervision synthétique.
BM25 (Postgres FTS)Référence lexicale en texte intégral sur les descriptions de la CIE-10-ES.
ST MiniLM-L6-v2Référence publique de sentence-transformer généraliste.
ST BioBERTRéférence de sentence-transformer biomédical en anglais.
ST MPNet-v2Référence de sentence-transformer généraliste plus grande, à 768 dimensions.

03 - Résultats

F1 et MAP@10 mettent l’accent sur la qualité du classement.

Sur CodiESP v4, le cross-encodeur de Tietai atteint F1 = 0,709 et MAP@10 = 0,747 au niveau du code exact. Sur DISTEMIST, il atteint F1 = 0,776 et MAP@10 = 0,812. La version mise à jour de l’article utilise MAP@10 comme métrique de classement et F1 comme métrique de décision top-1.

F1 au code exact sur CodiESP pour le Tietai Cross-Encoder.
0,709
MAP@10 au code exact sur CodiESP pour le Tietai Cross-Encoder.
0,747
F1 au code exact sur DISTEMIST pour le Tietai Cross-Encoder.
0,776
MAP@10 au code exact sur DISTEMIST pour le Tietai Cross-Encoder.
0,812

F1 et MAP@10 sur CodiESP v4

ModèleF1 exactF1 catégorieMAP@10 exactMAP@10 catégorie
Tietai Cross-Encoder0,7090,8230,7470,851
Tietai Bi-Encoder0,3590,6170,4610,694
BM25 (Postgres FTS)0,2390,3760,3220,471
ST MiniLM-L6-v20,2250,3710,2870,426
ST BioBERT0,1930,3140,2520,373
ST MPNet-v20,1610,3170,2260,376
F1 et MAP@10 sur CodiESP au niveau du code exact et de la catégorie.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)ST MiniLM-L6-v2ST BioBERTST MPNet-v20%20%40%60%80%100%F1 exactF1 catégorieMAP@10 exactMAP@10 catégorie
F1 et MAP@10 sur CodiESP. Le cross-encodeur de Tietai est en tête sur toutes les métriques. MAP@10 est supérieur à F1, ce qui montre que de nombreux échecs en top-1 contiennent tout de même le bon code dans le top 10.

Précision, rappel et F1 top-1 au code exact sur CodiESP

ModèlePrécisionRappelF1
Tietai Cross-Encoder0,7090,7090,709
Tietai Bi-Encoder0,3590,3590,359
BM25 (Postgres FTS)0,2540,2270,239
ST MiniLM-L6-v20,2250,2250,225
ST BioBERT0,1930,1930,193
ST MPNet-v20,1610,1610,161
Précision, rappel et F1 top-1 sur CodiESP au niveau du code exact.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)ST MiniLM-L6-v2ST BioBERTST MPNet-v20%20%40%60%80%100%PrécisionRappelF1
Précision, rappel et F1 top-1 au code exact sur CodiESP. Les récupérateurs denses produisent une prédiction par requête, donc les trois métriques coïncident. BM25 diverge car il ne renvoie aucun candidat pour environ 11 % des requêtes CodiESP.
Précision à k sur CodiESP par modèle de recherche, pour les correspondances au code exact et à la catégorie.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)ST MiniLM-L6-v2ST BioBERTST MPNet-v2Code exact0%20%40%60%80%100%13510kCatégorie (3 caractères)13510k
Precision@k sur CodiESP. La précision baisse avec k car chaque requête n’a généralement qu’un code de référence, mais l’ordre des modèles reste stable au code exact comme à la catégorie.
Rappel à k sur CodiESP par modèle de recherche, pour les correspondances au code exact et à la catégorie.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)ST MiniLM-L6-v2ST BioBERTST MPNet-v2Code exact0%20%40%60%80%100%13510kCatégorie (3 caractères)13510k
Recall@k sur CodiESP. Le cross-encodeur atteint R@10 = 0,813 au code exact et 0,903 à la catégorie, tandis que le bi-encodeur comble une grande partie de l’écart aux rangs plus profonds.

Exactitude top-1 par niveau hiérarchique sur CodiESP

Exactitude top-1 sur CodiESP au niveau du code exact, de la catégorie et du chapitre.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)ST MiniLM-L6-v2ST BioBERTST MPNet-v20%20%40%60%80%100%Code exactCatégorie (3 caractères)Chapitre
Exactitude hiérarchique sur CodiESP. La même décision top-1 s’améliore du code exact à la catégorie puis au chapitre, ce qui montre combien de fois les modèles trouvent la bonne famille de maladies même quand le code complet est faux.

F1 et MAP@10 sur DISTEMIST

ModèleF1 exactF1 catégorieMAP@10 exactMAP@10 catégorie
Tietai Cross-Encoder0,7760,8180,8120,846
Tietai Bi-Encoder0,6030,6900,6820,747
BM25 (Postgres FTS)0,4310,4700,5040,537
F1 et MAP@10 sur DISTEMIST au niveau du code exact et de la catégorie.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)0%20%40%60%80%100%F1 exactF1 catégorieMAP@10 exactMAP@10 catégorie
F1 et MAP@10 sur DISTEMIST. L’ordre relatif entre cross-encodeur, bi-encodeur et BM25 reste inchangé sur un corpus clinique espagnol indépendant.
Précision à k sur DISTEMIST par modèle de recherche, pour les correspondances au code exact et à la catégorie.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)Code exact0%20%40%60%80%100%13510kCatégorie (3 caractères)13510k
Precision@k sur DISTEMIST. La précision baisse quand k augmente, mais les modèles denses spécialisés restent devant la référence lexicale BM25 au code exact comme à la catégorie.
Exactitude top-1 sur DISTEMIST au niveau du code exact, de la catégorie et du chapitre.Tietai Cross-EncoderTietai Bi-EncoderBM25 (Postgres FTS)0%20%40%60%80%100%Code exactCatégorie (3 caractères)Chapitre
Exactitude hiérarchique sur DISTEMIST. L’exactitude augmente du code exact à la catégorie puis au chapitre, tandis que l’ordre des modèles reste le même : cross-encodeur, bi-encodeur, puis BM25.

04 - Interprétation

Le goulot d’étranglement, c’est l’alignement sur la tâche, pas la taille de l’embedding.

L’ordre des références publiques est le résultat négatif important. BioBERT-ST bénéficie d’un pré-entraînement biomédical, mais il est centré sur l’anglais. MPNet-v2 a des embeddings plus grands, mais reste derrière MiniLM-L6-v2. Ni la taille ni le pré-entraînement générique de domaine ne résolvent seuls la recherche de codes cliniques en espagnol.

La recherche CIM exige que les modèles distinguent des concepts voisins sémantiquement proches mais opérationnellement différents. Le bi-encodeur capte bien l’information thématique au niveau du chapitre, mais le classement au code exact nécessite un reclasseur entraîné sur des négatifs difficiles tirés de codes CIE-10 voisins.

  • L’alignement sur la tâche compte. Les exemples synthétiques doivent refléter la hiérarchie de la CIM, et pas seulement une parenté biomédicale large.
  • Les négatifs difficiles comptent. Les codes voisins apprennent au modèle à distinguer étiologie, anatomie, sévérité et type d’épisode.
  • Le reclassement compte. Le cross-encodeur apporte la discrimination au niveau des qualificatifs qu’exigent les règles de la CIE-10-ES.
  • Peu de données peuvent suffire. Un corpus synthétique compact peut entraîner un récupérateur compétitif lorsque les exemples sont alignés sur la structure du vocabulaire cible.
  • Le pré-entraînement biomédical ne se transfère pas automatiquement. Les encodeurs biomédicaux anglais peinent encore quand la requête et le vocabulaire cible sont en espagnol.

Pour la recherche de codage clinique en production, la leçon pratique est d’entraîner pour le vocabulaire cible, la langue cible et le problème de classement cible. L’unité utile n’est pas un plus gros modèle d’embeddings ; c’est un récupérateur entraîné sur les distinctions que les codeurs doivent réellement faire.

Lire l’article complet

Ouvrir la voie à la santé.