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

14 評論 71089 瀏覽 423 收藏 17 分鐘

在策略相關(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)容分為四類,如下圖:

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ù)需要較多時間且枯燥,如果僅僅是做實驗可以用已知的場景來測試,比如我們已知搜索“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曲線,如下圖:

2

圖中橫坐標(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稍作變換如下圖:

3

正確正例(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é)果如下:

4

注:綠色表示搜索結(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值大于效果劣的那一組。

5

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

7

不難看出,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定義為:

 

8

為什么要用以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)歸一化,以方便不同策略的效果對比。公式如下:

9

公式中的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)載。

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

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

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

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

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

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

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

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

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

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

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

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

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

    回復(fù)
    1. 同樣

      來自廣東 回復(fù)