Recherche sémantique avec des vecteurs

[ad_1]

Si vous avez suivi les dernières nouvelles en matière de recherche, vous avez probablement entendu parler de la recherche vectorielle.

Et vous avez peut-être même commencé à creuser le sujet pour essayer d’en savoir plus, pour en ressortir confus. Tu n’as pas laissé ces maths à l’université ?

Construire une recherche vectorielle est difficile. Le comprendre n’a pas à l’être.

Et comprendre que la recherche vectorielle n’est pas l’avenir, la recherche hybride l’est – c’est tout aussi important.

Que sont les vecteurs ?

Lorsque nous parlons de vecteurs dans le contexte de l’apprentissage automatique, nous voulons dire ceci : les vecteurs sont des groupes de nombres qui représentent quelque chose.

Cette chose pourrait être une image, un mot ou presque n’importe quoi.

Les questions, bien sûr, sont de savoir pourquoi ces vecteurs sont utiles et comment ils sont créés.

Regardons d’abord d’où viennent ces vecteurs. La réponse courte : l’apprentissage automatique.

Jay Alammar a peut-être le meilleur article de blog jamais écrit sur quels sont les vecteurs.

En résumé, cependant, les modèles d’apprentissage automatique entrent des éléments (supposons que des mots à partir de maintenant) et essaient de trouver les meilleures formules pour prédire autre chose.

Par exemple, vous pouvez avoir un modèle qui prend le mot « abeille » et il essaie de trouver les meilleures formules qui prédiront avec précision que « abeille » est vue dans des contextes similaires à « insectes » et « guêpes ».

Une fois que ce modèle a cette meilleure formule, il peut transformer le mot «abeille» en un groupe de nombres qui se trouvent être similaires au groupe de nombres pour «insectes» et «guêpes».

Pourquoi les vecteurs sont puissants

Les vecteurs sont vraiment puissants pour cette raison : Les grands modèles de langage comme Generative Pre-trained Transformer 3 (GPT-3) ou ceux de Google prennent en compte des milliards de mots et de phrases, afin qu’ils puissent commencer à établir ces connexions et devenir vraiment intelligents.

Il est facile de comprendre pourquoi les gens sont si enthousiastes à l’idée d’appliquer cette intelligence à la recherche.

Certains disent même que la recherche par vecteur remplacera la recherche par mot-clé nous connaissons et aimons depuis des décennies.

Le fait est, cependant, que la recherche vectorielle ne remplace pas la recherche par mot-clé sur tout le tissu. Penser que la recherche par mot-clé ne conservera pas une valeur immense place trop d’optimisme dans le nouveau et le brillant.

La recherche de vecteurs et les recherches par mots-clés ont chacune leurs propres forces, et elles fonctionnent mieux lorsqu’elles fonctionnent ensemble.

Recherche vectorielle pour les requêtes à longue traîne

Si vous travaillez dans la recherche, vous êtes probablement intimement familiarisé avec la longue traîne des requêtes.

Ce concept, popularisé par Chris Anderson pour décrire le contenu numériqueindique que certains éléments (pour les requêtes de recherche) sont beaucoup plus populaires que tout le reste, mais qu’il existe de nombreux éléments individuels qui sont toujours recherchés par quelqu’un.

C’est donc avec la recherche.

Quelques requêtes (également appelées requêtes « principales ») sont chacune beaucoup recherchées, mais la grande majorité des requêtes sont très peu recherchées – peut-être même une seule fois.

Les chiffres diffèrent d’un site à l’autre, mais sur un site moyen, environ un tiers du total des recherches peut provenir de quelques dizaines de requêtes seulement, tandis que près de la moitié du volume de recherche provient de requêtes qui ne figurent pas parmi les 1 000 les plus populaires.

Les requêtes à longue traîne ont tendance à être plus longues et peuvent même être des requêtes en langage naturel.

Les recherches de mon entreprise Algolia ont montré que 75% des requêtes sont composées de deux mots ou moins. 90% des requêtes sont de quatre mots ou moins. Ensuite, pour arriver à 99% des requêtes, il vous faut 13 mots !

Cependant, ils ne sont pas toujours longs, ils peuvent simplement être obscurs. Pour un site Web de mode féminine, « robe mauve » pourrait être une requête de longue traîne, car les gens ne demandent pas cette couleur très souvent. « Wristlet » peut également être une requête rarement vue, même si le site Web propose des bracelets à vendre.

La recherche vectorielle fonctionne généralement très bien pour les requêtes à longue traîne. Il peut comprendre que les bracelets sont similaires aux bracelets et faire surface sur les bracelets même sans définition de synonymes. Il peut montrer des robes roses ou violettes lorsque quelqu’un recherche quelque chose en mauve.

La recherche vectorielle peut même bien fonctionner pour ces requêtes longues ou en langage naturel. « Quelque chose pour garder mes boissons au frais » fera apparaître des réfrigérateurs dans une recherche vectorielle bien réglée, alors qu’avec une recherche par mot-clé, vous feriez mieux d’espérer que le texte se trouve quelque part dans une description de produit.

En d’autres termes, la recherche vectorielle augmente le rappel des résultats de la recherche ou le nombre de résultats trouvés.

Comment fonctionne la recherche vectorielle

La recherche vectorielle le fait en prenant les groupes de nombres que nous avons décrits ci-dessus et en demandant au moteur de recherche vectoriel de demander : « Si je devais représenter graphiquement ces groupes de nombres sous forme de lignes, lesquelles seraient les plus proches les unes des autres ? »

Une façon simple de conceptualiser cela est de penser à des groupes qui n’ont que deux nombres. Le groupe [1,2] va se rapprocher du groupe [2,2] qu’il ne le serait pour le groupe [2,500].

(Bien sûr, puisque les vecteurs contiennent des dizaines de nombres, ils sont « représentés » dans des dizaines de dimensions, ce qui n’est pas si facile à visualiser.)

Cette approche pour déterminer la similarité est puissante parce que les vecteurs représentant des mots comme « docteur » et « médecine » vont être « graphiés » beaucoup plus similaires que ne le seraient les mots « docteur » et « rock ».

Inconvénients de la recherche vectorielle

Cependant, la recherche vectorielle présente des inconvénients.

Le premier est le coût. Tout cet apprentissage automatique dont nous avons parlé plus haut ? Cela a des coûts.

Le stockage des vecteurs est plus coûteux que le stockage d’un index de recherche basé sur des mots clés, d’une part. La recherche sur ces vecteurs est également plus lente qu’une recherche par mot-clé dans la plupart des cas.

Maintenant, le hachage peut atténuer ces deux problèmes.

Oui, nous introduisons des concepts plus techniques, mais c’en est un autre qui est assez simple pour comprendre les bases.

Le hachage exécute une série d’étapes pour transformer une information (comme une chaîne ou un nombre) en un nombre, qui occupe moins de mémoire que l’information d’origine.

Il s’avère que nous pouvons également utiliser hachage pour réduire la taille des vecteurs tout en conservant ce qui rend les vecteurs utiles : leur capacité à faire correspondre des éléments conceptuellement similaires.

En utilisant le hachage, nous pouvons accélérer les recherches de vecteurs et faire en sorte que les vecteurs utilisent moins d’espace dans l’ensemble.

Les détails sont très techniques, mais ce qui est important, c’est de comprendre que c’est possible.

L’utilité continue de la recherche par mot-clé

Cela ne signifie pas que la recherche par mot-clé n’est plus utile ! La recherche par mot-clé est généralement plus rapide que la recherche vectorielle.

De plus, il est plus facile de comprendre pourquoi les résultats sont classés comme ils le sont.

Prenons l’exemple de la requête « texas » et « tejano » et « état » comme correspondances de mots potentielles. De toute évidence, « tejano » est plus proche si nous examinons la comparaison du point de vue de la recherche de mots clés purs. Il n’est pas si facile de dire, cependant, ce qui serait plus proche d’une approche de recherche vectorielle.

La recherche basée sur des mots-clés comprend « texas » comme étant plus similaire à « tejano » car elle utilise une approche textuelle pour trouver des enregistrements.

Si les enregistrements contiennent des mots qui sont exactement les mêmes que ceux de la requête (ou avec un certain niveau de différence pour tenir compte des fautes de frappe), l’enregistrement est considéré comme pertinent et revient dans les ensembles de résultats.

En d’autres termes, la recherche par mot-clé se concentre sur la précision des résultats de la recherche ou sur la garantie que les enregistrements qui reviennent sont pertinents, même s’ils sont moins nombreux.

La recherche par mot-clé est bénéfique pour les requêtes principales

Pour cette raison, la recherche par mot-clé fonctionne très bien pour les requêtes principales : les requêtes les plus populaires.

Les requêtes principales ont tendance à être plus courtes et sont également plus faciles à optimiser. Cela signifie que si, pour quelque raison que ce soit, un mot clé ne correspond pas au bon texte dans un enregistrement, il est souvent détecté par l’analyse, et tu peux ajouter un synonyme.

Étant donné que la recherche par mot-clé fonctionne mieux pour les requêtes principales et que la recherche vectorielle fonctionne mieux pour les requêtes à longue traîne, les deux fonctionnent mieux de concert.

C’est ce qu’on appelle la recherche hybride.

La recherche hybride se produit lorsqu’un moteur de recherche utilise à la fois la recherche par mot-clé et par vecteur pour une seule requête et classe correctement les enregistrements, quelle que soit l’approche de recherche qui les a amenés.

Classement des enregistrements dans les sources de recherche

Classer des enregistrements provenant de deux sources différentes n’est pas facile.

Les deux approches ont, de par leur nature même, des manières différentes de marquer des records.

La recherche vectorielle renverra un score, contrairement à certains moteurs basés sur des mots clés. Même si les moteurs basés sur des mots-clés renvoient un score, il n’y a aucune garantie que les deux scores soient équivalents.

Si les scores ne sont pas équivalents, alors vous ne pouvez pas dire qu’un score de 0,8 du moteur de mots clés est plus pertinent qu’un score de 0,79 du moteur vectoriel.

Une autre alternative consisterait à exécuter tous les résultats via la notation du moteur vectoriel ou du moteur de mots clés.

Cela a l’avantage d’obtenir le rappel supplémentaire du moteur vectoriel, mais présente également certains inconvénients. Ces résultats supplémentaires rappelés provenant du moteur vectoriel ne seront pas considérés comme pertinents à partir d’un score de mot clé, sinon ils seraient déjà apparus dans l’ensemble de résultats.

Vous pouvez également exécuter tous les résultats – mot-clé ou autre – via la notation vectorielle, mais cela est lent et coûteux.

Recherche de vecteur comme solution de repli

C’est pourquoi certains moteurs de recherche n’essaient même pas de mélanger les deux, mais affichent toujours les résultats des mots clés en premier, puis les résultats vectoriels en second.

L’idée ici est que si une recherche renvoie zéro ou peu de résultats, vous pouvez alors revenir aux résultats vectoriels.

N’oubliez pas que la recherche vectorielle vise à améliorer le rappel ou à trouver plus de résultats, et qu’elle peut donc trouver des résultats pertinents que la recherche par mot clé n’a pas trouvés.

C’est un palliatif décent, mais ce n’est pas l’avenir de la véritable recherche hybride.

Une véritable recherche hybride classera plusieurs sources de recherche différentes dans le même ensemble de résultats en créant un score comparable entre différentes sources.

Il y a beaucoup de recherches sur cette approche aujourd’hui, mais peu le font bien et fournissent leur moteur publiquement.

Alors qu’est-ce que cela signifie pour vous?

À l’heure actuelle, la meilleure chose que vous puissiez faire est probablement de rester assis et de vous tenir au courant de ce qui se passe dans l’industrie.

La recherche hybride basée sur des vecteurs et des mots-clés arrive dans les années à venir, et elle sera disponible pour les personnes sans équipes de science des données.

En attendant, la recherche par mot-clé est toujours utile et ne sera améliorée que lorsque la recherche vectorielle sera introduite plus tard.

Davantage de ressources:


Image en vedette : pluie_r/Shutterstock



[ad_2]

Source link -16