İnceleme modu açık. Kesik çizgili öğeler bilinçli seçilmiş etkileşimlerdir.

← Blog

Doğru ya da Yanlış Değil: Alakanın Dereceleri

Önceki bölümde alaka ikili bir karardı: bir sonuç ya doğru ya yanlıştı. Ama gerçekte alaka derecelidir. Kusursuz bir cevap ile zar zor işe yarayan bir cevap ikisi de "ilgili" diye aynı kutuya girince, değerli bir bilgiyi çöpe atarız. Bu bölümde o ikili gözlüğü kırıyoruz: dereceli alaka, sıralamanın değeri ve bu ikisini birleştiren metriğin kralı nDCG. Sonunda göreceğiz ki bir öneri sisteminin RELATED / WEAK / UNRELATED etiketleri, aslında yirmi yıllık bir literatür fikrinin sade bir uygulaması.

 ·  ~24 dk okuma  ·  İnteraktif

Seri · 2/3 Öneriyi Ölçmek üçlemesi:  Precision & Recall  →  Dereceli Alaka & nDCG  →  Hakem Olarak LLM
Xiaohei, sonuç kartlarını giderek yükselen dört basamaklı bir merdivene (0, 1, 2, 3) yerleştiriyor; turuncu ok basamaklar boyunca yükseliyor
Görselin işi: İlgili/ilgisiz diye ikiye bölmek yerine, alakayı bir merdivene yerleştirmek: alakasız (0), zayıf (1), ilgili (2), çok ilgili (3). Dereceli alaka, kusursuz cevabı zar zor işe yarayandan ayırır.
İçindekiler İkili alakanın sınırı Alakanın dereceleri Sıra da değer taşır CG → DCG → nDCG İdealin inceliği Kuzen metrikler Etiketler nereden gelir nDCG'nin sınırları Karneye uygulamak Nereden başlamalı Sonuç

İkili alakanın sınırı

Önceki bölümün dünyasında her sonuç ikiye ayrılıyordu: ilgili ya da ilgisiz. Precision ve recall bu ikili yargının üstüne kuruluydu; kaç tane ilgili sonuç buldun diye sayıyorlardı. Ama bu sayım gizli bir varsayım yapar: bütün "ilgili" sonuçlar eşit değerdedir. Oysa değil.

Bir örnek bunu anında gösterir. "Ayak bileği burkulması nasıl tedavi edilir" diye arıyorsun ve üç sayfa geliyor:

  • A: bir doktorun yazdığı, adım adım fizyoterapi rehberi. Altın.
  • B: birinin ayak bileğinden bir kez bahsettiği bir forum gönderisi. Zayıf.
  • C: ayak bileği anatomisini anlatan, ama tedaviye hiç girmeyen bir sayfa. Konu dışı.

İkili gözlükle bakarsan, üçü de "ayak bileğiyle ilgili" olduğu için hepsine "ilgili" diyebilirsin, ve A ile B karnede aynı puanı alır. Ama A kusursuz, B zar zor, C neredeyse alakasız. Kusursuz bir cevap ile zar zor işe yarayan bir cevap aynı puanı almamalı.

Xiaohei büyük bir baskı presiyle farklı yükseklikteki iki bloğu (biri 3, biri 1) eziyor; presten sonra ikisi de aynı yassı 1 dilimine dönüşüyor, kırmızı ok kaybolan yüksekliği gösteriyor
Görselin işi: İkili gözlüğün kaybı. "Çok ilgili" (3) ile "zayıf" (1) aynı tek "ilgili" damgasına ezilince, değerli bir bilgi (kırmızı) çöpe gider.

Dereceli alaka tam bunu düzeltir: A'ya 3, B'ye 1, C'ye 0 dersin. Bu fikrin literatürdeki adı dereceli alaka yargıları (graded relevance judgments), ve bütün modern sıralama metriklerinin (özellikle nDCG'nin) altında o yatar. Üstelik bu seçim kozmetik değil: bir araştırma, ikili alakadan dereceli alakaya geçmenin, hangi sistemin "en iyi" göründüğünü, iki insan değerlendiricinin birbiriyle anlaşmazlığından daha çok değiştirebildiğini buldu.1

Alakanın dereceleri

Dereceli bir alaka yargısı, her (sorgu, sonuç) çiftine küçük ve sıralı bir kümeden bir not verir: tipik olarak 0 (alakasız) ile bir tavan (mesela 3 = kusursuz) arasında. Bu senin icadın değil; sektörün en büyük arama sistemleri tam olarak böyle çalışır:2

Üretimdeki gerçek dereceli alaka ölçekleri (yüksekten düşüğe)
SistemÖlçekSayısal
Google · "Needs Met"
arama kalitesi değerlendiricileri
Fully Meets / Highly Meets / Moderately Meets / Slightly Meets / Fails to Meetkaydırıcı, 5 durak
Bing · HRSPerfect / Excellent / Good / Fair / Bad4 / 3 / 2 / 1 / 0
TREC Deep LearningPerfectly relevant / Highly relevant / Related / Irrelevant3 / 2 / 1 / 0
Järvelin & Kekäläinen (2002)
nDCG'yi tanımlayan makale
Highly / Fairly / Marginally relevant / Non-relevant3 / 2 / 1 / 0
Bir öneri sistemi
bu serinin örneği
RELATED / WEAK / UNRELATED2 / 1 / 0

İki ayrıntıya dikkat. Birincisi, Google sonuçları gerçek bir kaydırıcı (slider) üzerinde puanlatır; "ilgili mi değil mi" değil, "ne kadar ihtiyacı karşılıyor". Alakanın dereceli olduğunun bundan açık kanıtı olamaz. İkincisi, TREC'in ölçeğinde 1. seviyenin adı birebir "Related"; yani senin karnenideki RELATED/WEAK/UNRELATED, akademik ölçeklerin neredeyse aynısı. Kaç seviye olmalı? Buna kesin cevap yok ("iki mi, üç mü, yedi mi?"); çoğu modern koleksiyon 4 ya da 5 seviyede karar kılar.1

Şimdi sen dene: bir sorgu ve bir sonuç vereceğim, sen derecelendir. Sonra "değerlendirici kılavuzunun" cevabını göstereyim.

Bu sonuç ne kadar ilgili?

Sorgu
Gelen sonuç

Sıra da değer taşır

Xiaohei uzun bir merdivenin yanında; en üst basamaktaki kart büyük ve net (RANK 1), aşağı indikçe kartlar küçülüyor (RANK 10); üstteki turuncu ayraç yalnızca ilk üç basamağı SEEN olarak işaretliyor
Görselin işi: Sıra da değer taşır. 1. sıradaki sonuç tam değer alır; aşağıdakiler küçülür, çünkü kullanıcı kabaca yalnızca ilk üç sonuca bakar. nDCG bu konum indirimini içine katar.

Dereceli alaka, içgörünün yalnızca yarısı. İkinci yarı şu: bir sonucun değeri, nerede durduğuna da bağlıdır. 1. sıradaki kusursuz bir cevap, aynı cevabın 10. sıraya gömülmüş halinden çok daha değerlidir, çünkü kullanıcı oraya kadar nadiren iner. nDCG'yi tanımlayan makale iki ilkeyi yan yana koyar: çok ilgili belgeler az ilgili olanlardan daha değerlidir, ve bir belge sıralamada ne kadar aşağıdaysa kullanıcı için o kadar değersizdir, çünkü görülme ihtimali o kadar düşüktür.3

Bu havada bir laf değil; göz izleme çalışmaları kullanıcıların kabaca yarısının yalnızca ilk üç sonuca baktığını gösteriyor.4 İşte bu yüzden iyi bir metrik, aşağıdaki sıralara doğru sonucun değerini indirimli (discounted) saymalı. Bu indirim genelde sıranın logaritmasıyla yapılır, ve şöyle görünür:

1,00 0,63 0,50 1 2 3 4 5 6 7 8 9 10 sıra (konum)
Görselin işi: konum çarpanı 1 / log₂(sıra+1). 1. sıra tam değer (×1,00) alır; 2. sıra ×0,63'e, 3. sıra ×0,50'ye düşer, sonra yavaşça sönümlenir. Aynı sonuç, aşağıda durdukça daha az "kıymet" taşır.

CG → DCG → nDCG, adım adım

Şimdi bu iki fikri (dereceli not + konum indirimi) tek bir sayıda birleştirelim. Üç basamakta yükseliyoruz; her basamak bir öncekinin eksiğini kapatıyor.

1. CG: notları topla (ama sırayı görmez)

Cumulative Gain, ilk birkaç sonucun notlarının toplamıdır. CG = not₁ + not₂ + ... Basit ama ölümcül bir kusuru var: sırayı umursamaz. İki sonucun yerini değiştirsen CG değişmez. 1. sıradaki harika sonuç ile 6. sıradaki aynı sonuç, CG'ye göre eşittir. Yanlış.

2. DCG: her notu konumuyla indir

Discounted Cumulative Gain, her notu konumunun logaritmasına böler: DCG = Σ not / log₂(sıra+1). Payda öyle seçilmiştir ki 1. sıra tam değer alır (log₂2 = 1), 2. sıra 1,58'e, 3. sıra 2'ye bölünür. Makalenin sezgisi şuydu: bir belge 1024. sırada bile yüz değerinin onda birini alsın; logaritmanın tabanını oynatarak indirimi sertleştirir ya da yumuşatırsın.3 (Sık kullanılan bir varyant, notu önce 2^not − 1'e çevirir; bu "üstel kazanç" çok-ilgili belgeleri çok daha sert ödüllendirir. Google ve Bing bunu kullanır.5)

3. nDCG: ideale böl, [0,1]'e sıkıştır

DCG'nin ham değeri sorgular arası kıyaslanamaz: çok ilgili belgesi olan bir sorgu, kusursuz sıralansa bile, az belgesi olandan daha büyük DCG toplar. Çözüm: o sorgu için mümkün olan en iyi sıralamanın DCG'sini hesapla (buna IDCG, ideal DCG denir) ve ona böl. nDCG = DCG / IDCG. Artık her sorgu 0 ile 1 arasında, "mümkün olan en iyinin yüzde kaçını verdin" diye okunan ortak bir cetvelde.3

Lafı bırakıp kuralım. Aşağıdaki hesaplayıcıda 6 sonuç var, her birinin bir notu (0-3). Oklarla sırayı değiştir, ya da nota tıklayıp değerini değiştir; CG, DCG, IDCG ve nDCG anında güncellensin. "İdeale sırala"ya basınca nDCG'nin neden 1,00 olduğunu gör.

nDCG'yi kendin kur

İkili görünümü açıp dene: notlar 0/1'e inince "çok ilgili" ile "zayıf" arasındaki fark kaybolur ve skor körleşir. İşte bu, 1. bölümün ikili dünyasının attığı bilgi.

İdealin bir inceliği

nDCG'yi ilk kez kuranların en sık takıldığı yer şudur: IDCG, sadece senin döndürdüğün sonuçlardan değil, o sorgu için ilgili bilinen tüm belgelerden kurulur. Yani senin hiç getirmediğin ama aslında çok ilgili olan bir belge varsa, o da ideal sıralamaya girer ve tavanı yükseltir.

Wikipedia'nın klasik örneği bunu güzel anlatır. Aynı altı sonuç (notlar 3, 2, 3, 0, 1, 2) için, eğer ilgili sadece bu altısıysa nDCG ≈ 0,96 çıkar. Ama dışarıda, sistemin kaçırdığı iki mükemmel belge daha (not 3 ve not 2) varsa, ideal sıralama yükselir ve aynı çıktının nDCG'si 0,785'e düşer.6 Çelişki değil; ders bu: nDCG, "elindeki her şey göz önüne alındığında yapabileceğin en iyisi"ne göre puan verir.

Yan yana iki blok kule: solda biraz dağınık ve kısa olan MINE, sağda düzgün ve uzun olan IDEAL; Xiaohei iki kulenin tepeleri arasına bir mezura geriyor, aralarında turuncu bölme işareti
Görselin işi: nDCG'nin kalbi. Kendi sıralamanı, mümkün olan en iyi (ideal) sıralamaya bölersin. 1,0 = kusursuz; aradaki fark, ne kadar geride olduğun.

Pratik teşhis

Bu incelik, karnede çok işine yarar. nDCG yüksek ama kullanıcılar şikâyetçiyse, muhtemelen bir kapsama (coverage) sorunun var: iyi öğeler havuza hiç girmiyor, yani IDCG olduğundan düşük hesaplanıyor (bkz. 1. bölümdeki recall). nDCG düşükse, RELATED öğeler WEAK/UNRELATED'lerin altına gömülüyor demektir: bir sıralama hatası. Aynı sayı, iki farklı arıza için iki farklı yöne işaret eder.

Kuzen metrikler

nDCG tek başına değil; her biri kullanıcının davranışına dair farklı bir hikâye anlatan bir aile var. Hepsini bilmen gerekmez ama haritayı görmek faydalı:

Sıralama metrikleri: her biri bir kullanıcı modeli
MetrikTek cümlelik kullanıcı modeliDereceli?
CG"İlk k'yı okurum; değerleri toplarım." (Sırayı görmez.)Evet
DCG"Aşağıdaki sonuçlar daha az değerli, sabit bir log indirimiyle."Evet
nDCGDCG'yi mümkün olan en iyiye böler; [0,1] cetveli.Evet
ERR
Expected Reciprocal Rank
"Beni tatmin eden ilk sonuçta durur, gerisine bakmam." (Yukarıyı çok ödüllendirir.)Evet
RBP
Rank-Biased Precision
"Bir sonraki sonuca p olasılığıyla geçerim." (p = sabırsızlık ayarı.)Evet
MRR"Sadece ilk doğru sonucun yeri önemli."Hayır (ikili)
MAPTüm doğru sonuçlar üzerinden ortalama precision (1. bölüm).Hayır (ikili)

İki kuzen özellikle öğretici. ERR, DCG'nin gerçek bir kusurunu düzeltir: DCG, 5. sıradaki belgeye, üstündekiler harika da olsa berbat da olsa aynı indirimi verir. Oysa 1. sıra seni zaten tatmin ettiyse 5. sıraya hiç inmezsin. ERR, bu "ilk tatminde dur" davranışını modeller, ve bu yüzden skoru büyük ölçüde "tepe sonucu tutturdun mu" sorusuna bağlıdır.7 RBP ise bir "sabır" parametresiyle sabırlı araştırmacıyla sabırsız kullanıcıyı ayırır. Hepsinin ortak dersi: bir metrik seçmek, aslında hayalî kullanıcının nasıl davrandığına dair bir varsayım seçmektir.

Etiketler nereden gelir?

Bütün bu güzel matematiğin gizli bir bağımlılığı var: birinin o notları (0, 1, 2, 3) önceden vermiş olması gerekiyor. Bu "altın etiketler" üç yoldan gelir:8

  • İnsan değerlendiriciler: uzmanlar, yazılı kılavuzlara göre (Google'ınki 180+ sayfa) puan verir. Doğru ama pahalı, yavaş ve değerlendiriciden değerlendiriciye değişken.
  • Tıklama modelleri (örtük): tıklama, kalış süresi, geri dönme oranı gibi davranışlardan çıkarılır. Ölçeklenir ama gürültülü ve konum yanlısıdır (1. sıraya tıklamak "iyiydi" değil "ilk sıradaydı" demek olabilir).
  • Yapay zekâ ile (yeni): bir LLM, çiftleri ucuza derecelendirir. Hâlâ insan gözetimi ister.

Burada bir uyarı: insan yargıları "altın" desek de sandığından öznel. Manning'in ders kitabının keskin cümlesiyle, "bir insan, bir belgenin alakasını güvenilir biçimde rapor eden bir cihaz değildir; insanlar ve alaka yargıları oldukça kendine has ve değişkendir". Ama bu çözülmesi gereken bir sorun değil; sonuçta bir arama sisteminin başarısı, tam da bu kendine has insanları tatmin etmesine bağlıdır.1 İki değerlendiricinin ne kadar anlaştığını ölçmek için kappa (κ) istatistiği kullanılır: ham anlaşma oranını şanstan arındırır. Ve iyi haber: değerlendiriciler tek tek yargılarda anlaşmasa bile, hangi sistemin daha iyi olduğu konusunda genelde aynı sonuca varırlar.

Üçüncü bölümün kapısı

O üçüncü yol, yani "bir LLM çiftleri derecelendirir", masum bir dipnot değil; bu serinin finali. İnsan değerlendirme pahalı ve yavaşken, ya etiketleri başka bir yapay zekâ koyarsa? İşte LLM-as-a-Judge budur, ve son bölümün tam konusu. nDCG'nin ihtiyaç duyduğu dereceli etiketleri, ground-truth'u görmeyen (GT-blind) bir hakem modeli üretebilir, ve sonra o hakemi, 1. bölümün precision/recall'ıyla sınayabiliriz.

nDCG'nin sınırları

nDCG güçlü ama kusursuz değil; dürüst bir karne onun da kör noktalarını bilir:

  • Logaritma tabanı "efsanesi". Tabanı değiştirmek tüm indirimleri sabit bir çarpanla çarpar; nDCG'de bu çarpan hem payda hem payda olduğu için sadeleşir, yani nDCG değeri değişmez. Ama ham DCG'yi değiştirir. Taban 2 bir gelenek (yorumlanabilir), zorunluluk değil.6
  • Kazanç fonksiyonu cevabı değiştirir. Doğrusal not ile üstel 2^not−1, aynı veride farklı nDCG verir (hesaplayıcıda dene). Tek bir "doğru" yok; bu bir modelleme kararı. Orijinal makale bile 0-1-1-1'den 0-1-10-100'e kadar farklı ağırlıklar denedi (kusursuz bir belge, az ilgili olanın 100 katı).3
  • Çöpü cezalandırmaz. nDCG, listede kötü belge bulunmasını cezalandırmaz; ilgili olanları doğru sıralarsan, aralara giren alakasızlar skoru fazla düşürmez.6
  • Eksik yargılar. Döndürdüğün bir belgeyi hiç puanlamadıysan, onu skorlayamazsın; ve havuzlama (pooling) bu boşlukları kaçınılmaz kılar.
  • Doğrudan optimize edilemez. Tüm sıralama metrikleri gibi nDCG de basamaklıdır (türevi ya sıfır ya tanımsız), o yüzden öğrenen sistemler onun pürüzsüz bir vekilini optimize eder.

Karneye uygulamak: RELATED / WEAK / UNRELATED

Şimdi her şeyi birleştirip serinin çıkış noktasına dönelim. Üç seviyeli RELATED / WEAK / UNRELATED şeması, aslında zaten dereceli bir alaka ölçeği kurmuş. Tek yapman gereken eşlemeyi açık etmek:

Karne etiketi → dereceli not
Öneri etiketiNotTREC karşılığıBing karşılığı
RELATED2Highly relevantGood / Excellent
WEAK1RelatedFair
UNRELATED0IrrelevantBad

Bu eşlemeyle öneri sistemini doğrudan nDCG ile ölçebilirsin. Diyelim bir not için ilk 6 önerin şu notları taşıyor: [2, 1, 2, 0, 1, 2] (yani RELATED, WEAK, RELATED, UNRELATED, WEAK, RELATED). Elle kuralım:

CG = 2+1+2+0+1+2 = 8 DCG = 2/1 + 1/1,58 + 2/2 + 0 + 1/2,58 + 2/2,81 = 2 + 0,63 + 1 + 0 + 0,39 + 0,71 = 4,73 İdeal sıra: [2,2,2,1,1,0] IDCG = 2 + 1,26 + 1 + 0,43 + 0,39 + 0 = 5,08 nDCG = 4,73 / 5,08 ≈ 0,93

Yani bu öneri listesi, aynı önerilerin mümkün olan en iyi sıralamasının yaklaşık %93'ü kadar iyi diziliyor. Tek bir sayıda hem "ne kadar ilgili" (dereceli not) hem "doğru sırada mı" (konum indirimi) bilgisi var. Google'ın ve Bing'in arama kalitesini ölçen aynı makine, senin üç kutuluk mütevazı önericini de ölçer; çünkü RELATED/WEAK/UNRELATED, dereceli alakanın ta kendisidir.

Ve 1. bölümle bağı unutma: graded precision@k de hesaplayabilirsin (ilk k'nın ortalama notu), ama nDCG'nin üstünlüğü sırayı da hesaba katmasıdır. İkili precision "ilk 5'in kaçı ilgili" der; nDCG "ilk 5 ne kadar ve ne kadar iyi sırada ilgili" der.

Nereden başlamalı

1 · Çekirdek makale

Cumulated Gain-based Evaluation of IR Techniques · Järvelin & Kekäläinen (2002). DCG/nDCG'yi tanımlayan, 5.000'den fazla atıflı makale. İki ilke, log indirimi, normalizasyon: hepsi burada.

2 · Ders kitabı

Introduction to Information Retrieval · Manning vd. (8. bölüm). nDCG'nin "ikili olmayan alaka için tasarlandığı", kappa ve değerlendirici değişkenliği.

3 · En sezgisel

Evidently AI · nDCG ve Shaped.ai blogları: CG→DCG→IDCG→nDCG'nin örnekli, adım adım anlatımı.

+ Gerçek ölçek

Google Search Quality Rater Guidelines (ücretsiz PDF): "Needs Met" kaydırıcısı ve değerlendirici dünyasının nasıl çalıştığı.

Sonuç

Birinci bölüm bize "doğru mu, yanlış mı" diye sormayı öğretti. İkinci bölüm o soruyu inceltti: ne kadar doğru, ve nerede? Dereceli alaka, kusursuz bir cevabı zar zor işe yarayan bir cevaptan ayırmamızı sağlar; konum indirimi, doğru cevabı yukarı taşımayı ödüllendirir; nDCG ikisini tek, kıyaslanabilir bir sayıda birleştirir.

İkili dünya "buldun mu" diye sorar; dereceli dünya "ne kadar iyi, ne kadar yukarıda" diye sorar. İkincisi her zaman daha çok şey bilir.

Ama her iki bölümün de altında çözülmemiş bir soru duruyor: bütün bu precision, recall ve nDCG hesapları, birinin önceden "doğru" etiketini koymuş olmasına dayanıyor. O etiketi kim koyacak? İnsan pahalı ve yavaş. Modern ve güçlü bir cevap: başka bir yapay zekâ. Son bölümde ground-truth'u görmeyen bir LLM hakemi devreye sokuyoruz, onun yanlılıklarını teşhir ediyoruz, ve en güzeli, hakemin kendisini 1. ve 2. bölümün araçlarıyla yargılıyoruz.

Seri · Sonraki bölüm

3/3 · Hakem Olarak Yapay Zekâ: Etiketi Kim Koyar?  —  LLM-as-a-Judge, GT-blind puanlama, pozisyon ve uzunluk yanlılıkları, ve hakemi doğrulamak için karneyi hakemin kendisine çevirmek.