Utfordringen
Hvordan finner man de mest relevante dokumentene blant titusenvis, og hvordan vet man om en endring faktisk gjør søket bedre? Målet var å implementere de sentrale delene av et søkesystem og måle hver endring mot relevansvurderinger i stedet for magefølelse.
Løsningen
Systemet består av fire deler som bygger på hverandre:
- Baseline: en invertert indeks med separate felt for tittel og brødtekst og en enkel scoring basert på termfrekvens.
- Klassiske rangeringsmodeller: BM25, feltvis BM25F, spørrelikelihood-språkmodell med glatting og en feltvis variant.
- Learning-to-rank: en punktvis modell som skal omrangere BM25-resultater ut fra spørring–dokument-features.
- Spørreutvidelse: pseudo-relevance feedback som vekter nye søkeord fra de best rangerte dokumentene.
Hvordan det ble bygget
Arbeidet bygger på et gitt rammeverk med grensesnitt og tester; jeg implementerte logikken i de fire delene. Indeksen er lagret i SQLite og dekker de første 50 000 dokumentene i Washington Post-samlingen fra TREC. Learning-to-rank bruker gradient boosting (scikit-learn) på forhåndsberegnede features, og spørreutvidelsen bruker en RM3-lignende vekting av termer fra BM25-toppdokumentene. Kvaliteten måles med P@10, MAP, MRR og nDCG@10 mot offisielle relevansvurderinger.
Resultat
BM25 ga en tydelig forbedring over baselinen: nDCG@10 økte fra 0,048 til 0,144 på de 50 offisielle spørringene (topp 100 resultater, samme indeks). De feltvise variantene lå på omtrent samme nivå som BM25, mens den enkle språkmodellen lå lavere. Verken learning-to-rank eller spørreutvidelse ga en pålitelig ekstra forbedring i dette oppsettet.
Kontekst
Tallene er målt i en etterfølgende, reproduserbar evaluering. Indeksen dekker bare en del av samlingen (omtrent 6 % av dokumentene som er vurdert som relevante, finnes i indeksen), så absolutte verdier er lave og ikke sammenlignbare med resultater på hele samlingen; sammenligningene gjelder samme indeks og samme spørringer. Den integrerte omrangeringen brukte i praksis ett enkelt feature i stedet for den trente modellen, og evaluert separat rangerte den trente modellen heller ikke bedre enn BM25. Effekten av spørreutvidelsen var ubetydelig.