Une plongée profonde dans les incorporations d’images et la recherche vectorielle avec BigQuery sur Google Cloud







Image de l’éditeur | Chatte
# Introduction
Nous avons tous été là: faire défiler sans cesse dans les magasins en ligne, essayant de trouver cela parfait article. Dans le monde du commerce électronique rapide d’aujourd’hui, nous nous attendons à des résultats instantanés, et c’est exactement là que l’IA intervient pour faire bouger les choses.
Au cœur de cette révolution se trouve l’image. C’est un terme sophistiqué pour une idée simple: vous laisser rechercher des produits non seulement par des mots clés, mais par leur similitude visuelle. Imaginez trouver cette robe exacte que vous avez vue sur les réseaux sociaux simplement en téléchargeant une photo! Cette technologie rend les achats en ligne plus intelligents, plus intuitifs et, finalement, aident les entreprises à faire plus de ventes.
Prêt à voir comment cela fonctionne? Nous vous montrerons comment exploiter la puissance des capacités d’apprentissage automatique de BigQuery pour construire votre propre recherche de robe dirigée par l’IA en utilisant ces incroyables incorporations d’images.
# La magie des intégres d’image
Essentiellement, l’intégration d’images est le processus de conversion des images en représentations numériques (vecteurs) dans un espace de grande dimension. Les images qui sont sémantiquement similaires (par exemple une robe de bal bleue et une robe bleu marine) auront des vecteurs qui sont « plus proches » les uns des autres dans cet espace. Cela permet des comparaisons et des recherches puissantes qui vont au-delà des métadonnées simples.
Voici quelques images robes que nous utiliserons dans cette démo pour générer des intérêts.
La démo illustrera le processus de création d’un modèle d’incorporation d’image sur Google Cloud.
La première étape consiste à créer un modèle: Un modèle nommé image_embeddings_model
est créé qui tire parti du multimodalembedding@001
point final dans image_embedding
ensemble de données.
CREATE OR REPLACE MODEL
`image_embedding.image_embeddings_model`
REMOTE WITH CONNECTION `(PROJECT_ID).us.llm-connection`
OPTIONS (
ENDPOINT = 'multimodalembedding@001'
);
Création d’une table d’objets: Pour traiter les images dans BigQuery, nous créerons une table externe appelée external_images_table
dans le image_embedding
Ensemble de données qui fera référence à toutes les images stockées dans un godet de stockage Google Cloud.
CREATE OR REPLACE EXTERNAL TABLE
`image_embedding.external_images_table`
WITH CONNECTION `(PROJECT_ID).us.llm-connection`
OPTIONS(
object_metadata="SIMPLE",
uris = ('gs://(BUCKET_NAME)/*'),
max_staleness = INTERVAL 1 DAY,
metadata_cache_mode="AUTOMATIC"
);
Générer des intérêts: Une fois le modèle et la table d’objets en place, nous générerons les intégres pour les images de la robe en utilisant le modèle que nous avons créé ci-dessus et les stockerons dans le tableau dress_embeddings
.
CREATE OR REPLACE TABLE `image_embedding.dress_embeddings` AS SELECT *
FROM ML.GENERATE_EMBEDDING(
MODEL `image_embedding.image_embeddings_model`,
TABLE `image_embedding.external_images_table`,
STRUCT(TRUE AS flatten_json_output,
512 AS output_dimensionality)
);
# Libérer la puissance de la recherche vectorielle
Avec des incorporations d’images générées, nous utiliserons la recherche vectorielle pour trouver la robe que nous recherchons. Contrairement à la recherche traditionnelle qui repose sur des correspondances de mots clés exactes, Vector Search trouve des éléments en fonction de la similitude de leurs intérêts. Cela signifie que vous pouvez rechercher des images à l’aide de descriptions de texte ou même d’autres images.
// Recherche de robe via le texte
Effectuer une recherche de texte: Ici, nous utiliserons le VECTOR_SEARCH
Fonctionne dans BigQuery pour rechercher une « robe bleue » parmi toutes les robes. Le texte « Blue Dress » sera converti en vecteur, puis avec l’aide de la recherche vectorielle, nous récupérerons des vecteurs similaires.
CREATE OR REPLACE TABLE `image_embedding.image_search_via_text` AS
SELECT base.uri AS image_link, distance
FROM
VECTOR_SEARCH(
TABLE `image_embedding.dress_embeddings`,
'ml_generate_embedding_result',
(
SELECT ml_generate_embedding_result AS embedding_col
FROM ML.GENERATE_EMBEDDING
(
MODEL`image_embedding.image_embeddings_model` ,
(
SELECT "Blue dress" AS content
),
STRUCT
(
TRUE AS flatten_json_output,
512 AS output_dimensionality
)
)
),
top_k => 5
)
ORDER BY distance ASC;
SELECT * FROM `image_embedding.image_search_via_text`;
Résultats: Les résultats de la requête fourniront un image_link
et une distance pour chaque résultat. Vous pouvez voir que les résultats que vous obtiendrez vous offriront le match le plus proche en ce qui concerne la requête de recherche et les robes disponibles.
// Recherche de robe via l’image
Maintenant, nous allons examiner comment nous pouvons utiliser une image pour trouver des images similaires. Essayons de trouver une robe qui ressemble à l’image ci-dessous:


Table externe pour l’image de test: Nous devrons stocker l’image de test dans le godet de stockage Google Cloud et créer une table externe external_images_test_table
pour stocker l’image de test utilisée pour la recherche.
CREATE OR REPLACE EXTERNAL TABLE
`image_embedding.external_images_test_table`
WITH CONNECTION `(PROJECT_ID).us.llm-connection`
OPTIONS(
object_metadata="SIMPLE",
uris = ('gs://(BUCKET_NAME)/test-image-for-dress/*'),
max_staleness = INTERVAL 1 DAY,
metadata_cache_mode="AUTOMATIC"
);
Générer des intégres pour l’image de test: Maintenant, nous générerons l’incorporation de cette image de test unique en utilisant ML.GENERATE_EMBEDDING
fonction.
CREATE OR REPLACE TABLE `image_embedding.test_dress_embeddings` AS
SELECT *
FROM ML.GENERATE_EMBEDDING
(
MODEL `image_embedding.image_embeddings_model`,
TABLE `image_embedding.external_images_test_table`, STRUCT(TRUE AS flatten_json_output,
512 AS output_dimensionality
)
);
Recherche de vecteur avec intégration d’image: Enfin, l’intégration de l’image de test sera utilisée pour effectuer une recherche de vecteur contre le image_embedding.dress_embeddings
tableau. Le ml_generate_embedding_result
depuis image_embedding.test_dress_embeddings
sera utilisé comme l’intégration de la requête.
SELECT base.uri AS image_link, distance
FROM
VECTOR_SEARCH(
TABLE `image_embedding.dress_embeddings`,
'ml_generate_embedding_result',
(
SELECT * FROM `image_embedding.test_dress_embeddings`
),
top_k => 5,
distance_type => 'COSINE',
options => '{"use_brute_force":true}'
);
Résultats: Les résultats de la requête pour la recherche d’image ont montré les robes les plus visuellement similaires. Le résultat supérieur était white-dress
avec une distance de 0,2243, suivie de sky-blue-dress
avec une distance de 0,3645, et polka-dot-dress
avec une distance de 0,3828.
Ces résultats démontrent clairement la capacité de trouver des éléments visuellement similaires en fonction d’une image d’entrée.
// L’impact
Cette démonstration illustre efficacement comment les incorporations d’images et la recherche de vecteurs sur Google Cloud peuvent révolutionner la façon dont nous interagissons avec les données visuelles. À partir des plates-formes de commerce électronique permettant des fonctionnalités «Shop similaires» aux systèmes de gestion de contenu offrant une découverte intelligente des actifs visuels, les applications sont vastes. En transformant les images en vecteurs consultables, ces technologies débloquent une nouvelle dimension de la recherche, ce qui la rend plus intuitive, puissante et visuellement intelligente.
Ces résultats peuvent être présentés à l’utilisateur, leur permettant de trouver rapidement la robe souhaitée.
# Avantages de la recherche de robes AI
- Expérience utilisateur améliorée: la recherche visuelle offre un moyen plus intuitif et efficace pour les utilisateurs de trouver ce qu’ils recherchent
- Précision améliorée: les incorporations d’images permettent une recherche basée sur la similitude visuelle, offrant des résultats plus pertinents que la recherche traditionnelle basée sur les mots clés
- Ventes accrues: en facilitant la recherche des produits qu’ils souhaitent, la recherche de robes AI peut augmenter les conversions et générer des revenus
# Au-delà de la recherche de robes
En combinant la puissance des intégres d’image avec les capacités robustes de traitement des données de BigQuery, vous pouvez créer des solutions innovantes axées sur l’IA qui transforment notre façon d’interagir avec le contenu visuel. Du commerce électronique à la modération du contenu, la puissance des incorporations d’images et de BigQuery s’étend au-delà de la recherche vestimentaire.
Voici quelques autres applications potentielles:
- Commerce électronique: recommandations de produits, recherche visuelle d’autres catégories de produits
- Design de la mode: analyse des tendances, inspiration du design
- Modération du contenu: identifier un contenu inapproprié
- Détection de violation du droit d’auteur: trouver des images visuellement similaires pour protéger la propriété intellectuelle
En savoir plus sur les intégres sur BigQuery ici et recherche vectorielle ici.
Nivedita Kumari est une analyse de données chevronnée et un professionnel de l’IA avec plus de 10 ans d’expérience. Dans son rôle actuel, en tant qu’ingénieur client d’analyse de données chez Google, elle s’engage constamment avec les dirigeants de niveau C et les aide à architer les solutions de données et les guide sur les meilleures pratiques pour créer des données et des solutions d’apprentissage automatique sur Google Cloud. Nivedita a fait sa maîtrise en gestion de la technologie en mettant l’accent sur l’analyse des données de l’Université de l’Illinois à Urbana-Champaign. Elle veut démocratiser l’apprentissage automatique et l’IA, décomposant les obstacles techniques afin que tout le monde puisse faire partie de cette technologie transformatrice. Elle partage ses connaissances et son expérience avec la communauté des développeurs en créant des tutoriels, des guides, des pièces d’opinion et des démonstrations de codage. Connectez-vous avec Nivedita sur LinkedIn.
Source link