Cosinus, produit scalaire et distance : choisissez la métrique attendue par votre modèle d'intégration
Comparez trois calculs de similarité sur de petits vecteurs et voyez quand la normalisation change le classement.
Dans ce guide
La réponse courte
Utilisez la métrique de similarité et le prétraitement recommandés pour le modèle d'intégration. Le cosinus compare la direction, le produit scalaire reflète aussi la magnitude du vecteur, et la distance euclidienne mesure la séparation. Pour des vecteurs unitaires, le cosinus et le produit scalaire coïncident et la distance euclidienne au carré est égale à 2 moins deux fois le cosinus. Cette équivalence nécessite une normalisation ; elle ne rend pas interchangeables les scores de services arbitraires. Vérifiez les vecteurs de document et de requête avant de modifier un index.
Commencez par le contrat d'intégration
Enregistrez l'identifiant du modèle, la révision, la dimension du vecteur et la mesure de similarité recommandée. Les intégrations de requête et de document doivent appartenir à des représentations compatibles ; des dimensions égales seules ne prouvent pas la compatibilité. Certains modèles de récupération utilisent des instructions de requête et de document différentes, donc la compatibilité ne signifie pas nécessairement un formatage d'entrée identique. Appliquez le prétraitement documenté de manière cohérente et conservez-le avec la configuration de l'index.
Distinguez direction et magnitude
Pour des vecteurs non nuls q et x, le cosinus est leur produit scalaire divisé par le produit de leurs longueurs. Une rescaling positive de l'un ou l'autre vecteur laisse le cosinus inchangé. Le produit scalaire n'a pas une telle invariance : allonger un vecteur peut augmenter son score même lorsque sa direction reste la même. Décidez si la longueur porte des informations utiles dans ce modèle particulier plutôt que de traiter la normalisation comme un nettoyage universellement inoffensif.
Calculez trois classements à la main
Considérons les vecteurs construits q=(1,0), a=(2,0) et b=(1,1). Leurs produits scalaires avec q sont 2 et 1, donc le produit scalaire classe a en premier. Les cosinus sont 1 et environ 0,707, classant aussi a en premier. Les distances euclidiennes brutes sont toutes deux 1, produisant une égalité. Cet exemple arithmétique démontre un comportement métrique différent ; ce n'est pas un résultat de récupération mesuré ni une preuve qu'une métrique est plus précise.
Comprenez l'équivalence des vecteurs unitaires
Après normalisation, a devient (1,0), b devient environ (0,707,0,707), et q reste (1,0). Leurs distances par rapport à q deviennent 0 et environ 0,765. Pour deux vecteurs unitaires, développer la distance au carré donne 1+1-2 fois leur produit scalaire. Ainsi minimiser la distance et maximiser le cosinus produisent le même classement en arithmétique exacte sous ces hypothèses. Les index approximatifs et la gestion des égalités peuvent encore produire des ensembles de candidats différents.
Rejetez les vecteurs invalides avant l'indexation
Un vecteur nul ne peut pas être normalisé à une longueur unitaire par division, et le cosinus est indéfini lorsque l'une des longueurs est nulle. Les valeurs non finies et les dimensions incohérentes doivent aussi être traitées comme des problèmes de données ou de pipeline. Définissez si ces enregistrements sont rejetés, mis en quarantaine ou relancés. Remplacer silencieusement chaque vecteur invalide par des zéros crée une nouvelle représentation sans établir que le modèle d'intégration ou le service de recherche le prend en charge.
Interprétez le score renvoyé par le service
Une API peut transformer une distance ou une similarité en son propre score de classement. Azure AI Search, par exemple, documente un score cosinus transformé plutôt que de renvoyer le cosinus brut comme son score de recherche. Par conséquent, un seuil copié d'un autre service ou d'un calcul manuel peut être erroné. Lisez la définition du score pour le mode de requête réel, y compris si la récupération hybride combine plusieurs classements.
Évaluez les changements sur des requêtes significatives
Avant de changer une métrique de production, comparez un petit ensemble de requêtes représentatives avec des jugements de pertinence explicites. Gardez les documents, le modèle et le prétraitement fixes lors de l'isolement d'un changement de métrique. Si vous utilisez un index approximatif, distinguez un problème de rappel de candidats d'un problème de scoring. Enregistrez les documents pertinents manquants et les résultats hautement classés inattendus au lieu d'interpréter un score visuellement plus grand comme une amélioration de la qualité.
Versionnez la normalisation avec l'index
Changer la normalisation change les vecteurs stockés et peut nécessiter une reconstruction d'index. Normaliser seulement les requêtes tout en laissant une représentation de document incompatible inchangée n'est pas une stratégie de migration générale. Enregistrez la révision du modèle, la métrique et les paramètres de normalisation ensemble afin qu'un déploiement ultérieur puisse reproduire la représentation. Vérifiez la fiche du modèle pour le modèle réellement sélectionné ; une recommandation pour un modèle d'intégration normalisé ne constitue pas une règle pour tous les modèles.
Points à vérifier
- Utilisez des représentations de requête et de document compatibles.
- Confirmez la recommandation de métrique spécifique au modèle.
- Rejetez les vecteurs nuls et non finis selon une politique documentée.
- Lisez la définition réelle du score du service.
- Considérez les petites valeurs vectorielles comme un arithmétique illustratif.
Champ d’application
L'équivalence s'applique aux vecteurs unitaires non nuls en arithmétique exacte. L'indexation approximative, la quantification, le classement hybride et les transformations de score de service peuvent affecter les résultats renvoyés. Ce guide n'établit pas la précision de la récupération pour un corpus particulier.