Dua vektor embedding dapat mengarah hampir sama tetapi memiliki magnitudo yang sangat berbeda. Dot product mentah merespons kedua sifat tersebut. Normalisasi L2 menghapus komponen magnitudo, sehingga operasi dot product yang sama berubah menjadi perbandingan arah.

Perubahan ini bukan sekadar penyesuaian numerik. Objektif retrieval ikut berubah ketika norm vektor membawa informasi atau berbeda antar-item.

Dot product memuat komponen magnitudo

Untuk vektor nonzero (x) dan (y),

[ x \cdot y = |x|_2 |y|_2 \cos(\theta), ]

dengan (\theta) sebagai sudut di antara keduanya. Skor besar dapat berasal dari keselarasan arah yang dekat, norm yang besar, atau kombinasi keduanya.

Jika vektor query tetap dan kandidat memiliki norm berbeda, ranking berdasarkan dot product mentah dapat mengutamakan kandidat dengan keselarasan sudut lebih lemah tetapi norm lebih besar. Perilaku ini langsung berasal dari perkalian di atas dan tidak bergantung pada sifat model embedding tertentu.

Perbedaan tersebut relevan saat layanan embedding mendokumentasikan cosine similarity sementara index dikonfigurasi memakai inner product. Kedua aturan scoring hanya ekuivalen ketika syarat normalisasinya terpenuhi.

Vektor unit membuat inner product sama dengan cosine similarity

Definisikan vektor ternormalisasi

[ \hat{x} = \frac{x}{|x|_2}, \qquad \hat{y} = \frac{y}{|y|_2}. ]

Untuk (x) dan (y) nonzero, kedua vektor hasil memiliki norm satu. Dot product keduanya menjadi

[ \hat{x} \cdot \hat{y} = \frac{x \cdot y}{|x|_2|y|_2} = \cos(\theta). ]

Setelah normalisasi, mengalikan salah satu vektor awal dengan skalar positif tidak mengubah representasi hasil normalisasinya. Vektor dengan magnitudo awal dua kali lebih besar akan berada pada titik yang sama di unit sphere.

Operasi ini juga menetapkan rentang skor vektor unit bernilai real menjadi ([-1, 1]). Skor mendekati 1 menunjukkan arah yang berdekatan, 0 menunjukkan ortogonalitas, dan -1 menunjukkan arah berlawanan. Pernyataan geometris tersebut tidak menentukan makna semantik dengan sendirinya; model embedding yang menentukan representasi arah.

Ekuivalensi ranking bergantung pada vektor yang dinormalisasi

Untuk query nonzero tetap (q), ranking cosine terhadap kandidat (x_i) memakai

[ \frac{q \cdot x_i}{|q|_2|x_i|_2}. ]

Karena (|q|_2) konstan untuk semua kandidat, normalisasi pada vektor kandidat saja sudah cukup agar ranking dot product mentah terhadap query tersebut sama dengan ranking cosine. Menormalisasi query juga mengalikan seluruh skor kandidat dengan faktor positif yang sama, sehingga urutannya tetap dan skornya berada pada skala cosine.

Batasnya berubah ketika vektor dipakai dalam peran lain. Jika vektor tersimpan juga dapat menjadi query, atau skor dari query berbeda dibandingkan secara langsung, normalisasi yang konsisten biasanya diperlukan agar semantik skor tetap sesuai. Implementasi perlu menyatakan apakah normalisasi dilakukan saat pembuatan embedding, ingestion, indexing, pemrosesan query, atau di dalam operator similarity.

Norm nol dan sangat kecil memerlukan penanganan eksplisit

Ekspresi (x/|x|_2) tidak terdefinisi untuk vektor nol. Kode produksi karena itu memerlukan kebijakan, bukan pembagian tanpa syarat.

Salah satu pilihan adalah menolak vektor dengan norm nol. Pilihan lain adalah mempertahankan representasi khusus dan mendefinisikan perilaku scoring-nya secara terpisah. Menambahkan epsilon kecil pada denominator mencegah pembagian dengan nol secara numerik, tetapi operasi matematisnya berubah untuk vektor dengan norm yang sebanding dengan epsilon tersebut.

Vektor dengan norm sangat kecil juga memperlihatkan efek finite precision. Pembagian komponen kecil dengan norm kecil dapat memperbesar error pembulatan atau kuantisasi pada arah hasil. Threshold yang relevan bergantung pada tipe numerik dan implementasi, sehingga nilainya merupakan keputusan runtime, bukan konstanta universal.

Normalisasi dapat menghapus sinyal yang tersimpan dalam norm

Normalisasi L2 memang ditujukan untuk menghapus magnitudo. Hal itu sesuai ketika similarity hanya dimaksudkan bergantung pada arah. Pilihan tersebut tidak otomatis sesuai jika model atau sistem downstream memberi makna berguna pada norm.

Misalkan dua vektor kandidat memiliki arah sama dengan norm 2 dan 5. Bentuk ternormalisasinya identik. Perbedaan yang hanya dibawa oleh magnitudo awal hilang setelah normalisasi.

Karena itu, memindahkan index yang sudah ada dari inner product mentah ke inner product ternormalisasi merupakan migrasi semantik, bukan sekadar transformasi penyimpanan. Threshold, distribusi skor, logika reranking, dan hasil evaluasi sebelumnya mungkin tidak lagi merepresentasikan aturan keputusan yang sama.

Jarak pada unit sphere berhubungan langsung dengan skor cosine

Untuk vektor unit (\hat{x}) dan (\hat{y}),

[ |\hat{x}-\hat{y}|_2^2 = 2 - 2(\hat{x}\cdot\hat{y}). ]

Squared Euclidean distance dengan demikian merupakan transformasi monoton dari cosine similarity pada vektor yang sudah dinormalisasi menjadi unit. Ranking berdasarkan squared Euclidean distance yang semakin kecil menghasilkan urutan yang sama dengan ranking cosine similarity yang semakin besar, dengan asumsi vektor identik dan tie numerik ditangani secara konsisten.

Ekuivalensi ini tidak berlaku tanpa perubahan pada vektor sembarang yang belum dinormalisasi. Saat magnitudo berbeda, Euclidean distance, dot product, dan cosine similarity menyatakan objektif geometris yang berbeda.

Batas implementasinya jelas: normalisasi mengubah ruang tempat scoring dilakukan. Ketika vektor dibatasi pada panjang unit, inner product, ranking cosine, dan ranking squared Euclidean memiliki hubungan yang erat. Tanpa batasan itu, menganggap ketiga metrik dapat saling menggantikan akan mengubah kandidat yang diprioritaskan sistem retrieval.