Dari Vektor ke Embedding: Geometri di Balik Kemiripan

Bangun pemahaman intuitif tentang vektor, dot product, kemiripan kosinus, dan mengapa embedding mengubah makna menjadi geometri.

Bagikan artikel ini

Embedding merepresentasikan sebuah objek—kata, gambar, pengguna, atau dokumen—sebagai daftar angka. Daftar itu adalah sebuah vektor:

x=[x1,x2,,xn].\mathbf{x} = [x_1, x_2, \ldots, x_n].

Koordinat individual jarang memiliki label manusia yang sederhana. Yang penting adalah geometri yang diciptakan oleh banyak vektor secara bersama-sama.

Mulai dari arah

Misalkan dua vektor menunjuk ke arah yang hampir sama. Koordinatnya mungkin memiliki besar yang berbeda, tetapi keduanya tetap mengekspresikan pola yang serupa. Kemiripan kosinus mengukur kesesuaian arah tersebut:

cos(x,y)=xyx2y2.\operatorname{cos}(\mathbf{x}, \mathbf{y}) = \frac{\mathbf{x} \cdot \mathbf{y}} {\lVert \mathbf{x} \rVert_2\,\lVert \mathbf{y} \rVert_2}.

Pembilangnya adalah dot product. Penyebutnya menghilangkan pengaruh panjang.

Contoh kecil yang dikerjakan

Misalkan x=[1,2]\mathbf{x} = [1, 2] dan y=[2,4]\mathbf{y} = [2, 4]. Karena y=2x\mathbf{y} = 2\mathbf{x}, kedua vektor menunjuk tepat ke arah yang sama dan kemiripan kosinusnya adalah 11.

function dot(left, right) {
  return left.reduce((sum, value, index) => sum + value * right[index], 0);
}

Kode tersebut mencerminkan definisi matematika xy=ixiyi\mathbf{x}\cdot\mathbf{y}=\sum_i x_i y_i.

Mengapa embedding berguna

Training menata vektor sehingga hubungan yang berguna menjadi hubungan geometris. Karena itu, sistem pencarian dapat mengambil dokumen yang berdekatan; sistem rekomendasi dapat membandingkan pengguna dengan item; dan pengklasifikasi dapat menggambar batas di antara berbagai wilayah.

Gagasan pentingnya sederhana: embedding berguna ketika jarak atau arah mempertahankan hubungan yang kita pedulikan.