19-2014-15-IR-Librer.. - DEI, UniPD

Librerie Software per la
valutazione sperimentale
Dr. Ing. Gianmaria Silvello
!
Gruppo di ricerca di Sistemi di Gestione dell’Informazione (IMS), Dipartimento di Ingegneria dell’Informazione,
Università degli Studi di Padova
[email protected]
Corso di Reperimento dell’Informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Indice
Dati sperimentali in formato TREC
!
trec_eval (scritto in C) - NIST
!
Libreria MATTERS (scritto in Matlab) - UNIPD
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
2
Dati in formato TREC
Il NIST
TREC è organizzato dal National Institute of Standard
and Technology (NIST)
I dati utilizzati e prodotti da TREC sono disponibili
all’URL: http://trec.nist.gov/
Alcuni dati sono liberamente accessibili:
Informazioni su Track e Tasks
Pool (o qrels nel gergo TREC)
Topics
Alcuni dati sono ad accesso limitato (user/pwd):
Run sottomesse dagli utenti
Alcuni dati sono a pagamento:
Corpus di documenti
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
4
Pool (qrels)
Il pool in formato TREC è un file testuale
dove ogni riga è un’entry indipendente
composta da 4 campi:
<topic id> <q0> <document id> <relevance weight>
501
501
501
501
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
0
0
0
0
WTX001-B08-110
WTX001-B08-218
WTX001-B10-156
WTX001-B11-100
Gianmaria Silvello
0
0
0
0
slide
5
Run
Le run in formato TREC sono documenti testuali
dove ogni riga è composta da 6 campi:
<topic id> <q0> <document id> <rank> <score> <run id>
501
501
501
501
Q0
Q0
Q0
Q0
WTX070-B25-135
WTX094-B32-108
WTX076-B09-110
WTX079-B29-439
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
0
1
2
3
-6.100471607608047
-6.84225689293694
-7.110164008173832
-7.158359319249925
Gianmaria Silvello
apl10wa
apl10wa
apl10wa
apl10wa
slide
6
trec_eval
trec_eval
trec_eval è una libreria software per la valutazione
sperimentale scritta e mantenuta da Chris Buckley
del NIST
!
È open-source e scritta in C
!
È disponibile all’URL: http://trec.nist.gov/trec_eval/
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
8
trec_eval: come si usa
Scaricare la libreria
Compilare (make)
Verificare il funzionamento della libreria con il
comando: make quicktest
Il file README contiene tutte le informazioni
necessarie
L’input di trec_eval è una run e il pool in formato
TREC, l’output è un insieme di misure
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
9
trec_eval: come si usa
Uso tipico per ottenere le misure medie (su tutti i
topic) di una run :
./trec_eval path_to_pool/
qrels.trec8.adhoc.txt /path_to_run/te.res
Specificando il flag -q si ottengono anche le misure
topic per topic
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
10
trec_eval: esempio d’uso
Si consideri una run denominata DPH.res
426
426
426
426
426
426
426
426
426
426
426
…
427
427
427
427
427
427
427
427
427
427
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
LA031490-0004 0 57.095935962401676 DPH
LA012990-0011 1 56.01595427018188 DPH
LA111889-0138 2 49.05101025758912 DPH
LA051990-0141 3 46.22684500398847 DPH
LA031189-0043 4 39.44708085608632 DPH
LA031189-0002 5 39.121816496616546 DPH
LA070389-0049 6 38.95926008388802 DPH
LA030390-0076 7 32.89132590264582 DPH
LA041089-0080 8 32.50697886997216 DPH
LA070289-0082 9 29.162298873022596 DPH
FBIS4-49219 10 27.84155431377452 DPH
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
Q0
LA082089-0008 0 47.95010530450913 DPH
FR941028-2-00201 1 47.39363612274179 DPH
FT922-7705 2 26.887535613599507 DPH
FR940405-1-00137 3 17.56043186055852 DPH
FT924-7120 4 15.61505010991931 DPH
FT933-1362 5 14.422076098948647 DPH
FT923-10771 6 10.961939155804142 DPH
FR941028-2-00203 7 10.494589830410405 DPH
FBIS3-21201 8 8.17378149232876 DPH
FR940405-1-00140 9 7.238808653623172 DPH
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
11
trec_eval: esempio d’uso
Si consideri una run denominata DPH.res e un pool denominato
qrels.trec8.adhoc.txt
$ ./trec_eval /TREC8/pool/qrels.trec8.adhoc.txt TREC8/
runSet/DPH.res
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
12
trec_eval: output
runid
num_q
num_ret
num_rel
num_rel_ret
map
gm_map
Rprec
bpref
recip_rank
iprec_at_recall_0.00
iprec_at_recall_0.10
iprec_at_recall_0.20
iprec_at_recall_0.30
iprec_at_recall_0.40
iprec_at_recall_0.50
iprec_at_recall_0.60
iprec_at_recall_0.70
iprec_at_recall_0.80
iprec_at_recall_0.90
iprec_at_recall_1.00
P_5
P_10
P_15
P_20
P_30
P_100
P_200
P_500
P_1000
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
all
Gianmaria Silvello
DPH
25
25000
2596
1401
0.2237
0.1144
0.2694
0.2366
0.6606
0.7183
0.4664
0.3691
0.3001
0.2470
0.2014
0.1548
0.1155
0.0711
0.0566
0.0566
0.4400
0.4200
0.3920
0.3480
0.3253
0.2188
0.1554
0.0884
0.0560
slide
13
MATTERS
MATTERS
MATTERS: MATlab Toolkit for Evaluation of information
Retrieval Systems è una libreria open-source scritta in
Matlab da N. Ferro e G. Silvello
!
È liberamente disponibile all’URL:
http://matters.dei.unipd.it/
!
Permette di lavorare con dati in formato TREC
!
Necessita di Matlab 2013b o superiore: disponibile nei
laboratori informatici del DEI
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
15
Cinque pacchetti
MATTERS si compone di cinque pacchetti principali:
Input/Output: contiene funzioni per importare e salvare in tabelle
Matlab i dati della valutazione sperimentale e di calcolare statistiche
su questi dati
Measures: contiene funzioni per fare l’assessment delle run e di
calcolare le misure più comuni in IR sia con rilevanza binaria che
multigrado
Analysis: contiene funzioni per condurre analisi avanzate sui dati e
sulle misure come calcolare statistiche descrittive, condurre analisi
di correlazione, determinare robustezza e sensitività delle misure
Plot: contiene funzioni per disegnare plot avanzati a partire dalle
analisi dei dati
Util: contiene funzioni di varia utilità ad esempio per salvare e
caricare dati da disco in modo efficiente
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
16
Documentazione
La documentazione della libreria è disponibile
all’URL:
http://matters.dei.unipd.it/MATTERS_API/index.html
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
17
Importare il pool
Vediamo l’uso di una funzione di importazione del
pool:
importPoolFromFileTRECFormat
[pool, report] = importPoolFromFileTRECFormat(Name, Value)
Gli argomenti in ingresso devono essere specificati come coppie Nome, Valore separate da
virgole.
!
Name deve apparire tra apici (' ').
!
Si possono specificare più coppie e l’ordine delle coppie non è importante: Name1, Value1,
..., NameN, ValueN.
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
18
Importare il pool
Coppie Name, Value:
FileName (mandatory) -il percorso del file di testo da importare;
Identifier (mandatory) - un identificatore univoco per il file; deve rispettare
le regole Matlab per i nomi dei file.
collectionIdentifier = 'TREC_10_2001_Web';
RelevanceGrades (mandatory) - un vettore numerico di valori ordinati in
modo crescente (e.g. da non rilevante a altamente rilevante). Il vettore
deve contenere un elemento per ogni grado di rilevanza;
relevanceGrades = 0:2;
RelevanceDegrees (mandatory) - un vettore di stringhe dove ogni valore
corrisponde ad un grado di rilevanza numerico.
relevanceDegrees = {'NotRelevant', 'Relevant',
'HighlyRelevant'};
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
19
Importare il pool
Coppie Name, Value
RequiredTopics (optional) - un array di stringhe che indica quali
topic devono essere importati. Se non viene indicato nulla allora sono
importati tutti i topic.
Delimiter (optional) - una stringa che specifica quale è il separatore
tra i campi del file da importare. I Valori ammessi sono: comma,
space, tab, semi, or bar. Se non si specifica nulla il valore di default è
tab
delimiter = 'tab';
Verbose (optional) - un valore booleano che specifica se si vogliono
visualizzare ulteriori informazioni
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
20
Importare le run
Per importare una singola run si può usare la
funzione:
importRunFromFileTRECFormat
!
Per importare un insieme di run da una directory si
può usare la funzione:
importRunsFromDirectoryTRECFormat
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
21
Importare una run
Vediamo l’uso di:
importRunFromFileTRECFormat
[run, report] = importRunFromFileTRECFormat(Name, Value)
Gli argomenti in ingresso devono essere specificati come coppie Nome, Valore separate da
virgole.
!
Name deve apparire tra apici (' ').
!
Si possono specificare più coppie e l’ordine delle coppie non è importante: Name1, Value1,
..., NameN, ValueN.
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
22
Importare una run
Le coppie Nome,Valore sono simili a quelle del pool,
si consulti la documentazione per una descrizione
esaustiva
Analizziamo un parametro importanti aggiuntivo
rispetto all’import del pool:
DocumentOrdering (optional)
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
23
Document Ordering
Il parametro document ordering definisce l’ordine con cui
importare i documenti ossia se si devono ordinare per rank,
score, id del documento…
Le possibilità di scelta sono:
Original: mantiene l’ordinamento originale dei documenti nel file
TrecEvalLexDesc: è il valore di default e ordina i documenti come
trec_eval quindi in modo discendente per score e poi per document-id
(lessicografico)
TrecEvalLexAsc: ordinai i documenti in modo discendente per score e
poi ascendente per document-id (lessicografico),
Matters: ordina i documenti in modo discendente per score,
ascendente per rank e discendente per document-id
Conservative: ordine in modo discendente per score e per i documenti
con score uguale, mantiene l’ordinamento originale del file
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
24
Output
Una volta importate in MATTERS, pool e run sono
rappresentate come tabelle Matlab (disponibili dalla
versione 2013b):
http://it.mathworks.com/help/matlab/ref/table.html
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
25
La tabella pool in MATTERS
La variabile si chiama: pool_TREC_10_2001_Web
501
502
503
504
505
506
507
508
509
510
pool_TREC_10_2001_Web
_____________________
[1342x2 table]
[1749x2 table]
[1250x2 table]
[1275x2 table]
[ 956x2 table]
[1002x2 table]
[1263x2 table]
[1325x2 table]
[1482x2 table]
[1218x2 table]
Di fatto si tratta di una tabella di tabelle
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
26
La tabella pool in MATTERS
Accedere alla tabella del pool di un singolo topic:
>> pool_TREC_10_2001_Web(1,1)
ans =
501
pool_TREC_10_2001_Web
_____________________
[1342x2 table]
Accedere al contenuto del pool del primo topic:
>> pool_TREC_10_2001_Web{1,1}{1,1}
ans =
Document
________________
'WTX001-B08-110'
'WTX001-B08-218'
'WTX001-B10-156'
'WTX001-B11-100'
'WTX001-B14-12'
'WTX001-B24-225'
'WTX001-B37-32'
'WTX001-B47-339'
'WTX002-B04-3'
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
RelevanceDegree
_______________
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
HighlyRelevant
Gianmaria Silvello
slide
27
La tabella pool in MATTERS
Accedere al contenuto del pool del topic 501:
pool_TREC_10_2001_Web{'501',:}{1,1}
ans =
Document
________________
'WTX079-B19-134'
'WTX079-B19-175'
'WTX079-B20-173'
'WTX079-B24-248'
'WTX079-B29-427'
'WTX079-B29-439'
'WTX079-B29-470'
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
RelevanceDegree
_______________
NotRelevant
NotRelevant
NotRelevant
NotRelevant
Relevant
NotRelevant
HighlyRelevant
Gianmaria Silvello
slide
28
La tabella run in MATTERS
Accedere ai primi 10 topic di una run:
>> runA(1:10,1)
ans =
apl10wa
______________
501
[1000x3 table]
502
[1000x3 table]
503
[1000x3 table]
504
[1000x3 table]
505
[1000x3 table]
506
[1000x3 table]
507
[1000x3 table]
508
[1000x3 table]
509
[1000x3 table]
510
[1000x3 table]
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
29
La tabella run in MATTERS
Accedere ai primi 10 elementi del topic ‘501’ della runA:
>> runA{1,1}{'501',1}(1:10,:)
ans =
Document
Rank
________________
____
'WTX070-B25-135'
0
'WTX094-B32-108'
1
'WTX076-B09-110'
2
'WTX079-B29-439'
3
'WTX002-B30-50'
4
'WTX002-B04-3'
5
'WTX067-B16-115'
6
'WTX055-B12-345'
7
'WTX002-B29-279'
8
'WTX067-B44-213'
9
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
Score
_______
-6.1005
-6.8423
-7.1102
-7.1584
-7.178
-7.2331
-7.2812
-7.2937
-7.5188
-7.5817
slide
30
Assessment
In MATTERS l’assessment può essere fatto in modo
esplicito mediante la funzione assess
[assessedRunSet, poolStats, runSetStats,
inputParams] = assess(pool, runSet, varargin)
I diversi parametri permettono di effettuare la mappatura (e.g.
lenient) da rilevanza graded a binaria, assegnare dei pesi ai diversi
gradi di rilevanza, decidere la strategia di padding se la run è più
corta di 1000 documenti…
L’assessment può essere anche fatto in modo implicito
dalle singole misure che al loro interno chiamano la
funzione assess
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
31
Un esempio completo di import e assessment
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
32
Un esempio completo di import e assessment
>> assessedRunA{1,1}{1,1}(1:20,1)
ans =
Assessment
______________
NotRelevant
NotRelevant
NotRelevant
NotRelevant
HighlyRelevant
HighlyRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
Relevant
NotRelevant
NotRelevant
Relevant
HighlyRelevant
NotRelevant
NotRelevant
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
>> assessedRunABinary{1,1}{1,1}(1:20,1)
ans =
Assessment
______________
NotRelevant
NotRelevant
NotRelevant
NotRelevant
HighlyRelevant
HighlyRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
NotRelevant
HighlyRelevant
NotRelevant
NotRelevant
HighlyRelevant
HighlyRelevant
NotRelevant
NotRelevant
Gianmaria Silvello
slide
33
Calcolo delle misure: Esempio con CRP
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
34
Calcolo delle misure: Esempio con CRP
rho =
501
502
503
504
505
506
507
508
509
510
Merxtd
________
0.1342
0.22253
0.27966
0.17143
0.038523
0.28571
0.13281
0.12703
0.32864
0.33051
UniNEn7d
________
0.37349
0.081901
0.30556
0.26471
0.22642
0.4
0.19318
0.31333
0.30905
0.31707
apl10wd
________
0.32461
0.35371
0.264
0.375
0.38095
0.16667
0.073276
0.19831
0.30435
0.16957
fdut10wac01
___________
0
0
0.09621
0.1978
0.46154
0.013793
0.36957
0.30128
0.3211
0.4875
fdut10wal01
___________
0
0
0.095652
0.1978
0.44444
0.013793
0.32692
0.27811
0.33413
0.36792
Merxtd
________
0.24173
0.23257
0.33969
0.65824
0.70085
0
0.30674
0.33461
0.57507
0.74985
UniNEn7d
________
0.65539
0.18641
0.40405
0.70017
0.45629
0
0.53342
0.41283
0.40589
0.82631
apl10wd
________
0.33128
0.78643
0.52509
0.67426
0.69784
0
0.14076
0.14357
0.55592
0.042552
fdut10wac01
___________
0.37449
0.24679
0.34158
0.71482
0.59993
0
0.31722
0.64291
0.57617
0.79167
fdut10wal01
___________
0.36838
0.21956
0.14392
0.56088
0.56993
0
0.37026
0.49934
0.40203
0.24806
sigma =
501
502
503
504
505
506
507
508
509
510
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
35
Calcolo delle misure: Esempio con CRP
1600
Merxtd
UniNEn7d
apl10wd
1400
1200
1000
800
600
400
200
0
−200
0
100
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
200
300
400
500
600
Gianmaria Silvello
700
800
900
1000
slide
36
Calcolo delle misure: Esempio con CRP
Calcolare i valori medi degli indicatori di sintesi per tutti i topic:
l’uso della funzione descriptiveStatistics
[rhoDsByRun, rhoDsByTopic] = descriptiveStatistics(rho)
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
Gianmaria Silvello
slide
37
Calcolo delle misure: Esempio con CRP
rhoDsByRun =
Minimum
Maximum
FirstQuartile
SecondQuartile
ThirdQuartile
Mean
StandardDeviation
Variance
Merxtd
________
0
0.5
0.11945
0.20348
0.25169
0.18486
0.10619
0.011276
>> rhoDsByTopic(1:5,[1, 2, 6, 7])
ans =
Minimum
Maximum
________
_______
501
0
0.37349
502
0
0.35371
503
0.095652
0.30556
504
0.17143
0.375
505
0.038523
0.46154
Reperimento dell’informazione
Laurea Magistrale in Ingegneria Informatica - A.A. 2014/15
UniNEn7d
________
0
0.5
0.1875
0.25328
0.31333
0.2541
0.10581
0.011196
Mean
_______
0.16646
0.13163
0.20822
0.24135
0.31037
Gianmaria Silvello
apl10wd
________
0
0.5
0.16959
0.26512
0.31906
0.2416
0.1183
0.013996
fdut10wac01
___________
0
0.49923
0.023107
0.1989
0.29697
0.18476
0.15032
0.022595
StandardDeviation
_________________
0.1763
0.15387
0.10357
0.082295
0.17802
slide
38