BM25(희소 벡터)와 어텐션(Attention): 라우팅과 집중의 메커니즘 차이¶
엄밀히 말씀드리면, BM25(희소 벡터)와 딥러닝의 어텐션(Attention) 메커니즘은 서로 다른 기술이며, 직접적으로 라우팅을 수행하는 것은 아닙니다.
하지만 **"중요한 것만 남기고 나머지는 무시한다"**는 관점에서 보면, **기능적으로 매우 유사한 역할(Hard Attention/Routing 효과)**을 수행한다고 볼 수 있습니다.
이 미묘한 차이를 기술적으로 명확하게 정리합니다.
1. 기술적 팩트 체크: 서로 다른 족보¶
두 기술은 작동 원리와 시대적 배경이 완전히 다릅니다.
| 구분 | BM25 (희소 벡터) | 어텐션 (Attention) |
|---|---|---|
| 기반 기술 | 통계/확률 (Statistical) | 딥러닝/신경망 (Neural) |
| 작동 원리 | 단어 빈도(TF)와 역문서 빈도(IDF)라는 **수식**으로 점수 계산 | Query, Key, Value 간의 **벡터 내적**으로 유사도(가중치) 학습 |
| 집중 방식 | Hard Filtering (단어가 없으면 점수 0) | Soft Weighting (관련 없어도 0.001 같은 낮은 점수 부여) |
| 라우팅 여부 | 역색인(Inverted Index)을 통해 해당 단어가 있는 문서로만 이동 (물리적 라우팅) | 모든 토큰을 다 보되, 가중치를 조절하여 정보 흐름 제어 (소프트 라우팅) |
2. 왜 "라우팅/집중" 하는 것처럼 느껴질까요?¶
사용자가 "라우팅 집중"이라고 느끼는 이유는 BM25의 '희소성(Sparsity)'이 주는 효과 때문일 것입니다.
① 0(Zero)의 역할: 강제 라우팅¶
- 어텐션: "이 단어는 중요하지 않으니 0.01만큼만 신경 써" (Soft Attention).
- BM25: "이 단어는 0이야. 아예 보지 마." (Zero-out).
- 효과: BM25 벡터는 대부분이 0입니다. 즉, **0이 아닌 차원(특정 키워드)으로만 연산 경로를 강제(Routing)**합니다. 이는 딥러닝의 **Mixture of Experts(MoE)**나 **Sparse Attention**이 추구하는 "필요한 연산만 수행한다"는 개념과 결과적으로 맞닿아 있습니다.
② 역색인(Inverted Index) 구조¶
BM25는 검색 엔진에서 역색인 구조를 사용합니다.
- 질문에 "사과"가 들어오면, 전체 데이터베이스를 다 뒤지는 것이 아니라 "사과"라는 **경로(Route)**가 가리키는 문서 목록으로만 점프합니다.
- 이는 어텐션이 모든 토큰을 계산하는 것보다 훨씬 강력한 물리적인 연산 집중(Computational Focusing) 효과를 냅니다.
3. 현대 기술의 융합: SPLADE (어텐션으로 만든 희소 벡터)¶
최근에는 "어텐션이 라우팅(중요도 판단)을 해서 희소 벡터를 만드는 모델"**이 등장했습니다. 바로 **SPLADE 같은 모델입니다.
- 과거: BM25는 그냥 단어 개수만 셉니다. (어텐션 X)
- 최신 (SPLADE): BERT 내부의 **어텐션(Attention)**이 문맥을 파악한 뒤, "이 문장에서는 이 단어가 중요해"라고 판단하여 **가중치(Weight)**를 줍니다. 그리고 그 결과를 **BM25 같은 희소 벡터 형태**로 변환합니다.
결론 (Summary)¶
- 전통적인 BM25 자체는 어텐션 메커니즘을 쓰지 않는 단순 수식입니다.
- 하지만 BM25의 **희소성(Sparsity)**은 불필요한 정보를 0으로 만들어버림으로써, 시스템이 중요한 정보에만 **집중(Focus)하고 경로를 정하는(Routing) 효과**를 냅니다.
- 최신 Learned Sparse Retrieval(예: SPLADE) 모델들은 **어텐션을 사용하여 희소 벡터를 생성**합니다. (이 경우 어텐션이 라우터 역할을 합니다.)