關於NDCG,wiki給點解釋很詳細,這里我談談我的理解。
NDCG(Normalized discounted cumulative gain):是用來衡量排序質量的指標。
其中一種計算公式如下:
先從理解CG,DCG入手。CG(cumulative gain),累積獲得,指的是網頁gain的累加。例如:
其是個不斷累加的值,gain可以使自己定義的一種獲得,用來衡量網頁的相關性程度,上圖中的gain定義如下:
DCG(Discounted Cumulative Gain),Discounted的factor為:
那么,NDCG就是被IDEA DCG規格化的值,即DCG/IDCG。
NDCG如何理解?對於搜索引擎,本質是用戶搜一個query,引擎返回一個結果列表,那么如何衡量這個結果列表的好壞?我能夠想到的是:
- 我們希望把最相關的結果放到排名最靠前的位置,因為大部分用戶都是從上往下閱讀的,那么最相關的在前面可以最大程度減少用戶的閱讀時間;
- 我們希望整個列表的結果盡可能的和query相關;
第一個條件的滿足是首要的,而第二個條件的加入是保證整體結果質量,而這兩個條件都體現在了NDCG里面,首先,計算NDCG,需要計算Gain,這個gain即是每條結果的質量的定義,NDCG把所有結果相加最終相加保證,整體質量越高的列表NDCG值越大。同時,Discounted的設計使得越靠前的結果權重越大,這保證了第一條,更相關的排在靠前的結果會有更大的NDCG值。從這兩點看,以NDCG為優化目標,保證了搜索引擎在返回結果總體質量好的情況下,把更高質量結果排在更前面。
NDCG提供了一種計算方式,當我們有其他排名類似的需求的時候,NDCG都是值得參考的,其Gain以及Discounted的計算的變化可以產生很多其他有價值的metrics
參考文獻:
http://en.wikipedia.org/wiki/NDCG