歸一化折損累積收益 是什麼?
Normalized Discounted Cumulative Gain:歸一化折損累積收益 的完整解釋
NDCG 是評估排序系統性能的重要指標。它基於相關性等級進行計算,強調靠前結果的重要性,廣泛應用於搜索引擎和推薦系統的評估。
核心概念
NDCG 的核心思想是:
收益(Gain):不同相關程度的文檔有不同的收益值(如高度相關給 3 分,中等相關給 2 分,略相關給 1 分)。
折損(Discount):靠後位置的文檔的收益應該被折損。常用的折損因子是
log2(position + 1),這樣排名越靠後,折損越大。累積(Cumulative):將所有文檔的折損收益相加,得到累積收益。
歸一化(Normalized):用最優排序的 DCG(理想情況)來除以實際的 DCG,得到 0-1 之間的歸一化值。
數學公式
累積折損收益(DCG):
DCG@p = rel1 + Σ(reli / log2(i + 1)), i = 2 to p
歸一化折損累積收益(NDCG):
NDCG@p = DCG@p / IDCG@p
其中 IDCG(理想 DCG)是在最優排序下的 DCG(所有相關文檔按相關度降序排列)。
運作原理
以一個例子說明 NDCG 的計算:
假設查詢返回 5 個結果,其相關度等級為:
- 位置 1:相關度 3(高度相關)
- 位置 2:相關度 2(中等相關)
- 位置 3:相關度 0(不相關)
- 位置 4:相關度 1(略相關)
- 位置 5:相關度 3(高度相關)
計算 DCG:
DCG = 3 + 2/log2(3) + 0/log2(4) + 1/log2(5) + 3/log2(6)
= 3 + 1.26 + 0 + 0.43 + 1.15
= 5.84
理想排序應該是 3, 3, 2, 1, 0,計算 IDCG:
IDCG = 3 + 3/log2(3) + 2/log2(4) + 1/log2(5) + 0/log2(6)
= 3 + 1.89 + 1 + 0.43 + 0
= 6.32
因此 NDCG = 5.84 / 6.32 = 0.92
實際應用
- 搜索引擎評估:Google、Bing 等搜索引擎使用 NDCG 評估排序質量
- 推薦系統:評估推薦結果的排序效果
- Learning to Rank:作為模型優化的目標函數
- 廣告競價系統:評估廣告的排序和展現效果
- 信息檢索競賽:TREC、Yandex 等競賽的評估指標
常見誤區
許多人認為 NDCG 中的「折損」意味著靠後的結果完全無價值,但實際上折損只是降低其權重,靠後的相關結果仍然對 NDCG 有貢獻。此外,NDCG 需要人工標註相關度等級,標註質量直接影響評估的有效性。