🚀 Experimente o Zilliz Cloud, o Milvus totalmente gerenciado, gratuitamente—experimente um desempenho 10x mais rápido! Experimente Agora>>

milvus-logo
LFAI
  • Home
  • Blog
  • Criar uma experiência de compras de pesquisa por imagem com VOVA e Milvus

Criar uma experiência de compras de pesquisa por imagem com VOVA e Milvus

  • Scenarios
May 13, 2021
milvus

Saltar para:

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):

  1. Utilizar o modelo YOLO para detetar alvos a partir de fotografias carregadas;
  2. Utilizar o ResNet para extrair vectores de caraterísticas dos alvos detectados;
  3. Utilizar o Milvus para a pesquisa de semelhanças entre vectores.

Vova-1.png 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.

![vova-2.png](https://assets.zilliz.com/vova_2_1ccf38f721.png "Arquitetura da rede YOLO.)


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 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 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 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 Started

    Like the article? Spread the word

    Continue Lendo