Cross-retriever는 질문과 문서를 하나의 입력으로 받아서 두 텍스트 간의 연관성을 평가한다. 이 방식은 질문과 문서를 결합하여 하나의 입력으로 처리하기 때문에 정확도가 높고, 특히 Transformer 기반의 모델에서는 두 텍스트 간의 상호작용을 깊이 있게 학습할 수 있어, 질의 응답 시스템에서 자주 사용된다.
Bi-retriever는 질문과 문서를 각각 독립적으로 임베딩하여, 두 임베딩의 유사도를 계산하는 방식으로, 검색 속도가 빠르다는 장점이 있다. 그러나 질문과 문서 간의 세밀한 상호작용을 반영하지 못할 수 있어, 정확도 측면에서 약간의 한계가 있다. 그럼에도 대규모 문서 집합에서 효율적으로 검색할 수 있어 대용량 데이터셋에서 많이 사용된다.
Negative Sampling, Triplet Loss
Negative Sampling과 Triplet Loss는 정보 검색 시스템의 학습 과정에서 중요한 역할을 한다. 특히 이 두 기법은 문서 검색 모델이 더 정확하고 효율적으로 학습될 수 있도록 도와준다.
Negative Sampling은 학습 중에 잘못된 문서(negative samples)를 모델에 제공하여, 모델이 정답에 가까운 문서(positive sample)와 그렇지 않은 문서 간의 차이를 학습하게 만드는 방법이다. 이를 통해 모델이 긍정적인 예시와 부정적인 예시를 잘 구별할 수 있도록 한다.
Triplet Loss는 하나의 긍정 문서와 하나의 부정 문서를 함께 학습시키는 방식으로, 이를 통해 모델이 질문과 긍정 문서 간의 거리를 가깝게 유지하고, 부정 문서와는 거리를 멀게 학습하도록 만든다. 구체적으로, 이 방식은 세 개의 샘플로 이루어진 triplet(Anchor, Positive, Negative)을 사용하여 Anchor-Positive 간의 거리와 Anchor-Negative 간의 거리를 비교하여 손실(loss)을 계산한다. 이로 인해 모델은 더 정교하게 문서를 구분할 수 있다.
Sparse Retriever는 주로 전통적인 역색인 구조와 같은 희소벡터(sparse vector)를 사용하는 방법이다. 대표적인 알고리즘으로는 TF-IDF, BM25 등이 있다. 이 방식은 각 문서 내의 단어 출현 빈도를 기반으로 검색을 수행하며, 특정 키워드에 기반한 검색에서 매우 빠르고 효과적이다. 하지만 단어의 동의어 처리나 문맥적인 의미를 반영하기에는 한계가 있다.
Dense Retriever는 딥러닝 기반의 임베딩(embedding)을 활용해 문서와 질문을 의미적(semantic)으로 벡터화한 후, 이 벡터 간의 유사도를 측정하여 검색을 수행한다. Dense Retriever는 문맥을 이해하고 동의어나 유사 의미의 표현을 잘 처리할 수 있지만, 학습과 검색 과정이 더 복잡하고 계산 자원이 많이 필요하다.
Retriever Hybridization
Retriever Hybridization은 Sparse Retriever와 Dense Retriever의 장점을 결합하는 방식이다. Sparse 방식은 특정 키워드를 빠르게 찾아내는 능력이 뛰어나고, Dense 방식은 문맥적 의미를 잘 반영하는 장점이 있기 때문에, 두 방식을 함께 사용하는 하이브리드 검색 방법이 점차 주목받고 있다.
방식은 Sparse Retriever를 통해 초기 검색을 빠르게 수행하여 잠재적으로 관련성이 높은 문서들을 필터링하고, 필터링된 문서 집합에서 Dense Retriever를 사용하여 문서 간의 의미적 유사도를 평가해 최종 검색 결과를 도출한다.