cross encoder
Cross encoder er en neural netværksarkitektur, der behandler et par af sekvenser (fx forespørgsel og dokument) samtidigt og direkte beregner en relevansscore eller relation mellem dem.
Kort fortalt
En cross encoder ser på to tekster på én gang og vurderer, hvor relevante de er for hinanden — i modsætning til en bi-encoder, der laver separate vektorer.
- Kategori
- arkitektur
- Niveau
- øvet
Betydninger
1- 1
Neural arkitektur, der tager to sekvenser som input og anvender opmærksomhedsmekanismer på tværs af dem for at beregne en interaktionsscore.
- Vi brugte en cross encoder til at re-ranke de øverste 100 resultater fra en bi-encoder.
- Cross encodere opnår højere præcision end bi-encodere på omkostning af beregningstid.
Hvornår bruges det
Cross encodere bruges typisk i re-ranking-systemer, hvor en bi-encoder først henter kandidater, og cross encoderen derefter præcist vurderer relevansen. De er også almindelige i opgaver som naturlig sprog inferens (NLI) og semantisk tekstlig lighed (STS). Da de kræver sammenligning af alle par, er de langsommere end bi-encodere og anvendes derfor ofte i en anden fase.
Kodeeksempel
from sentence_transformers import CrossEncoder
model = CrossEncoder('cross-encoder/ms-marco-TinyBERT-L-2')
scores = model.predict([('query', 'document text')])
print(scores)Opretter en cross encoder-model fra sentence-transformers og rangerer et forespørgsels-dokument-par.
Oprindelse
Udtrykket 'cross' henviser til, at input krydses og behandles i fællesskab, i modsætning til separate encoding-løb.