訪問博客查看 本文 最新內(nèi)容,排版更美觀ヾ(?ω?`)o 如有錯誤歡迎指出~
IR 信息檢索系列筆記:
前述文章介紹了幾種基本信息檢索模型,本文將介紹如何評價一個現(xiàn)有的文檔檢索系統(tǒng)。
Evaluation in Document Retrieval
一個檢索系統(tǒng)的好壞,通常取決于其檢索結果與用戶查詢的相關性,此外還有檢索用時、檢索范圍等等。這里僅針對評價相關性展開討論。
相關性 | Relevance
如何度量相關性?考慮如下三個待實現(xiàn)的要素:
A benchmark document collection (基準文檔集)
A benchmark suite of queries (基準查詢集)
A usually binary assessment of either Relevant or Nonrelevant for each query and each document (對基準查詢結果打分)
當然,這個「打分標準」可能會隨每個人的信息需求而變化(the information need is translated into a query),因此這個指標不是確定的(more than binary)。
有了以上三個基本要素,我們就可以構造出一個合理的測試集:包含文檔集、查詢集和有關評價機制。
測試集 | Test collections
在制定測試集的時候,往往要先標注好相關的「查詢-文檔」對。對于小的測試,可以采用人工標注(遍歷文檔集和查詢集)。
但對于較大的測試集則不行(如 TREC 測試集)。此時,可以采用如下方法:
- Pooling | 池化
直接用已有的幾個檢索系統(tǒng)在「總的基準文檔集」中檢索,取出每個檢索的前 n 個結果,取并集,用這個「新的集合」作為「模擬基準文檔集」進行標注,這樣就可以大大減少范圍。
- Sampling | 抽樣
可以通過隨機抽樣估計真實相關集的大小。
- Search-based
與其閱讀所有的文檔,不如人工用較寬泛的 Query 先得到一些檢索結果,再在這些結果中標記。
有效性度量 | Effectiveness measures
有了合理的測試集,只需要用待測試 IR 查詢「基準查詢集」的內(nèi)容,對查詢結果與「查詢-文檔」對比較,即可得到有效性度量。
以下介紹兩個在度量有效性過程中常用的變量。
精度和召回率 | Precision and Recall
在檢索結果的 Top n 中,我們定義如下變量:
Precision (精度): Proportion of a retrieved set that is relevant.
Recall (召回率): Proportion of all relevant documents in the collection included in the retrieved set.
與這兩個概念相關的還有 Miss (漏識率) 和 Fallout (誤報率)。
對應的混淆矩陣(Confusion Matrix)如下表:
| / | 相關 | 不相關 |
|---|---|---|
| 檢索到 | A | B |
| 未檢索到 | C | D |
這樣的計算過程沒有考慮到檢索結果的順序,事實上相關文檔排在前列的搜索引擎才是我們最需要的。
有序檢索 | Ranked retrieval
考慮搜索引擎返回的結果是有序的,取 Top n,則計算 P/R 的方法可以加以修正:
對檢索到的文檔按照 ranking 排列,順次計算 P/R,每次計算時考慮前 k 個文檔。最后會得到一組 n 個 P/R 值,再對 Top n 中的「相關文檔」對應的 Precision 取平均。


上圖中,我們對搜索引擎 A 和搜索引擎 B 查詢了同一關鍵詞,并取了 Top 10 的查詢結果,其中各有 5 篇相關文檔,經(jīng)過計算可發(fā)現(xiàn),A 的檢索結果更優(yōu)。
但是,如果我們要對同一個搜索引擎 A 用不同的關鍵詞來查詢呢?

對于不同的 query 可能 Top n 中有數(shù)量不同的相關文檔,此時的 Recall 就會不一致。如果我們要計算同一 Recall 值處的精度,則需要用到插值方法。
跨查詢平均 | Averaging across queries
僅用個別的 query 難以在數(shù)據(jù)巨大的文檔集中得到準確的 P/R 值。因此需要考慮更多的 query,并對結果再次平均。
由此,引出兩種平均的思想:
- Micro-average (微平均): each relevant document is a point in the average. 只針對該搜索引擎下一個 query 的命中結果,求出平均精度。
- Macro-average (宏平均): each query is a point in the average (Most Common). 針對該搜索引擎下的許多 query 的微平均精度,再求總的平均精度。
做宏平均的過程中,最重要的是將所有 query 視作平等的點。因為在微平均的過程中,我們往往只關注一些大樣本、常見樣本,而這些樣本并不能完全體現(xiàn)搜索引擎的性能。而宏平均關注其他小樣本、偏僻樣本,這些樣本的檢索結果體現(xiàn)了搜索引擎內(nèi)部的類別分布是否均勻。
這種方法也稱作 MAP (Mean Average Precision),平均之上的平均。
繪圖 | Recall/Precision graphs
如果只關注平均精度,則會隱藏檢索結果的一些有效信息。如果用圖表的形式呈現(xiàn),則更能觀察到趨勢。
如果直接把 ranked retrieval 的結果畫在圖中,會得到一條「鋸齒狀」的曲線。因為在同一個召回率下,隨著結果數(shù)的增長,精度是垂直向下的。

此時,如果我們想要關注曲線中的:
- 特定召回率(10%、20%等)下的精度
- 零召回率(系統(tǒng)尚未返回結果)下的精度
由于各個 query 對應的相關文檔總數(shù)不同,觀測到的召回率點也不同。此時就需要對離散的點用 interpolate (插值),做出連續(xù)的曲線,才能確定這些點的精度。接下來討論如何選取適合的插值方法。
直接連接各點?連接最大值?連接最小值?連接平均值?
零召回率時假設為零?假設為最大精度?假設為平均精度?與起始點相等?
基本原則:從平均來看,隨著召回率的增加,精度應該是單調(diào)遞減的。
基于這個原則,可以得到
即:選取「當前區(qū)間」最大的精度點,再以「召回率大于該點的區(qū)間」為「新區(qū)間」,選取最大的精度點,迭代至 100%。
最后用「階梯狀」曲線連接以上各點,可以得到單調(diào)遞減的曲線。

E and F
綜合考慮 P/R 值,可以計算出如下單值評價指標。
E Measure
用于強調(diào)精度或召回率中的某一個指標,同時兼顧另一個指標。
根據(jù) 的取值,增大
代表強調(diào)精度的重要性,反之強調(diào)召回率。
令 ,可以得到
當 時可得到二者相同重要性的效果,此時的
具有的物理意義是所有相關文檔
和所有檢索到文檔
的集合的對稱差的基數(shù)除以兩個集合的基數(shù)。
F Measure
將 取補,可以得到
其中 分數(shù)則是 P/R 值的調(diào)和平均,較為平均的兼顧了二者。這是分類與信息檢索中最常用的指標之一。
之所以使用調(diào)和平均而不是算術平均,是因為在算術平均中,任何一方對數(shù)值增長的貢獻相當,任何一方對數(shù)值下降的責任也相當;而調(diào)和平均在增長的時候會偏袒較小值,也會懲罰精確率和召回率相差巨大的極端情況,很好地兼顧了精確率和召回率。
單值評價指標 | Other Single-Valued Measures
類似 和
這樣的單值評價指標之所以重要,是因為這樣能夠更好的優(yōu)化度量。此外,在文檔評價中,我們還有如下指標:
- 期望搜索長度 | Expected search length
定義在弱順序文檔,量化的用戶查找 K 個相關文檔所需工作量。這項指標計算預期用戶在找到第 K 個相關文檔之前,按順序瀏覽搜索結果列表將要看到的非相關文檔的數(shù)量。
- 損益平衡點 | Breakeven point
尋找 Precision 等于 Recall 的點,通常在分類任務中用到。
- 平均排序倒數(shù) | MRR (Mean Reciprocal Rank)
對于某些 IR 系統(tǒng)(如問答系統(tǒng)或主頁發(fā)現(xiàn)系統(tǒng)),只關心第一個標準答案返回的 rank,越前越好,這個位置的倒數(shù)稱為 Reciprocal Rank (RR) ,對問題集合求平均,則得到 MRR。即,把標準答案在被評價系統(tǒng)給出結果中的排序取倒數(shù)作為它的準確度,再對所有的問題取平均。