A semelhança de cosseno é idêntica à distância euclidiana normalizada em l2?


27

Idêntico significado, que irá produzir resultados idênticos para uma similaridade entre um Classificação do vetor u e um conjunto de vectores V .

Eu tenho um modelo de espaço vetorial que tem como medida a distância (distância euclidiana, semelhança de cosseno) e a técnica de normalização (nenhuma, l1, l2). Pelo meu entendimento, os resultados das configurações [cosseno, nenhum] devem ser idênticos ou pelo menos realmente muito semelhantes a [euclidiano, l2], mas não são.

Na verdade, há uma boa chance de o sistema ainda estar com erros - ou tenho algo crítico errado sobre vetores?

edit: esqueci de mencionar que os vetores são baseados na contagem de palavras de documentos em um corpus. Dado um documento de consulta (que também transformamos em um vetor de contagem de palavras), desejo encontrar o documento do meu corpus que seja o mais semelhante a ele.

Apenas calcular sua distância euclidiana é uma medida direta, mas no tipo de tarefa em que trabalho, a similaridade de cosseno é frequentemente preferida como um indicador de similaridade, porque vetores que apenas diferem em comprimento ainda são considerados iguais. O documento com a menor semelhança distância / cosseno é considerado o mais semelhante.


Tudo depende do que o seu "modelo de espaço vetorial" faz com essas distâncias. Você poderia ser mais específico sobre o que o modelo faz?
whuber

Desculpe, às vezes é difícil sair da minha cabeça. Eu adicionei uma especificação.
Arne

Você ainda não descreve nenhum modelo. De fato, a única pista que você deixou em relação ao "tipo de tarefa em que você trabalha" é a tag nlp - mas é tão ampla que não ajuda muito. O que eu espero que você possa fornecer, para que as pessoas possam entender a pergunta e fornecer boas respostas, é informação suficiente para descobrir exatamente como você está usando sua medida de distância e como ela determina quais serão os "resultados".
whuber

stats.stackexchange.com/a/36158/3277 . Qualquer semelhança angular do tipo sscp é conversível na sua distância euclidiana correspondente.
ttnphns

Respostas:


31

Para vetores normalizados , temos o quadrado Euclidiano a distância é proporcional à distância do cosseno , Ou seja, mesmo que você normalizasse seus dados e seu algoritmo fosse invariável ao dimensionamento das distâncias, você ainda esperaria diferenças por causa do quadrado.x , y | | x | | 2 = | | y | | 2 = 1 , | | x - y | | 2 22x,y

||x||2=||y||2=1 1,
||x-y||22=(x-y)(x-y)=xx-2xy+yy=2-2xy=2-2porque(x,y)

Isso teria influência na classificação? Ou seja, se eu classificar um número de vetores 'v_i em V' pela distância do cosseno a um vetor 'u', recebo uma ordem específica para eles. Classificar esses mesmos vetores com l_2 distância euclidiana normalizada produziria a mesma ordem?
Arne

2
iirc, como o quadrado é uma transformação monótica (para números positivos), ele não pode alterar a ordem de uma sequência classificada por comprimento.
Arne

5
Você está certo, se tudo o que você faz é classificar os vetores pela sua distância para , o uso da distância do cosseno deve dar o mesmo resultado que a distância euclidiana (para vetores normalizados). você
Lucas

Obrigado, você tem uma fonte citável para esta conexão?
Arne

11
Bem, acho que 'Linear Alebra I' deve ser suficiente;) obrigado novamente pela compreensão!
Arne

5

A similaridade padrão do cosseno é definida da seguinte forma em um espaço euclidiano, assumindo vetores de coluna e : Isso reduz ao produto interno padrão se seus vetores forem normalizados para a norma da unidade (em l2). Na mineração de texto, esse tipo de normalização não é inédito, mas eu não consideraria esse o padrão.v cos ( u , v ) = u , vvocêv

porque(você,v)=você,v__você____v__=vocêTv__você____v__[-1 1,1 1].
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.