搜尋評價指標 NDCG

2022-04-03 09:14:41 字數 1906 閱讀 2513

概念

ndcg,normalized discounted cumulative gain 直接翻譯為歸一化折損累計增益,可能有些晦澀,沒關係下面重點來解釋一下這個評價指標。這個指標通常是用來衡量和評價搜尋結果演算法(注意這裡維基百科中提到了還有推薦演算法,但是我個人覺得不太適合推薦演算法,後面我會給我出我的解釋)。dcg的兩個思想:

1、高關聯度的結果比一般關聯度的結果更影響最終的指標得分;

2、有高關聯度的結果出現在更靠前的位置的時候,指標會越高;

累計增益(cg)

reli 代表i這個位置上的相關度。

舉例:假設搜尋「籃球」結果,最理想的結果是:b1、b2、 b3。而出現的結果是 b3、b1、b2的話,cg的值是沒有變化的,因此需要下面的dcg。

折損累計增益(dcg)

dcg, discounted 的cg,就是在每乙個cg的結果上處以乙個折損值,為什麼要這麼做呢?目的就是為了讓排名越靠前的結果越能影響最後的結果。假設排序越往後,價值越低。到第i個位置的時候,它的價值是 1/log2(i+1),那麼第i個結果產生的效益就是 reli * 1/log2(i+1),所以:

百科中寫到後一種更多用於工業。當然相關性值為二進位制時,即 reli在,二者結果是一樣的。當然cg相關性不止是兩個,可以是實數的形式。

歸一化折損累計增益(ndcg)

ndcg, normalized 的dcg,由於搜尋結果隨著檢索詞的不同,返回的數量是不一致的,而dcg是乙個累加的值,沒法針對兩個不同的搜尋結果進行比較,因此需要歸一化處理,這裡是處以idcg。

idcg為理想情況下最大的dcg值。

其中 |rel| 表示,結果按照相關性從大到小的順序排序,取前p個結果組成的集合。也就是按照最優的方式對結果進行排序。

實際的例子

假設搜尋回來的5個結果,其相關性分數分別是 3、2、3、0、1、2

那麼 cg = 3+2+3+0+1+2

ireli

log2(i+1)

reli /log2(i+1)13

1322

1.58  

1.2633

21.540

2.3205

12.58

0.3862

2.80.71

所以 dcg  = 3+1.26+1.5+0+0.38+0.71 = 6.86

接下來我們歸一化,歸一化需要先結算 idcg,假如我們實際召回了8個物品,除了上面的6個,還有兩個結果,假設第7個相關性為3,第8個相關性為0。那麼在理想情況下的相關性分數排序應該是:3、3、3、2、2、1、0、0。計算idcg@6:

ireli

log2(i+1)

reli /log2(i+1)13

1323

1.58

1.8933

21.542

2.32

0.8652

2.58

0.7761

2.80.35

所以idcg = 3+1.89+1.5+0.86+0.77+0.35 = 8.37

so 最終 ndcg@6 = 6.86/8.37 = 81.96%

搜尋評價指標 NDCG

概念 ndcg,normalized discounted cumulative gain 直接翻譯為歸一化折損累計增益,可能有些晦澀,沒關係下面重點來解釋一下這個評價指標。這個指標通常是用來衡量和評價搜尋結果演算法 注意這裡維基百科中提到了還有推薦演算法,但是我個人覺得不太適合推薦演算法,後面我會...

搜尋評價指標 NDCG

本文出自胖喵 的部落格 原文 概念 ndcg,normalized discounted cumulative gain 直接翻譯為歸一化折損累計增益,可能有些晦澀,沒關係下面重點來解釋一下這個評價指標。這個指標通常是用來衡量和評價搜尋結果演算法 注意這裡維基百科中提到了還有推薦演算法,但是我個人覺...

NDCG評價指標講解

normalized discounted cumulative gain,即ndcg,常用於作為對rank的評價指標,當我們通過模型得出某些元素的ranking的時候,便可以通過ndcg來測評這個rank的準確度,同樣的演算法還包括map,mrr等,這裡只講解ndcg。我們通過乙個例項來說明一下這...