【原文地址已失效,故粘貼于此】
By?Eletva,?eletva.com
我們知道,每個算法都有其評估的手段,借此用以指導當前算法模型的好壞,搜索rank是一個相對而言比較常見又比較特殊的場景,因為最后我們需要評估的是一個序列的好壞,是各個個體的相互關系,而不是大部分機器學習算法那樣評估的是每個個體的處理好壞。因此,要深入了解搜索rank的機制,那么首先要知道我們是怎樣來評估一種排序算法是好的算法,而另一種是不好的。本文中提到了三種評估的方式,都是有各自的試用場景。
因為搜索的意思形態不一樣,可能采取的評估指標也可能會隨之變化,以下提到的評估手段都可能是當用或者復用,要適當變之。。。
1.?MAP(mean?average?precision):
MAP的衡量標準比較單一,q(query,搜索詞)與d(doc,檢索到的doc)的關系非0即1,核心是利用q對應的相關的d出現的位置來進行排序算法準確性的評估,比如q1對應相關的d排名是1,2,5,7(假設q1有4個相關d),那么對于q1的ap(average?precision)的計算就是(1/1+2/2+3/5+4/7)/4=ap1,對于q2的排序結果結果中與之相關的d的排名是2,3,6(假設q2有5個相關d),那么對于q2的ap就是(1/2+2/3+3/6+0+0)/5=ap2,那么這個排序算法的MAP就是(ap1+ap2)/2
MAP?是反映系統在全部相關文檔上性能的單值指標。系統檢索出來的相關文檔越靠前(rank?越高),MAP就應該越高。如果系統沒有返回相關文檔,則準確率默認為0。
這里注意的是,在利用MAP的評估的時候,需要知道:1.?每個q有多少個相關的d;?2.?排序結果中這些d的位置?3.?相關的定義
延展:或許這個MAP可以進行部分改進,相關定義的部分可以考慮用0-1之間的系數來確定,而到實際使用中可以用ctr,gmv這些指標進行替換
2.?對于NDCG(Normalized?Discounted?Cumulative?Gain)的理解
N指的是歸一化,D指的是衰減率,C指的累加,G指的是熵,其實這個公式的關鍵就是就是熵,再多了三個形容詞:歸一化的,帶有衰減函數的,再帶有累加的熵即是了
仔細看一下上面的公司,停頓兩分鐘就可以體會其中的含義了
1)公式中最核心的Gain用一個指數函數來表示了,這與一般的信息熵的概念有些不一樣,可能指代表著一個信息量的關系的變化,也許這說明熵是可以以任意形式出現的,anyway,這個還要再研究一下
2)那么接下去就是帶有衰減因子的G,也就是DG了,用來表示與位置的衰減關系,因為排名越往后,那么說明越被點擊的可能越小,因此越往后的衰減因子越小,實際操作中有很多衰減因子的定義函數,比如C*1/log(1+j),上式子是指C為1的特殊形式,?其中C一般還會取值log2之類的一些經驗值,這個都可以根據實際情況來進行變化(不過,我們應該清楚的認識到因為)
3)接著,就是累加,將帶有衰減因子的熵進行累加,每個排名處進行累加
4)最后,是歸一化,用當前的CDG/MAX,MAX即是理想狀態下的CDG,那么就進行了歸一化處理
總結:這里的相關性體現在Gain的計算處,r將相關性分成了多個檔位,這里可以用實際操作中需要的指標去代替
3.?MRR(mean?reciprocal?rank),倒數排序法
這個是最簡單的一個,因為他的評估假設是基于唯一的一個相關結果,比如q1的最相關是排在第3位,q2的最相關是在第4位,那么MRR=(1/3+1/4)/2,MRR方法主要用于尋址類檢索(Navigational?Search)或問答類檢索(Question?Answering)
--------------------------------------------------------------------------------------------
另外談到兩個常見的算法指標的一些比較本質的東西,一個是Precision(準確率)與Recall(召回率)的關系,另一個是F-Measure,一個用來衡量P與R的指標
P與R之間的關系有些符合其齊夫定律,召回率和準確率分別反映了檢索系統的兩個最重要的側面,而這兩個側面又相互制約。因為大規模數據集合中,如果期望檢索到更多相關的文檔,必然需要“放寬”檢索標準,因此會導致一些不相關結果混進來,從而使準確率受到影響。類似的,期望提高準確率,將不相關文檔盡量去除時,務必要執行更“嚴格”的檢索策略,這樣也會使一些相關的文檔被排除在外,使召回率下降。
F-Measure:公式是基于P與R的調和平均數,1/[(1-lamda)*1/p+lamda*1/r),?一般lamda會取0.5,表示p與r的平衡,這里使用調和平均數而不是通常的幾何平均或算術平均,原因是調和平均數強調較小數值的重要性,能敏感的反映小數字的變化,因此更適合用來反映算法效果。因為常常,一個指標比多個指標能夠方便快捷的定位好壞。
本文版權屬作者@eletva所有,轉載需注明出處