Calculadora de Similaridade de Cosseno
Entradas
| Componente a₁ | 0,5 |
|---|---|
| Componente a₂ | 0,1 |
| Componente a₃ | -0,3 |
| Componente b₁ | 0,4 |
| Componente b₂ | 0,2 |
| Componente b₃ | -0,1 |
Calculadora de Similaridade de Cosseno
Calcule a similaridade de cosseno e o ângulo entre dois vetores a partir de seus componentes — a forma padrão de medir o quanto dois embeddings de texto se parecem.
Entradas
Vetor A
Vetor B
Resultados
Insira um valor para ver os resultados.
Detalhes
Similaridade de cosseno
A similaridade de cosseno mede o quanto dois vetores apontam para a mesma direção. É o cosseno do ângulo entre eles, portanto depende apenas de sua orientação e não de seus comprimentos. A pontuação vai de menos um, para vetores que apontam em direções exatamente opostas, passando por zero, para vetores em ângulo reto, até mais um, para vetores alinhados na mesma direção. É a forma padrão de comparar embeddings de texto, em que a direção de um vetor codifica o significado e seu comprimento é, em grande parte, secundário. Esta calculadora trabalha em três dimensões para que a aritmética seja fácil de acompanhar, mas a fórmula e sua interpretação são idênticas nas centenas ou milhares de dimensões que um embedding real ocupa.
Como é calculada
Dois ingredientes se combinam para gerar a pontuação. O produto escalar mede o quanto os vetores concordam componente a componente, e as magnitudes medem seus comprimentos. Para vetores e , o produto escalar é
a⋅b=a1b1+a2b2+a3b3e a magnitude de um vetor é a raiz quadrada da soma de seus componentes ao quadrado,
∥a∥=a12+a22+a32Dividir o produto escalar pelas duas magnitudes cancela o efeito do comprimento e deixa apenas o ângulo:
cosθ=∥a∥∥b∥a⋅bO ângulo em si se obtém invertendo o cosseno, , o que às vezes é mais fácil de imaginar do que a pontuação bruta — uma similaridade de 0,92 é mais difícil de visualizar do que um ângulo de cerca de vinte e três graus.
Exemplo resolvido
Compare com . O produto escalar é
a⋅b=(0,5)(0,4)+(0,1)(0,2)+(−0,3)(−0,1)=0,20+0,02+0,03=0,25As magnitudes são
∥a∥∥b∥=0,25+0,01+0,09=0,35=0,5916=0,16+0,04+0,01=0,21=0,4583então a similaridade de cosseno é
cosθ=0,5916×0,45830,25=0,27110,25=0,9221o que corresponde a um ângulo de . Os dois vetores são próximos, mas não idênticos — inclinam-se fortemente na mesma direção, com pouco mais de vinte graus de separação. Uma pontuação tão alta, em uma busca por embedding, marcaria os dois itens como uma forte correspondência.
Observações e variações
Quando os vetores são normalizados para comprimento unitário de antemão, ambas as magnitudes valem um e a similaridade de cosseno se reduz apenas ao produto escalar — razão pela qual os bancos de dados vetoriais armazenam embeddings normalizados e ordenam os resultados por uma única multiplicação e soma. A similaridade de cosseno também está intimamente ligada à distância euclidiana na esfera unitária: para vetores unitários, uma similaridade de cosseno maior sempre significa uma distância em linha reta menor, de modo que as duas ordenações concordam. As pontuações só são comparáveis dentro de um mesmo modelo de embedding; um valor de 0,8 de um modelo não significa o mesmo que 0,8 de outro.
Aplicação
A similaridade de cosseno é a etapa de pontuação por trás da busca por embedding, que sustenta a geração aumentada por recuperação. As passagens que ela compara são produzidas por uma etapa de chunking — veja Calculadora de Chunking para RAG — e incorporadas em vetores cujo custo é estimado por Calculadora de Custo de Embedding. O número de vetores que um sistema precisa comparar determina o tamanho do índice calculado por Calculadora de Tamanho de Banco de Dados Vetorial.
Perguntas frequentes (FAQ)
Qual a diferença entre similaridade de cosseno e distância euclidiana?
A distância euclidiana mede o espaço em linha reta entre as pontas de dois vetores e é sensível aos comprimentos deles. A similaridade de cosseno mede apenas o ângulo entre eles e ignora totalmente o comprimento.
Dois embeddings que apontam na mesma direção, mas diferem em magnitude, têm uma grande distância euclidiana e ainda assim uma similaridade de cosseno próxima de 1. Para embeddings de texto, a direção carrega o significado e a magnitude é, em geral, secundária, então o ângulo costuma ser a comparação mais informativa.
Qual a faixa de valores da similaridade de cosseno?
Ela varia de −1 a +1. Um valor de +1 significa que os vetores apontam exatamente na mesma direção, 0 significa que são ortogonais e não compartilham nenhuma direção comum, e −1 significa que apontam em direções opostas.
Os modelos de embedding costumam ser treinados para que textos sem relação fiquem perto de 0 e textos relacionados pontuem bem acima disso, embora a escala exata dependa do modelo e muitos modelos raramente produzam valores fortemente negativos.
Por que as buscas por embedding usam similaridade de cosseno?
Um embedding codifica o significado como uma direção em um espaço de muitas dimensões, e duas passagens significam coisas semelhantes quando seus vetores apontam de forma semelhante, independentemente do tamanho das passagens. A similaridade de cosseno captura exatamente essa comparação baseada só na direção.
Ela também é barata de calcular em larga escala: uma vez que os vetores são normalizados para comprimento unitário, a similaridade de cosseno se reduz a um único produto escalar, que os bancos de dados vetoriais conseguem avaliar rapidamente entre milhões de entradas.
Aviso legal
Uma pontuação de similaridade de cosseno só faz sentido em relação a outras pontuações do mesmo modelo de embedding. Não existe um limiar universal que marque dois itens como “similares”; calibre com base em exemplos dos seus próprios dados antes de tirar conclusões.