Retrieval Model

Retrieve-then-rank 모델

Cross Encoder: Ranker

Query와 Candidate의 모든 조합에 대해서 계산을 해야해서, candidate이 많을 때는 속도가 너무 느려서 쓸수가 없음. 전체 candidate 중에서 한 100개나 10개정도만 retriever로 선별을 하고, 이 중에서 가장 최고의 정답을 ranker가 선택하도록 하는 방식으로 활용해야함.

Poly Encoder: Fast Retriever

Poly Encoder는 query랑 candidate에서 각각 feature를 뽑고, similarity 계산하는 부분만 조금 복잡한 attention 아키텍쳐를 쓰기 때문에 연산속도가 빠른 편임

Bi-Encoder / ColBERT: Super Fast Retriever

이녀석들도 마찬가지로 Q랑 C 각각의 feature들을 미리 뽑아 놓고 similarity 계산하는 데, 이 부분이 심지어 엄청나게 속도가 빠른 MIPS(Maximum Inner Products Search)를 기반으로 하기 때문에 Poly Encoder보다도 더 빠르게 사용할 수가 있음. 다만 ColBERT는 Bi-Encoder보다 좀 더 좋은 성능을 내기 위한 token-wise MaxSim값들의 합을 사용하였다는 게 차이임.

Retriever Model의 성능 평가

Test 데이터를 확보하고 있다해도, GT sentence보다 더 적절한 candidate이 존재할 수 있기 때문에 Top 1 Accuracy를 가지고는 모델의 성능을 평가하기가 부적절하다.

Hits@1of10

따라서 1개의 GT sentence와 랜덤하게 뽑은 9개의 sentence를 섞어서 batch를 구성하고, 이 중에서 정답을 맞출 확률을 측정하는 Hits@1of10 방식을 사용해서 간접적으로 모델의 성능을 측정해야한다.