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. 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.

Afledte ord

1

Kilder

2