搜索排序評估方法:作為產(chǎ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)然這個方法也有點(diǎn)問題,那就是我們無法得知天花板在哪里绎橘,也就是無法預(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)钮呀,它只能表示單點(diǎ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 空間中监右,每個點(diǎn)的橫坐標(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)的點(diǎn)莱衩,連接這些點(diǎn)就形成ROC曲線爵嗅。ROC曲線會經(jīng)過(0,0)(1,1)兩個點(diǎn),實際上(0, 0)和(1, 1)連線形成的ROC曲線代表的是一個隨機(jī)分類器笨蚁。一般情況下睹晒,這個曲線都應(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(隨機(jī)分類器的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也只能表示單點(diǎn)的策略效果,為了體現(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ù)大量的用戶點(diǎn)擊與其所點(diǎn)內(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)該做的事情饭庞。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市熬荆,隨后出現(xiàn)的幾起案子舟山,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件累盗,死亡現(xiàn)場離奇詭異寒矿,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)若债,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評論 2 385
  • 文/潘曉璐 我一進(jìn)店門符相,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蠢琳,你說我怎么就攤上這事啊终。” “怎么了傲须?”我有些...
    開封第一講書人閱讀 156,872評論 0 347
  • 文/不壞的土叔 我叫張陵孕索,是天一觀的道長。 經(jīng)常有香客問我躏碳,道長,這世上最難降的妖魔是什么散怖? 我笑而不...
    開封第一講書人閱讀 56,415評論 1 283
  • 正文 為了忘掉前任菇绵,我火速辦了婚禮,結(jié)果婚禮上镇眷,老公的妹妹穿的比我還像新娘咬最。我一直安慰自己,他們只是感情好欠动,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評論 6 385
  • 文/花漫 我一把揭開白布永乌。 她就那樣靜靜地躺著,像睡著了一般具伍。 火紅的嫁衣襯著肌膚如雪翅雏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,784評論 1 290
  • 那天人芽,我揣著相機(jī)與錄音望几,去河邊找鬼。 笑死萤厅,一個胖子當(dāng)著我的面吹牛橄抹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播惕味,決...
    沈念sama閱讀 38,927評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼楼誓,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了名挥?” 一聲冷哼從身側(cè)響起疟羹,我...
    開封第一講書人閱讀 37,691評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后阁猜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丸逸,經(jīng)...
    沈念sama閱讀 44,137評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評論 2 326
  • 正文 我和宋清朗相戀三年剃袍,在試婚紗的時候發(fā)現(xiàn)自己被綠了黄刚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,622評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡民效,死狀恐怖憔维,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情畏邢,我是刑警寧澤业扒,帶...
    沈念sama閱讀 34,289評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站舒萎,受9級特大地震影響程储,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜臂寝,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評論 3 312
  • 文/蒙蒙 一章鲤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧咆贬,春花似錦败徊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至眷蜈,卻和暖如春沪哺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背酌儒。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工凤粗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人今豆。 一個月前我還...
    沈念sama閱讀 46,316評論 2 360
  • 正文 我出身青樓嫌拣,卻偏偏與公主長得像,于是被迫代替她去往敵國和親呆躲。 傳聞我的和親對象是個殘疾皇子异逐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評論 2 348

推薦閱讀更多精彩內(nèi)容