Kesamaan dan jarak kosinus

Eval

Kesamaan dan jarak kosinus

まとめ
  • Kesamaan kosinus mengukur kedekatan vektor melalui sudut di antara keduanya.
  • Hitung kesamaan/jarak kosinus di Python untuk embedding atau vektor TF-IDF yang jarang.
  • Perhatikan normalisasi, penanganan vektor nol, dan catatan praktis lainnya.

1. Definisi dan intuisi #

Untuk \(\mathbf{a}, \mathbf{b}\):

$$ \cos(\theta) = \frac{\mathbf{a} \cdot \mathbf{b}}{|\mathbf{a}| , |\mathbf{b}|} $$

  • Nilai mendekati 1: arah sama (kemiripan tinggi).
  • Mendekati 0: ortogonal (tidak berkorelasi).
  • Mendekati –1: arah berlawanan.
  • Jarak kosinus: \(d = 1 - \cos(\theta)\).

Karena magnitudo ternormalisasi, kosinus fokus pada arah vektor.


2. Contoh Python #

import numpy as np
from sklearn.metrics.pairwise import cosine_similarity, cosine_distances

embeddings = np.array(
    [
        [0.1, 0.4, 0.5],
        [0.2, 0.2, 0.6],
        [0.6, 0.3, 0.1],
    ]
)

sim_matrix = cosine_similarity(embeddings)
dist_matrix = cosine_distances(embeddings)

print(sim_matrix.round(3))
print(dist_matrix.round(3))

Untuk pasangan tunggal, gunakan scipy.spatial.distance.cosine. Matriks jarang bekerja efisien dengan kesamaan kosinus di scikit-learn.


3. Karakteristik utama #

  • Invarian terhadap skala: cocok untuk TF-IDF atau embedding dengan magnitudo berbeda.
  • Bersahabat dengan sparsity: stabil meski sebagian besar entri nol.
  • Komponen negatif: interpretasi perlu hati-hati; mungkin butuh sentralisasi atau normalisasi.

4. Penerapan #

  • Pencarian & rekomendasi: rank item berdasarkan kesamaan kosinus terhadap kueri atau profil pengguna.
  • Clustering topik: gunakan jarak kosinus pada k-means (atau spherical k-means) untuk mengelompokkan teks.
  • Evaluasi embedding: bandingkan distribusi kesamaan untuk pasangan positif/negatif.

5. Catatan praktis #

  • Kesamaan kosinus tidak terdefinisi untuk vektor nol; buang atau tambahkan epsilon kecil.
  • Jarak kosinus bisa melanggar ketidaksetaraan segitiga; pastikan cocok dengan algoritme turunannya.
  • Kombinasikan dengan standardisasi atau reduksi dimensi bila orientasi sangat sensitif terhadap skala fitur.

Kesamaan kosinus adalah ukuran sederhana namun kuat untuk membandingkan arah vektor; perhatikan asumsi metrik dan keberadaan vektor nol saat dipakai di pipeline produksi.