Search & Ranking System

NLP og søk2026Retrieval

Et system for informasjonsinnhenting og rangering (indeksering, klassiske rangeringsmodeller, evaluering, learning-to-rank og spørreutvidelse), implementert på et gitt rammeverk og målt mot relevansvurderinger på en offentlig nyhetssamling.

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.

Teknologi og metoder

PythonSQLite (sqlitedict)NLTKir_datasetsscikit-learn (gradient boosting)rank-bm25BM25/BM25FSpråkmodeller for søkLearning-to-rankPseudo-relevance feedbackP@k, MAP, MRR, nDCG