Podobieństwo cosinus kontra iloczyn iloczynu jako miary odległości

41

Wygląda na to, że podobieństwo cosinus dwóch cech jest po prostu iloczynem skalowanym przez iloczyn wielkości. Kiedy podobieństwo cosinus stanowi lepszą miarę odległości niż iloczyn kropkowy? Czy to znaczy, że produkt kropkowy i podobieństwo cosinus mają różne mocne i słabe strony w różnych sytuacjach?

ahoffer
źródło
Zauważ, że żaden z tych parametrów nie jest właściwym wskaźnikiem odległości, nawet jeśli przekształcisz je w wartość, która jest mała, gdy punkty są „podobne”. To może, ale nie musi mieć znaczenia dla twojego przypadku użycia.
Sean Owen,

Odpowiedzi:

41

Myśl geometrycznie. Podobieństwo cosinusa dba tylko o różnicę kątów, podczas gdy iloczyn kropkowy dba o kąt i wielkość. Jeśli znormalizujesz swoje dane, aby mieć tę samą wielkość, oba są nierozróżnialne. Czasami pożądane jest zignorowanie wielkości, stąd podobieństwo kosinusowe jest przyjemne, ale jeśli wielkość odgrywa rolę, iloczyn kropkowy byłby lepszy jako miara podobieństwa. Pamiętaj, że żaden z nich nie jest „wskaźnikiem odległości”.

Memming
źródło
3
„metryka odległości” jest powszechnie stosowana w literaturze jako przeciwieństwo „podobieństwa”: im większa odległość, tym mniejsze podobieństwo, ale w gruncie rzeczy reprezentują tę samą ideę.
zaprzyjaźnij się
1
@ffriend Masz na myśli „odmienność”. Metryka ma precyzyjną definicję.
Memming
8

Masz rację, podobieństwo kosinusowe ma wiele wspólnego z iloczynem kropkowym wektorów. Rzeczywiście jest to iloczyn skalowany według wielkości. Ze względu na skalowanie jest znormalizowany między 0 a 1. CS jest preferowany, ponieważ bierze pod uwagę zmienność danych i względne częstotliwości funkcji. Z drugiej strony, zwykły produkt kropkowy jest nieco „tańszy” (pod względem złożoności i implementacji).

sobach
źródło
Dlaczego sam produkt kropkowy (odpowiednik braku normalizacji) nie uwzględnia danych i częstotliwości funkcji? Nie wiem, czy to jest różnica.
Sean Owen,
2
Być może nie byłem jasny. Mówiłem o różnorodności danych. Np. Mamy dwie pary dokumentów. W obrębie każdej pary dokumentów są identyczne, ale dokumenty pary 1 są krótsze niż dokumenty pary 2. I obliczamy podobieństwo w obrębie każdej pary. Produkt kropkowy dałby różne liczby, chociaż w obu przypadkach oczekuje się maksymalnego oszacowania podobieństwa.
sobach
5

Chciałbym dodać jeszcze jeden wymiar do odpowiedzi podanych powyżej. Zwykle używamy podobieństwa cosinus z dużym tekstem, ponieważ nie zaleca się stosowania macierzy odległości w akapitach danych. A także, jeśli chcesz, aby twój klaster był szeroki, zwykle wybierasz podobieństwo kosinusowe, ponieważ rejestruje ono ogólne podobieństwo.

Na przykład, jeśli masz teksty o długości maksymalnie dwóch lub trzech słów, wydaje mi się, że użycie podobieństwa cosinus nie osiąga precyzji, jaką osiąga się za pomocą pomiaru odległości.

vimal chandra Gorijala
źródło
4

Jest doskonały porównanie wspólnych miar podobieństwa wewnętrzna produktem opartych tutaj .

W szczególności podobieństwo kosinusowe jest znormalizowane, aby mieściło się w zakresie [0,1], w przeciwieństwie do iloczynu kropkowego, który może być dowolną liczbą rzeczywistą, ale, jak wszyscy mówią, będzie to wymagało ignorowania wielkości wektorów. Osobiście uważam, że to dobra rzecz. Myślę o wielkości jako strukturze wewnętrznej (wewnątrz wektora), a kącie między wektorami jako strukturze zewnętrznej (między wektorami). Są to różne rzeczy i (moim zdaniem) często najlepiej je analizować osobno. Nie wyobrażam sobie sytuacji, w której wolałbym obliczać produkty wewnętrzne niż obliczać podobieństwa cosinusowe i po prostu porównywać wielkości.

Shadowtalker
źródło
„Cosinus Podobieństwo jest znormalizowane, aby mieściło się w zakresie [0,1]” Nadal ma iloczyn iloczynu w liczniku, myślę, że zakres powinien zamiast tego wynosić [-1, 1]?
Kari,
2

x,||x||2=x,x=1ϕx,y=cosϕϕ=arccosx,y

Wizualnie wszystkie twoje dane żyją w sferze jednostkowej. Użycie iloczynu punktowego jako odległości da ci odległość akordową, ale jeśli użyjesz tej odległości cosinusowej, odpowiada ona długości ścieżki między dwoma punktami na kuli. Oznacza to, że jeśli chcesz uzyskać średnią z dwóch punktów, powinieneś wziąć punkt pośredni na tej ścieżce (geodezyjny) zamiast punktu środkowego uzyskanego z „średniej arytmetycznej / iloczynu / geometrii euklidesowej”, ponieważ ten punkt nie żyć na kuli (a więc zasadniczo nie ten sam obiekt)!

mikrofon
źródło
1

Jak zauważyli inni, nie są to „metryki odległości”, ponieważ nie spełniają kryteriów metryki. Zamiast tego powiedz „miara odległości”.

W każdym razie, co mierzysz i dlaczego? Informacje te pomogą nam udzielić bardziej użytecznej odpowiedzi na twoją sytuację.

sintax
źródło
Zawsze zastanawiałem się nad różnicą między miarami a wskaźnikami. Według rządu (NIST): „... Używamy miary dla bardziej konkretnych lub obiektywnych atrybutów i metryk dla bardziej abstrakcyjnych, wyższych lub nieco subiektywnych atrybutów. ... Solidność, jakość (jak w„ wysokiej jakości ”), a efektywność to ważne atrybuty, które czujemy w sposób konsekwentny, ale trudno je obiektywnie zdefiniować. Zatem są to wskaźniki ”. Ale kontekstem jest inżynieria oprogramowania, a nie matematyka. Jakie masz zdanie?
ahoffer
1
Wikipedia była bardziej pomocna. odległość (x, y) musi być nieujemna; d (x, y) = 0 tylko jeśli x = y; d (x, y) = d (y, x); i spełnić nierówność trójkąta - d (x, z) ≤ d (x, y) + d (y, z)
ahoffer
1
To wszystko: metryka musi spełniać pewne aksjomaty, a miara jest mniej ściśle określona.
sintax,