Article
· Oct 19 4m de lecture

Ma propre approche des vecteurs

Motivé par les commentaires personnels de @EDILSON CARVALHO  et par 
une excellente présentation de @Michael Braam  concernant la recherche vectorielle,
j'aimerais partager mon approche personnelle des vecteurs.

Lorsque j'ai commencé et que j'ai rencontré des vecteurs à 256, 384 et plus de 1200 dimensions,
je me suis senti perdu.
Cependant, mon exemple
Vector-inside-IRIS - une simplification de ris-vector-search  - a bien fonctionné.
 

Afin de comprendre les mécanismes sous-jacents, j'ai décidé de commencer par de petites étapes.
Nos trois dimensions habituelles décrivent très bien notre monde physique.
Même la demi-quatrième dimension (sans négatif) ajoutée par Einstein n'est pas difficile à comprendre.
La théorie des cordes cosmologiques avec 0 à 11+ dimensions était pour moi une véritable frontière.


Revenons à nos moutons : => 2 dimensions sont suffisantes pour un débutant.
Les coordonnées géographiques fournissent un bon point de départ avec suffisamment de données de test.
La fonction VECTOR_COSINE() était ma cible principale dans mon exemple de 
geo-vector-search

La plage de résultats allant de -1 à +1 est facile à interpréter dans une carte projetée quasi plate.
C'est de la mathématique de base et sa transposition à une dimension supplémentaire n'est pas un miracle.

Mais qu'en est-il d'une centaine de dimensions ?

;#1
-.0104943, .01472898, .07107521, .07168121, -.0937807, .05828459, .04451195, -.1045385, -.0110124, -.0240547, -.0032111, -.0030188, -.0414225, -.1092015, .02203945, -.0129255, .14087346, .04734043, -.0181046, -.0458297, .02323769, .02859951, .01124321, .00857456, -.0049756, -.0144282, -.0846236, -.0284645, -.0147692, -.0989931, .04880870, .01899284, -.0176833, .04763242, -.0808972, -.0604988, .05757499, -.0638228, .04217084, .03707900, .03757081, .03086806, .02773610, .02082979, -.0495735, -.0337784, -.0438372, -.0827000, -.0018084, -.0072785, -.0797550, -.0055747, -.0551242, -.0918905, .01140710, -.0115834, -.0088469, -.0445509, .02972822, .04385065, .04125113, .01189815, .01809763
;#2
-.0340279, -.0930349, -.0356242, .03200291, .07393958, -.0164658, -.0218968, .01392244, -.0069597, .02677908, -.0800164, .07227557, -.0430033, -.1134698, -.0561500, -.0520939, -.0306403, .00750979, -.0345837, .03335380, -.0438071, -.0088005, .03423582, .00794844, .01172804, .05204785, .04179215, .01768089, -.0489745, -.0031708, -.0349655, -.0482467, .08090461, -.0596610, -.0565769, -.0043313, .01015284, .07152537, .04189436, -.0475862, -.0171517, .03899634, -.0705699, -.1133416, .08019342, .02138555, .01466019, .00184080, -.0905641, -.1039420, -.0290395, .02753796, .01674868, -.0259464, -.0107869, -.0407411, -.0120343, -.0636389, .00047146, .01514394, -.0694578, -.0204190, -.0024446
;#3
.00350692, .09432639, .01641871, .09951058, .10459023, .00019239, -.0823584, -.0022799, -.0227801, -.0023362, -.0397562, .07449327, -.1137044, .09173037, .08620572, -.0881805, -.0111093, -.0316556, -.0044012, -.1248759, -.0897788, .03191807, -.0147239, -.0198379, -.0849955, -.0026861, .02628867, -.0523788, -.0398543, -.0080245, .06736382, .01456158, .04700677, -.0171667, -.0217174, .06761254, -.0070750, .02879706, .01109632, .02541129, -.0384420, .00410159, .05145533, .06493697, -.0924961, -.0422163, -.0739539, .06107471, .06070494, -.0044191, .00238501, -.0182966, .03546700, .05925614, -.0361021, .09686610, .02930910, .01282224, .02953721, -.0526526, .03977891, .00501585, .00717564

L'exemple ci-dessus a été raccourci pour plus de lisibilité

Après y avoir réfléchi pendant un certain temps, j'ai trouvé une image personnelle :

  • Lorsque je cherche un objectif dans Google Maps qui n'est pas juste au coin de la rue, j'obtiens un choix d'itinéraires proposés.
  • le plus court, le plus rapide, celui qui consomme le moins de carburant, les transports publics, ...
  • et je fais un choix en fonction de mes besoins
  • en interprétant les dimensions de mes vecteurs comme des étapes intermédiaires numérotées vers ma cible, j'obtiendrais une image similaire.
  • Et en utilisant VECTOR_COSINE, j'obtiens la meilleure proposition.

Les spécialistes du LLM peuvent rire de ma simplification.
Mais pour moi, c'est une image qui va au-delà des mathématiques abstraites
et des théories linguistiques confuses. Et je crois que cette image simple,
basée sur un processus utilisé quotidiennement dans la conduite automobile,
aide à comprendre comment les résultats sont trouvés.

REMARQUE :
je n'ai encore aucune idée de la manière dont ces vecteurs sont calculés du moment qu'ils sont
cohérents. Il était important pour moi de comprendre comment fonctionne l'appariement. 

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer