搜索排序評估方法:作為產(chǎn)品,這個你必須要了解
在策略相關(guān)的產(chǎn)品如搜索、排序、推薦等功能的評估中,除了一般性數(shù)據(jù)分析方法之外,還有有一些特有的且相對比較固定的評估工具,這些評估工具都取之于信息檢索科學(xué)的常用評估方法。要了解這些首先要了解策略產(chǎn)品的效果評估,我們必須要引入一些必要的信息檢索相關(guān)的知識。
1.召回率和準(zhǔn)確率
信息檢索領(lǐng)域兩個最基本指標(biāo)是召回率(Recall Rate)和準(zhǔn)確率(Precision Rate),召回率也叫查全率,準(zhǔn)確率也叫查準(zhǔn)率,概念公式:
召回率(Recall)=檢索到的相關(guān)內(nèi)容 / 所有相關(guān)的內(nèi)容總數(shù)
準(zhǔn)確率(Precision)=檢索到的相關(guān)內(nèi)容 / 所有檢索到的內(nèi)容總數(shù)
為了直觀的描述這兩個概念,我們用是否相關(guān)和是否被檢索到兩個維度的指標(biāo)來對每一次信息檢索之后的內(nèi)容分類。是否相關(guān)指內(nèi)容和檢索條件是不是相關(guān),如檢索“酒店”,系統(tǒng)中所有的酒店內(nèi)容就是相關(guān),而“美食”的內(nèi)容就是不相關(guān)的,一般情況下,相關(guān)的內(nèi)容就是理論上需要完全被檢索到的內(nèi)容,這個數(shù)值和檢索的策略或算法沒有關(guān)系。是否被檢索到是針對檢索結(jié)果的描述指標(biāo),檢索完成后我們才能對系統(tǒng)內(nèi)容做是否被檢索到的區(qū)分,這個數(shù)值和檢索策略或算法相關(guān)。通過是否相關(guān)和是否被檢索到兩個維度的指標(biāo),我們可以將檢索完成后的內(nèi)容分為四類,如下圖:
聯(lián)系圖表,召回率就是檢索到的相關(guān)內(nèi)容(A)在所有相關(guān)內(nèi)容中的比例(A+C),而準(zhǔn)確率就是檢索到的相關(guān)內(nèi)容(A)在所有檢索到的內(nèi)容(A+B)中的比例。
但是如何算圖1中的A、B、C、D呢?一般,這需要人工標(biāo)注,人工標(biāo)注數(shù)據(jù)需要較多時間且枯燥,如果僅僅是做實驗可以用已知的場景來測試,比如我們已知搜索“A酒店”應(yīng)該出的搜索結(jié)果,那么我們就可以通過不同策略在搜索“A酒店”的表現(xiàn)來計算不同策略的A、B、C、D值,這種方式簡便易行,能夠針對性的解決問題,但是只能解決已知的問題。當(dāng)然,還有一個辦法,找個一個比較成熟的算法作為基準(zhǔn),用該算法的結(jié)果作為樣本來進(jìn)行比照,當(dāng)然這個方法也有點問題,那就是我們無法得知天花板在哪里,也就是無法預(yù)知最佳效果如何。
在實際項目中,我們單方面追求準(zhǔn)確率和召回率都是不對的。準(zhǔn)確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準(zhǔn)確率高、召回率就低;召回率低、準(zhǔn)確率高。如果是做搜索,那就是保證一定召回的情況下提升準(zhǔn)確率;如果做反垃圾、反作弊,則是保證一定準(zhǔn)確率的條件下,提升召回率。
2.F值
一般情況,對同一個策略模型,用不同的閥值,可以統(tǒng)計出一組不同閥值下的精確率和召回率關(guān)系,我們稱之為P-R曲線,如下圖:
圖中橫坐標(biāo)是召回率,用R(Recall)表示;縱坐標(biāo)是準(zhǔn)確率,用P(Precision)表示。有時候,我們在P和R做出平衡,因此我們需要用一個值來體現(xiàn)策略在P值和R值兩方面的整體表現(xiàn)。最普通也最容易理解的是F1值,F(xiàn)1值的計算公式如下:
F 1= 2 * P * R / (P + R)
更通用的公式是F=(1+β^2)*P*R/(β^2*P+R)
用F1值來體現(xiàn)準(zhǔn)確率和召回率的綜合表現(xiàn)非常直觀且易于理解,但是也有一個明顯的缺陷,F(xiàn)1值的計算中,P和R的權(quán)重是一樣的,也就是對召回和準(zhǔn)確的要求是一樣。在大多數(shù)情況下,我們在召回率和準(zhǔn)確率上有不同的要求,因而我們也常用F2和F0.5來評價策略的效果,F(xiàn)2 = 5P * R / (4P + R),表示更重視召回率,F(xiàn)0.5(F2 = 1.25P * R / (0.25P + R),表示更重視準(zhǔn)確率。
3.ROC和AUC
前面給大家介紹了F值,細(xì)究不難發(fā)現(xiàn),它只能表示單點的效果而無法表示策略的整理效果,下面介紹的內(nèi)容,將是一些能評估策略整體效果的評估方法。
ROC的全名叫做Receiver Operating Characteristic,是評價分類器(需要說明)的指標(biāo),一般分類識別相關(guān)的策略我們使用ROC值來評價。我們用上面第一個圖的方式來說明這個值,我們將ABCD稍作變換如下圖:
正確正例(True Positive,TP)表示將正例(預(yù)測)分為正例的內(nèi)容;錯誤正例(False Positive,F(xiàn)P)表示將負(fù)例分為正例的內(nèi)容;錯誤反例(False Negtive,F(xiàn)N)將正例分為負(fù)例的內(nèi)容;正確負(fù)例(True Negtive,TN)表示將負(fù)例分為負(fù)例的內(nèi)容。其中,ROC關(guān)注兩個指標(biāo):
正確正例比例True Positive Rate ( TPR ) = TP / [ TP + FN] ,TPR代表能將正例分對的概率
錯誤正例比例False Positive Rate( FPR ) = FP / [ FP + TN] ,F(xiàn)PR代表將負(fù)例錯分為正例的概率
ROC的主要分析方法是一個畫在ROC空間的曲線(ROC curve):在ROC 空間中,每個點的橫坐標(biāo)是FPR,縱坐標(biāo)是TPR,這也就描繪了分類器在TP(真正的正例)和FP(錯誤的正例)間的平衡關(guān)系。我們知道,對于二值分類問題,實例的預(yù)測值往往是連續(xù)值,我們通過設(shè)定一個閾值,將實例分類到正類或者負(fù)類。比如我們通過數(shù)據(jù)挖掘計算酒店不接待客戶的預(yù)測值是一個0-1的分布,然后設(shè)定一個閾值0.5,如果大于0.5,我們則認(rèn)為酒店存在不接待用戶的情況。因此我們可以變化閾值,根據(jù)不同的閾值進(jìn)行分類,然后根據(jù)分類結(jié)果計算的TPR值和FPR值得到ROC空間中相應(yīng)的點,連接這些點就形成ROC曲線。ROC曲線會經(jīng)過(0,0)(1,1)兩個點,實際上(0, 0)和(1, 1)連線形成的ROC曲線代表的是一個隨機分類器。一般情況下,這個曲線都應(yīng)該處于(0, 0)和(1, 1)連線的上方,否則,分類器的策略就是有問題的。
用ROC curve來表示分類器的效果很直觀好用,也能夠觀測在不同TPR和FPR下分類策略的表現(xiàn)。但是,我們?nèi)匀幌M軌蛴靡粋€特定的值來表示分類器策略的好壞,于是Area Under roc Curve(AUC)就出現(xiàn)了。顧名思義,AUC的值就是處于ROC曲線下方的那部分面積的大小。
可以預(yù)見的是,AUC的值介于0.5(隨機分類器的AUC值)到1.0之間,通常情況下,我們認(rèn)為較大的AUC代表了較好的效果。
4.Prec@k和MAP(Mean Average Precision@K)
MAP也是評估檢索策略效果的方式之一,與AUC不同的是,除了考慮召回結(jié)果的整體準(zhǔn)確率之外,MAP也考量召回結(jié)果條目的順序。MAP是Mean Average Precision@K的縮寫,要了解MAP,我們需要逐步了解Prec@K和AP@K的概念。
Prec@K表示設(shè)定一個閾值K,在檢索結(jié)果到第K個正確召回為止,排序結(jié)果的相關(guān)度。假設(shè)某次的檢索結(jié)果如下:
注:綠色表示搜索結(jié)果與搜索詞相關(guān),紅色表示不相關(guān)。
在這個案例中Prec@1=1、Prec@3=2/3、Prec@5=3/5。也許你已經(jīng)發(fā)現(xiàn)了,Prec@K也只能表示單點的策略效果,為了體現(xiàn)策略的整體效果,我們需要使用AP@K。
Average Precision@K是指到第K個正確的召回為止,從第一個正確召回到第K個正確召回的平均正確率。下面我們用兩個排序案例來理解AP@K。假設(shè)存在以下兩個排序,我們直觀的理解,結(jié)果1是優(yōu)于結(jié)果2的,那么這種優(yōu)劣會如何體現(xiàn)在AP@K值中呢?
對于結(jié)果1,AP@K=(1.0+0.67+0.75+0.8+0.83+0.6)/6=0.78,對于結(jié)果2,AP@K=(0.5+0.4+0.5+0.57+0.56+0.6)/6=0.52,可以看到,效果優(yōu)的排序結(jié)果的AP@K值大于效果劣的那一組。
對于一次查詢,AP@K值可以判斷優(yōu)劣,但是如果涉及到一個策略在多次查詢的效果,我們需要引入另一個概念MAP@K(Mean Average Precision@K),簡單的說,MAP@K的計算的是搜索查詢結(jié)果AP@K值的均值。假設(shè)某個策略在兩個不同查詢下的輸出結(jié)果如下:
在以上案例中,查詢1的AP@K=(1.0+0.67+0.5+0.44+0.5)/5=0.62,查詢的2的AP@K=(0.5+0.4+0.43)/3=0.44,則我們計算這個策略的MAP@K=(0.62+0.44)/2=0.53。對使用MAP@K進(jìn)行評估的系統(tǒng),我們認(rèn)為MAP@K值較高的策略效果更好。
5.CG、DCG和nDCG
搜索引擎一般采用PI(per item)的方式進(jìn)行評測。簡單地說就是逐條對搜索結(jié)果進(jìn)行分等級的打分,回顧MAP指標(biāo),我們對每個條目的值是的評價是用0或1表示,相較于MAP指標(biāo),D CG能夠讓我們讓多值指標(biāo)來評價。
在DCG指標(biāo)的計算中,假設(shè)我們現(xiàn)在在谷歌上搜索一個詞,然后得到5個結(jié)果。我們可以對這些結(jié)果進(jìn)行3個等級的區(qū)分:Good(好)、Fair(一般)、Bad(差),然后賦予他們分值分別為3、2、1,假定通過逐條打分后,得到這5個結(jié)果的分值分別為3、2 、1 、3、 2。如果要我們評價這次查詢的效果,可以用Cumulative Gain值來評估。
CG是在這個查詢輸出結(jié)果里面所有的結(jié)果的等級對應(yīng)的得分的總和。如一個輸出結(jié)果頁面有P個結(jié)果,CG被定義為:
不難看出,CG并不考慮在搜索結(jié)果的排序信息,CG得分高只能說明這個結(jié)果頁面總體的質(zhì)量比較高并不能說明這個算法做的排序好或差。在上面谷歌的例子中,CG=3+2+1+3+2=11,如果調(diào)換第二個結(jié)果和第三個結(jié)果的位置CG=3+1+2+3+2=11,并沒有改變總體的得分。
因此,如果我們要評估返回結(jié)果質(zhì)量還要考量輸出排序的話。首先,我們要說明什么是好的排序?一般來說,好的排序要把Good的結(jié)果排到Fair結(jié)果上面、Fair結(jié)果排到Bad結(jié)果上面,如果有Bad的結(jié)果排在了Good上面,那當(dāng)然排序就不好了。
在一個搜索結(jié)果列表里面,比如有兩個結(jié)果的打分都是Good,但是有一個是排在第1位,還有一個是排在第40位,雖然這兩個結(jié)果一樣都是Good,但是排在第40位的那個結(jié)果因為被用戶看到的概率是比較小的,他對這整個搜索結(jié)果頁面的貢獻(xiàn)值是相對排在第一位那個結(jié)果來得小的。
為了能夠完成評估排序的目的,我們需要采用DCG(Discounted Cumulative Gain)值。
DCG的思想比較容易理解,等級比較高的結(jié)果卻排到了比較后面,那么在統(tǒng)計分?jǐn)?shù)時,就應(yīng)該對這個結(jié)果的得分有所打折。一個有P(P≥2)個結(jié)果的搜索結(jié)果頁面的DCG定義為:
為什么要用以2為底的對數(shù)函數(shù)?這個并沒有明確的科學(xué)依據(jù),大概是根據(jù)大量的用戶點擊與其所點內(nèi)容的位置信息,模擬出一條衰減的曲線。
那么在上面百度的例子中:DCG=3+(1+1.26+1.5+0.86)=7.62。但是DCG在評估策略效果的過程中,因為不同搜索模型給出的結(jié)果有多有少,仍然會造成無法對比兩個模型的效果。為了避免這種情況,我們進(jìn)一步優(yōu)化這個指標(biāo),成為nDCG(normalize DCG),顧名思義,就是將一個策略的效果標(biāo)準(zhǔn)歸一化,以方便不同策略的效果對比。公式如下:
公式中的iDCG(ideal DCG)就是理想的DCG。iDCG如何計算?首先要拿到搜索的結(jié)果,然后對這些結(jié)果進(jìn)行排序,排到最好的狀態(tài)后,算出這個排列下的DCG,就是iDCG。因此nDCG是一個0-1的值,nDCG越靠近1,說明策略效果越好,或者說只要nDCG<1,策略就存在優(yōu)化調(diào)整空間。因為nDCG是一個相對比值,那么不同的搜索結(jié)果之間就可以通過比較nDCG來決定哪個排序比較好。在上面的例子中,理想的排序應(yīng)該是3 、3 、2 、2 、1,那么iDCG=3+3+1.26+1+0.43=8.69,nDCG=DCG/iDCG=7.62/8.69=0.88。
以上給大家介紹一些常見的評價方式,但是這幾種評估方式并不一定能覆蓋所有場景,一般情況下,我們需要根據(jù)自己的需要適當(dāng)?shù)膶@些評估方式做些許的改進(jìn)來更加符合具體場景的要求,比如在nDCG中調(diào)整評分的層級或分?jǐn)?shù),甚至根據(jù)自身用戶的特征調(diào)整衰減函數(shù)的計算方式等等。但在所有的評估改進(jìn)中,一般無法忽略召回率、正確率和排序三個基本維度的效果。我們不能照搬前人成果,活學(xué)活用,才是產(chǎn)品經(jīng)理應(yīng)該做的事情。
本文系作者@metalony (微信公眾號:hihipm)授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理 ,未經(jīng)許可,不得轉(zhuǎn)載。
產(chǎn)品流程圖
看到大家都看不懂 我也就放心了~ ??
有收獲 謝謝!
大家看不懂我也就放心了,智商著急還能怎么樣呢
感覺都是理論。有應(yīng)用案例嗎?
寫得很好,感謝
看到ROC和AUC的時候就開始蒙蔽咯。。。。
看到大家都看不懂 我也就放心了 智商著急還是怎樣
看不懂 ??
期待更多策略產(chǎn)品經(jīng)理相關(guān)的文章~
對,還是蠻有意思的。
閾值閾值!木有閥值這個詞吧
說實話看不懂
同樣