由淺入深逐個(gè)解析信息檢索中的度量指標(biāo)。 我們今天遇到的大多數(shù)軟件產(chǎn)品都集成了某種形式的搜索功能。我們?cè)诠雀枭纤阉鲀?nèi)容,在YouTube上搜索視頻,在亞馬遜上搜索產(chǎn)品,在Slack上搜索信息,在Gmail上搜索郵件,在Facebook上搜索人等等。 作為用戶,工作流非常簡(jiǎn)單。我們可以通過在搜索框中寫下我們的查詢來搜索條目,系統(tǒng)中的排名模型會(huì)給我們最相關(guān)的前n個(gè)結(jié)果。
在這篇文章中,我將解釋學(xué)習(xí)中常用的離線度量來回答上述問題。這些指標(biāo)不僅對(duì)評(píng)估搜索結(jié)果有用,而且對(duì)關(guān)鍵字提取和推薦等問題也有用。 問題1:二元相關(guān)性讓我們通過一個(gè)簡(jiǎn)單的玩具例子來理解各種評(píng)估指標(biāo)的細(xì)節(jié)和權(quán)衡。我們有一個(gè)排序模型,它會(huì)為一個(gè)特定的查詢返回5個(gè)最相關(guān)的結(jié)果。根據(jù)我們的ground-truth,第一個(gè)、第三個(gè)和第五個(gè)結(jié)果是相關(guān)的。 讓我們看看評(píng)估這個(gè)簡(jiǎn)單例子的各種指標(biāo)。 A. 排序不感知的度量1. Precision@k這個(gè)指標(biāo)量化了排名前k的結(jié)果中有多少項(xiàng)是相關(guān)的。在數(shù)學(xué)上,由下式給出: 對(duì)于我們的例子,precision@1 = 1,因?yàn)榍?結(jié)果中的所有項(xiàng)都是相關(guān)的。 同樣,precision@2 = 0.5,因?yàn)榍?個(gè)結(jié)果中只有一個(gè)是相關(guān)的。 我們可以計(jì)算出所有k值的precision分?jǐn)?shù)。 precision@k的一個(gè)限制是它沒有考慮相關(guān)的項(xiàng)目的位置。考慮具有相同數(shù)量相關(guān)結(jié)果的兩個(gè)模型A和B,即5個(gè)中的3個(gè)。對(duì)于模型A,前三項(xiàng)是相關(guān)的,而對(duì)于模型B,后三項(xiàng)是相關(guān)的。盡管模型A更好,但對(duì)于這兩個(gè)模型,Precision@5是相同的。 2. Recall@k這個(gè)度量給出了查詢的所有實(shí)際相關(guān)結(jié)果中在所有的實(shí)際的相關(guān)結(jié)果中的比例。在數(shù)學(xué)上: 對(duì)于我們的例子,recall@1 = 0.33,因?yàn)橹淮嬖?個(gè)實(shí)際相關(guān)項(xiàng)中的一個(gè)。 類似地,由于3個(gè)實(shí)際相關(guān)的項(xiàng)中只有2個(gè)項(xiàng)存在,故recall@3 = 0.67。 我們可以計(jì)算不同K值的召回分?jǐn)?shù)。 3. F1@k這是一個(gè)組合度量,通過取它們的調(diào)和平均值,將Precision@k和Recall@k結(jié)合在一起。我們可以這樣計(jì)算: 利用前面計(jì)算的precision和recall的值,我們可以計(jì)算不同K值的F1-scores,如下圖所示。 B. 排序感知的度量雖然precision、recall和F1為我們提供了一個(gè)單值度量,但它們不考慮返回的搜索結(jié)果的順序。為了解決這一局限性,人們?cè)O(shè)計(jì)了以下排序感知的度量標(biāo)準(zhǔn): 1. Mean Reciprocal Rank(MRR)當(dāng)我們希望系統(tǒng)返回最佳相關(guān)項(xiàng)并希望該項(xiàng)位于較高位置時(shí),這個(gè)度量是有用的。 在數(shù)學(xué)上: 其中:
為了計(jì)算MRR,我們首先計(jì)算排序倒數(shù)。它只是第一個(gè)正確的相關(guān)結(jié)果的倒數(shù),值的范圍從0到1。 在我們的例子中,由于第一個(gè)正確的項(xiàng)目位于1的位置,所以1的倒數(shù)為1。 讓我們看另一個(gè)例子,其中只有一個(gè)相關(guān)結(jié)果出現(xiàn)在列表的最后,即位置5。它的倒數(shù)得分更低,為0.2。 讓我們考慮另一個(gè)例子,其中返回的結(jié)果都不相關(guān)。在這種情況下,倒數(shù)為0。 對(duì)于多個(gè)不同的查詢,我們可以通過對(duì)每個(gè)查詢?nèi)〉箶?shù)的平均值來計(jì)算MRR。 我們可以看到,MRR并不關(guān)心剩余的相關(guān)結(jié)果的位置。所以,如果你的例子需要以最好的方式返回多個(gè)相關(guān)的結(jié)果,MRR不是一個(gè)合適的度量。 2. Average Precision(AP)平均精度是衡量模型選擇的所有與 ground-truth相關(guān)的項(xiàng)目是否都有較高的排序。與MRR不同,它考慮所有相關(guān)的項(xiàng)目。 數(shù)學(xué)上: 其中:
對(duì)于我們的例子,我們可以根據(jù)不同K的Precision@K值計(jì)算AP。 為了說明AP的優(yōu)勢(shì),讓我們以前面的例子為例,但將3個(gè)相關(guān)的結(jié)果放在開頭。我們可以看到,這個(gè)例子比上面的例子獲得了一個(gè)更好的AP分?jǐn)?shù)。 3. Mean Average Precision(MAP)如果我們想計(jì)算多個(gè)查詢的平均精度,我們可以使用MAP。它只是所有查詢的平均精度的平均值。數(shù)學(xué)上: 其中:
問題2: 分等級(jí)的相關(guān)性讓我們以另一個(gè)玩具例子為例,其中我們不僅標(biāo)注了相關(guān)或不相關(guān)的項(xiàng)目,而是使用了0到5之間的評(píng)分標(biāo)準(zhǔn),其中0表示相關(guān)性最低,5表示相關(guān)性最高。 我們有一個(gè)排序模型,它會(huì)為一個(gè)特定的查詢返回5個(gè)最相關(guān)的結(jié)果。根據(jù)我們的ground-truth,第一項(xiàng)的相關(guān)性得分為3,第二項(xiàng)的相關(guān)性得分為2,以此類推。 讓我們了解評(píng)估這種類型的各種度量。 1. Cumulative Gain (CG@k)這個(gè)度量使用了一個(gè)簡(jiǎn)單的概念來總結(jié)top-K條目的相關(guān)性分?jǐn)?shù)。這個(gè)總分?jǐn)?shù)稱為累積收益。在數(shù)學(xué)上: 對(duì)于我們的例子,CG@2是5,因?yàn)槲覀儗⑶皟蓚€(gè)相關(guān)性得分3和2相加。 同理,我們可以計(jì)算所有k值的累積收益: 雖然很簡(jiǎn)單,但CG并沒有考慮到相關(guān)項(xiàng)目的順序。因此,即使我們將一個(gè)不太相關(guān)的項(xiàng)交換到第一個(gè)位置,CG@2也是一樣的。 2. Discounted Cumulative Gain (DCG@k)我們看到了一個(gè)簡(jiǎn)單的累積收益是如何不考慮位置的。但是,我們通常希望具有高相關(guān)性得分的項(xiàng)目出現(xiàn)在一個(gè)更好的排序位置上。 考慮下面的一個(gè)例子。在累積收益的情況下,我們只是簡(jiǎn)單地將分?jǐn)?shù)相加,而沒有考慮它們的位置。
所以,我們需要一些方法來懲罰他們的位置。DCG引入了一個(gè)基于對(duì)數(shù)的懲罰函數(shù)來降低每個(gè)位置的相關(guān)性得分。對(duì)于5個(gè)項(xiàng),懲罰是: 使用這個(gè)懲罰,我們現(xiàn)在可以計(jì)算折扣累積收益,只需使用懲罰標(biāo)準(zhǔn)化過后的相關(guān)分?jǐn)?shù)的總和。在數(shù)學(xué)上: 為了理解對(duì)數(shù)懲罰的行為,讓我們?cè)趚軸上繪制排名位置,在y軸上繪制相關(guān)性得分的百分比,即 現(xiàn)在為我們的例子計(jì)算DCG。 基于這些懲罰過的分?jǐn)?shù),我們現(xiàn)在可以計(jì)算不同k值下的DCG,只需將它們加起來。 對(duì)于DCG@K還有一種替代公式,如果相關(guān)的條目排名較低,那么懲罰就會(huì)更多。該方案在工業(yè)上更受青睞。 雖然DCG解決了累積收益的問題,但它有一定的局限性。假設(shè)查詢Q1有3個(gè)結(jié)果,查詢Q2有5個(gè)結(jié)果。那么有5個(gè)結(jié)果Q2的查詢將會(huì)有一個(gè)更大的總體DCG分?jǐn)?shù)。但我們不能說問題2比問題1好。 3. Normalized Discounted Cumulative Gain (NDCG@k)為了允許跨查詢比較DCG,我們可以使用NDCG,它使用相關(guān)項(xiàng)的理想順序來規(guī)范化DCG值。讓我們以之前的例子為例,我們已經(jīng)計(jì)算了不同K值下的DCG值。 對(duì)于我們的例子,理想情況下,我們希望條目按照相關(guān)性得分的降序排序。 我們來計(jì)算這個(gè)排序下的理想的DCG(IDCG)。 現(xiàn)在,我們可以計(jì)算不同k的NDCG@k,通過對(duì)DCG@k除以 IDCG@k: 因此,我們得到的NDCG分?jǐn)?shù)的范圍在0到1之間。一個(gè)完美的排名會(huì)得到1分。我們還可以比較不同查詢的NDCG@k分?jǐn)?shù),因?yàn)樗且粋€(gè)標(biāo)準(zhǔn)化分?jǐn)?shù)。 總結(jié)這篇文章中,我們了解了二元相關(guān)性和分級(jí)標(biāo)簽相關(guān)性的各種評(píng)估指標(biāo),以及每個(gè)指標(biāo)如何改進(jìn)之前的指標(biāo)。 ![]() 英文原文:https:///2020/08/information-retrieval-evaluation/ |
|