Criando uma experiência de compras com busca por imagem usando VOVA e Milvus
Ir para:
- Como funciona a busca por imagem?
- Detecção de alvos usando o modelo YOLO
- Extração de vetores de características de imagem com ResNet
- Busca por similaridade vetorial com tecnologia Milvus
- Ferramenta de compra por imagem da VOVA
As compras online dispararam em 2020, com alta de 44%, em grande parte devido à pandemia de coronavírus. À medida que as pessoas buscavam manter o distanciamento social e evitar contato com estranhos, a entrega sem contato tornou-se uma opção incrivelmente desejável para muitos consumidores. Essa popularidade também levou as pessoas a comprar uma variedade maior de produtos online, incluindo itens de nicho que podem ser difíceis de descrever usando uma busca tradicional por palavras-chave.
Para ajudar os usuários a superar as limitações das consultas baseadas em palavras-chave, as empresas podem criar mecanismos de busca por imagem que permitem aos usuários usar imagens em vez de palavras para pesquisar. Isso não apenas permite que os usuários encontrem itens difíceis de descrever, como também os ajuda a comprar coisas que encontram na vida real. Essa funcionalidade ajuda a criar uma experiência de usuário única e oferece a conveniência geral que os clientes valorizam.
A VOVA é uma plataforma de e-commerce emergente que se concentra em acessibilidade e em oferecer uma experiência de compra positiva aos seus usuários, com listagens que abrangem milhões de produtos e suporte a 20 idiomas e 35 moedas principais. Para melhorar a experiência de compra de seus usuários, a empresa usou Milvus para incorporar funcionalidade de busca por imagem à sua plataforma de e-commerce. O artigo explora como a VOVA criou com sucesso um mecanismo de busca por imagem com Milvus.
Como funciona a busca por imagem?
O sistema de compra por imagem da VOVA pesquisa no inventário da empresa imagens de produtos semelhantes aos uploads dos usuários. O gráfico a seguir mostra as duas etapas do processo do sistema, a etapa de importação de dados (azul) e a etapa de consulta (laranja):
- Use o modelo YOLO para detectar alvos a partir de fotos enviadas;
- Use ResNet para extrair vetores de características dos alvos detectados;
- Use Milvus para busca por similaridade vetorial.
Processo do sistema da funcionalidade de busca por imagem da VOVA.
Detecção de alvos usando o modelo YOLO
Os aplicativos móveis da VOVA no Android e iOS atualmente oferecem suporte à busca por imagem. A empresa usa um sistema de detecção de objetos em tempo real de última geração chamado YOLO (You only look once) para detectar objetos em imagens enviadas pelos usuários. O modelo YOLO está atualmente em sua quinta iteração.
YOLO é um modelo de estágio único, que usa apenas uma rede neural convolucional (CNN) para prever categorias e posições de diferentes alvos. Ele é pequeno, compacto e bem adequado para uso móvel.
YOLO usa camadas convolucionais para extrair características e camadas totalmente conectadas para obter valores previstos. Inspirando-se no modelo GooLeNet, a CNN do YOLO inclui 24 camadas convolucionais e duas camadas totalmente conectadas.
Como mostra a ilustração a seguir, uma imagem de entrada de 448 × 448 é convertida por várias camadas convolucionais e camadas de pooling em um tensor de 7 × 7 × 1024 dimensões (representado no terceiro cubo a partir do final abaixo) e, em seguida, convertida por duas camadas totalmente conectadas em uma saída de tensor de 7 × 7 × 30 dimensões.
A saída prevista do YOLO P é um tensor bidimensional, cuja forma é [batch,7 ×7 ×30]. Usando fatiamento, P[:,0:7×7×20] é a probabilidade da categoria, P[:,7×7×20:7×7×(20+2)] é a confiança, e P[:,7×7×(20+2)]:] é o resultado previsto da caixa delimitadora.
Arquitetura de rede YOLO.
Extração de vetores de características de imagem com ResNet
A VOVA adotou o modelo de rede neural residual (ResNet) para extrair vetores de características de uma extensa biblioteca de imagens de produtos e fotos enviadas por usuários. A ResNet é limitada porque, à medida que a profundidade de uma rede de aprendizado aumenta, a precisão da rede diminui. A imagem abaixo mostra a ResNet executando o modelo VGG19 (uma variante do modelo VGG) modificado para incluir uma unidade residual por meio do mecanismo de curto-circuito. A VGG foi proposta em 2014 e inclui apenas 14 camadas, enquanto a ResNet foi lançada um ano depois e pode ter até 152.
A estrutura da ResNet é fácil de modificar e escalar. Ao alterar o número de canais no bloco e o número de blocos empilhados, a largura e a profundidade da rede podem ser facilmente ajustadas para obter redes com diferentes capacidades expressivas. Isso resolve efetivamente o efeito de degeneração da rede, no qual a precisão diminui à medida que a profundidade do aprendizado aumenta. Com dados de treinamento suficientes, um modelo com desempenho expressivo aprimorado pode ser obtido enquanto a rede é gradualmente aprofundada. Por meio do treinamento do modelo, características são extraídas de cada imagem e convertidas em vetores de ponto flutuante de 256 dimensões.
Estrutura da ResNet.
Pesquisa de similaridade vetorial impulsionada pelo Milvus
O banco de dados de imagens de produtos da VOVA inclui 30 milhões de imagens e está crescendo rapidamente. Para recuperar rapidamente as imagens de produtos mais semelhantes desse enorme conjunto de dados, o Milvus é usado para realizar pesquisa de similaridade vetorial. Graças a uma série de otimizações, o Milvus oferece uma abordagem rápida e simplificada para gerenciar dados vetoriais e criar aplicações de aprendizado de máquina. O Milvus oferece integração com bibliotecas de indexação populares (por exemplo, Faiss, Annoy), oferece suporte a vários tipos de índice e métricas de distância, tem SDKs em vários idiomas e fornece APIs completas para gerenciar dados vetoriais.
O Milvus pode realizar pesquisa de similaridade em conjuntos de dados com trilhões de vetores em milissegundos, com um tempo de consulta inferior a 1,5 segundo quando nq=1 e um tempo médio de consulta em lote inferior a 0,08 segundo. Para criar seu mecanismo de busca de imagens, a VOVA tomou como referência o design do Mishards, a solução de middleware de sharding do Milvus (veja o gráfico abaixo para seu design de sistema), para implementar um cluster de servidores de alta disponibilidade. Ao aproveitar a escalabilidade horizontal de um cluster Milvus, o requisito do projeto de alto desempenho de consulta em conjuntos de dados massivos foi atendido.
Arquitetura do Mishards no Milvus.
Ferramenta de compra por imagem da VOVA
As capturas de tela abaixo mostram a ferramenta de compras por busca por imagem da VOVA no aplicativo Android da empresa.
Capturas de tela da ferramenta de compras por busca por imagem da VOVA.
À medida que mais usuários buscam produtos e enviam fotos, a VOVA continuará a otimizar os modelos que impulsionam o sistema. Além disso, a empresa incorporará novas funcionalidades do Milvus que podem aprimorar ainda mais a experiência de compras online de seus usuários.
Referência
YOLO:
https://arxiv.org/pdf/1506.02640.pdf
https://arxiv.org/pdf/1612.08242.pdf
ResNet:
https://arxiv.org/abs/1512.03385
Milvus:
https://milvus.io/docs/overview.md
Continue lendo

The AWS Outage Was a Wake-Up Call for Vector Database Cross-Region Disaster Recovery
Zilliz Cloud Had the Answer Before the Crisis. Zilliz Cloud is the world's first vector database with native cross-region disaster recovery.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.

Why Deepseek is Waking up AI Giants Like OpenAI And Why You Should Care
Discover how DeepSeek R1's open-source AI model with superior reasoning capabilities and lower costs is disrupting the AI landscape and challenging tech giants like OpenAI.



