Cosine vs Euclidean: kenapa embedding membandingkan sudut

Embedding adalah deretan angka yang mewakili makna sebuah kata, kalimat, atau dokumen, dan di sini digambar sebagai panah. Sistem pencarian menemukan item terkait dengan membandingkan embedding. Dua cara umum untuk membandingkannya bisa berbeda pendapat tentang item mana yang paling dekat.

2 menit baca · Lensa ML
panjang 126°2.061.80A (4, 1)B (2, 0.5)C (3, 2.5)
dari A kejarakcosinejarak pada panjang 1
B2.061.0000.00
C1.800.9010.45
Kotak: vector yang lebih dekat menurut tiap ukuran. Titik bercincin: tiap vector dibagi panjangnya.
  1. Jarak Euclidean adalah jarak garis lurus antara dua ujung panah, √((a₁ − b₁)² + (a₂ − b₂)²). Cosine similarity adalah kosinus sudut antara dua panah, a·b / (|a| |b|). Di sini a·b mengalikan elemen yang bersesuaian lalu menjumlahkan hasilnya, dan |a| adalah panjang panah. Nilai cosine berkisar dari 1 untuk arah yang sama, melalui 0 pada sudut siku-siku, sampai −1 untuk arah berlawanan.
  2. B adalah A dengan setengah panjangnya, jadi arahnya sama persis. Menurut jarak, B berjarak 2,06 dari A. C hanya berjarak 1,80 dari A, jadi jarak Euclidean menganggap C lebih dekat. Namun, arah C berbeda 26° dari A. Cosine-nya dengan A adalah 0,901, sedangkan milik B adalah 1,000, nilai tertinggi yang mungkin. Menurut sudut, B yang lebih dekat.
  3. Panjang bisa merekam hal selain makna. Pada vector hitungan kata, yang tiap elemennya menghitung satu kata, dokumen yang ditempel dua kali menggandakan semua hitungan: panjangnya dua kali lipat, arahnya sama, topiknya sama. Pada word2vec, metode word embedding klasik, panjang vector sebuah kata berubah menurut seberapa sering kata itu muncul saat training, sedangkan arahnya membawa maknanya. Banyak model embedding dilatih agar cosine similarity mencerminkan makna, itu sebabnya pencarian embedding biasanya mengurutkan menurut sudut.

Intinya

Normalisasi, yaitu membagi setiap vector dengan panjangnya, menempatkan semua vector pada lingkaran putus-putus dengan panjang 1 dan mengakhiri perbedaan itu. A dan B mendarat di titik yang sama, jarak 0, dan C berjarak 0,45. Untuk vector dengan panjang 1, kuadrat jarak sama dengan 2 − 2 × cosine, jadi kedua ukuran mengurutkan tetangga dengan cara yang sama. Pakai jarak Euclidean mentah ketika panjang memang bermakna, seperti pada pengukuran fisik.

Pelajari lebih dalam · interaktif

Norm dan Metrik Jarak

Di langkah tentang cosine similarity, geser sudut vector 1 dan vector 2, lalu lihat cos(θ) turun saat sudutnya membuka.

Buka penjelasan interaktif

Bites lainnya

Referensi