與你生活密切相關的排序算法的評估指標

讀完分類與迴歸算法的評估指標之後,你已經知道了機器學習中分類與迴歸算法的評估指標。在這篇給大家介紹一些機器學習中排序算法相關的評估指標。

生活中的排序問題

直接說排序這個名詞很多人可能覺得很陌生,但實際上它與你的生活密切相關。這裏我們以搜索功能來說明下。

比如你想學習機器學習,但是不知道如何入門,但是你想到有谷歌爸爸,所以就在谷歌中輸入了關鍵詞:機器學習入門,接下來你就看到了一個結果頁,結果頁裏包含了一大堆與入門機器學習相關的鏈接。

可以看到,每個鏈接對應的內容不一樣,位置也分前後,對於你來說,你當然是希望前幾個鏈接的內容就能解決你的問題,這樣你就不用花時間去查看靠後的鏈接,甚至不用去翻頁,也就是說你希望越靠前的位置的內容與你搜索的關鍵詞越相關。

換個角度來想,你所看到的這麼多鏈接其實就是一個模型產生的排序列表,這個列表裏的每個元素就是一個鏈接。這裏的鏈接用行話來說就是“文檔” 。那麼,如何衡量這個排序列表的好壞呢?也就是說每個文檔到底排在第幾位纔是比較合適的呢?接下來我們來看幾個衡量排序質量的評估指標。

MAP

MAP(Mean Average Precision,平均準確率均值)計算時分爲兩部分,第一部分是計算一次查詢後的排序結果的平均準確率(AP),第二部分是計算總體的平均準確率均值(MAP)。一般評估MAP時會限定要評估的排序結果個數,也就是會指定要選取的前K個文檔。

其中,AP@K表示計算前K個結果的平均準確率,M表示每次排序的文檔總數,P(k)表示前k個結果的準確率,

。rel(k)表示第k個結果是否是相關文檔,相關取值爲1,不相關取值爲0。

上面得到的就是一次查詢的平均準確率,接下來對多次查詢的AP求出均值即可得到MAP。

其中,Q表示查詢的次數,

表示第q次查詢的AP@K的結果。

MRR

MAP沒有考慮位置的影響,這裏介紹一個新的評估指標:MRR(Mean Reciprocal Rank,平均排序倒數)計算時先求出每一個查詢的第一個相關文檔位置的倒數,然後將所有倒數值求平均。

假如說有三次查詢,每次查詢的前5條結果的相關性如下:

query1

query2

query3

0

1

0

1

0

0

0

0

1

1

0

0

其中,0表示文檔不相關,1表示文檔相關。

可以看到,第一次查詢中第一個相關文檔的順序是2,第二次查詢中第一個相關文檔的順序是1,第三次查詢中第一個相關文檔的順序是3,那麼

NDCG

NDCG(Normalized Discounted Cumulative Gain,歸一化折損累積增益)是另一個衡量排序質量的評估指標。MAP衡量相關性時只考慮兩種情況:1和0,而NDCG可以將相關性分爲更多的等級,正式介紹NDCG之前,先來介紹下CG(Cummulative Gain,累積增益)。

其中,CG@K表示計算前K個結果的累計增益,

表示第k個位置的文檔的相關性得分。

CG的一個缺點是沒有考慮不同位置的影響,我們總是希望相關性高的結果排在前面,如果相關性高的結果排在後面,我們應該進行懲罰,所以引入了DCG(Discounted Cummulative Gain,折扣累積增益),也就是對排名靠後的結果進行“打折處理”。

其中,分子表示相關性越高,DCG越大,分母表示位置越靠後,DCG越小。

雖然DCG考慮了位置的影響,但是DCG也會受到結果數量的影響,爲了使得具有可比性,需要對DCG進行歸一化處理,這樣就得到了NDCG。

其中,

表示前k個排序返回結果集能得到的最佳排序結果,即當越相關的文檔排放的位置越靠前時計算得到DCG即爲IDCG。

練習題

看完這篇文章,我們來做幾道練習題來檢驗下學習成果:

1. 假定我進行了兩次查詢,得到的結果如下(1表示相關,0表示不相關),求MAP@5。

query1

query2

1

0

0

1

1

0

0

1

1

0

2. 假定相關性等級爲3級(0-2),模型對4個文檔的排序結果如下,求NDCG@4。

文檔

模型排序

相關性

最佳排序

d2

1

1

2

d3

2

1

3

d1

3

2

1

d4

4

0

4

以上所有的練習題答案我都會公佈在我的知識星球中,方便後續做一個知識沉澱;另外,關於文章有任何疑問或者要深入學習與交流,都可以加入我的知識星球來交流

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章