Compreender a pesquisa semântica
Vamos analisar os fundamentos da pesquisa semântica:
- Como difere da pesquisa lexical padrão.
- O que é a incorporação vetorial?
- O que fazem os bancos de dados vetoriais?
O que é a pesquisa semântica?
A pesquisa lexical padrão, ou pesquisa por palavra-chave, consulta documentos por caracteres correspondentes. Por exemplo, a consulta "light" corresponde ao texto "bright light" porque o elemento light aparece no documento.
A pesquisa lexical pode ser melhorada com correspondência aproximada; por exemplo, a consulta "luzes" ainda pode corresponder ao texto "luz brilhante" ou ao erro ortográfico lihgts devido a estar a um caractere de distância (um s, ausente ou trocando o g e h). Embora a correspondência difusa e outras técnicas como a derivação sejam úteis, esta técnica deve corresponder a sinónimos ou linguagem semanticamente semelhante: diferentes fraseados, gírias, vocabulário técnico, etc. Para fornecer os resultados de pesquisa mais relevantes com a pesquisa lexical, os autores precisam incorporar palavras-chave nos metadados ou no próprio texto (o que pode ser uma experiência de usuário incômoda).
Insira a pesquisa semântica. A pesquisa semântica não usa semelhança de caracteres. Em vez disso, usa representações numéricas dos conceitos em palavras e frases. Essas representações numéricas são chamadas de vetores de incorporação ou simplesmente incorporações.
Se duas incorporações são numericamente semelhantes, então elas também são semanticamente semelhantes. Essa semelhança é mais geral do que testar a sobreposição de palavras-chave porque é menos sensível à seleção precisa de palavras-chave ou fraseados.
Para realizar uma pesquisa semântica, primeiro gere o vetor de incorporação da consulta. Em seguida, compare esse vetor com um banco de dados de vetores. As incorporações mais próximas da incorporação da consulta são os documentos semanticamente mais semelhantes à consulta.
A maioria dos casos de uso de banco de dados relacional não envolve o armazenamento de vetores n-dimensionais e o cálculo da distância numérica entre eles. A pesquisa semântica eficiente requer a funcionalidade de banco de dados vetorial .
Incorporações
Um embedding é uma representação numérica da semântica. As incorporações são representadas como vetores n-dimensionais: matrizes de n números. Cada dimensão representa alguma qualidade semântica, conforme determinado pelo modelo de incorporação.
Se dois vetores de incorporação apontam em direções semelhantes, eles representam conceitos parecidos, como "brilhante" e "ensolarado". Se apontam para direções opostas, eles representam conceitos opostos, como "triste" e "feliz". A estrutura do modelo de incorporação e os dados de treino determinam o que é considerado semelhante e distinto.
As incorporações podem ser aplicadas a texto e qualquer tipo de dados, como imagens ou áudio. A parte crítica é transformar dados em vetores de incorporação n-dimensional com base em algum modelo ou função. A semelhança numérica das incorporações aproxima a semelhança semântica dos dados correspondentes.
A semelhança numérica de dois vetores v1 n-dimensionais e v2 é dada pelo seu produto ponto, escrito v1·v2. Para calcular o produto ponto, multiplique os valores de cada dimensão em pares e, em seguida, some o resultado:
dot_product(v1, v2) = SUM(
v1[0] * v2[0],
v1[1] * v2[1],
...,
v1[n-1] * v2[n-1],
v1[n] * v2[n]
)
Como as incorporações são vetores unitários (vetores de comprimento um), o produto ponto é igual à semelhança cosseno dos vetores, um valor entre -1 (direções precisamente opostas) e 1 (exatamente a mesma direção). Os vetores com semelhança de cosseno igual a zero são ortogonais: não relacionados semanticamente.
Você pode visualizar espaços n-dimensionais projetando-os para o espaço tridimensional usando a análise de componentes principais (PCA). A PCA é uma técnica padrão para reduzir a dimensionalidade dos vetores. O resultado é uma projeção simplificada, mas visualizável, do espaço n-dimensional. Renderizar suas incorporações de documentos dessa maneira mostrará que mais documentos semelhantes estão agrupados em clusters, enquanto mais documentos diferentes estão mais distantes.
Dadas essas definições, realizar uma pesquisa semântica de uma consulta em relação a uma coleção de incorporações de documentos é simples matematicamente:
- Gere a incorporação da consulta usando um modelo de linguagem.
- Calcule o produto escalar da incorporação de consulta contra a incorporação pré-calculada de cada documento.
- Ordene os produtos de pontos, números de -1 a 1.
- Os documentos mais relevantes (semanticamente semelhantes) têm as pontuações mais elevadas e os documentos menos relevantes (semanticamente diferentes) têm as pontuações mais baixas.
Embora simples matematicamente, essa não é uma consulta simples ou de alto desempenho em um banco de dados relacional. Para armazenar e processar esse tipo de consulta de semelhança vetorial, use um banco de dados vetorial.
Bancos de dados vetoriais
Um banco de dados vetorial otimiza o armazenamento e o cálculo de vetores multidimensionais, como incorporações. Em particular, os bancos de dados vetoriais fornecem cálculos de produto de pontos rápidos e precisos para executar uma consulta de semelhança vetorial.
As pesquisas de semelhança vetorial têm vários casos de uso:
- Localizar imagens semelhantes à incorporação da imagem de consulta
- Localizar documentos semanticamente semelhantes ao texto da consulta
- Encontre produtos com características e classificações semelhantes para um sistema de recomendação
A pesquisa semântica consulta a base de dados vetorial para verificar a semelhança do vetor de consulta com cada vetor armazenado. Os aplicativos podem então buscar os dados correspondentes às incorporações.
Há muitos bancos de dados vetoriais nativos e extensões de banco de dados para escolher. Os seguintes serviços do Azure podem ajudá-lo a atender às suas necessidades de banco de dados vetorial: