[논문 리뷰] Dense Text Retrieval based on Pretrained Language Models: A Survey - 작성중

MostlyFor·2026년 3월 3일

검색 시스템

목록 보기
6/7

해당 글은
Dense Text Retrieval based on Pretrained Language Models: A Survey 논문에 대한 정리 글이며 중간중간 필요한 부분은 추가적으로 작성중이다.

1. Introduction

요약
해당 introduction에서는 검색 초기 ~ BERT (PLM) 를 활용한 단계까지의 간단한 소개에 대한 내용이다.

Text retrieval의 목적은 Query와 relevant한 Document를 찾아주는 것

초기 단계 (sparse term-based vectors)

  1. text를 어떻게 표현할까?
  • bag-of-words
  1. 중요한 단어도 있을텐데 단어들에 가중치를 두어야 하지 않을까?
  • tf-idf

이 때의 관련성 평가는 lexical similarity로 평가

그리고 이를 효율적으로 구현하기 위해 inverted index 활용

  1. 관련성 평가를 더 잘할 수 있지 않을까?
  • bm25

Machine Learning LTR (Learning to Rank)

머신러닝이 발전하면서 이를 이용해 관련성 평가를 하는 것이 등장

사람이 feature를 지정하고, 관련성 평가를 labeling하여 지도학습을 통해 쿼리와 문서의 관련성을 평가하는 방식

해당 방식의 한계는 feature engineering을 수동으로 해야한다는 것

Deep Learning

이제 수동으로 feature를 만들지 않고 dense representation을 만드는 신경망 활용 (Neural IR)

해당 논문에서는 dense representation을 만드는 신경망 활용 이전까지를 pre-BERT라고 말한다.

PLM-based dense retrieval model

PLM이 기존 방식들보다 압도적으로 좋은 성과를 냄

그러한 이유는
1. 대량의 데이터로 학습하여 얻어낸 text representation 능력
2. large-scale labeled retrieval datasets

(학습에 필요한 데이터들을 쉽게 구할 수 있으므로 접근이 쉽고 그래서 더 발전했다고 생각하는 듯 하다.)

해당 논문에서는 dense retireval을 네 가지 측면에서 다룬다.

  1. architecture
  2. training
  3. indexing
  4. integration

2. Overview

해당 장에서는 앞으로 다룰 task들에 대한 소개와 notation을 알려준다.

  • 일반적인 2 stage 구조에서 해당 논문은 첫 번째 retirever에 초점을 둔다.
  • fine-graded relevance label이 아닌 binary relevance label에 초점을 둔다.
  • Rel(q,d)=fsim(ϕ(q),ψ(d))Rel(q, d) = f_{sim}(\phi(q), \psi(d))

4. Architecture

해당 장에서는

4-1. Background

4-1-2. PLMs for Sparse Retrieval

Term weighting

해당 카테고리에서는 term weight를 계산하는데 있어서 문맥적 의미를 더하는 것을 목표로 한다.

예시로는 아래 모델들이 나온다.

DeepCT
HDCT
COIL

이 중에서 DeepCT는 단어의 문맥적 중요도를 PLM을 이용해서 반영하는 모델이다.

DeepCT

  • BM25를 사용할 때 TF 부분을 w(t,d)w(t,d)로 대신 사용한다.
  • 이때, w(t,d)w(t,d)는 단순히 Term의 빈도로 계산하는게 아니라 문맥 안에서의 중요도를 포함한다.
  • w(t,d)=fθ(BERT,t,context)w(t,d)=f_\theta(BERT,t,context)

Term expansion

PLM을 이용해서 vocabulary mismatching 문제를 해결하는 방식으로 query나 doc의 expansion을 실행한다.

vocabulary mismatch 문제는 query : 'car' 이고 Document 'automobile'인 경우 일반적인 Term matching 방식에서는 이를 매칭할 수 없다는 것이다.

이를 해결한 예시로는 아래 모델들이 나온다.
docTTTTTquery
SPLADE

이 중에서 docTTTTTquery는 PLM을 이용해서 해당 doc와 관련된 검색어들을 예측하고 doc에 붙여서 doc expansion을 하는 것이다. 예를 들어 automobile에 관한 문서라면 car를 예측해서 doc에 보강하고, 이를 통해 검색이 되게 한다.

4-2. Neural Architecture for Dense Retrieval

4-2-1. The Cross-Encoder Architecture

query-text pair를 하나의 문장으로 보는 방식

sentence : [cls] query [sep] text

4-2-2. The Bi-Encoder Architecture

two-tower architecture 채택하여 query embedding과 text embedding을 따로 구하는 방식

Single-representation bi-encoder

query embedding과 text embedding의 similarity function을 통해 계산

BERT, RoBERTa 등을 사용하여 학습

이 논문 당시 최근에는 T5를 text representation 학습에 활용하기도 함.

이 블로그 포스팅 당시는 llm을 embedidng 모델로 쓰기도 함

Multi-representation bi-encoder

sigle representation의 경우 문제는 query와 text 사이의 fine-grained semantic interation을 충분히 모델링하지 못한다는 점.

이러한 문제를 해결하기 위해 Poly-encoder, ME-BERT 같은 경우 여러 개의 representation을 활용

더 나아가 극단적으로 multi-representation semantic matching을 활용하는 방식이 ColBERT

해당 모델은 fine-grained를 위해 token-level representation 을 활용함

Multi-representation의 공통적인 아이디어여러 측면에서 semantic view를 보게 한다는 점이다.

보통 이러한 representation은 indexing 과정에서 저장되며 실제 infernece 시에는 pre-computed 되어 시간을 줄일 수 있다.

다만 이러한 방식의 문제점은 여러 representation을 가지면서 저장해야 하는 비용이 늘어난다는 것이다.

이러한 문제를 해결하기 위해 ColBERTer에서는 embedding dimension reduction등의 전략을 제안하기도 한다.

Phrase-level representation

일반적으로 retrieval은 document 단위 paragraph 단위로 검색하는데 초점을 둔다. 하지만 일부 특수한 task의 경우 phrase-level 단위를 고려하는 것이 자연스러운 task가 있다.

이를 고려한 모델로는 DenSPI, DensePhrases 등이 있다.

주의 깊게 볼만한 점은 dense phrase 검색이 DPR 보다 높은 passage retireval accuracy를 달성할 수 있다는 점!

phrase-level 정보가 fine-grained semantic 특성을 포착하면서 relevance matching에도 유용하다는 점

Other improvement variants

4-2-3. Comparison between Cross and Bi

Cross-encoder가 fine-grained semantic interaction을 더 잘 학습할 수 있으므로, 성능이 더 뛰어나다.

fine-grained interaction을 강화하기 위해 multi-representation bi-encoder 방식이 나와서 single- 방식보다 성능은 향상되었지만 여전히 cross-encoder보다는 성능이 떨어진다.

하지만, Bi-encoder는 더 유연하고 효율적이다.

유연한 이유는 phrase 단위 검색과 같은 구조를 할 수 있다는 점에서, 효율적이라는 점은 ANN을 활용해 벡터 검색을 가속화할 수 있다는 점이다.

이러한 특징이 있어서 보통 2 stage로 설계하고 처음은 Bi-encoder를 활용해 recall을 잡고, 이후엔 cross-encoder를 활용해 조금 더 정밀하게 판별한다.

그리고 추가적으로 cross-encoder는 bi-encoder의 distillation으로 사용되곤 한다.

4-3. Sparse Retrieval vs Dense Retrieval

5. Training

5.1 Formulation and Training Issues

5.1.1 Loss Function

Negative log-likelihood loss

binary relevance를 가정 (좋아요 또는 클릭)

Dense retriever를 최적화하기 위한 핵심 아이디어는 query에 대해 관련된 텍스트의 확률을 최대화 하는 것

L(qi,di+)=logef(ϕ(qi),ψ(di+))ef(ϕ(qi),ψ(di+))+def(ϕ(qi),ψ(d))L(⟨q_i,d_i^+⟩)= −log\frac{e^{f(\phi(q_i), \psi(d_i^+))}}{e^{f(\phi(q_i), \psi(d_i^+))} + \sum_{d'} e^{f(\phi(q_i), \psi(d'))}}

f : 유사도 측정 함수
ϕ,ψ\phi, \psi 각각 query encoder, text encoder
d' : negative sample

해당 loss의 기본 컨셉은 positive는 가깝게, negative는 멀게

Triplet loss

해당 loss는 query에 대해 하나의 positive text와 하나의 negative text 사이의 차이를 최적화한다.

일반적으로 Negative log-likelihood loss가 성능이 더 좋다고 한다.

Similarity measurement

유사도 함수 f에 대해 여러 방식을 사용할 수 있다.

  • inner product
  • cosine similarity
  • Euclidean distance

MS MARCO dataset에 대해 동일한 BERT로 실험 결과 아래와 같은 경향이 있다고 한다.

cosine similarity는 더 짧은 문서를 선호하는 경향
inner product는 더 긴 문서를 선호하는 경향

현재 문헌 기준 제일 널리 쓰이는 건 inner product 라고 한다.

5.1.2 Incorporating Optimization Constraints

위에서 제시한 일반적인 loss 이외에도 여러 constraints를 포함시킨 여러 varient가 존재한다.

Text-oriented optimization

기존으로 제시한 loss 함수는 query-oriented 한 방식이다.

이런 표현을 쓰는 이유는 하나의 쿼리에 대해 positive text와 negative text를 쓰기 때문이다.

text-oriented loss에서는 하나의 positive text에 대해 negative query를 사용한다.

L(qi,di+)=logef(ψ(di+),ϕ(qi))eψ(di+),f(ϕ(qi))+qef(ψ(di+),ϕ(q))L(⟨q_i,d_i^+⟩)= −log\frac{e^{f(\psi(d_i^+), \phi(q_i))}}{e^{\psi(d_i^+), f(\phi(q_i))} + \sum_{q'} e^{f(\psi(d_i^+), \phi(q'))}}

기존 query-oriented optimization과 결합했을 때 성능이 향상된 연구들이 있다.

Text-text similarity constraints

여태까지는 query와 text의 유사도를 활용해서 loss를 구성했다.

이런 접근 방식으로 인해 positive texts와 의미적으로 유사한 negative texts를 구별하는 것이 어렵다고 주장한다.

의미적으로 유사하면 embedding을 했을 때 서로 가깝게 위치하게 된다. 이 loss의 주장은 positive 주변에 negative가 섞여서 혼동되지 않게 학습하는 것으로 보인다.

이러한 주장에 따라 text constraints를 제안했다.

이러한 가정 하에

fsim(d+,q)>fsim(d+,d)f_sim(d^+, q) > f_sim(d^+, d^-)

loss의 nomalization term에 text-text similarity를 포함한다

L(qi,di+)=logef(ψ(di+),ϕ(qi))eψ(di+),f(ϕ(qi))+def(ψ(di+),ψ(d))L(⟨q_i,d_i^+⟩)= −log\frac{e^{f(\psi(d_i^+), \phi(q_i))}}{e^{\psi(d_i^+), f(\phi(q_i))} + \sum_{d'} e^{f(\psi(d_i^+), \psi(d'))}}

5.1.3 Major Training Issues

크게 세 가지 이슈가 있고, 5-2, 5-3, 5-4 에서 각각의 이슈에 관한 해결책들을 다룬다.

  1. Large-sacle Candidate Space
  • 실제 학습에서 전체 collection을 사용할 수 없으므로 일부 collection에서 negative samples를 사용하게 된다.
  • 이러한 결과 학습 시점과 실제 시점 사이의 candidate space의 분포 차이가 존재한다.
  • 연구에 따르면 샘플링된 negative들이 retrieval 성능에 많은 영향을 미친다.
  1. Limited relevance judgements
  • 비록 대규모 벤치마크 데이터셋인 MS MARCO가 공개되었지만, 여전히 큰 PLM 기반 dense retriever를 학습시키는 것은 한계가 있다.
  • 또한, annotation이 완전하지 않을 수 있다.
  • 이러한 이유로 false negative가 발생할 가능성이 존재한다.
  1. Pretraining discrepancy
  • PLM을 학습 할 때의 MLM이나 NSP는 retrieval task에 특화되지 않아서, retrieval 성능이 최적이 아닐 가능성이 있다.
  • CLS는 전체 텍스트의 의미를 포착하도록 명시적으로 설계되지 않았다.
  • dense retreival에 더 적합한 pretraining task를 설계할 필요가 있다.

5-2. Negative Selection

전체 데이터셋은 너무 방대하기 때문에 positive에 대한 일부 negative를 활용해야 한다.
아래는 negative dataset을 고르는 대표적인 방법이다.

5-2-1. In-batch Negatives

한 배치 내 b개의 (query, positive document) 쌍에 대해 각 쿼리 당 자신의 positive 하나와 b-1개의 negative를 사용하는 방식이다.

이러한 방식은 메모리 효율을 올려줘서 많은 negative를 쓸 수 있게 해준다.

이 방식을 쓰지 않는 경우를 생각해보면 각 쿼리 당 서로 다른 negative를 가지게 된다. 즉, 한 배치 내에 b^2개의 문서를 가지게 되는 것이다.

이렇게 많아진 문서로 인해 activation memory가 증가해서 GPU 메모리 문제가 생긴다.

따라서 이 방식은 메모리 효율적으로 많은 negative를 쓸 수 있게 해줬다고 볼 수 있다.

5-2-2. Cross-batch Negatives

In-batch negative 방식이 한 batch 안에서의 동작이었다면, cross-batch negative는 더 많은 negative를 쓰기 위해 multi-GPU 설정에서 동작한다.

기본 아이디어는 서로 다른 GPU들 사이에서의 문서를 재사용 하는 것이다.

GPU가 a개 있다고 가정하면, 하나의 쿼리 당 a * b - 1개의 negative를 얻게 하는 방식이다.

이 아이디어는 gradient caching을 이용하면 single-GPU 설정으로 확장될 수 있다고 한다.

5-2-3. Hard Negatives

여태까지 negative 수를 어떻게 늘리냐를 봤다면, 이제는 negative의 품질을 올리는 방법이다.

hard negative는 높은 의미적 유사성을 가지지만 실제로는 관련 없는 텍스트를 의미한다.

관련 텍스트와 비관련 텍스트를 구분하는 능력을 높이기 위해서는 이러한 hard negative가 의미가 있다.

Static hard negatives

고정된 negative selector가 선택하는 negatives 사용

BM25가 반환한 lexically similar한 텍스트들 중에서 negative로 샘플링

coarse/fine semantic similarity 기반 retrieved negatives, 휴리스틱 기반 context negatives 등이 있다.

더 나아가서 서로 다른 종류의 negatives를 결합하기 위한 fusion 전략도 있다.

또 다른 전략으로는 학습 전에 query 들을 clustering 한 뒤, batch를 구성할 때 cluster에서 묶인 query들로 구성.

이러면 비슷한 문서들이 negative가 되어 hard negative로 유도

Dynamic hard negatives

dense retriever 학습 과정에서 업데이트되는 negatives 사용

ANCE에서 최적화 중인 retriever가 반환하는 top retrieved texts를 negative(=global hard negatives)로 샘플링

근데 이런 방식에서는 매번 inference를 진행해야 하므로 시간이 많이 소요된다.

이를 위해 asynchronous index refresh 전략을 사용한다.

즉, m 개의 batch마다 index를 업데이트 하는 것.

주의할 점은 dynamic hard negatives로 학습하기 전에 모델이 warmed up 되어야 한다는 점이다.

dynamic negatives는 학습과 테스트 사이의 candidate space 불일치를 해결할 잠재력이 있다. 왜냐하면 실제 negative의 범위가 전체 candidate이기 때문에.

denoised hard negatives

실제로 hard negative에서는 false negative 문제가 발생한다. 즉, 실제로는 정답(positive)으로 볼 수 있지만 잘못 레이블링 된 것이다.

이 문제를 해결하기 위해 RocketQA에서는 cross-encoder를 사용하여 false negative일 가능성이 있는 top ranked texts를 필터링한다.

5-2-4. Discussions on Effect of Nagative Sampling

In-batch sampling은 충분히 정보성 있는 negative를 생성하지 못한다.

5-3. Data Augmentation

해당 Data Augmentation에서는 기존 labeled data를 기반으로 추가적인 training signal을 만드는 것을 의미한다.

데이터 수량을 늘리는 접근과 수량은 그대로 두고 training signal(5-2)를 만드는 접근도 있다.

5-3-1. Query Generation

기본적인 아이디어는 text로부터 query를 생성하는 것.

즉, 문서로부터 사람들이 검색할만한 query를 생성하는 것

ex) doc2query

이 방식의 장점은 추가적인 human annotation 없이 대량의 training 데이터 생성 가능

5-3-2. Knowledge Distillation

cross-encoder를 활용해서 relevance score를 생성하고 이를 통해 bi-encoder dense retriever 학습하는 것

5-3-3. Pseudo Labeling

retriever를 이용해서 상위 검색 결과를 생성한 후, pseudo positive 또는 pseudo negative로 사용

5-4. Pretraining for Dense Retrieval Models

기존 PLM pretraining task들은 retreival task에 특화되어 설계 x

조금 더 retrieval-oriented pretraining을 수행하는 것이 목표

5-4-1. Retrieval-oriented Pretraining

ICT (Inverse Cloze Task) 가 대표적인 예시다.

ICT에서는 문서에서 하나의 sentence를 제거해서 이를 query로 사용한다. 이후 query는 원래 속해있던 document를 retreival 하도록 학습한다.

ICT는 DPR에서 사용되었고, retrieval의 성능을 향상시켰다고 한다.

일반적인 pretraining -> ICT (ssl) -> 검색 fine-tuning (supervised)

5-4-2. Representation-enhanced Pretraining

이 방식은 PLM이 retrieval에 더 적합한 representation을 학습하도록 설계된 pretraining task를 사용하는 것이다.

예를 들어, SimCSE가 있는데 이는 대조 학습 기반 sentence representation을 학습한다.

서로 다른 dropout을 적용해 동일한 sentence에 대해 두 개의 representation을 생성하고 이를 positive pair로 사용하여 대조 학습을 한다.

5-4-3. Multi-task Pretraining

retrieval과 question answering task 같이 관련된 여러 task를 동시에 학습하는 구조

서로 다른 shared representation을 활용하여 dense retrieval 성능 향상시키는 것

6. Indexing for Dense Retrieval

6.1 Traditional Inverted Index for Sparse Retrieval

6.2 Approximate Nearest Neighbor Search for Dense Retrieval

ANN은 효율적인 dense retrieval 시스템을 설계하기 위한 핵심 기술이다.

다음과 같은 순서로 아래 챕터가 진행된다.

  1. dense retrieval 환경에서 nearest neighbor search 문제를 공식화한다
  2. 검색 효율을 향상시키는 두 가지 주요 방향을 논의한다
  3. 실제 구현 및 소프트웨어를 소개한다

6.2.1 Formulation and Overview

nearest neighbor search의 목표

P=argmaxpPfsim(q,p)P^* = argmax_{p \in P} f_{sim}(q,p)

candidate 집합 P에 대해 유사도를 최대화하는 p를 찾는 것

여기서 f는 inner product 혹은 cosine similarity로 구현될 수 있다.

물론 가장 단순한 방법은 모든 candidate에 대해 탐색하는 것이다.

이를 줄이기 위해 근사적으로 찾는 방법인 ANN이 개발되었다.

ANN 알고리즘 설계는 두 가지 trade-off가 존재한다.

검색 효율 vs 검색 정확도

(ANN 알고리즘을 평가하기 위한 ANN Benchmark도 존재한다.)

ANN의 검색 효율을 향상시키는 두 가지 주요 방법은 아래와 같다.

  1. index 구조를 활용한 유사도 계산 횟수 줄이기 -> 6.2.2
  2. product quantization을 사용하여 유사도 계산 비용 줄이기 -> 6.2.3

6.2.2 Improving Search Efficiency by Index Structures

index 구조를 설계하는 대표적인 방법은 아래 세 가지가 있다.

  1. Hashing 기반 접근
  • 유사한 vector를 동일한 bucket에 배치하는 것
  • query vector가 주어지면 hash function을 사용해서 bucket을 할당하고 해당 bucket에 속한 vector 들만 검색

    그런데 같은 bucket이라면 왜 유사한 것들이 있다고 가정할 수 있는지?
    -> hyperplane에 대해 어느 쪽에 있는지를 기반으로 해싱을 만든다. 따라서 비슷한 곳에 있는 벡터면 같은 hyperplane에 속할 가능성이 많으므로 유사하다.

  1. clustering 기반 접근
  • 가장 유사한 cluster 찾고, 소수의 cluster를 선택해 검색 수행
  • cluster centroid는 메모리에 저장하고, centroid의 posting list는 디스크에 저장할 수 있다.
  1. graph 기반 접근
  • 자신과 가까운 이웃들을 연결하여 graph 형성
  • greedy 방식으로 유사한 neighbor 선택하면서 이동
  • 메모리 많이 먹음

cluster 기반 접근이 graph 기반 접근 (hnsw) 보다 메모리 효율적이다.
그래프 기반은 모든 노드에 대해 연결을 다 저장해야 하기 때문에 추가적인 메모리가 소요된다.

6.2.3 Improving Search Efficiency by Product Quantization

PQ는 text embedding을 압축하여 similarity 계산에서 시간, 메모리 모두 줄이는 방법이다.

6.3 Implementation for ANNS Algorithms

7. Integration with Reranking

7.1 The Retrieval Pipeline

7.2 Retrieval Pipeline Training

7.3 Integration and Optimization in Other Applications

0개의 댓글