和機器學習的算法相似,信息檢索或搜索的效果究竟須要如何進行科學的評估。檢索質量最基本的兩個評測指標是精度( Precision ) 和召回率( Recall )。假設一個數據集D中,和一個信息需求ik相關的數據集合是m,在用戶輸入需求後,某個檢索系統返回告終果集合n ,而o是集合m和n的交集,以下圖算法
那麼精度p的定義爲:機器學習
召回率r的定義爲:學習
上述的定義是假設用戶已經檢測了整個返回的結果集合n 。試想一下真實的場景,用戶最典型的行爲是從頭至尾開始閱讀,所以隨着檢閱數據的不斷增長,精度和召回率是不斷變化的。這裏將結合表(下圖)提到的美食案例來進行闡述,表展現了擁有10篇文章的文檔集合。後面標明瞭每篇文章是否包含「美食」這個關鍵詞, 以及是否和美食的主題相關,能夠看到,總共有8篇文章包含關鍵詞「美食」,還有5篇文章是和美食主題相關。測試
相關性的斷定老是帶有主觀性,這也是離線測試面臨的問題。在實際應用中比較像電視裏播放的選秀節目,須要專業的人士來作裁判,並且可能須要多個評委來綜合評定,避免個別人的主觀想法影響了整個測試集合。這裏讓咱們假設表中的判斷都是準確的吧。設計
當用戶搜索「美食」這個關鍵詞時,某系統A 按以下形式依次返回8篇包含「美食」 關鍵詞的文章。3d
假設用戶從第一個排位開始閱讀,直到將8個返回的結果所有讀完。看到第一位的文章5,屬於相關,那麼這個時候的精度是1/1=100% ,其中分子1和分母1都表示文章5;召回率是1/5 = 20% ,其中分子1表示文章5,分母5表示文章一、五、八、11和14 。cdn
再往下,看到第二位的文章10,不相關,那麼這個時候的精度是1/2 = 50% ,其中分母2表示前兩位的文章5和10;召回率仍然是1/5 = 20% 。依此類推,看到第三至八位後,精度分別是66.67% 、75% 、60% 、66.67% 、71.43% 、62.5% ,而召回率分別是40% 、60% 、60% 、80% 、100% 、 100% 。以精度和召回率爲2個軸線,咱們能夠畫出曲線圖,其中黑色的直線表示趨勢線。blog
從曲線圖中能夠發現: 隨着返回結果數量的增長,召回率是呈現逐步上升的趨勢,而精度雖有波動,但總體上是降低的趨勢。召回率和精度大致上是呈現反比關係。這也是實際應用中常見的模式,並且越是檢索質量高的系統,這個特徵越明顯。可見,召回率和精度雖然都很重要,可是魚和熊掌不可兼得。ci
所以,設計者應該根據實際需求,儘可能均衡這二者之間的得失。例如,在識別詐騙案例的時候,通常都是但願稍有嫌疑就拉入審覈的名單,所以召回率更重要,較低的精度能夠經過人工審覈來彌補。而在知識問答系統中,就不見得須要返回不少條的候選,只要保證排在最前面的答案足夠精準便可。文檔
精確率和召回率的概念比較簡單,計算也很方便,所以普遍應用於信息檢索的評估中。在此基礎之上,人們又延伸和定義了其餘幾個常見的衡量指標,即F值、前n精度、R精度、平均精度均值、歸一化折損累積增益、斯皮爾曼係數等。