Criar uma experiência de compras de pesquisa por imagem com VOVA e Milvus
Saltar para:
- Construir uma experiência de compra por imagem com VOVA e Milvus
- Como funciona a pesquisa por imagem - Processo de sistema da funcionalidade de pesquisa por imagem da VOVA.
- Deteção de alvos usando o modelo YOLO- Arquitetura da rede YOLO.
- Extração de vectores de caraterísticas de imagem com a ResNet- Estrutura da ResNet.
- Pesquisa por semelhança de vectores com Milvus- Arquitetura de Mishards em Milvus.
- Ferramenta de compra por imagem da VOVA- Capturas de ecrã da ferramenta de compra por imagem da VOVA.
- Referência
As compras em linha aumentaram em 2020, com um crescimento de 44%, em grande parte devido à pandemia do coronavírus. À medida que as pessoas procuravam distanciar-se socialmente e evitar o contacto com estranhos, a entrega sem contacto tornou-se uma opção incrivelmente desejável para muitos consumidores. Esta popularidade levou também a que as pessoas comprassem uma maior variedade de produtos em linha, incluindo artigos de nicho que podem ser difíceis de descrever utilizando uma pesquisa tradicional por palavra-chave.
Para ajudar os utilizadores a ultrapassar as limitações das consultas baseadas em palavras-chave, as empresas podem criar motores de pesquisa de imagens que permitam aos utilizadores utilizar imagens em vez de palavras para a pesquisa. Isto não só permite aos utilizadores encontrar artigos difíceis de descrever, como também os ajuda a comprar coisas que encontram na vida real. Esta funcionalidade ajuda a criar uma experiência de utilizador única e oferece uma conveniência geral que os clientes apreciam.
A VOVA é uma plataforma de comércio eletrónico emergente que se centra na acessibilidade e na oferta de uma experiência de compra positiva aos seus utilizadores, com listagens que abrangem milhões de produtos e suporte para 20 línguas e 35 moedas principais. Para melhorar a experiência de compra dos seus utilizadores, a empresa utilizou a Milvus para integrar a funcionalidade de pesquisa de imagens na sua plataforma de comércio eletrónico. O artigo explora a forma como a VOVA construiu com sucesso um motor de pesquisa de imagens com Milvus.
Como é que a pesquisa de imagens funciona?
O sistema de loja por imagem da VOVA procura no inventário da empresa imagens de produtos semelhantes às carregadas pelos utilizadores. O gráfico seguinte mostra as duas fases do processo do sistema, a fase de importação de dados (azul) e a fase de consulta (laranja):
- Utilizar o modelo YOLO para detetar alvos a partir de fotografias carregadas;
- Utilizar o ResNet para extrair vectores de caraterísticas dos alvos detectados;
- Utilizar o Milvus para a pesquisa de semelhanças entre vectores.
Vova-1.png
Deteção de alvos usando o modelo YOLO
As aplicações móveis da VOVA para Android e iOS suportam atualmente a pesquisa de imagens. A empresa utiliza um sistema de deteção de objectos em tempo real de última geração chamado YOLO (You only look once) para detetar objectos em imagens carregadas pelos utilizadores. O modelo YOLO está atualmente na sua quinta iteração.
O YOLO é um modelo de uma fase, que utiliza apenas uma rede neural convolucional (CNN) para prever categorias e posições de diferentes alvos. É pequeno, compacto e adequado para utilização móvel.
O YOLO utiliza camadas convolucionais para extrair caraterísticas e camadas totalmente ligadas 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 seguinte, uma imagem de entrada de 448 × 448 é convertida por várias camadas convolucionais e camadas de agrupamento num tensor de 7 × 7 × 1024 dimensões (representado no penúltimo cubo abaixo) e, em seguida, convertida por duas camadas totalmente ligadas num tensor de saída de 7 × 7 × 30 dimensões.
A saída prevista do YOLO P é um tensor bidimensional, cuja forma é [batch,7 ×7 ×30]. Usando o 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.

Extração do vetor de caraterísticas da imagem com ResNet
A VOVA adoptou o modelo de rede neural residual (ResNet) para extrair vectores de caraterísticas de uma extensa biblioteca de imagens de produtos e de fotografias carregadas pelos utilizadores. A ResNet é limitada porque à medida que a profundidade de uma rede de aprendizagem aumenta, a precisão da rede diminui. A imagem abaixo mostra a ResNet a executar o modelo VGG19 (uma variante do modelo VGG) modificado para incluir uma unidade residual através do mecanismo de curto-circuito. O VGG foi proposto em 2014 e inclui apenas 14 camadas, enquanto a ResNet foi lançada um ano depois e pode ter até 152.
A estrutura 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. Isto resolve eficazmente o efeito de degeneração da rede, em que a precisão diminui à medida que a profundidade da aprendizagem aumenta. Com dados de treino suficientes, é possível obter um modelo com um melhor desempenho expressivo, aprofundando gradualmente a rede. Através do treino do modelo, são extraídas caraterísticas para cada imagem e convertidas em vectores de vírgula flutuante de 256 dimensões.
vova-3.png
Pesquisa de semelhança de vectores com tecnologia Milvus
A base de dados de imagens de produtos da VOVA inclui 30 milhões de imagens e está a crescer rapidamente. Para recuperar rapidamente as imagens de produtos mais semelhantes a partir deste enorme conjunto de dados, o Milvus é utilizado para efetuar a pesquisa de semelhanças vectoriais. Graças a uma série de optimizações, o Milvus oferece uma abordagem rápida e simplificada para gerir dados vectoriais e criar aplicações de aprendizagem automática. O Milvus oferece integração com bibliotecas de índices populares (por exemplo, Faiss, Annoy), suporta vários tipos de índices e métricas de distância, tem SDKs em vários idiomas e fornece APIs ricas para gerir dados vectoriais.
O Milvus pode efetuar pesquisas de similaridade em conjuntos de dados de triliões de vectores em milissegundos, com um tempo de consulta inferior a 1,5 segundos quando nq=1 e um tempo médio de consulta em lote inferior a 0,08 segundos. Para construir o seu motor de pesquisa de imagens, a VOVA referiu-se ao design do Mishards, a solução de middleware de fragmentação da Milvus (ver o gráfico abaixo para o design do sistema), para implementar um cluster de servidores altamente disponível. Ao tirar partido da escalabilidade horizontal de um cluster Milvus, o requisito do projeto para um elevado desempenho de consulta em conjuntos de dados maciços foi cumprido.
vova-4.png
Ferramenta de compra por imagem do VOVA
As capturas de ecrã abaixo mostram a ferramenta de pesquisa por imagem da VOVA na aplicação Android da empresa.
vova-5.png
À medida que mais utilizadores pesquisam produtos e carregam fotografias, a VOVA continuará a otimizar os modelos que alimentam o sistema. Além disso, a empresa irá incorporar novas funcionalidades Milvus que podem melhorar ainda mais a experiência de compra online dos seus utilizadores.
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
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word