nDCG(歸一化折損累計增益) 是衡量排序質量的指標,常用于搜索引擎或推薦系統。核心思想是:排名越靠前的高質量結果,對整體評分的貢獻越大,但后續結果的貢獻會逐漸“打折”。最終通過對比實際排序與理想排序的得分,得到一個0到1之間的值(越接近1,排序越好)。
通俗解釋:
假設你搜索“蘋果”,搜索引擎返回5個結果。nDCG的作用是:
- 給高質量結果加分(比如相關度高的排在前面)。
- 給靠后的結果打折(比如第5名的結果即使相關,貢獻也變小)。
- 對比“實際排序”和“完美排序”的得分,最終給出一個0~1的評分(1表示完美)。
數值舉例(假設相關度分3檔:0不相關,1一般,2非常相關)
場景:
- 實際排序:結果的相關度依次為
[2, 1, 2, 0, 1]
- 理想排序(按相關度從高到低排列):
[2, 2, 1, 1, 0]
計算步驟:
-
計算DCG(實際排序的得分):
- 公式:每個結果的增益除以它的位置的對數值(位置從1開始)。
- 計算:
DCG = 2/log?(2) + 1/log?(3) + 2/log?(4) + 0/log?(5) + 1/log?(6)= 2/1 + 1/1.585 + 2/2 + 0 + 1/2.585≈ 2 + 0.63 + 1 + 0 + 0.39≈ 4.02
-
計算IDCG(理想排序的得分):
- 理想排序的DCG即為IDCG:
IDCG = 2/log?(2) + 2/log?(3) + 1/log?(4) + 1/log?(5) + 0/log?(6)= 2/1 + 2/1.585 + 1/2 + 1/2.322 + 0≈ 2 + 1.26 + 0.5 + 0.43≈ 4.19
- 理想排序的DCG即為IDCG:
-
歸一化得到nDCG:
nDCG = DCG / IDCG = 4.02 / 4.19 ≈ 0.96
結論:
- nDCG≈0.96,接近1,說明實際排序接近理想情況。
- 如果實際排序完全亂序(比如把不相關的結果排第一),nDCG會接近0。