Types de vector embeddings
- Embeddings de mots : représentent les mots en NLP et capturent les relations sémantiques entre eux. Utilisés pour la traduction automatique, la similarité entre mots, l’analyse de sentiment, etc.
- Embeddings de phrases : capturent le sens et le contexte des phrases, et sont utilisés pour la recherche d’information, la classification de texte, l’analyse de sentiment, etc.
- Embeddings de documents : capturent le contenu de documents comme des rapports ou des articles, et sont utilisés pour les systèmes de recommandation, la recherche d’information, la similarité documentaire et la classification.
- Embeddings de graphes : représentent les nœuds et les arêtes d’un graphe dans un espace vectoriel, et sont utilisés pour la classification de nœuds, la détection de communautés, la prédiction de liens, etc.
- Embeddings d’images : représentent différents aspects d’une image, et sont utilisés pour les systèmes de recommandation basés sur le contenu, la reconnaissance d’images et d’objets, ainsi que les systèmes de recherche d’images.
- Embeddings de produits : représentent des produits numériques ou physiques, et sont utilisés pour les systèmes de recommandation et de classification de produits, ainsi que pour la recherche de produits.
- Embeddings audio : représentent le rythme, la tonalité, la hauteur, etc. de signaux audio, et sont utilisés pour la détection des émotions, la reconnaissance vocale, la recommandation musicale, etc.
Comment les réseaux de neurones génèrent des embeddings
- Apprentissage de représentations : les réseaux de neurones projettent des données de haute dimension dans un espace de plus faible dimension tout en préservant les caractéristiques importantes.
- Processus d’entraînement : le réseau de neurones apprend à transformer les données en embeddings pertinents. Cela se fait en ajustant les poids et les biais des neurones.
- Exemple : dans un réseau de neurones destiné à classer des critiques de films en positif/négatif, des embeddings de mots sont appris. Des mots comme "good" et "excellent" finissent par avoir des embeddings similaires.
Principe de fonctionnement des vector embeddings
- Espace vectoriel : les objets ou caractéristiques sont représentés comme des points dans un espace vectoriel multidimensionnel, et les éléments similaires se trouvent proches les uns des autres.
- Mesure de distance : la distance euclidienne, la similarité cosinus, etc. sont utilisées pour quantifier les relations entre vecteurs.
- Exemple : les vecteurs de "cat" et "dog" sont plus proches l’un de l’autre que ceux de "cat" et "car".
Développement avec les vector embeddings
- Chatbots : permettent de mieux répondre aux requêtes des utilisateurs, de générer des réponses contextuellement pertinentes et de maintenir des conversations cohérentes.
- Moteurs de recherche sémantique : fournissent des résultats basés sur la similarité sémantique plutôt que sur le simple matching de mots-clés.
- Systèmes de classification de texte : classent les documents selon leur syntaxe et leurs mots.
- Systèmes de recommandation : recommandent du contenu en fonction de la similarité entre mots-clés et descriptions.
Comment générer des vector embeddings à partir de données
- Collecte des données : collecte de différents types de données comme du texte, de l’audio, des images ou des séries temporelles.
- Prétraitement des données : préparation des données pour l’analyse via la tokenisation, la suppression du bruit, le redimensionnement des images, la normalisation, etc.
- Découpage des données : le texte est découpé en phrases ou en mots, les images en segments, et les séries temporelles en intervalles.
- Vectorisation : chaque fragment de donnée est converti en vecteur. Pour le texte, on utilise par exemple les modèles de text embeddings d’OpenAI ; pour les images, des modèles CNN ; pour l’audio, des spectrogrammes, etc.
Comment stocker les vector embeddings
- Bases de données vectorielles : utilisation de bases de données capables de stocker et de rechercher efficacement des données vectorielles.
- PostgreSQL : permet de stocker des données vectorielles avec d’autres données relationnelles. L’extension pgvector permet de stocker et d’interroger des vecteurs.
3 commentaires
Comme les modèles de langage, on a augmenté la taille des vecteurs afin d’améliorer la capacité à saisir le contexte et le sens. Mais plus la taille des vecteurs augmente, plus il est généralement admis qu’en raison de la malédiction de la dimension, la distance euclidienne n’est pas adaptée comme mesure de similarité. C’est pourquoi, pour la relation entre vecteurs (la similarité), on utilise le plus souvent la similarité cosinus.
C’est un avis qui me rappelle un article récent que j’ai lu. Parfois, selon le modèle, même la similarité cosinus peut ne pas avoir de sens. "Is Cosine-Similarity of Embeddings Really About Similarity?" (2024)
Que sont les embeddings et pourquoi sont-ils importants ?
Guide détaillé des embeddings dans le domaine du machine learning
Un bon point de départ pour les développeurs d'apps curieux de l'IA : les embeddings