Örnek sorular
Rag Reranking FusionZorluk 1
Reciprocal Rank Fusion (RRF), iki sıralanmış listeyi her dökümana score(d) = listeler üzerinden toplam 1/(k + rank_i(d)) skoru vererek birleştirir; rank_i(d) dökümanın o listedeki 1'den başlayan sıra pozisyonudur. k sabiti ne işe yarar?
- aHer listeden birleştirilebilecek maksimum döküman sayısını belirler.
- bÜst sıraların etkisini yumuşatır, çok küçük sıralarda skorun patlamasını önler.✓
- cBirleştirmeden önce BM25 skorlarını cosine similarity skoruna çevirir.
- dBir dökümanın tutulması için kaç listede aynı anda görünmesi gerektiğini tanımlar.
Açıklama:k, ters çevirmeden önce sıraya eklenir. k olmasaydı sıra 1 için 1/1=1.0 çıkardı — sıra 10'un (1/10=0.1) 10 katı, aşırı büyük bir skor. k (ör. 60) eklenince 1/61 vs 1/70 olur, göreli fark çok küçülür. Yani k, skor eğrisini sıralar arasında yumuşatır, bir listenin en tepesinin birleşik skora tamamen hakim olmasını engeller.
Rag Reranking FusionZorluk 2
Dense retrieval, D1 dökümanını 1. sıraya koyuyor. Keyword (BM25) retrieval aynı D1'i 2. sıraya koyuyor. k=60 ile RRF kullanılırsa D1'in birleşik skoru (score(d) = 1/(k+rank_dense) + 1/(k+rank_bm25)) nedir?
- aYaklaşık 0.0325 (1/61 + 1/62).✓
- bYaklaşık 0.0164 (sadece dense listenin katkısı, 1/61).
- cYaklaşık 1.5 (iki ham sıra pozisyonunun ortalaması).
- dYaklaşık 0.5 (sıra 1 ve sıra 2'nin ortalanıp [0,1]'e normalize edilmesi).
Açıklama:score(D1) = 1/(60+1) + 1/(60+2) = 1/61 + 1/62 = 0.016393... + 0.016129... = 0.032522..., yani yaklaşık 0.0325. RRF, dökümanın göründüğü her liste için bir terim toplar; ham sıraları ortalamaz, 1.5 veya 0.5'e yakın bir değer üretmez.
Rag Reranking FusionZorluk 3
Dense sıralaması: D1,D2,D3,D4,D5 (pozisyon 1-5). BM25 sıralaması: D3,D1,D5,D2,D4 (pozisyon 1-5). k=60 ile RRF kullanıldığında birleşik skorlar D1=0.032522, D3=0.032266, D2=0.031754, D5=0.031258, D4=0.031010 çıkıyor. Doğru birleşik sıralama (en yüksek skor önce) nedir?
- aD3, D1, D2, D4, D5 — çünkü D3 BM25'te 1. sıradadır, eşitlikte her zaman keyword-search kazananı öne geçer.
- bD1, D2, D3, D4, D5 — birleştirme, dense önce listelendiği için dense sıralamasını olduğu gibi korur.
- cD1, D3, D2, D5, D4 — D1'in sıraları (1,2) toplamı D3'ünkinden (3,1) az da olsa yüksek olduğu için D1 öne geçer.✓
- dD3, D5, D1, D2, D4 — D3 için en yüksek skoru ürettiği için BM25'in sıralaması doğrudan kullanılır.
Açıklama:Verilen skorları büyükten küçüğe sıralayınca: 0.032522 (D1) > 0.032266 (D3) > 0.031754 (D2) > 0.031258 (D5) > 0.031010 (D4). Yani birleşik sıra D1, D3, D2, D5, D4'tür. D3 BM25'te #1 olsa da, D1'in hem dense'te #1 hem BM25'te #2 olması (her iki listede de güçlü konum) D3'ün BM25'te #1 ama dense'te sadece #3 olmasından ufak farkla daha yüksek skor verir.
Rag Reranking FusionZorluk 3
Bir ekip, BM25 skorlarını (ham aralık kabaca 0-20, sınırsız) doğrudan cosine similarity skorlarıyla (aralık -1 ile 1) basit toplama ile birleştiriyor ve sonuçlar hangi retriever'ın ham sayıları daha büyük üretiyorsa onun baskın çıktığı bir görüntü veriyor. RRF bu başarısızlık modunu neden yaşamaz?
- aRRF önce BM25 skorlarını öğrenilmiş bir doğrusal eşleme ile cosine similarity'ye çevirir, sonra toplar.
- bRRF ham skorları bir kenara bırakır, yalnızca her dökümanın her listedeki sırasını kullanır, bu yüzden hiçbir retriever'ın ölçeği baskın olamaz.✓
- cRRF toplamadan önce her skoru min-max normalizasyon ile [0,1] aralığına sıkıştırır.
- dRRF yalnızca iki retriever zaten aynı ölçeği paylaşıyorsa çalışır, yani anlatılan senaryoda RRF de başarısız olurdu.
Açıklama:RRF'in formülü, 1/(k+rank), yalnızca sırayı (1., 2., 3. gibi tam sayı bir pozisyonu) alır, altta yatan skor değerini asla almaz. Her retrieval yöntemi skorlama ölçeği ne olursa olsun doğası gereği bir sıra üretir, bu yüzden RRF ölçek-uyuşmazlığı problemini tamamen atlar — ham BM25 veya cosine sayılarına hiç dokunmaz, dolayısıyla farklı aralıkları birleştirmeyi çarpıtamaz.
Rag Reranking FusionZorluk 2
Aynı iki sıralama kullanılarak D1'in D4'e göre birleşik skoru iki farklı k değerinde hesaplanıyor. k=1'de: D1=0.8333, D4=0.3667 (oran ~2.27x). k=60'ta: D1=0.0325, D4=0.0310 (oran ~1.05x). Bu, k'yi artırmanın etkisi hakkında ne gösterir?
- ak'yi artırmak RRF'in BM25'i tamamen görmezden gelip yalnızca dense retrieval'a dayanmasını sağlar.
- bk'yi artırmak her zaman hangi dökümanın birinci sırada biteceğini değiştirir.
- ck'yi artırmak birleşik skorları toplamı 1 olan gerçek olasılıklara çevirir.
- dk'yi artırmak sıralar arasındaki skor farklarını yassılaştırır, birleştirmeyi sıra farklarına daha az duyarlı yapar.✓
Açıklama:k=1'de sıra 1 ile sıra 5 arasındaki fark oransal olarak devasadır (2'ye bölmek vs 6'ya bölmek). k=60'ta her sıraya 60 eklemek aynı farkı 61'e vs 65'e bölmeye küçültür — çok daha küçük göreli fark. Yani büyük k, sıralar arasındaki skor yayılımını sıkıştırır (yassılaştırır); hangi retriever kullanıldığına dokunmaz, olasılık dağılımı üretmez ve bir sıralama değişikliğini garanti etmez.
Rag Reranking FusionZorluk 2
RRF, 1/(k+rank)'ı üç listenin tamamı üzerinden toplayarak 2 listeden 3 sıralanmış listeye (ör. dense, BM25 ve recency-boosted bir liste) genişletiliyor. k=60 ve sıralar: A=(1,2,2), B=(2,1,3), C=(3,4,1), D=(4,3,4) olduğunda hesaplanan toplamlar A=0.048652, B=0.048395, C=0.047891, D=0.047123 çıkıyor. Bu, RRF hakkında neyi doğrular?
- aRRF herhangi sayıda listeye genelleşir — liste başına bir ters-sıra teriminin toplamıdır.✓
- bRRF aynı anda tam olarak iki sıralanmış listeyi birleştirebilir; üçlü birleştirme RRF'i art arda iki kez çalıştırmayı gerektirir.
- cÜç listeyle, skorları iki-listeli RRF ile aynı sayısal aralıkta tutmak için k'nin 3'e bölünmesi gerekir.
- dÜçüncü bir liste eklemek her dökümanın skorunu her zaman orantılı olarak artırır, bu yüzden sıralama düzeni asla değişmez.
Açıklama:score(d) = sum_i 1/(k+rank_i(d)), kaç sıralanmış liste verilmişse onun üzerinden toplam olarak tanımlanır — formülde ikiyle sınırlayan bir şey yoktur. Burada A, her üç listede de güçlü konumlara (1,2,2) sahip olduğu için 0.048652 ile kazanır; formül ve ortaya çıkan sıra, RRF'in değişiklik yapılmadan N listeye doğal olarak ölçeklendiğini doğrular.