搜索排序評(píng)估方法:作為產(chǎn)品,這個(gè)你必須要了解

14 評(píng)論 71526 瀏覽 424 收藏 17 分鐘

在策略相關(guān)的產(chǎn)品如搜索、排序、推薦等功能的評(píng)估中,除了一般性數(shù)據(jù)分析方法之外,還有有一些特有的且相對(duì)比較固定的評(píng)估工具,這些評(píng)估工具都取之于信息檢索科學(xué)的常用評(píng)估方法。要了解這些首先要了解策略產(chǎn)品的效果評(píng)估,我們必須要引入一些必要的信息檢索相關(guān)的知識(shí)。

1.召回率和準(zhǔn)確率

信息檢索領(lǐng)域兩個(gè)最基本指標(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ù)

為了直觀的描述這兩個(gè)概念,我們用是否相關(guān)和是否被檢索到兩個(gè)維度的指標(biāo)來對(duì)每一次信息檢索之后的內(nèi)容分類。是否相關(guān)指內(nèi)容和檢索條件是不是相關(guān),如檢索“酒店”,系統(tǒng)中所有的酒店內(nèi)容就是相關(guān),而“美食”的內(nèi)容就是不相關(guān)的,一般情況下,相關(guān)的內(nèi)容就是理論上需要完全被檢索到的內(nèi)容,這個(gè)數(shù)值和檢索的策略或算法沒有關(guān)系。是否被檢索到是針對(duì)檢索結(jié)果的描述指標(biāo),檢索完成后我們才能對(duì)系統(tǒng)內(nèi)容做是否被檢索到的區(qū)分,這個(gè)數(shù)值和檢索策略或算法相關(guān)。通過是否相關(guān)和是否被檢索到兩個(gè)維度的指標(biāo),我們可以將檢索完成后的內(nèi)容分為四類,如下圖:

1

聯(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ù)需要較多時(shí)間且枯燥,如果僅僅是做實(shí)驗(yàn)可以用已知的場景來測試,比如我們已知搜索“A酒店”應(yīng)該出的搜索結(jié)果,那么我們就可以通過不同策略在搜索“A酒店”的表現(xiàn)來計(jì)算不同策略的A、B、C、D值,這種方式簡便易行,能夠針對(duì)性的解決問題,但是只能解決已知的問題。當(dāng)然,還有一個(gè)辦法,找個(gè)一個(gè)比較成熟的算法作為基準(zhǔn),用該算法的結(jié)果作為樣本來進(jìn)行比照,當(dāng)然這個(gè)方法也有點(diǎn)問題,那就是我們無法得知天花板在哪里,也就是無法預(yù)知最佳效果如何。

在實(shí)際項(xiàng)目中,我們單方面追求準(zhǔn)確率和召回率都是不對(duì)的。準(zhǔn)確率和召回率是互相影響的,理想情況下肯定是做到兩者都高,但是一般情況下準(zhǔn)確率高、召回率就低;召回率低、準(zhǔn)確率高。如果是做搜索,那就是保證一定召回的情況下提升準(zhǔn)確率;如果做反垃圾、反作弊,則是保證一定準(zhǔn)確率的條件下,提升召回率。

2.F值

一般情況,對(duì)同一個(gè)策略模型,用不同的閥值,可以統(tǒng)計(jì)出一組不同閥值下的精確率和召回率關(guān)系,我們稱之為P-R曲線,如下圖:

2

圖中橫坐標(biāo)是召回率,用R(Recall)表示;縱坐標(biāo)是準(zhǔn)確率,用P(Precision)表示。有時(shí)候,我們在P和R做出平衡,因此我們需要用一個(gè)值來體現(xiàn)策略在P值和R值兩方面的整體表現(xiàn)。最普通也最容易理解的是F1值,F(xiàn)1值的計(jì)算公式如下:

F 1= 2 * P * R / (P + R)

更通用的公式是F=(1+β^2)*P*R/(β^2*P+R)

用F1值來體現(xiàn)準(zhǔn)確率和召回率的綜合表現(xiàn)非常直觀且易于理解,但是也有一個(gè)明顯的缺陷,F(xiàn)1值的計(jì)算中,P和R的權(quán)重是一樣的,也就是對(duì)召回和準(zhǔn)確的要求是一樣。在大多數(shù)情況下,我們在召回率和準(zhǔn)確率上有不同的要求,因而我們也常用F2和F0.5來評(píng)價(jià)策略的效果,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),它只能表示單點(diǎn)的效果而無法表示策略的整理效果,下面介紹的內(nèi)容,將是一些能評(píng)估策略整體效果的評(píng)估方法。

ROC的全名叫做Receiver Operating Characteristic,是評(píng)價(jià)分類器(需要說明)的指標(biāo),一般分類識(shí)別相關(guān)的策略我們使用ROC值來評(píng)價(jià)。我們用上面第一個(gè)圖的方式來說明這個(gè)值,我們將ABCD稍作變換如下圖:

3

正確正例(True Positive,TP)表示將正例(預(yù)測)分為正例的內(nèi)容;錯(cuò)誤正例(False Positive,F(xiàn)P)表示將負(fù)例分為正例的內(nèi)容;錯(cuò)誤反例(False Negtive,F(xiàn)N)將正例分為負(fù)例的內(nèi)容;正確負(fù)例(True Negtive,TN)表示將負(fù)例分為負(fù)例的內(nèi)容。其中,ROC關(guān)注兩個(gè)指標(biāo):

正確正例比例True Positive Rate ( TPR ) = TP / [ TP + FN] ,TPR代表能將正例分對(duì)的概率

錯(cuò)誤正例比例False Positive Rate( FPR ) = FP / [ FP + TN] ,F(xiàn)PR代表將負(fù)例錯(cuò)分為正例的概率

ROC的主要分析方法是一個(gè)畫在ROC空間的曲線(ROC curve):在ROC 空間中,每個(gè)點(diǎn)的橫坐標(biāo)是FPR,縱坐標(biāo)是TPR,這也就描繪了分類器在TP(真正的正例)和FP(錯(cuò)誤的正例)間的平衡關(guān)系。我們知道,對(duì)于二值分類問題,實(shí)例的預(yù)測值往往是連續(xù)值,我們通過設(shè)定一個(gè)閾值,將實(shí)例分類到正類或者負(fù)類。比如我們通過數(shù)據(jù)挖掘計(jì)算酒店不接待客戶的預(yù)測值是一個(gè)0-1的分布,然后設(shè)定一個(gè)閾值0.5,如果大于0.5,我們則認(rèn)為酒店存在不接待用戶的情況。因此我們可以變化閾值,根據(jù)不同的閾值進(jìn)行分類,然后根據(jù)分類結(jié)果計(jì)算的TPR值和FPR值得到ROC空間中相應(yīng)的點(diǎn),連接這些點(diǎn)就形成ROC曲線。ROC曲線會(huì)經(jīng)過(0,0)(1,1)兩個(gè)點(diǎn),實(shí)際上(0, 0)和(1, 1)連線形成的ROC曲線代表的是一個(gè)隨機(jī)分類器。一般情況下,這個(gè)曲線都應(yīng)該處于(0, 0)和(1, 1)連線的上方,否則,分類器的策略就是有問題的。

用ROC curve來表示分類器的效果很直觀好用,也能夠觀測在不同TPR和FPR下分類策略的表現(xiàn)。但是,我們?nèi)匀幌M軌蛴靡粋€(gè)特定的值來表示分類器策略的好壞,于是Area Under roc Curve(AUC)就出現(xiàn)了。顧名思義,AUC的值就是處于ROC曲線下方的那部分面積的大小。

可以預(yù)見的是,AUC的值介于0.5(隨機(jī)分類器的AUC值)到1.0之間,通常情況下,我們認(rèn)為較大的AUC代表了較好的效果。

4.Prec@k和MAP(Mean Average Precision@K)

MAP也是評(píng)估檢索策略效果的方式之一,與AUC不同的是,除了考慮召回結(jié)果的整體準(zhǔn)確率之外,MAP也考量召回結(jié)果條目的順序。MAP是Mean Average Precision@K的縮寫,要了解MAP,我們需要逐步了解Prec@K和AP@K的概念。

Prec@K表示設(shè)定一個(gè)閾值K,在檢索結(jié)果到第K個(gè)正確召回為止,排序結(jié)果的相關(guān)度。假設(shè)某次的檢索結(jié)果如下:

4

注:綠色表示搜索結(jié)果與搜索詞相關(guān),紅色表示不相關(guān)。

在這個(gè)案例中Prec@1=1、Prec@3=2/3、Prec@5=3/5。也許你已經(jīng)發(fā)現(xiàn)了,Prec@K也只能表示單點(diǎn)的策略效果,為了體現(xiàn)策略的整體效果,我們需要使用AP@K。

Average Precision@K是指到第K個(gè)正確的召回為止,從第一個(gè)正確召回到第K個(gè)正確召回的平均正確率。下面我們用兩個(gè)排序案例來理解AP@K。假設(shè)存在以下兩個(gè)排序,我們直觀的理解,結(jié)果1是優(yōu)于結(jié)果2的,那么這種優(yōu)劣會(huì)如何體現(xiàn)在AP@K值中呢?

對(duì)于結(jié)果1,AP@K=(1.0+0.67+0.75+0.8+0.83+0.6)/6=0.78,對(duì)于結(jié)果2,AP@K=(0.5+0.4+0.5+0.57+0.56+0.6)/6=0.52,可以看到,效果優(yōu)的排序結(jié)果的AP@K值大于效果劣的那一組。

5

對(duì)于一次查詢,AP@K值可以判斷優(yōu)劣,但是如果涉及到一個(gè)策略在多次查詢的效果,我們需要引入另一個(gè)概念MAP@K(Mean Average Precision@K),簡單的說,MAP@K的計(jì)算的是搜索查詢結(jié)果AP@K值的均值。假設(shè)某個(gè)策略在兩個(gè)不同查詢下的輸出結(jié)果如下:

6

在以上案例中,查詢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,則我們計(jì)算這個(gè)策略的MAP@K=(0.62+0.44)/2=0.53。對(duì)使用MAP@K進(jìn)行評(píng)估的系統(tǒng),我們認(rèn)為MAP@K值較高的策略效果更好。

5.CG、DCG和nDCG

搜索引擎一般采用PI(per item)的方式進(jìn)行評(píng)測。簡單地說就是逐條對(duì)搜索結(jié)果進(jìn)行分等級(jí)的打分,回顧MAP指標(biāo),我們對(duì)每個(gè)條目的值是的評(píng)價(jià)是用0或1表示,相較于MAP指標(biāo),D CG能夠讓我們讓多值指標(biāo)來評(píng)價(jià)。

在DCG指標(biāo)的計(jì)算中,假設(shè)我們現(xiàn)在在谷歌上搜索一個(gè)詞,然后得到5個(gè)結(jié)果。我們可以對(duì)這些結(jié)果進(jìn)行3個(gè)等級(jí)的區(qū)分:Good(好)、Fair(一般)、Bad(差),然后賦予他們分值分別為3、2、1,假定通過逐條打分后,得到這5個(gè)結(jié)果的分值分別為3、2 、1 、3、 2。如果要我們評(píng)價(jià)這次查詢的效果,可以用Cumulative Gain值來評(píng)估。

CG是在這個(gè)查詢輸出結(jié)果里面所有的結(jié)果的等級(jí)對(duì)應(yīng)的得分的總和。如一個(gè)輸出結(jié)果頁面有P個(gè)結(jié)果,CG被定義為:

7

不難看出,CG并不考慮在搜索結(jié)果的排序信息,CG得分高只能說明這個(gè)結(jié)果頁面總體的質(zhì)量比較高并不能說明這個(gè)算法做的排序好或差。在上面谷歌的例子中,CG=3+2+1+3+2=11,如果調(diào)換第二個(gè)結(jié)果和第三個(gè)結(jié)果的位置CG=3+1+2+3+2=11,并沒有改變總體的得分。

因此,如果我們要評(píng)估返回結(jié)果質(zhì)量還要考量輸出排序的話。首先,我們要說明什么是好的排序?一般來說,好的排序要把Good的結(jié)果排到Fair結(jié)果上面、Fair結(jié)果排到Bad結(jié)果上面,如果有Bad的結(jié)果排在了Good上面,那當(dāng)然排序就不好了。

在一個(gè)搜索結(jié)果列表里面,比如有兩個(gè)結(jié)果的打分都是Good,但是有一個(gè)是排在第1位,還有一個(gè)是排在第40位,雖然這兩個(gè)結(jié)果一樣都是Good,但是排在第40位的那個(gè)結(jié)果因?yàn)楸挥脩艨吹降母怕适潜容^小的,他對(duì)這整個(gè)搜索結(jié)果頁面的貢獻(xiàn)值是相對(duì)排在第一位那個(gè)結(jié)果來得小的。

為了能夠完成評(píng)估排序的目的,我們需要采用DCG(Discounted Cumulative Gain)值。

DCG的思想比較容易理解,等級(jí)比較高的結(jié)果卻排到了比較后面,那么在統(tǒng)計(jì)分?jǐn)?shù)時(shí),就應(yīng)該對(duì)這個(gè)結(jié)果的得分有所打折。一個(gè)有P(P≥2)個(gè)結(jié)果的搜索結(jié)果頁面的DCG定義為:

 

8

為什么要用以2為底的對(duì)數(shù)函數(shù)?這個(gè)并沒有明確的科學(xué)依據(jù),大概是根據(jù)大量的用戶點(diǎn)擊與其所點(diǎn)內(nèi)容的位置信息,模擬出一條衰減的曲線。

那么在上面百度的例子中:DCG=3+(1+1.26+1.5+0.86)=7.62。但是DCG在評(píng)估策略效果的過程中,因?yàn)椴煌阉髂P徒o出的結(jié)果有多有少,仍然會(huì)造成無法對(duì)比兩個(gè)模型的效果。為了避免這種情況,我們進(jìn)一步優(yōu)化這個(gè)指標(biāo),成為nDCG(normalize DCG),顧名思義,就是將一個(gè)策略的效果標(biāo)準(zhǔn)歸一化,以方便不同策略的效果對(duì)比。公式如下:

9

公式中的iDCG(ideal DCG)就是理想的DCG。iDCG如何計(jì)算?首先要拿到搜索的結(jié)果,然后對(duì)這些結(jié)果進(jìn)行排序,排到最好的狀態(tài)后,算出這個(gè)排列下的DCG,就是iDCG。因此nDCG是一個(gè)0-1的值,nDCG越靠近1,說明策略效果越好,或者說只要nDCG<1,策略就存在優(yōu)化調(diào)整空間。因?yàn)閚DCG是一個(gè)相對(duì)比值,那么不同的搜索結(jié)果之間就可以通過比較nDCG來決定哪個(gè)排序比較好。在上面的例子中,理想的排序應(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。

以上給大家介紹一些常見的評(píng)價(jià)方式,但是這幾種評(píng)估方式并不一定能覆蓋所有場景,一般情況下,我們需要根據(jù)自己的需要適當(dāng)?shù)膶?duì)這些評(píng)估方式做些許的改進(jìn)來更加符合具體場景的要求,比如在nDCG中調(diào)整評(píng)分的層級(jí)或分?jǐn)?shù),甚至根據(jù)自身用戶的特征調(diào)整衰減函數(shù)的計(jì)算方式等等。但在所有的評(píng)估改進(jìn)中,一般無法忽略召回率、正確率和排序三個(gè)基本維度的效果。我們不能照搬前人成果,活學(xué)活用,才是產(chǎn)品經(jīng)理應(yīng)該做的事情。

 

本文系作者@metalony (微信公眾號(hào):hihipm)授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理 ,未經(jīng)許可,不得轉(zhuǎn)載。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 產(chǎn)品流程圖

    回復(fù)
  2. 看到大家都看不懂 我也就放心了~ ??

    來自江蘇 回復(fù)
  3. 有收獲 謝謝!

    來自北京 回復(fù)
  4. 大家看不懂我也就放心了,智商著急還能怎么樣呢

    來自重慶 回復(fù)
  5. 感覺都是理論。有應(yīng)用案例嗎?

    來自上海 回復(fù)
  6. 寫得很好,感謝

    來自北京 回復(fù)
  7. 看到ROC和AUC的時(shí)候就開始蒙蔽咯。。。。

    來自上海 回復(fù)
  8. 看到大家都看不懂 我也就放心了 智商著急還是怎樣

    來自北京 回復(fù)
  9. 看不懂 ??

    來自上海 回復(fù)
  10. 期待更多策略產(chǎn)品經(jīng)理相關(guān)的文章~

    回復(fù)
    1. 對(duì),還是蠻有意思的。

      來自美國 回復(fù)
  11. 閾值閾值!木有閥值這個(gè)詞吧

    來自北京 回復(fù)
  12. 說實(shí)話看不懂

    回復(fù)
    1. 同樣

      來自廣東 回復(fù)