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

DoLa – Decoding by Contrasting Layers Improves Factuality in Large Language Models

DoLa – Decoding by Contrasting Layers Improves Factuality in Large Language Models

Você já conversou com um LLM e ele lhe respondeu algo que parece ter bebido café de máquina a noite toda? 😂 Isso é o que chamamos de alucinação no mundo dos LLMs! Mas não se preocupe, pois não é que seu modelo de linguagem esteja louco (embora às vezes possa parecer isso 🤪). A verdade é que os LLMs podem ser um pouco... criativos quando se trata de gerar texto. Mas graças ao DoLa, um método que usa camadas de contraste para melhorar a viabilidade dos LLMs, podemos evitar que nossos modelos de linguagem se transformem em escritores de ficção científica 😂. Nesta publicação, explicarei como o DoLa funciona e mostrarei um exemplo de código para que você possa entender melhor como tornar seus LLMs mais confiáveis e menos propensos a inventar histórias. Vamos salvar nossos LLMs da loucura e torná-los mais úteis! 🚀

Ú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.

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