Similaridade de cosseno - Cosine similarity

Similaridade de cosseno é uma medida de similaridade entre dois vetores diferentes de zero de um espaço de produto interno . É definido como igual ao cosseno do ângulo entre eles, que também é o mesmo que o produto interno dos mesmos vetores normalizados para ambos terem comprimento 1. A partir da última definição, segue que a similaridade do cosseno depende apenas do ângulo entre os dois vetores diferentes de zero, mas não em suas magnitudes. A semelhança do cosseno é limitada no intervalo de qualquer ângulo. Por exemplo, dois vetores com a mesma orientação têm uma semelhança de cosseno de 1, dois vetores orientados em ângulo reto em relação um ao outro têm uma semelhança de 0 e dois vetores diametralmente opostos têm uma semelhança de -1. A similaridade do cosseno é usada principalmente no espaço positivo, onde o resultado é nitidamente delimitado . O nome deriva do termo "cosseno de direção": neste caso, os vetores unitários são maximamente "semelhantes" se forem paralelos e maximamente "diferentes" se forem ortogonais (perpendiculares). Isso é análogo ao cosseno, que é a unidade (valor máximo) quando os segmentos subtendem um ângulo zero e zero (não correlacionado) quando os segmentos são perpendiculares.

Esses limites se aplicam a qualquer número de dimensões, e a similaridade do cosseno é mais comumente usada em espaços positivos de alta dimensão. Por exemplo, na recuperação de informações e mineração de texto , cada termo é atribuído de forma nocional a uma dimensão diferente e um documento é caracterizado por um vetor em que o valor em cada dimensão corresponde ao número de vezes que o termo aparece no documento. A similaridade de cosseno, então, fornece uma medida útil de quão semelhantes dois documentos podem ser em termos de seu assunto.

A técnica também é usada para medir a coesão dentro de clusters na área de mineração de dados .

Uma vantagem da similaridade de cosseno é sua baixa complexidade , especialmente para vetores esparsos : apenas as dimensões diferentes de zero precisam ser consideradas.

Outros nomes de similaridade de cosseno são similaridade de Orchini e o coeficiente de congruência de Tucker ; A similaridade de Otsuka-Ochiai (veja abaixo) é a similaridade de cosseno aplicada a dados binários.

Definição

O cosseno de dois vetores diferentes de zero pode ser derivado usando a fórmula do produto escalar euclidiano :

Dados dois vetores de atributos, A e B , a similaridade do cosseno, cos (θ) , é representada usando um produto escalar e magnitude como

onde e são componentes do vetor e respectivamente.

A similaridade resultante varia de -1, significando exatamente o oposto, a 1, significando exatamente o mesmo, com 0 indicando ortogonalidade ou decorrelação , enquanto valores intermediários indicam similaridade ou dissimilaridade intermediária.

Para correspondência de texto , os vetores de atributo A e B são geralmente os vetores de frequência de termo dos documentos. A similaridade de cosseno pode ser vista como um método de normalizar o comprimento do documento durante a comparação.

No caso de recuperação de informação , a similaridade de cosseno de dois documentos variará de 0 a 1, uma vez que o termo frequências não pode ser negativo. Isso permanece verdadeiro ao usar pesos tf – idf . O ângulo entre dois vetores de frequência de termo não pode ser maior que 90 °.

Se os vetores de atributos são normalizados subtraindo as médias do vetor (por exemplo, ), a medida é chamada de similaridade cosseno centrada e é equivalente ao coeficiente de correlação de Pearson . Para um exemplo de centralização,

O termo distância do cosseno é usado para o complemento da similaridade do cosseno no espaço positivo, isto é

É importante notar, entretanto, que a distância do cosseno não é uma métrica de distância adequada , pois não tem a propriedade de desigualdade do triângulo - ou, mais formalmente, a desigualdade de Schwarz - e viola o axioma da coincidência; para reparar a propriedade da desigualdade do triângulo, mantendo a mesma ordem, é necessário converter para a distância angular.

Distância angular e similaridade

O ângulo normalizada, referido como distância angular , entre quaisquer dois vectores e é um formal de métrica de distância e pode ser calculada a partir da similaridade de cosseno. O complemento da métrica de distância angular pode então ser usado para definir a função de similaridade angular limitada entre 0 e 1, inclusive.

Quando os elementos do vetor podem ser positivos ou negativos:

Ou, se os elementos do vetor forem sempre positivos:

- distância euclidiana normalizada

Outra proxy efetiva para a distância cosseno pode ser obtida pela normalização dos vetores, seguida pela aplicação da distância euclidiana normal. Usando essa técnica, cada termo em cada vetor é primeiro dividido pela magnitude do vetor, resultando em um vetor de comprimento unitário. Então, é claro, a distância euclidiana sobre os pontos finais de quaisquer dois vetores é uma métrica adequada que dá a mesma ordem que a distância cosseno para qualquer comparação de vetores e, além disso, evita as operações trigonométricas potencialmente caras necessárias para produzir uma métrica. Uma vez que a normalização tenha ocorrido, o espaço vetorial pode ser usado com toda a gama de técnicas disponíveis para qualquer espaço euclidiano, notadamente técnicas padrão de redução de dimensionalidade. Essa distância de forma normalizada é usada principalmente em muitos algoritmos de aprendizado profundo.


Coeficiente de Otsuka-Ochiai

Na biologia, existe um conceito semelhante conhecido como coeficiente de Otsuka-Ochiai com o nome de Yanosuke Otsuka (também escrito como Ōtsuka, Ootsuka ou Otuka, japonês :大 塚 弥 之 助) e Akira Ochiai ( japonês :落 合 明), também conhecido como Ochiai- Coeficiente de Barkman ou Ochiai, que pode ser representado como:

Aqui, e são conjuntos , e é o número de elementos em . Se os conjuntos são representados como vetores de bits, o coeficiente de Otsuka-Ochiai pode ser visto como o mesmo que a similaridade do cosseno.

Em um livro recente, o coeficiente foi atribuído erroneamente a outro pesquisador japonês com o sobrenome Otsuka. A confusão surge porque em 1957 Akira Ochiai atribui o coeficiente apenas a Otsuka (sem primeiro nome mencionado), citando um artigo de Ikuso Hamai ( japonês :浜 井 生 三), que por sua vez cita o artigo original de 1936 de Yanosuke Otsuka.

Propriedades

A propriedade mais notável da similaridade de cosseno é que ela reflete uma comparação relativa, em vez de absoluta, das dimensões individuais do vetor. Para qualquer constante e vetor , os vetores e são maximamente semelhantes. A medida é, portanto, mais apropriada para dados em que a frequência é mais importante que os valores absolutos; notadamente, frequência de prazo em documentos. No entanto, métricas mais recentes com base na teoria da informação, como Jensen-Shannon , SED e Triangular Divergence, mostraram ter aprimorado a semântica em pelo menos alguns contextos.

A similaridade do cosseno está relacionada à distância euclidiana como segue. Denote a distância euclidiana pelo usual e observe que

por expansão . Quando A e B são normalizados para comprimento unitário, então esta expressão é igual a

A distância euclidiana é chamada de distância da corda (porque é o comprimento da corda no círculo unitário) e é a distância euclidiana entre os vetores que foram normalizados para a soma unitária dos valores quadrados dentro deles.

Distribuição nula: para dados que podem ser negativos ou positivos, a distribuição nula para similaridade de cosseno é a distribuição do produto escalar de dois vetores de unidade aleatórios independentes . Essa distribuição tem uma média de zero e uma variância de (onde é o número de dimensões) e, embora a distribuição seja limitada entre -1 e +1, à medida que cresce, a distribuição é cada vez mais bem aproximada pela distribuição normal . Outros tipos de dados, como fluxos de bits , que assumem apenas os valores 0 ou 1, a distribuição nula assume uma forma diferente e pode ter uma média diferente de zero.

Medida de cosseno suave

Um cosseno suave ou (similaridade "suave") entre dois vetores considera as semelhanças entre pares de recursos. A similaridade de cosseno tradicional considera as características do modelo de espaço vetorial (VSM) como independentes ou completamente diferentes, enquanto a medida de cosseno suave propõe considerar a similaridade de características em VSM, o que ajuda a generalizar o conceito de cosseno (e cosseno suave), bem como a ideia de similaridade (suave).

Por exemplo, no campo do processamento de linguagem natural (PNL), a semelhança entre os recursos é bastante intuitiva. Recursos como palavras, n -gramas ou n -gramas sintáticos podem ser bastante semelhantes, embora formalmente sejam considerados como recursos diferentes no VSM. Por exemplo, as palavras “play” e “game” são palavras diferentes e, portanto, mapeadas para pontos diferentes no VSM; no entanto, eles estão semanticamente relacionados. Em caso de n -grams ou sintáctica n -grams, Levenshtein distância pode ser aplicado (de facto, a distância Levenshtein pode ser aplicada a palavras bem).

Para calcular o cosseno suave, a matriz s é usada para indicar a similaridade entre os recursos. Ele pode ser calculado por meio da distância de Levenshtein, similaridade WordNet ou outras medidas de similaridade . Então, nós apenas multiplicamos por esta matriz.

Dados dois vetores de dimensão N e , a similaridade de cosseno suave é calculada da seguinte forma:

onde s ij = similaridade (recurso i , recurso j ) .

Se não houver similaridade entre os recursos ( s ii = 1 , s ij = 0 para ij ), a equação fornecida é equivalente à fórmula convencional de similaridade de cosseno.

A complexidade de tempo dessa medida é quadrática, o que a torna aplicável a tarefas do mundo real. Observe que a complexidade pode ser reduzida a subquadrática. Uma implementação eficiente dessa similaridade de cosseno suave está incluída na biblioteca de código aberto Gensim .

Veja também

Referências

links externos