27 pontos por xguru 2024-05-31 | 3 comentários | Compartilhar no WhatsApp

Tipos de embeddings vetoriais

  • Embeddings de palavras: representam palavras em NLP e capturam relações semânticas entre elas. São usados em tradução de idiomas, similaridade entre palavras, análise de sentimento etc.
  • Embeddings de frases: capturam o significado e o contexto de frases, sendo usados em recuperação de informação, classificação de texto, análise de sentimento etc.
  • Embeddings de documentos: capturam o conteúdo de documentos como relatórios ou artigos, sendo usados em sistemas de recomendação, recuperação de informação, similaridade e classificação de documentos etc.
  • Embeddings de grafos: representam nós e arestas de um grafo em um espaço vetorial, sendo usados em classificação de nós, detecção de comunidades, predição de links etc.
  • Embeddings de imagens: representam diversos aspectos de imagens, sendo usados em sistemas de recomendação baseados em conteúdo, reconhecimento de imagens e objetos, sistemas de busca por imagem etc.
  • Embeddings de produtos: representam produtos digitais ou físicos, sendo usados em sistemas de recomendação e classificação de produtos, busca de produtos etc.
  • Embeddings de áudio: representam ritmo, tom, altura e outros aspectos de sinais de áudio, sendo usados em detecção de emoções, reconhecimento de fala, recomendação musical etc.

Como redes neurais geram embeddings

  • Aprendizado de representação: redes neurais mapeiam dados de alta dimensionalidade para um espaço de baixa dimensionalidade, preservando características importantes.
  • Processo de treinamento: redes neurais aprendem a transformar dados em embeddings significativos. Isso acontece durante o ajuste dos pesos e vieses dos neurônios.
  • Exemplo: em uma rede neural para classificar avaliações de filmes como positivas ou negativas, embeddings de palavras são aprendidos. Palavras como "good" e "excellent" passam a ter embeddings semelhantes.

Como funcionam os embeddings vetoriais

  • Espaço vetorial: objetos ou características são representados como pontos em um espaço vetorial multidimensional, e itens semelhantes ficam posicionados próximos uns dos outros.
  • Medição de distância: distância euclidiana, similaridade de cosseno e outras medidas são usadas para quantificar a relação entre vetores.
  • Exemplo: os vetores de "cat" e "dog" ficam mais próximos entre si do que os vetores de "cat" e "car".

Desenvolvimento com embeddings vetoriais

  • Chatbots: respondem melhor às consultas dos usuários, geram respostas contextualmente relevantes e mantêm conversas consistentes.
  • Motores de busca semântica: fornecem resultados com base em similaridade semântica, em vez de apenas correspondência de palavras-chave.
  • Sistemas de classificação de texto: classificam documentos com base em sintaxe e palavras.
  • Sistemas de recomendação: recomendam conteúdo com base na similaridade entre palavras-chave e descrições.

Como gerar embeddings vetoriais a partir de dados

  • Coleta de dados: coletar vários tipos de dados, como texto, áudio, imagens e dados de séries temporais.
  • Pré-processamento de dados: tratar os dados para torná-los adequados à análise, com tokenização, remoção de ruído, redimensionamento de imagens, normalização etc.
  • Segmentação dos dados: dividir texto em frases ou palavras, imagens em segmentos e dados de séries temporais em intervalos.
  • Vetorização: converter cada pedaço de dado em vetor. Dados de texto usam modelos de text embeddings da OpenAI, dados de imagem usam modelos CNN e dados de áudio usam espectrogramas etc.

Como armazenar embeddings vetoriais

  • Banco de dados vetorial: usar um banco de dados capaz de armazenar e consultar dados vetoriais com eficiência.
  • PostgreSQL: pode armazenar dados vetoriais junto com outros dados relacionais. Com a extensão pgvector, é possível armazenar e consultar vetores.

3 comentários

 
gcback 2024-05-31

Assim como os modelos de linguagem, o tamanho dos vetores tem aumentado para melhorar a capacidade de capturar contexto e significado. No entanto, à medida que o tamanho dos vetores cresce, é consenso que, por causa da maldição da dimensionalidade, a distância euclidiana não é adequada como medida de similaridade. Por isso, a relação entre vetores (similaridade) costuma ser medida principalmente com a similaridade de cosseno.

 
soon0698 2024-06-03

É uma opinião que me lembra um artigo que li recentemente. Às vezes, dependendo do modelo, até a similaridade por cosseno pode não ter significado. "Is Cosine-Similarity of Embeddings Really About Similarity?" (2024)