원제: SPLADE: Sparse Lexical and Expansion Model for First Stage Ranking
기존의 BERT등 Large Pre-training Language Model + Fine tuning만으로 여러 과제에서 적용이 가능했지만, 주로 Re-Ranker에서만 사용되고 1단계 Retrieval은 inverted index에 의존하는 BoW모델이 주로 사용된다. 하지만 다른 논문들에서도 언급했듯 용어가 관련 문서에 없는 경우 어휘 불일치 문제가 발생한다. 이전에 살펴본 DPR처럼 Dense retriever은 용어의 명시적 매칭을 모델링할 수 없다.
이를 해결하기 위해 sparse representation을 학습하려는 연구가 많아지고 있다. 해당 모델은 Logarithmic Activation과 Sparse Normalization을 기반으로 하여 복잡한 학습 파이프라인을 이용하는 dense 모델들과 비교해도 충분히 경쟁력 있는 성능을 보인다고 한다.
BERT Siamese model을 기반으로 하는 Dense retreival이 QA와 정보 검색의 후보 생성의 표준이고, 여기서 더 나아간 ColBERT로 1단계 검색에서도 효율적으로 적용이 가능하다
ColBERT: 문서를 토큰 단위로 쪼개고, 질의 토큰 각각을 문서 토큰 전부랑 유사도를 계산해서 효율성을 더 높인 방식
정교하지만 저장공간이 많이 필요하고, 대규모로 갈수록 문제가 발생함.
Dense index대신 Term-based index방식(SNRM)도 존재하지만 효율성이 확실하지 않다.
SNRM: inverted-index를 유지하면서 가중치 게산만 신경망에 맡기는 방식
L1 Regularization을 사용하기에 희소성을 만들어내지만, 효율성이 떨어짐
생성 기반 접근(doc2query, docTTTTTquery)을 통한 document expansion방식도 존재하지만 학습 목표가 간접적이고, 통제가 불가능하다.
doc2query: 문서 자신을 설명하는 query를 생성모델(T5 등)을 활용해 미리 만들어서 넣어둠
Document, Query의 각 토큰이 전체 어휘의 각 토큰에 대해 갖는 중요도를 추정(SparTerm, EPIC, SPARTA)하는 방식도 존재한다. 하지만 EPIC, SPARTA와 같이 최대값을 이용하는 경우에는 희소성 확보를 위한 추가적인 방식이 필요하고, SparTerm과 같은 합을 이용한 방식은 명시적인 희소성 정규화가 없기에 성능이 제한된다.(자세한건 다음 챕터에서 다룬다)
BERT WordPiece상에서의 단어 중요도를 Masked Language Model(MLM)의 logit을 기반으로 예측한다. 조금 더 자세히 보면
중요도
이후 최종 표현은 가중치가 양수가 되도록 ReLU를 적용하고, 중요도 예측값을 합산하여
(는 이후에 설명)
이는 각 어휘에 대해서 새로운 가중치 를 예측하기에 query/document expansion으로 볼 수 있다.
여기서 SparTerm은 두가지 희소화 방식을 추가한다
1) Lexical-only: 토큰 j가 입력 시퀀스 t에 등장하면 = 1, 아니면 0
2) Expansion-aware: 확장을 고려한 binary gating. 는 Lexical-only로 1인 경우를 제외하고 학습됨.
이제 얻은 질의 표현 q와 문서 표현 d의 내적을 통해 얻은 점수가 이고, Query , positive document , Negative document 에 대해서
를 최소화하도록 학습한다.
한계점
일부 단어가 과도하게 지배하는 것을 막고, 표현의 희소성을 자연스럽게 유도하는 방식이다.
log 그래프를 보면 일정 이상부터는 매우 천천히 증가하는 형태가 된다. 이로 인해 특정 단어가 수백번 반복되더라도 값이 엄청나게 차이가 나지 않는다.
동시에 실험적으로 log-saturation을 이용하면 정규화 없이도 sparse solution을 구할 수 있다고 한다.
학습 단계에서 하나의 Query 를 하나의 정답 문서 에 대응시킨다.
이때 기존처럼 batch 내의 Query , Positive document , BM25등으로 얻은 하나의 negative document 에 추가로 batch 내에서 외의 문서들을 라고 한다.
우리는 DPR 에서 동일한 방식을 봤다. DPR에서도 데이터셋에 명시적으로 제시되는 Positive와 BM25에서 정답을 포함하지는 않지만 Query와 매칭되는 의미적으로 헷갈리기 쉬운 passage인 Negative, 그리고 다른 Query와 짝지어진 Gold를 사용했었다.
이를 종합해서
위의 과정을 거쳐도 특정 용어가 너무 많은 문서와 연결될 수 있다. 이때 해당 후보 문서를 전부 훑으면서 연산량이 터지는 문제가 발생한다(Zipf's law: ). 이를 해결하기 위해서 L1정규화만으로는 부족하기에, 새로운 정규화 과정을 진행한다.
이런 방식을 통해서 희소성은 더 높아지고, 연산량은 더 줄어든다.
즉, 더 희소 + 확장도 가능한 표현을 end-to-end로 결합시킬 수 있게된다.
기존의 sparse 모델을 압도하고 Dense retriever과 거의 동급의 성능을 보인다. 동시에 FLOPS는 BM25수준까지 낮춘다. 이를 통해 효율-성능 간 tradeoff가 L1보다 우수하다.
정규화 강도를 조절하는 것으로 성능/속도 중심을 선택할 수 있고, 극단적으로 sparse하더라도 여전히 경쟁력이 존재한다.
결론적으로 BM25의 단점인 확장 불가를 dense의 기법으로 해결하면서, dense의 단점인 명시적 매칭 불가를 희소성을 이용한 기법으로 해결한다. 성능도 dense의 성능이 나오면서 효율성은 BM25급의 효율이 나온다.
한계점으론 Expansion이 존재하기에 BM25에 비해서 index가 커질 수 밖에 없고, 하이퍼파라미터의 튜닝 정도에 따라서 크게 흔들린다. 또한 여전히 WordPiece Tokenizer에 의존한다.