O cálculo da similaridade de cosseno exige a medição do cosseno do ângulo (teta) entre dois vetores diferentes de zero em um espaço de produtos internos. Essa medição produz uma pontuação de similaridade de cosseno. Os valores da similaridade de cosseno variam de -1 a 1:
Pense nisso como uma comparação de setas: se elas estiverem apontando na mesma direção, são altamente semelhantes. As que estão em ângulos retos não estão relacionadas, e as setas que apontam em direções opostas são diferentes.
Essa abordagem angular é fundamental para muitos sistemas de aprendizado de máquina (ML), processamento de linguagem natural (NLP) e inteligência artificial (IA). Essas tecnologias dependem de representações de dados baseadas em vetores, o que significa que os dados foram convertidos em uma forma numérica para capturar seu significado e semelhança com outros dados.
Por exemplo, um chatbot pode usar técnicas de embedding de palavras para converter texto em formato vetorial, modelos de deep learning para entender a intenção e algoritmos de busca por similaridade para recuperar a resposta mais relevante de um banco de dados. A similaridade de cosseno possibilita cada uma dessas etapas.
Boletim informativo do setor
Mantenha-se atualizado sobre as tendências mais importantes e fascinantes do setor em IA, automação, dados e muito mais com o boletim informativo da Think. Consulte a declaração de privacidade da IBM.
Sua inscrição será entregue em inglês. Você pode encontrar um link para cancelar a inscrição em todos os boletins informativos. Você pode gerenciar suas inscrições ou cancelar a inscrição aqui. Consulte nossa declaração de privacidade da IBM para obter mais informações.
Quer seja para prever a próxima palavra em uma frase ou sugerir um lugar próximo para comer, muitos dos sistemas que moldam nossa vida digital dependem da medição da similaridade. Tecnologias como mecanismos de recomendação e grandes modelos de linguagem (LLMs) utilizam a similaridade de cosseno para identificar qual conteúdo é mais relevante e quais respostas fazem mais "sentido".
Essas decisões são tomadas analisando as relações entre pontos de dados em conjuntos de dados de alta dimensão ou esparsos. Na análise de texto clássica, os documentos são frequentemente convertidos em representações numéricas usando técnicas como frequência do termo-inverso da frequência nos documentos (tf-idf), uma forma avançada de bag of words (BoW). Enquanto o BoW pontua a frequência com que um termo aparece em um documento, a tf-idf ajusta essa pontuação com base na frequência com que a palavra é comum ou rara em um conjunto de dados maior.
Sistemas mais avançados usam redes neurais para gerar embeddings vetoriais — representações numéricas de pontos de dados que expressam diferentes tipos de dados como uma matriz de números. Por exemplo, palavras como "médico" e "enfermeiro" podem aparecer próximas umas da outras no espaço vetorial, o que significa que o modelo as vê como relacionadas. Essas embeddings geralmente passam por etapas adicionais, como análise de componentes principais (PCA), para tornar as comparações em grande escala mais rápidas e eficientes.
Em ambas as abordagens, a similaridade de cosseno mede o quanto está próximo o alinhamento dos vetores resultantes, ajudando os sistemas a identificar padrões e relacionamentos em conjunto de dados complexos. Em NLP, IA e ciência de dados, a similaridade de cosseno desempenha um papel central na:
Os mecanismos de pesquisa usam a similaridade de cosseno para combinar as consultas dos usuários com documentos relevantes, melhorando a precisão e a qualidade da classificação.
As redes neurais e os LLMs comparam as embeddings vetoriais usando a similaridade de cosseno para avaliar a proximidade semântica entre as entradas.
Os sistemas de recomendação aplicam técnicas de pesquisa de similaridade para sugerir produtos, mídia ou conteúdo que se alinham ao comportamento e às preferências do usuário.
A similaridade de cosseno é compatível com a modelagem de tópicos ao agrupar documentos com temas semelhantes. Essas distribuições de tópicos geralmente são geradas usando métodos como a alocação latente de Dirichlet (LDA).
Além dos casos de uso de texto, a similaridade de cosseno também é compatível com qualquer cenário em que padrões multidimensionais devem ser comparados de forma rápida e precisa, como reconhecimento de imagens, detecção de fraude e segmentação de clientes.
Em sua essência, a similaridade de cosseno mede o alinhamento de dois vetores calculando o cosseno do ângulo entre eles.
Em aplicações do mundo real, como comparar documentos, os dados são representados como vetores no espaço multidimensional. Cada dimensão pode representar uma palavra, um atributo ou uma ação específico, e o valor nessa dimensão reflete o quanto esse item é proeminente ou importante.
Para calcular a similaridade de cosseno:
A fórmula pode ser representada como:
Similaridade de cosseno = (A · B) / (||A|| × ||B||)
Onde:
A pontuação resultante varia de -1 a 1.
Para ilustrar melhor, imagine duas palavras: "rei" e "rainha".
Ambas são usadas em contextos semelhantes. Quando processada por um LLM, cada palavra é traduzida em uma embedding que captura o significado semântico de um termo com base em seu uso em milhões de frases. Como "rei" e "rainha" frequentemente aparecem perto de palavras como "real", "trono" e "monarca", as embeddings resultantes apontarão quase na mesma direção.
Agora, considere uma terceira palavra: "maçã". Embora possa aparecer em alguns dos mesmos documentos, é mais frequentemente associada a termos como "frutas", "pomar" ou "crocante". Seu vetor aponta em uma direção quase oposta, resultando em uma similaridade de cosseno menor. Quando plotadas em um gráfico, as setas "rei" e "rainha" se deslocariam quase lado a lado, enquanto a seta "maçã" se afastaria em um ângulo perceptível.
Para otimizar o desempenho e auxiliar na recuperação mais rápida de correspondências relevantes, muitas organizações armazenam essas embeddings em bancos de dados de vetores especializados — ferramentas projetadas para indexar vetores de alta dimensão para melhorar a pesquisa e retornar os resultados mais semelhantes.
A similaridade de cosseno é apenas uma abordagem em um ecossistema mais amplo de métricas de similaridade. Cada métrica é projetada para avaliar a similaridade de diferentes maneiras e é mais adequada para tipos específicos de dados dentro de um espaço multidimensional. Alguns exemplos:
Essa métrica calcula a distância em linha reta entre dois pontos em um espaço vetorial. É intuitiva e comumente usada na análise de dados, especialmente para comparar dados numéricos ou funcionalidades físicas. Entretanto, em espaços de alta dimensão, onde os vetores tendem a convergir à distância, a distância euclidiana se torna menos confiável para tarefas como agrupamento ou recuperação de informações.
A similaridade de Jaccard mede a sobreposição entre dois conjuntos de dados ao dividir o tamanho da interseção pelo tamanho da união. É comumente aplicada a conjuntos de dados que envolvem dados categóricos ou binários (como tags, cliques ou visualizações de produtos), e é particularmente útil para sistemas de recomendação. Embora Jaccard se concentre na presença ou ausência, não leva em conta a frequência ou magnitude.
O produto escalar dos vetores A e B reflete o quanto eles apontam na mesma direção, mas sem normalizar magnitudes. Esse fator o torna sensível para escalar: vetores com valores grandes podem parecer mais semelhantes mesmo que suas direções sejam diferentes.
A similaridade de cosseno melhora essa métrica ao dividir o produto escalar dos vetores pelo produto das magnitudes dos vetores (a fórmula de similaridade de cosseno). A similaridade de cosseno é, portanto, mais estável para comparar vetores diferentes de zero de comprimentos variados, especialmente em conjuntos de dados de alta dimensão.
Na prática, as organizações costumam usar medidas de similaridade de cosseno juntamente com outras métricas, dependendo da estrutura do conjunto de dados e do tipo de disparidade que desejam evitar.
Por exemplo, a pesquisa de similaridade em aplicações de NLP ou LLM frequentemente combina a distância de cosseno com a embedding de modelos treinados em algoritmos de deep learning . Os cálculos de similaridade de cosseno também são integrados a ferramentas de código aberto, como Scikit-learn, TensorFlow e PyTorch, facilitando para os cientistas de dados o cálculo da similaridade de cosseno em conjuntos de dados de grande escala.
Dado seu papel em uma miríade de sistemas, a similaridade de cosseno oferece várias vantagens sobre as métricas de similaridade tradicionais:
Apesar de suas vantagens, a similaridade de cosseno não está isenta de limitações, incluindo:
Para aproveitar ao máximo a similaridade de cosseno, as organizações podem considerar o seguinte:
As organizações podem normalizar os vetores antes da computação para garantir a consistência da escala e resultados válidos, especialmente ao usar entradas de alta dimensão.
As empresas devem limpar os conjuntos de dados para remover ou sinalizar vetores zero, pois causarão erros de "divisão por zero" durante os cálculos de similaridade de cosseno.
As organizações podem complementar a similaridade de cosseno com métricas adicionais, como a similaridade de Jaccard ou a distância euclidiana, quando múltiplas dimensões de similaridade forem necessárias.
Antes da implementação, as empresas devem avaliar o desempenho da similaridade de cosseno em ambientes que reflitam condições do mundo real, especialmente quando usada em sistemas em tempo real, como interfaces de programação de aplicativos (APIs).
As organizações podem aproveitar bibliotecas de código aberto maduras para executar cálculos de similaridade de cosseno em escala com eficiência. Por exemplo, o Scikit-learn fornece uma função de similaridade de cosseno pronta para uso por meio do caminho do módulo Python: sklearn.metrics.pairwise.
Ou então, a fórmula pode ser codificada diretamente em Python usando o NumPy:
“cosine_similarity = np.dot(v1, v2) / (np.linalg.norm(v1) * np.linalg.norm(v2))”
Assim como as setas, a similaridade cosseno ajuda as organizações a se alinhar direcionalmente. Quer seja combinando resultados de pesquisa ou informando a tomada de decisão baseada em dados, a similaridade de cosseno pode fornecer insights poderosos e ajudar a personalizar experiências em vários casos de uso.
Para prosperar, as empresas devem utilizar os dados para conquistar a fidelidade do cliente, automatizar processos de negócios e inovar com soluções orientadas por IA.
Libere o valor dos dados empresariais com a IBM® Consulting, construindo uma organização orientada por insights, que proporciona vantagem comercial.
Apresentamos o Cognos Analytics 12.0, insights impulsionados por IA para maior eficiácia na tomada de decisão.