Kosinüs Benzerliği
- İngilizcesi
- Cosine Similarity
- Okunuşu
- kosayn simileriti
Kısaca
Kosinüs benzerliği, iki vektörün benzerliğini aralarındaki açıyla, -1 ile 1 arasında ölçer; semantik aramada embedding'leri karşılaştırmanın olağan yoludur.
Kosinüs benzerliği nedir?
Kosinüs benzerliği iki vektörün yönünü karşılaştırır, uzunluklarını görmezden gelir. Aralarındaki açının kosinüsüdür: aynı yöne baktıklarında 1, dik açıda ve ilgisiz olduklarında 0, zıt yönlere baktıklarında -1 olur. Vektörlerin nokta çarpımının, uzunluklarının çarpımına bölünmesiyle hesaplanır.
Önemi embedding'lerden gelir. Bir model bir cümleyi, bir görüntüyü ya da bir ürünü bir vektöre dönüştürür ve anlamı benzer olan şeyler benzer yönleri gösterir. Bir sorunun embedding'ini saklanan belge embedding'leriyle kosinüs benzerliği üzerinden karşılaştırmak en yakın eşleşmeleri bulur; semantik arama, öneriler ve RAG'deki getirme genellikle böyle çalışır.
Pek çok embedding modeli uzunluğu 1 olan vektörler döndürür. Bunlar için kosinüs benzerliği düpedüz nokta çarpımıdır; vektör veritabanları da bunu çok hızlı hesaplayabilir. Bazı araçların kullandığı kosinüs uzaklığı ise 1 eksi benzerliktir; yani küçük olan daha yakındır.
Önemli noktalar
- Kosinüs benzerliği, iki vektör arasındaki açının kosinüsüdür; -1 ile 1 arasındadır.
- Yönü karşılaştırır, uzunluğu görmezden gelir.
- Semantik aramada ve RAG'de embedding'leri karşılaştırmanın standart yoludur.
- Uzunluğu 1 olan vektörlerde nokta çarpımına eşittir.
Örnek
function cosineSimilarity(a: number[], b: number[]): number {
let dot = 0, normA = 0, normB = 0;
for (let i = 0; i < a.length; i++) {
dot += a[i] * b[i];
normA += a[i] * a[i];
normB += b[i] * b[i];
}
return dot / (Math.sqrt(normA) * Math.sqrt(normB));
}
cosineSimilarity([1, 2, 3], [2, 4, 6]); // 1: same direction
cosineSimilarity([1, 0], [0, 1]); // 0: unrelatedSık sorulan sorular
Neden noktalar arasındaki uzaklık yerine kosinüs benzerliği kullanılır?
Çünkü embedding'lerde anlamı yön taşır, uzunluk ise çoğu zaman metnin uzunluğu gibi şeyleri yansıtır. Kosinüs benzerliği uzunluğu görmezden geldiği için aynı konudaki kısa ve uzun bir metin yine benzer çıkar.
İyi bir kosinüs benzerliği puanı nedir?
Evrensel bir eşik yoktur: embedding modeline ve veriye bağlıdır. Ekipler genellikle ilgili ve ilgisiz eşleşmelerin nerede ayrıldığını görmek için gerçek örneklere bakar ve eşiği buna göre seçer.
İlgili sayfalar
- EmbeddingYapay Zekâ ve Makine Öğrenmesi, s. 18Embedding, metin, görüntü ya da başka verilerin anlamını vektör denen bir sayı listesiyle temsil eden ve benzer öğeleri birbirine yakın konumlandıran yapıdır.
- Vektör VeritabanıYapay Zekâ ve Makine Öğrenmesi, s. 47Vektör veritabanı, embedding'leri saklayıp bir sorguya en benzer vektörleri hızla bulmak için tasarlanmış, anlamsal arama ve RAG'in dayandığı veritabanıdır.
- Anlamsal AramaYapay Zekâ ve Makine Öğrenmesi, s. 2Anlamsal arama, sonuçları birebir anahtar kelimelere değil anlama göre, genellikle sorgu ve belge embedding'lerini karşılaştırarak bulan arama tekniğidir.
- RAGYapay Zekâ ve Makine Öğrenmesi, s. 38RAG, bir LLM'in soru anında getirilen ilgili belgelere dayanarak yanıt vermesini sağlayan ve yanıtları güncel, özel verilere dayandıran bir tekniktir.
- Makine ÖğrenmesiYapay Zekâ ve Makine Öğrenmesi, s. 30Makine öğrenmesi, bilgisayarların elle yazılmış kurallar yerine verilerdeki örüntüleri öğrenerek tahmin yaptığı bir yapay zekâ dalıdır.
- Doğal Dil İşlemeYapay Zekâ ve Makine Öğrenmesi, s. 16Doğal dil işleme, bilgisayarlara insan dilini metin ya da konuşma biçiminde okumayı, anlamayı ve üretmeyi öğreten yapay zekâ alanıdır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin