Medida de similaridade entre embeddings

Medida de similaridade entre embeddings Medida de similaridade entre embeddings

Medida de similaridade entre os embeddingslink image 10

Agora que vimos o que são embeddings, sabemos que podemos medir a similaridade entre duas palavras medindo a similaridade entre seus embeddings. Na postagem embeddings, vimos o exemplo do uso da medida de similaridade do cosseno, mas há outras medidas de similaridade que podemos usar, o quadrado L2, a similaridade do produto escalar, a similaridade do cosseno e assim por diante.

Este caderno foi traduzido automaticamente para torná-lo acessível a mais pessoas, por favor me avise se você vir algum erro de digitação..

Nesta postagem, examinaremos os três itens mencionados.

Similaridade por quadrado L2link image 11

Essa similaridade é derivada da distância euclidiana, que é a distância em linha reta entre dois pontos em um espaço multidimensional, calculada com o teorema de Pitágoras.

Distância Euclidiana

A distância euclidiana entre dois pontos $p$ e $q$ é calculada como:

$$ d(p,q) = \sqrt{(p_1 - q_1)^2 + (p_2 - q_2)^2 + \cdots + (p_n - q_n)^2} = \sqrt{\sum_{i=1}^n (p_i - q_i)^2} $$

A similaridade ao quadrado de L2 é o quadrado da distância euclidiana, ou seja, o quadrado da distância euclidiana:

$$ similaridade(p,q) = d(p,q)^2 = \sum_{i=1}^n (p_i - q_i)^2 $$

Semelhança de cossenolink image 12

Se nos lembrarmos do que aprendemos sobre senos e cossenos na escola, lembraremos que quando dois vetores têm um ângulo de 0º entre eles, seu cosseno é 1, quando o ângulo entre eles é de 90º, seu cosseno é 0 e quando o ângulo é de 180º, seu cosseno é -1.

cosine similarity

cosine similarity

Portanto, podemos usar o cosseno do ângulo entre dois vetores para medir sua similaridade. É possível demonstrar que o cosseno do ângulo entre dois vetores é igual ao produto escalar dos dois vetores dividido pelo produto de seus módulos. Não é o objetivo desta postagem demonstrar isso, mas se você quiser, pode ver a demonstração [aqui] (https://www.wwwinsights.com/wp-content/uploads/2023/05/image-11-1024x694.png).

$$ similaridade(U,V) = \frac{U \V}{V}. $$

Similaridade do produto escalarlink image 13

A similaridade do produto escalar é o produto escalar de dois vetores

$$ similaridade(U,V) = U \cdot V $$

Como escrevemos a fórmula de similaridade de cosseno, quando o comprimento dos vetores é 1, ou seja, eles são normalizados, a similaridade de cosseno é igual à similaridade do produto escalar.

Então, para que serve a similaridade do produto escalar? Bem, para medir a semelhança entre dois vetores que não são normalizados, ou seja, que não têm comprimento 1.

Por exemplo, o YouTube, para criar incorporações para seus vídeos, torna as incorporações dos vídeos que classifica como de qualidade superior mais longas do que as dos vídeos que classifica como de qualidade inferior.

Dessa forma, quando um usuário faz uma pesquisa, a similaridade por produto escalar dará maior similaridade a vídeos de maior qualidade, portanto, dará ao usuário os vídeos de maior qualidade primeiro.

Qual sistema de similaridade usarlink image 14

Para escolher o sistema de similaridade a ser usado, devemos levar em conta o espaço em que estamos trabalhando.

  • Se estivermos trabalhando em um espaço de alta dimensão, com embeddings normalizados, a similaridade de cosseno funciona melhor. Por exemplo, o OpenAI gera embeddings normalizados, portanto, a similaridade de cosseno funciona melhor.
  • Se estivermos trabalhando em um sistema de classificação, em que a distância entre duas classes é importante, a similaridade L2-quadrado funciona melhor.
  • Se estivermos trabalhando em um sistema de recomendação, em que o comprimento dos vetores é importante, a similaridade do produto escalar funciona melhor.

Continuar lendo

Últimos posts -->

Você viu esses projetos?

Subtify

Subtify Subtify

Gerador de legendas para vídeos no idioma que você desejar. Além disso, coloca uma legenda de cor diferente para cada pessoa

Ver todos os projetos -->

Quer aplicar IA no seu projeto? Entre em contato!

Quer melhorar com essas dicas?

Últimos tips -->

Use isso localmente

Os espaços do Hugging Face nos permitem executar modelos com demos muito simples, mas e se a demo quebrar? Ou se o usuário a deletar? Por isso, criei contêineres docker com alguns espaços interessantes, para poder usá-los localmente, aconteça o que acontecer. Na verdade, se você clicar em qualquer botão de visualização de projeto, ele pode levá-lo a um espaço que não funciona.

Flow edit

Flow edit Flow edit

Edite imagens com este modelo de Flow. Baseado em SD3 ou FLUX, você pode editar qualquer imagem e gerar novas

FLUX.1-RealismLora

FLUX.1-RealismLora FLUX.1-RealismLora
Ver todos os contêineres -->

Quer aplicar IA no seu projeto? Entre em contato!

Você quer treinar seu modelo com esses datasets?

short-jokes-dataset

Dataset com piadas em inglês

opus100

Dataset com traduções de inglês para espanhol

netflix_titles

Dataset com filmes e séries da Netflix

Ver mais datasets -->