Ranking Evaluation: Normalized Discounted Cumulative Gain(NDCG)

Beytullah Ali Göyem
Deep Learning Türkiye
4 min readMay 1, 2020
resim kaynağı: microsoft.com

Bu yazıda, hakkında Türkçe bir kaynağa rastlamadığım; bilgi getiriminde sıralama kalitesinin bir ölçüsü olan Normalized Discounted Cumulative Gain(NDCG) kavramından -nedir ve niçin kullanılır?- teorik olarak bahsedeceğim.

Biz kullanıcılar, istediğimiz bilgiye oldukça hızlı ve kolay erişmek isteriz. Örnek verecek olursak, biriken yüzlerce e-posta arasından geçtiğimiz aylarda dersin hocası tarafından bize ulaştırılan ders notlarını bulmak belki biraz uğraştırıcı olabilir. Bu noktada mail arama kutusu bize yardımcı olur ve düzenli yapıya sahip olmayan kaynaktan, istediğimiz bilgiyi daha pratik bir şekilde elde edebiliriz.

Bir arama motoru, bir üst kümeden kullanıcının isteğiyle en alakalı olduğunu düşündüğü bir dizi belge getirir. Bu anlamda, arama motoru bir bilgi getirimi(information retrieval) yapmaktadır.

basit bir bilgi getirimi örneği

Bir arama/öneri motoru geliştirilirken karşılaşılan temel zorluklardan biri, etkisini yani ne kadar başarılı bir şekilde bilgiyi bize getirdiğini değerlendirmektir.

İşte Normalized Discounted Cumulative Gain(NDCG), bize bu noktada yardımcı olur ve böylece bir arama motorunun sıralama kalitesini değerlendirebiliriz. Ancak NDCG’i anlayabilmek için öncüllerini anlamamız gerekir: Cumulative Gain(CG) ve Discounted Cumulative Gain(DCG).

Bu arada, iki temel varsayımı da hatırdan çıkarmamak gerekir:

  1. Getirilen belge, istenilen ile ne kadar alakalı ise o kadar faydalıdır.
  2. İlgili bir belgenin sıralanan konumu ne kadar düşük olursa, incelenmesi daha az olası olacağından, kullanıcı için o kadar az faydalı olur.

Cumulative Gain(CG)

Arama motorunun yaptığı her önerinin, istenilen ile alaka düzeyine bağlı olarak bir geçerlilik puanı vardır. CG, bir öneri kümesindeki tüm alaka düzeyi puanlarının toplamıdır.

örnek

Dezavantajı: Burada arama sonuçlarının sırası önemli değildir, bu nedenle Discounted Cumulative Gain(DCG) daha kesin bir ölçüm olarak kullanılır.👇

Discounted Cumulative Gain(DCG)

• sıralama kalitesinin bir ölçüsüdür.

• bilgi getiriminde, arama algoritmalarının etkinliğini ölçmek için kullanılır.

Yukarıdaki örnekte alaka düzeyi puanları büyükten küçüğe sıralandığı için B Setinin, A Setinden daha iyi olduğunu biliyoruz; ancak CG’e göre her iki set de eşit derecede iyi.

! Burada ‘B’ Setinin ayrıca ideal sıralandığını da belirteyim; ileride bu ayrıntı bize lazım olacak.

DCG’i hesaplamak için kullandığımız formül, ‘ilgili sıra+1'in logaritmasına bölerek alaka düzeyi puanının indirilmesini içerir. ‘Discounted’ buradan geliyor.

Alternatif olarak, aşağıdaki formül kullanılarak da hesaplanabilir:

Bu ikinci formül, daha yüksek alaka düzeyine sahip belge daha düşük sıralanırsa uygundur; birinci formüle kıyasla daha ağır cezalandırır. Uygulamaya bağlı olarak, DCG ve NDCG’i hesaplamak için formüllerden birini tercih edebilirsiniz. Alaka düzeyi puanları ikili(0, 1) ise, iki formül de aynı sonucu verir.

‘Set B’, ‘Set A’dan daha kaliteli bir sıralamadır.

Normalized Discounted Cumulative Gain(NDCG)

DCG, sıralama önemini dikkate aldığı için başlangıçta iyi bir önlem gibi görünüyor; ancak hâlâ yeterli değil. Çeşitli faktörlere bağlı olarak, sunulan öneri sayısı her kullanıcı için değişebilir. DCG de buna göre değişecektir. DCG’in normalleştirilmesi, ölçümün farklı uzunluklarda olduğu sıralama listeleri ile karşılaştırılmasına olanak tanır.

Yukarıdaki formülde iDCG, ideal DCG hesabını temsil etmektedir. Örneğe geri dönecek olursak, ‘Set B’nin ideal sıralandığını görüyoruz. İdeal sıralama, alaka düzeyi puanı büyükten küçüğe olacak şekilde olan sıralamadır. ‘Set B’nin DCG hesabı, aynı zamanda ideal DCG(iDCG) hesabıdır.

Son olarak kullanıcıların test setine sunduğu önerilerin bir NDCG ortalamasını hesaplamak, bir arama/öneri motorunu değerlendirmek için çözümdür.

Bu yazımda, hakkında Türkçe bir kaynağa rastlamadığım; bilgi getiriminde sıralama kalitesinin bir ölçüsü olan Normalized Discounted Cumulative Gain(NDCG) kavramını ele aldım. Tabii bunun dışında bilgi sahibi olabileceğiniz Precision@K(P@K), Mean Average Precision(MAP), Mean Reciprocal Rank(MRR) gibi başka önlemler de var.

Okuduğunuz için teşekkürler. Umarım bu yazı konu hakkında bilgi edinmenize yardımcı olmuştur. Gönderiyi beğendiyseniz ve yazıların devamının gelmesini istiyorsanız, bu yazıya alkış vermeniz 👏 ekstra motivasyon için bana yardımcı olacaktır. Soru ve önerilerinize her zaman açığım. Bu gönderiyi başta Twitter, Linkedin olmak üzere sosyal medya hesaplarınızda paylaşabilirsiniz, böylece öğrenmeye açık veya konu hakkında araştırma yapan fakat benim gibi Türkçe kaynak bulamayan birine yardımcı olmuş olursunuz. Sağlıcakla kalın…

Kaynak: Towards Data Science

Thanks to Pranay Chandekar

--

--

Beytullah Ali Göyem
Deep Learning Türkiye

Öğrenci / Araştırdığım konuda Türkçe kaynak bulamaz isem, o Türkçe kaynağı ben oluşturuyorum ve burada paylaşıyorum.