A pesquisa vetorial é uma poderosa técnica de recuperação de informação que utiliza representações matemáticas de dados denominadas vetores. Os vetores encontram itens semelhantes com base no significado semântico e não em correspondências exatas.
O campo da
Recuperação de informação é tão antigo como a história dos computadores, e a pesquisa vetorial é utilizada há mais de 20 anos. No entanto, ultimamente tem registado um grande aumento de utilização. Na era da
IA generativa e dos dados, a pesquisa vetorial tornou-se crucial para várias aplicações. Estes incluem (mas não estão limitados a):
- Sistemas de recomendação
- Modelos de machine learning
- Reconhecimento de imagens
- Processamento de Linguagem Natural (PNL)
- Deteção de anomalias
- IA generativa
O que faz com que a pesquisa vetorial funcione tão bem é a sua inerente captura de contexto e significado, e a sua capacidade de encontrar correspondências aproximadas em vez de apenas correspondências exatas. Isto permite aos usuários encontrar informações relevantes mesmo quando a sua consulta não corresponde exatamente aos dados armazenados. Outra grande vantagem é que a pesquisa vetorial pode ser utilizada em muitos tipos de dados, incluindo texto, imagens, áudio e dados estruturados.
Se você tem curiosidade em saber como funciona a pesquisa vetorial e como pode ajudar a sua empresa, está no lugar certo.
Principais conclusões
- Os motores de pesquisa vetorial permitem uma recuperação de informação intuitiva e contextualizada em conjuntos de dados grandes e diversificados.
- O que torna a pesquisa vetorial importante é a sua base para aplicações avançadas de IA e de machine learning em vários setores.
- A pesquisa vetorial funciona com muitos tipos diferentes de conteúdos - é a chamada multimodalidade.
- O InterSystems IRIS oferece capacidades de pesquisa vetorial de elevado desempenho integradas na gestão tradicional de dados, proporcionando uma maior precisão e processamento em tempo real.
Compreender a pesquisa vetorial
Como funciona o motor de busca vetorial? Compreender os seus mecanismos internos ajuda obter o máximo valor do espaço vetorial.
O que é um Vetor?
Talvez se lembre dos vetores das suas aulas de álgebra na escola. Em ciência da computação, os vetores são simplesmente listas de números, em que cada número representa uma caraterística ou dimensão diferente.
Enquanto os vetores que estudou na escola tinham provavelmente duas ou três dimensões, os sistemas modernos baseados em vetores utilizam frequentemente centenas ou milhares de dimensões. Isto pode parecer complexo, mas pode pensar nisto como uma extensão do mundo tridimensional com que estamos familiarizados. Imagine que acrescenta cada vez mais caraterísticas para descrever algo e que cada uma delas se torna uma nova dimensão no seu vetor.
Por exemplo, um vetor que representa a palavra "gato" pode ter o seguinte aspecto:
[0.2, -0.5, 0.8, 0.1, -0.3, ...]
Embora estes números possam parecer abstratos, captam vários aspectos semânticos do conceito "gato" que permitem a comparação matemática com outros vectores. A palavra "felino" acaba por ter um vetor muito semelhante à palavra "gato", porque as palavras usadas perto delas serão muito semelhantes.
O que é a Pesquisa Vetorial?
A pesquisa vetorial, na sua essência, é um método para encontrar itens semelhantes num grande conjunto de dados, comparando as suas representações vetoriais. Ao contrário da pesquisa tradicional baseada em palavras-chave - que procura correspondências exatas de palavras ou frases - os vetores procuram compreender o significado ou contexto subjacente.
Acontece que, ao converter texto em vetores, os vetores incluem mais significado do que outras representações, porque as palavras utilizadas em combinação com outras palavras fornecem o contexto que pode encontrar o significado por detrás das palavras.
Converter dados em vetores é o primeiro passo na pesquisa vetorial. Isto ocorre normalmente sempre que se adicionam novos dados a um sistema. Quando um usuário faz uma consulta, essa consulta é também convertida em um vetor. A pesquisa busca então encontrar os itens no conjunto de dados cujos vetores são mais semelhantes ao vetor de consulta.
Esta abordagem permite uma pesquisa mais aprofundada. Por exemplo, numa pesquisa vetorial baseada em texto:
- Uma pesquisa por "carro" pode também devolver resultados sobre "automóvel" ou "veículo", mesmo que essas palavras exatas não sejam utilizadas.
- Uma consulta sobre "técnicas de análise de dados" pode trazer resultados relevantes sobre "métodos estatísticos em grandes volumes de dados"
A pesquisa vetorial é uma tecnologia-chave que permite arquiteturas de smart data fabrics.
Pesquisa Vetorial vs. Pesquisa Semântica Tradicional
A pesquisa tradicional baseada em palavras-chave e a pesquisa vetorial diferem na sua abordagem e capacidades:
- Método de correspondência: A pesquisa por palavras-chave procura correspondências exatas de palavras ou frases. A pesquisa vetorial procura significados ou conceitos semelhantes, comparando a direção e a magnitude de diferentes vetores, e é sempre aproximada e não exata.
- Compreender o contexto: A pesquisa de palavras-chave tem muitas vezes dificuldades com o contexto e os sinônimos. A pesquisa vetorial consegue compreender o contexto e encontrar conteúdos semanticamente relacionados.
- Lidar com a ambiguidade: A pesquisa por palavras-chave pode devolver resultados irrelevantes quando as palavras têm vários significados. A pesquisa vetorial pode, muitas vezes, fazer a desambiguação com base no contexto geral da consulta.
- Capacidades multilíngues: A pesquisa por palavras-chave requer normalmente índices separados para diferentes línguas. A pesquisa vetorial pode frequentemente encontrar resultados relevantes em várias línguas se for treinada em dados multilíngues.
- Tratamento de erros ortográficos e variações: A pesquisa de palavras-chave pode perder resultados devido a ligeiros erros ortográficos. A pesquisa vetorial é mais resistente a variações e pode frequentemente encontrar resultados relevantes apesar de pequenos erros.
Como são gerados os vetores
A geração de vetores, também conhecida como incorporação, é um passo crucial na pesquisa de vectores. São utilizadas diferentes técnicas consoante o tipo de dados:
- Dados de texto: os incorporadores de palavras (por exemplo, Word2Vec, GloVe) convertem palavras individuais em vetores, enquanto os incorporadores de frases ou documentos (por exemplo, BERT, Universal Sentence Encoder) criam vetores para pedaços maiores de texto. Estes modelos são normalmente pré-treinados em grandes volumes de texto e podem ser ajustados para domínios específicos.
- Dados de imagem: as redes neuronais convolucionais (CNN) são frequentemente utilizadas para gerar representações vetoriais de imagens. Estas redes aprendem a extrair caraterísticas relevantes das imagens durante o treino.
- Dados áudio: Técnicas como Mel-frequency cepstral coefficients (MFCC) ou modelos de deep learning podem converter o áudio em representações vetoriais.
- Dados multimodais: alguns modelos avançados podem criar vetores que representam combinações de diferentes tipos de dados, como imagens com legendas.
Existem também tipos de dados mais avançados e especializados que podem ser representados como vetores. Isto inclui informação genómica e proteómica em biologia, estruturas químicas e relações gráficas.
O que representam as dimensões de um vetor?
As dimensões de um vetor no contexto da pesquisa representam diferentes caraterísticas dos dados:
- Caraterísticas semânticas: cada dimensão pode corresponder a um determinado conceito semântico ou atributo dos dados.
- Representações aprendidas: Em muitos casos, especialmente com modelos de deep learning, o significado exato de cada dimensão não é definido explicitamente, mas é aprendido pelo modelo durante o treino. O termo "latent semantic model" estava em voga e é essencialmente uma representação aprendida.
- Informação contextual: No caso dos dados de texto, as dimensões captam frequentemente padrões de utilização contextual de palavras ou frases.
- Conceitos abstratos: Algumas dimensões podem representar conceitos abstratos que não são facilmente interpretáveis por humanos, mas que são úteis para a compreensão dos dados pelo modelo.estes podem não ser conceitos no sentido a que está habituado, por exemplo, um conjunto comum de estruturas subjacentes em diferentes imagens é um conceito que uma máquina verá e que os humanos não verão.
Embora um maior número de dimensões possa, normalmente, captar mais informações e permitir distinções mais refinadas, também aumenta os requisitos computacionais.
Por consequência, é frequentemente necessário encontrar um equilíbrio entre o número de dimensões e considerações práticas como a velocidade de pesquisa ou os requisitos de armazenamento.
Algoritmos e métodos de pesquisa vetorial
O que é um motor de busca vetorial?
Um motor de busca vetorial converte dados (tais como texto, imagens ou áudio) em vetores numéricos e encontra itens semelhantes medindo a distância entre esses vetores num espaço de elevada dimensão.
Ao contrário da pesquisa semântica tradicional, que se baseia na correspondência de palavras-chave e em técnicas estatísticas, a pesquisa vetorial pode captar relações e semelhanças mais subtis entre itens, permitindo resultados mais precisos e contextualmente relevantes, especialmente para consultas complexas ou conteúdos multimédia.
Que algoritmos ou métodos são utilizados na pesquisa vetorial?
A pesquisa vetorial baseia-se em vários algoritmos para encontrar vetores semelhantes em espaços de elevada dimensão. Algumas das abordagens mais comuns incluem:
- Exact Nearest Neighbor (NN): Este método encontra os vetores mais próximos exatos de um vetor de consulta. Embora seja exato, pode ser computacionalmente dispendioso para grandes conjuntos de dados.
Approximate Nearest Neighbor (ANN): os algoritmos ANN trocam alguma precisão por melhorias significativas na velocidade. Os algoritmos populares de RNA incluem:
- Hashing sensível à localidade (LSH)
- Gráficos HNSW (Hierarchical Navigable Small World)
- Quantização de produtos (PQ)
- Métodos baseados em árvores: Algoritmos como as árvores KD ou as árvores Ball organizam os vetores numa estrutura de árvore para uma pesquisa mais rápida. Estes podem ser eficazes para dados de baixa dimensão, mas podem ter dificuldades com vetores de alta dimensão.
- Métodos baseados em gráficos: Estes algoritmos constroem um gráfico em que os nós são vetores e as arestas ligam itens semelhantes. Os exemplos incluem os gráficos HNSW (mencionado acima) e Navigable Small World (NSW).
Similaridade de cosseno na pesquisa de vectores
A similaridade de cosseno é vital na pesquisa de vetores porque mede eficazmente a similaridade entre vectores com base na sua orientação e não na sua magnitude, permitindo comparações precisas em espaços de elevada dimensão.
Isto torna-a particularmente eficaz para tarefas como a pesquisa semântica, sistemas de recomendação e agrupamento de documentos, em que a relação entre itens é mais importante do que os seus valores absolutos.
Pontos-chave sobre a similaridade de cosseno:
Intervalo: Os valores de semelhança do cosseno variam de -1 a 1, em que:
- 1 indica vectores que apontam na mesma direção (mais semelhantes)
- 0 indica vectores ortogonais (não relacionados)
- -1 indica vetores que apontam em direções opostas (mais dissemelhantes)
- Independência da magnitude: a semelhança do cosseno centra-se na direção dos vetores e não na sua magnitude, o que a torna útil para comparar documentos de diferentes comprimentos.
- Cálculo: A fórmula para a semelhança do cosseno é: cos(θ) = (A - B) / (||A|| * ||B||)Onde A - B é o produto escalar dos vectores A e B, e ||A|| e ||B|| são as suas magnitudes.
- Eficiência: A semelhança de cosseno pode ser calculada de forma eficiente, especialmente quando os vectores são normalizados.
A semelhança de cosseno é particularmente importante porque:
- Capta bem a semelhança semântica, especialmente para dados de texto.
- É computacionalmente eficiente, permitindo cálculos rápidos de semelhança em espaços de elevada dimensão.
- A sua compreensão e interpretação são intuitivas.
Semelhança de cosseno em ação: uma ilustração
Imagine que você é um chefe de cozinha numa cozinha movimentada e que cada receita é um vetor num vasto "espaço de sabores". As dimensões deste espaço incluem a doçura, o salgado, o picante, etc. O seu prato de assinatura é como um ponto particular neste espaço de sabores, e pretende encontrar receitas semelhantes ou criar pratos de fusão que complementem o seu estilo.
A semelhança de cosseno é como uma "bússola de sabores" especial que mede a proximidade de outras receitas com o perfil de sabores do seu prato de assinatura. Uma receita muito semelhante à sua apontaria quase na mesma direção na bússola do sabor (elevada semelhança de cosseno, próxima de 1).
Um prato algo semelhante poderia apontar numa direção relacionada, mas não idêntica (semelhança moderada de cosseno, cerca de 0,7). Um tipo de cozinha completamente diferente apontaria numa direção perpendicular na sua bússola de sabores (semelhança de cosseno de 0, indicando que não há relação de sabores). É importante notar que a intensidade dos sabores (magnitude do vetor) não importa - um caril suave e um intenso podem ser muito semelhantes em termos de direção do sabor.
Nesta analogia culinária, um motor de busca vetorial funciona como um sous-chef incrivelmente eficiente. Pode consultar instantaneamente esta bússola de sabores para cada receita num vasto livro de receitas global, encontrando rapidamente pratos que se harmonizam com o seu perfil de sabores caraterístico, independentemente da sua origem ou intensidade.
Outras métricas de distância utilizadas na pesquisa vetorial
Embora a semelhança de cosseno seja amplamente utilizada, podem ser utilizadas várias outras métricas de distância na pesquisa de vetores:
- Distância Euclidiana: Mede a distância em linha reta entre dois pontos no espaço Euclidiano. Isto é útil quando a magnitude dos vetores é importante.
- Distância de Manhattan: Também conhecida como distância L1 ou distância entre quarteirões. Ela calcula a soma das diferenças absolutas das coordenadas e é útil em certos problemas de grelha ou quando se lida com dados incertos.
- Produto escalar: multiplicação simples de elementos correspondentes em dois vectores, frequentemente utilizada quando os vectores são normalizados.
- Similaridade de Jaccard: mede a similaridade entre conjuntos finitos de amostras, o que é útil para dados binários ou categóricos.
- Distância de Hamming: mede o número de posições em que os símbolos correspondentes em dois vetores são diferentes, sendo frequentemente utilizada com dados binários ou para detecção de erros.
Aplicações da pesquisa vetorial
A pesquisa vetorial tornou-se cada vez mais importante em vários setores devido à sua capacidade de compreender o contexto e encontrar informações relevantes para além da simples correspondência de palavras-chave.
Cuidados de saúde e ciências da vida
- Pesquisa de literatura médica: Os investigadores podem encontrar estudos relevantes mesmo quando a terminologia varia.
- Correspondência de registos de doentes: Identificação de casos de pacientes semelhantes para planos de tratamento personalizados.
- Descoberta de medicamentos: Encontrar compostos químicos com propriedades ou efeitos semelhantes.
Saiba mais sobre Cuidados de saúde e ciências da vida
Comércio eletrónicoeletrônico e varejo
- Recomendações de produtos: Sugerir itens com base na semelhança semântica e não apenas na correspondência de categorias.
- Pesquisa visual: permite que os clientes encontrem produtos semelhantes a uma imagem carregada.
- Deteção de fraudes: identificação de padrões invulgares nos dados das transacções.
Saiba mais sobre comércio eletrônico e varejo
Serviços Financeiros
- Avaliação de riscos: análise de documentos financeiros para identificar riscos potenciais.
- Análise de tendências de mercado: encontrar correlações entre diversos indicadores econômicos.
- Segmentação de clientes: Agrupamento de clientes com base em padrões de comportamento.
Saiba mais sobre Serviços financeiros
Mídia e entretenimento
- Recomendação de conteúdos: Sugerir filmes, música ou artigos com base nas preferências do usuário.
- Detecção de plágio: identificação de conteúdos semelhantes em grandes bases de dados.
- Pesquisa de áudio e vídeo: Encontrar momentos específicos nos arquivos com base em transcrições ou caraterísticas visuais.
Produção e suplly chain
- Controle de qualidade: detecção de anomalias nos dados de produção.
- Gestão de inventário: otimização dos níveis de estoque com base em padrões de procura complexos.
- Manutenção preditiva: identificação de equipamento suscetível de falhas com base em padrões de dados de sensores.
Saiba mais sobre Produção e cadeia de abastecimento
Tecnologias da informação e cibersegurança
- Análise de registos: Detetar padrões estranhos nos registos do sistema para detectar ameaças à segurança.
- Pesquisa de similaridade de código: Encontrar trechos de código semelhantes para debug ou otimização.
- Análise do tráfego de rede: Identificação de potenciais violações de segurança com base em padrões de tráfego.
Tecnologias e plataformas de apoio à pesquisa vetorial
À medida que a pesquisa vetorial ganha proeminência em várias indústrias, surgiram uma série de tecnologias e plataformas para apoiar a sua implementação.
Bases de dados vetoriais: Uma base de dados vetorial é concebida para armazenar e consultar dados vectoriais de forma eficiente. Os exemplos incluem o Faiss (Facebook AI Similarity Search) e o Annoy (Approximate Nearest Neighbors Oh Yeah).
Aprendizagem automática: TensorFlow e PyTorch oferecem bibliotecas para criar e manipular incorporações vetoriais. Estas estruturas podem ser utilizadas para treinar modelos de incorporação personalizados para domínios específicos.
Bibliotecas de PNL: Bibliotecas como a spaCy e a Hugging Face's Transformers fornecem modelos pré-treinados para incorporação de texto. Estes podem ser utilizados para gerar representações vectoriais de dados de texto para aplicações de pesquisa.
Serviços de pesquisa vetorial baseados na nuvem: Os principais fornecedores de serviços de nuvem oferecem serviços de pesquisa vetorial geridos que podem ser integrados em aplicações. Estes serviços fornecem frequentemente infra-estruturas escaláveis para operações de pesquisa vetorial em grande escala.
Motores de pesquisa de fonte aberta: Alguns motores de pesquisa tradicionais oferecem agora capacidades de pesquisa vetorial. Estes podem ser úteis para as organizações que pretendem adicionar a pesquisa vetorial à infraestrutura de pesquisa existente.
Como os principais motores de busca e bases de dados incorporam a pesquisa vetorial?
Motores de pesquisa na Web: Os principais motores de pesquisa, como o Google, incorporaram técnicas de pesquisa vetorial para melhorar a compreensão semântica das consultas. Utilizam modelos de redes neuronais para gerar representações vectoriais de consultas e páginas Web.
Pesquisa de comércio eletrônico: As plataformas de varejo utilizam a pesquisa vetorial para melhorar a descoberta de produtos, combinando-a frequentemente com a pesquisa tradicional por palavras-chave para obter os melhores resultados.
Soluções de pesquisa para empresas: Muitas plataformas de pesquisa para empresas oferecem agora capacidades de pesquisa vetorial. Estas soluções utilizam frequentemente abordagens híbridas, combinando a pesquisa vetorial com métodos de pesquisa tradicionais.
Sistemas de gestão de bases de dados sistemas: Alguns sistemas de bases de dados relacionais começaram a incorporar capacidades de pesquisa vetorial, permitindo pesquisas por semelhança juntamente com as tradicionais consultas SQL. Esta integração permite a consulta flexível de dados estruturados e não estruturados no mesmo sistema.
Plataformas de dados na nuvem: Os fornecedores de serviços na nuvem estão oferecendo cada vez mais a pesquisa vetorial como parte dos seus serviços. Isto permite uma integração perfeita das capacidades de pesquisa vetorial em aplicações baseadas na nuvem e fluxos de trabalho de dados.
Aproveite o poder da pesquisa vetorial com o InterSystems IRIS
A pesquisa vetorial e a representação vetorial surgiram como uma tecnologia revolucionária no mundo da recuperação de informação e da análise de dados. Ao representar os dados como vectores de elevada dimensão, a pesquisa vetorial permite experiências de pesquisa mais intuitivas, conscientes do contexto e semanticamente ricas.
Ao longo deste artigo, descobrimos os conceitos fundamentais por detrás da pesquisa vetorial e as suas aplicações em vários setores. Vimos como a pesquisa vetorial se destaca na compreensão do contexto, no tratamento de consultas multilíngues e na obtenção de resultados relevantes mesmo quando não existem correspondências exatas de palavras-chave.
No entanto, também reconhecemos as exigências computacionais e as complexidades da gestão de dados de elevada dimensão à escala. É aqui que o InterSystems IRIS se destaca como uma solução poderosa. O InterSystems IRIS oferece uma plataforma abrangente e unificada que integra perfeitamente as capacidades de pesquisa vetorial com as funcionalidades tradicionais de gestão de dados.
As principais vantagens incluem:
- Integração perfeita: As capacidades de pesquisa vetorial estão totalmente integradas na plataforma IRIS da InterSystems, permitindo uma fácil combinação com consultas SQL e outras tarefas de processamento de dados.
- Escalabilidade: O InterSystems IRIS foi concebido para lidar com operações de pesquisa vetorial em grande escala, suportando computação distribuída para um melhor desempenho.
- Flexibilidade: O suporte para várias técnicas de incorporação e métricas de distância torna o InterSystems IRIS versátil para diferentes aplicações de pesquisa vetorial.
- Integração avançada de NLP: O InterSystems IRIS pode ser combinado com técnicas sofisticadas de processamento de linguagem natural para melhorar a compreensão da consulta e a relevância dos resultados.
- Personalização específica do domínio: A plataforma suporta modelos de incorporação personalizados, permitindo soluções à medida em domínios especializados como os cuidados de saúde ou as finanças.
- Gestão unificada de dados: O InterSystems IRIS elimina a necessidade de vários sistemas separados, reduzindo a complexidade e as potenciais inconsistências de dados.