

우연히 유튜브를 보다가 해당 논문을 가지고 소개한 글을 보게 되어, 마침 이 주제에 관심이 있었는데 보게 되었습니다.
여기서 읽어보다보니 가장 궁금한 것은 시맨틱 검색이 왜 BM25보다 떨어지는 경우가 많고 그거에 대한 수학적인 근거를 알 수 있고 그러면 질문 유형별로 어떻게 대처하면 좋을 지에 대한 힌트를 얻을 수 있었던 것 같다
1. 기초 개념 정리
임베딩(Embedding)이란?
- 텍스트를 고정된 차원의 벡터로 변환하는 방식
- 유사한 의미를 가진 문장이나 문서가 가까운 벡터가 되도록 학습됨
- 일반적으로 코사인 유사도로 유사도를 판단함
벡터 검색(Vector Search)이란?
- 쿼리도 임베딩 벡터로 만들고 전체 문서 중 가장 가까운 벡터를 찾아서 "관련 문서"로 간주함
- “모든 쿼리와 문서를 숫자 벡터 하나로 바꾼 뒤, 숫자 계산(거리/내적)으로 순위를 정한다.”
- 빠르고 대규모에 강점
랭커(Reranker)란?
- 1차 검색 결과에 대해 다시 판단하는 모델
- 쿼리와 문서를 동시에 보고 판단
- cross-encoder 구조가 많고 느리지만 더 정확
Sign-Rank란?
- 이진적인 쿼리-문서 관련성 행렬이 주어졌을 때, 그것을 표현할 수 있는 최소한의 임베딩 차원 수(d)를 의미
- 즉, 특정 관련성 패턴을 표현하려면 최소 몇 차원 임베딩이 필요한지를 나타냄
- sign-rank가 높다는 건, 그 패턴은 단일 벡터로는 표현하기 어렵다는 의미
검색 및 SIGN RANK 이해하기
내가 암묵적으로 믿고 있는 가정
임베딩 검색을 쓸 때 이런 가정을 해:
- 문서 A가 문서 B보다 쿼리 Q에 더 relevant면
→ score(Q, A) > score(Q, B) 여야 한다 - 이걸 모든 쿼리 × 모든 문서 쌍에 대해 동시에 만족시키고 싶다
이 논문에서는 이러한 것에 대해서 의문을 제기하는 논문이라고 보면 된다
❓ 이게 항상 가능한가?
❓ 벡터 차원이 충분히 크면 무조건 되나?
검색을 “행렬”로 보면 모든 게 단순해짐
논문은 검색을 이렇게 바꿔서 생각해.
(1) relevance 행렬 (qrels)
| 문서 1 | 문서 2 | 문서 3 | |
| 쿼리1 | +1 | -1 | -1 |
| 쿼리2 | -1 | +1 | -1 |
| 쿼리3 | -1 | -1 | +1 |
- +1 : relevant
- -1 : irrelevant
검색 시스템은 이 행렬을 점수 비교로 재현해야 해.
(2) 임베딩 기반 검색의 의미
임베딩 검색은 사실 이걸 하려는 거야:
- 각 쿼리 q → 벡터 q⃗
- 각 문서 d → 벡터 d⃗
- 점수 = q⃗ · d⃗ (내적)
그리고 목표는:
sign(q⃗ · d⃗) = qrels[q, d]
즉,
“이 내적의 부호(sign) 패턴이 qrels 행렬과 같아질 수 있느냐?”

쿼리에 따라 표현해야 할 문서 집합이 바뀌는데, 임베딩 공간이 그걸 전부 표현하지 못한다
여기서 등장하는 개념이 사인랭크(sign-rank)
📌 사인랭크란 한 줄 정의
사인랭크 = “이 +1 / -1 행렬을 저차원 벡터 내적의 부호(sign) 로 표현하려면 최소 몇 차원이 필요한가?”
조금 풀어 말하면:
- 어떤 행렬이 있을 때 그 행렬의 값이 sign(벡터_i · 벡터_j) 형태로 표현 가능하려면 벡터 차원이 얼마나 커야 하느냐
그 최소 차원이 사인랭크
📌 직관적 비유 (중요)
🎯 비유 1: 스위치 방
- 쿼리 = 스위치
- 문서 = 전등
- relevant = 켜짐
- irrelevant = 꺼짐
근데 스위치가 하나라면:
- 켜고/끄는 패턴은 매우 제한적임
스위치를 늘리면:
- 더 복잡한 on/off 패턴 가능
👉 사인랭크 = “이 패턴을 만들려면 스위치가 최소 몇 개 필요하냐”
🎯 비유 2: 종이 위에서 선 긋기
- 1차원: 한 줄 → 좌/우만 나뉨
- 2차원: 평면 → 직선으로 나눔
- 3차원: 공간 → 평면으로 나눔
문서들이 점으로 찍혀 있고, 쿼리가 “선을 하나 그어서 relevant / irrelevant 나누는 것”이라면
차원이 낮을수록 가능한 분할 패턴은 극히 제한됨
논문이 증명한 핵심 주장
이제 이 문장이 이해될 거야.
❝ 어떤 qrels 행렬은 사인랭크가 매우 크다 ❞
이 말의 뜻은:
- 아무리 학습을 잘해도 아무리 벡터를 최적화해도 차원이 부족하면 그 relevance 패턴 자체를 표현할 수 없다
이건:
- 모델 성능 문제 ❌
- 학습 데이터 문제 ❌
- 언어 이해 부족 ❌
👉 기하학적 한계
👉 표현력의 한계
왜 “아주 단순한 쿼리”에서도 문제가 생기나?
여기서 사람들이 오해하는 부분.
“그런 건 복잡한 논리 쿼리에서나 그렇지 않나?”
논문은 k=2 (문서 2개 고르기) 만 해도 사인랭크가 커지는 패턴을 만들 수 있음을 보임.
즉,
- 쿼리는 단순 문서도 단순
- 하지만 조합이 많아지는 순간
→ 벡터 하나로는 모든 경우를 만족 불가
그래서 임베딩 검색이 왜 자주 “묘하게 틀리나”
실무에서 자주 보는 현상 기억나지?
- “이 문서도 맞는데 왜 안 나오지?”
- “A랑 B를 같이 만족하는 걸 찾고 싶은데”
- “조건 하나만 바꾸면 결과가 뒤집힘”
👉 이게 우연이 아니라 구조적 현상이라는 게 이 논문의 요지야.
사인랭크 다음에 반드시 이해해야 할 핵심 개념
한 줄 요약부터 주면 사인랭크 = 표현 가능성의 한계라면 아래 개념들은 “그 한계가 언제, 왜, 어떻게 드러나는지”를 설명하는 도구들이다.
Hyperplane separation (초평면 분리)

왜 내적 기반 검색이 근본적으로 “선 긋기 문제”인지
핵심 개념
- 임베딩 검색에서
- 문서 벡터들은 공간의 점
- 쿼리는 “점수 기준선”을 만드는 방향 벡터
- q · d > 0 이면 relevant
→ 사실상 초평면 하나로 공간을 둘로 나누는 것
왜 중요한가
- 차원이 d면:
- 가능한 초평면 분할 패턴 수는 제한됨
- 문서 수가 늘어나면:
- “이 문서들은 relevant, 저 문서들은 irrelevant” 같은 패턴이
- 어떤 초평면으로도 분리 불가능한 순간이 온다
👉 이게 사인랭크가 “기하학적으로 막힌다”는 의미를 공간 관점에서 설명해줌
Top-k combinatorial explosion
논문에서 진짜 중요한데, 사람들이 제일 놓치는 개념
핵심 질문
“top-k 결과로 나올 수 있는 문서 조합은 몇 개나 될까?”
- 문서가 N개면 가능한 top-k 조합 수는 → C(N, k) (조합 폭발)
문제는?
- 임베딩 공간에서 쿼리 하나가 만들 수 있는 top-k 조합 수는 차원 d에 의해 제한됨
즉, 현실에서 필요한 top-k 조합 수 ≫ 임베딩이 만들어낼 수 있는 조합 수
👉 이게 논문에서 말하는
“아주 단순한 k=2에서도 실패가 나온다” 의 수학적 배경이다.
Dense vs Sparse = 차원 수의 철학 차이
왜 BM25가 이런 문제를 덜 맞는가
Dense (임베딩)
- 차원: 384, 768, 1024
- 모든 의미를 같은 좌표계에 욱여넣음 → 조합 표현력 제한
Sparse (BM25 등)
- 차원: 사실상 단어 수만큼 (수만~수십만)
- relevance = 단어 조합 → 조합 수를 훨씬 많이 표현 가능
👉 그래서 논문에서:
- LIMIT 같은 데이터셋에서는 BM25가 임베딩보다 압도적으로 잘 나옴
이건 “BM25가 더 똑똑해서”가 아니라 차원이 높아서 조합을 버틸 수 있기 때문이다.
Single-vector vs Multi-vector (왜 ColBERT가 등장했나)
사인랭크를 우회하려는 첫 번째 시도
Single-vector
- 문서 하나 = 벡터 하나
- relevance 판단 = 초평면 1개
Multi-vector
- 문서 하나 = 여러 벡터 / 쿼리도 여러 토큰 벡터
- relevance = 여러 국소 비교의 집합
👉 효과:
- 단일 초평면 → 조각난 여러 초평면
- sign-rank 한계를 부분적으로 완화
👉 한계:
- 여전히 “모든 조합”은 못 담음
- 비용 폭증
- 논문에서도 “완전한 해법은 아님”으로 평가

“임베딩 실패 쿼리”를 자동 감지하는 방법 (사인랭크를 실제 신호로 바꾸기)
먼저 냉정한 전제
임베딩이 실패하는 쿼리는 사전에 수학적으로 증명해서 잡아내는 게 아니라, 실패할 수밖에 없는 구조적 신호를 감지하는 문제다.
즉, “이 쿼리는 임베딩으로 풀면 위험하다”를 확률적으로 판별하는 것.
임베딩이 구조적으로 약한 쿼리의 공통 특징
A. 조합 조건이 들어간 쿼리
다음 패턴이 보이면 거의 확실히 위험 신호야.
- “A이면서 B”
- “A를 포함하지만 C는 제외”
- “조건을 모두 만족하는”
- “규정에 맞는 / 요건 충족”
- “~한 경우에만”
👉 이유
- 이런 쿼리는 relevance가 유사도(similarity)가 아니라 조건 만족 여부로 정의됨
- relevance subset의 조합 수가 급격히 늘어남 → sign-rank 급증 → 단일 벡터로 분리 불가
B. Top-k 의미가 중요한 쿼리
예:
- “관련 문서 2개만 정확히 골라줘”
- “딱 맞는 케이스만 보여줘”
👉 이유
- 논문 핵심 결과: k=2에서도 조합 폭발은 발생
- 임베딩은 “대충 비슷한 애들”은 잘 모으지만 정확히 이 둘은 못 고르는 경우가 많음
C. 메타/정책/규칙 기반 질문
예:
- “이 문서는 배포 가능한가?”
- “법적으로 문제 없는 것만”
- “사내 기준을 충족하는 경우”
👉 이유
- relevance는 의미 유사도가 아니라 판단 함수
- 임베딩은 판단 함수를 표현하지 못함
자동 감지 전략 (실무적으로 쓸 수 있는 것)
1단계: 쿼리 구조 신호 추출
- 규칙 기반 + LLM 혼합
- 예:
- AND / OR / NOT 패턴
- 조건 키워드
- 판단형 동사 (“충족”, “가능”, “위반”)
2단계: 임베딩 불확실성 지표
- top-k 점수 분포가
- 너무 평평하거나 상위 문서 간 의미가 뒤섞여 있으면 → “경계가 흐림” 신호
3단계: 실패 이력 기반 학습
- 과거에: 임베딩 → 리랭커에서 순위가 크게 뒤집힌 쿼리
- 이런 쿼리 패턴을 “위험 쿼리”로 학습
그래서 결론은 질문 중에서도 sign rank를 높이는 그런 질문들이 있는 지를 잘 유형화하고 그럴 경우에는 검색 방식에 다양화가 필요하다는 것이다.
단순히 하나의 쿼리에 대해서 검색을 하고 rerank를 쓰는 것이 아니라 bm25나 필터 같은 것을 통해 다각도로 검색하고 그것에 맞춰서 subset을 만들어야 성공률이 높아진다고 한다.
여기까지 봤을 때 relevance 즉 검색에 대한 관련성에 대해서 다시 생각해보는 것이 필요하다고 느꼈다.
Relevance 에 대한 정의

저자가 던지는 핵심 문제의식 (한 문장)
“우리는 relevance를 similarity로 잘못 대체해왔다.”
이게 전부다. 논문의 모든 실험, LIMIT, sign-rank, cross-encoder 얘기는 이 한 문장을 증명하기 위한 장치야.
저자가 말하는 Relevance의 정의 (암묵적이지만 일관됨)
논문은 relevance를 이렇게 본다:
Relevance란 ‘쿼리와 문서 사이에 존재하는 임의의 판단 관계(decision relation)’이다.
중요한 포인트는 두 가지야.
- relevance는 연속값(similarity score) 이 아닐 수 있다
- relevance는 쿼리마다 다른 규칙을 가질 수 있다
즉, relevance는:
- 거리 ❌
- 각도 ❌
- 의미 유사도 ❌
가 아니라
“맞느냐 / 아니냐를 결정하는 함수”
저자가 비판하는 기존 관점: Relevance = Similarity
기존 임베딩 검색은 이렇게 가정해왔다:
저자는 이 가정을 근본적으로 부정한다.
왜냐하면:
- similarity는 대칭적이고 단조(monotonic) 구조를 가지며 하나의 좌표계에 고정된다
하지만 relevance는:
- 비대칭일 수 있고
- 조건부일 수 있고
- 조합적일 수 있으며
- 쿼리에 따라 판단 기준 자체가 바뀐다
👉 이게 가장 큰 충돌 지점이다.
저자가 보는 Relevance의 3가지 성격 (중요)
논문 전체를 관통하는 암묵적 분류가 있다.
(1) Relevance는 조합적(combinatorial) 이다
LIMIT에서 보여준 핵심.
- relevance는 “이 문서 하나가 맞는가?”가 아니라 “이 문서들의 집합이 맞는가?”일 수 있다
예:
- “이 조건을 모두 만족하는 문서들”
- “정확히 이 둘만 해당”
이 순간 relevance는:
- 점수가 아니라 집합 판별 문제
이건 내적 공간으로 표현 불가.
(2) Relevance는 쿼리-의존적(query-dependent) 이다
저자는 이걸 매우 중요하게 본다.
- 같은 문서라도 쿼리가 바뀌면 relevance 판단 기준이 완전히 달라진다
즉:
하나의 고정된 scoring function으로는 모든 쿼리의 relevance를 표현할 수 없다
이게 sign-rank 논의로 이어진다.
(3) Relevance는 결정적(decision-based) 일 수 있다
많은 relevance는:
- “조금 더 맞음”이 아니라 “맞음 / 틀림”이다
예:
- 정책 위반 여부
- 조건 충족 여부
- 규정 일치 여부
이건:
- 연속 공간에서의 거리 문제가 아니다
- 논리 판정 문제다
그래서 저자가 말하는 “임베딩의 한계”의 정확한 의미
중요한 오해를 바로잡자.
❌ “임베딩은 relevance를 못 배운다”
⭕ “임베딩은 relevance의 아주 좁은 부분집합만 표현한다”
임베딩이 잘하는 relevance는 딱 이거다:
- 유사도 기반
- 연속적
- 단일 문서 독립 평가
이걸 벗어나면:
- 성능 문제가 아니라 표현 불가능 문제가 된다
저자가 cross-encoder를 옹호하는 이유 (여기서 연결됨)
저자는 cross-encoder를 “더 좋은 모델”이라서 쓰는 게 아니다.
이유는 하나다:
cross-encoder는 relevance를 similarity로 가정하지 않기 때문
cross-encoder는 q와 d를 동시에 보고 쿼리마다 다른 판단 함수를 사실상 구현한다
즉:
- relevance(q, d)를 동적 함수로 근사
이건 임베딩이 절대 못 하는 일이다.
저자가 말하는 “좋은 retrieval”의 기준
논문에서 implicit하게 드러나는 기준은 이거야.
좋은 retrieval이란 relevance를 정확히 ‘판단’하는 게 아니라, 판단 가능한 후보 공간을 만들어주는 것이다.
그래서:
- dense retrieval은 필요하고 하지만 항상 불충분하다
저자의 Relevance 철학을 한 문단으로 요약하면
Relevance는 거리도, 유사도도 아니다. Relevance는 쿼리마다 달라지는 판단 관계이며, 때로는 집합과 조건의 문제다.
단일 벡터 임베딩은 이러한 판단 관계의 극히 일부만 표현할 수 있고, 따라서 retrieval 시스템은 표현(embedding)과 판단(decision)을 구조적으로 분리해야 한다.

이 관점을 실무 언어로 번역하면
- “임베딩 점수 높다” = ❌ / “이 쿼리의 relevance 구조가 임베딩 가정에 맞는다” = ⭕
- “리랭커 성능 좋다” = ❌ / “이 단계가 relevance 판단을 맡고 있다” = ⭕
LIMIT 데이터 셋 설명
그렇다면 실무 입장에서 어떻게 해야할까?
결론적으로 좋은 임베딩 모델을 사용하는 것은 중요하지만 이게 어떤 데이터를 사용하냐에 따라 성능이 달라지기 때문에 실제 그 임베딩이 우리가 목표로 하는 데이터에 맞는 지 알 수 없다는 것이다.
그래서 결국에는 도메인에 맞는 데이터와 LIMIT 데이터와 같이 간단한 질문이지만 판단 기준에 따라 나눠서 판단할 수 있는 데이터가 필요하다는 것이다.
저자가 만든 데이터인 LIMIT는 “임베딩이 못 푸는 문제를 일부러 만든 데이터셋”이 아니라, “임베딩이 풀 수 없는 구조를 최소한의 자연어로 구현한 실험 장치”다.
LIMIT를 왜 만들었나? (논문의 숨은 질문)
논문은 이걸 증명하고 싶었던 거야:
“임베딩의 한계가 복잡한 자연어 때문이 아니라 표현 구조 자체 때문이라는 걸 실험으로 보여줄 수 있을까?”
그래서 LIMIT는 일부러 다음을 만족하도록 설계됨:
- 자연어는 극단적으로 단순
- 문서 수는 아주 작음
- 쿼리는 상식적
- 그런데도 임베딩이 실패
👉 즉,
“이게 안 되면 언어 이해 핑계는 더 이상 못 댄다”
LIMIT의 기본 구조 (여기부터가 핵심)
LIMIT는 일반 검색 데이터셋이랑 구조가 다르다.
(1) 문서 구조
- 문서 = 단일 사실 문장
- 예:
- “Alice likes apples.”
- “Bob likes bananas.”
- “Charlie likes apples.”
→ 의미적으로 매우 명확
→ 임베딩이 헷갈릴 이유 없음
(2) 쿼리 구조
쿼리도 복잡하지 않다.
예:
- “Who likes apples?”
- “Who likes bananas?”
- “Which two people like apples?”
자연어 난이도: 초등학생 수준
(3) 그런데 중요한 차이
LIMIT 쿼리는:
❗ “정답의 조합”이 중요하도록 설계됨
즉,
- “아무 apple 관련 문서” ❌
- “정확히 이 두 개” ⭕
- 또는 “이 집합이 맞는지” ⭕
이게 바로 top-k 조합 문제다.
사람들이 놓치는 포인트: LIMIT는 k=2에서도 터진다
논문에서 가장 공격적인 부분이 여기야.
보통 사람들은 이렇게 생각하지:
“임베딩이 못 푸는 건 논리 복잡한 쿼리나 k가 큰 경우겠지”
LIMIT는 일부러:
- k = 2
- 문서 수도 40~50개 수준
- 문장도 단순
인데도:
❌ 임베딩이 “정확히 이 두 문서”를 안정적으로 못 뽑는다
이게 왜 중요하냐면:
- “top-k 조금만 늘리면 해결”이라는 변명이 깨짐
- “현실에서는 이렇게 단순하지 않다”는 반박도 무력화됨
LIMIT에서 임베딩이 실패하는 진짜 이유 (중요)
이건 언어 이해 실패가 아니다. 논문은 이걸 일부러 강조한다.
이유는 하나뿐
가능한 top-k 조합 수 > 임베딩이 만들 수 있는 순위 패턴 수
즉,
- 문서 수 N
- 가능한 정답 조합: C(N, k)
- 하지만 임베딩은:
- q·d 점수로
- 순위 패턴을 제한된 수만 생성 가능
그래서:
- 어떤 조합은 어떤 쿼리를 써도 절대 top-k로 못 나온다
👉 LIMIT는 이걸 가장 작은 N, 가장 쉬운 문장으로 재현한 것.
실험에서 진짜 봐야 할 결과 (사람들이 잘 안 보는 부분)
논문에서 중요한 건 “임베딩 성능이 낮다”가 아니다.
(1) 치팅 실험도 실패
논문은 이렇게까지 한다:
- 텍스트 → 임베딩 ❌
- 그냥 각 문서/쿼리를 벡터로 두고 qrels를 직접 만족하도록 gradient descent로 최적화
즉,
언어 이해도, 학습 데이터도, 모델 구조도 다 제거
그런데도:
- 차원이 낮으면 LIMIT 패턴은 수렴 자체가 안 됨
이게 의미하는 건 명확하다.
“모델이 멍청해서가 아니라 수학적으로 불가능”
(2) BM25는 왜 잘 되나? (이게 포인트)
LIMIT에서:
- dense 임베딩 ❌
- BM25 ⭕ (꽤 잘됨)
이건 BM25가 똑똑해서가 아니다.
👉 이유:
- BM25는 사실상 고차원 sparse 공간
- 각 단어 조합이 차원 하나
- 조합 수 표현력이 압도적으로 큼
즉,
LIMIT는 “dense vs sparse 논쟁을 끝내는 예제”다
(3) cross-encoder는 왜 되나?
cross-encoder는:
- q와 d를 함께 보고 각 쿼리마다 다른 판단 함수 사용
즉,
- 사인랭크 가정(sign(q·d))을 아예 쓰지 않음
그래서:
- LIMIT-small에서는 거의 완벽에 가까운 성능
이건 논문의 “임베딩 비판”이 리랭커 옹호로 이어지는 지점이다.
LIMIT 구조를 우리 도메인에서 재현하는 방법
LIMIT 구조의 본질 다시 정리 (중요)
LIMIT는 다음 4가지를 동시에 만족하도록 설계됨:
- 문서 의미는 극단적으로 단순
- 쿼리도 상식적
- 정답은 집합(subset) 으로 정의됨
- 그런데 그 집합 조합 수가 많음
→ 이 4번 때문에 sign-rank 폭발이 발생함
우리 도메인에서 LIMIT를 만드는 전체 절차
1. “원자 사실(atomic fact)” 단위로 문서 쪼개기
조건
- 문서 하나 = 사실 하나
- 판단/해석/추론 ❌
- 누가 봐도 true/false가 명확
예시 (도메인별)
사내 정책
- “A 서비스는 외부 반출 불가”
- “B 데이터는 마스킹 후 제공 가능”
상품
- “상품 X는 20대 가입 가능”
- “상품 Y는 암 보장 포함”
시스템 로그
- “Job A는 GPU 사용”
- “Job B는 CPU only”
2. 문서를 “속성 조합”으로 설계하기
LIMIT의 핵심은 조합 폭발이다. 그래서 문서를 이렇게 만든다:
문서 = (엔티티, 속성1, 속성2, 속성3 ...)
예시
| 문서 | 엔티티 | 속성 |
| D1 | 상품A | {보험, 암, 20대} |
| D2 | 상품B | {보험, 심장, 20대} |
| D3 | 상품C | {보험, 암, 30대} |
| D4 | 상품D | {보험, 심장, 30대} |
3. “정확한 집합을 요구하는 쿼리” 만들기 (핵심)
이게 제일 중요하다.
❌ 나쁜 쿼리 (임베딩 잘함)
- “암 보험 상품 알려줘”
⭕ LIMIT형 쿼리
- “20대이면서 암 보장인 상품만”
- “암이 있고 심장은 없는 상품”
- “다음 조건을 모두 만족하는 상품”
여기서 포인트:
❗ relevance = 유사도 ❌
❗ relevance = 조건 만족 여부 ⭕
4. k를 작게, 하지만 “정확하게” 요구하기
LIMIT의 잔인함은 k=2에서도 터진다는 것이다.
그래서 일부러 이렇게 만든다:
- 정답 문서 수 = 2 or 3
- 근데 그 조합이 여러 개 존재
예시
| 쿼리 | 정답 |
| “20대 암 보험” | {D1, D3} |
| “30대 심장 보험” | {D4, D6} |
→ 가능한 정답 조합 수가 늘어나면 임베딩은 구조적으로 못 따라감
5. qrels를 “집합 단위”로 정의하기
일반 검색은:
- 문서별 relevance 점수
LIMIT는:
- 집합이 맞았는지가 중요
방법
- 정답 집합 S
- 평가 시:
- top-k 결과 == S 이면 성공
- 하나라도 다르면 실패
👉 이게 sign-rank 폭발을 유발함
6. 실험 비교 (여기서 진짜 깨달음이 온다)
같은 데이터로 아래를 비교한다:
- Dense 임베딩 top-k
- BM25 / Sparse
- Dense + filter
- Dense → cross-encoder
기대 결과 (논문과 동일)
- Dense 단독 ❌
- Sparse ⭕ (상대적으로)
- Dense+filter △
- Cross-encoder ⭕⭕
이 결과가 나오면:
“아, 이건 모델 문제가 아니라 구조 문제구나”
타 논문 비교 요약
2025년 임베딩 기반 검색 한계 및 Relevance 재정의 논문 요약
| 논문 제목 | 주요 주제 | 핵심 주장 또는 메시 | 주요 결과 및 근거 | LIMIT 논문과의 관계 | 링크 |
| On the Theoretical Limitations of Embedding-Based Retrieval | 임베딩 기반 검색의 이론적 한계 | 단일 벡터 임베딩에 근본적인 수학적 한계가 있어, 검색 과제가 복잡해지면 해당 접근법으로는 질의에 대한 모든 관련 문서 집합을 표현할 수 없다는 경고. | 임베딩 차원당 표현 가능한 top-k 문서 조합 수에 한계가 있음을 이론적으로 증명하고, 이를 검증하기 위한 LIMIT 데이터세트를 구축. 실제 간단한 질의들에 대해 SOTA 임베딩 모델들이 이 데이터셋에서 재현율 <20%로 실패하는 반면, 전통적 BM25는 우수한 성능을 보여 임베딩 모델의 근본 한계를 드러냈다. 추가 학습을 통해서도 이 한계를 극복하지 못함을 보여주어, 현행 단일 벡터 패러다임의 한계를 지적하고 새로운 방법 연구를 촉구함. | LIMIT 논문 자체로서 임베딩 기반 검색 모델의 한계를 정면으로 규명한 핵심 연구이며, 이후 다른 연구들이 참조하는 기준점이 된다. | arXiv |
| Collapse of Dense Retrievers: Short, Early, and Literal Biases Outranking Factual Evidence | 임베딩 기반 검색 모델의 편향 및 취약성 분석 | Dense Retriever 모델들이 문서 길이, 위치, 단순 문자열 일치 등 편향으로 인해 실제 정답을 포함한 문서를 무시하는 취약점을 지니고 있다고 주장. 특히 여러 편향이 겹칠 경우 모델이 엉뚱한 문서를 선호하여 관련성 판단을 그르친다는 문제를 제기. | 관계추출 데이터셋을 활용한 실험에서, 모델이 짧은 문서, 초반부에 답이 등장하는 문서, 질의어를 반복하는 문서 등을 정답 포함 문서보다 선호하는 현상을 확인. 편향 신호가 결합되면 정답 문서를 선택하는 비율이 10% 미만으로 급락하고, 잘못된 문서를 선택할 경우 오히려 아무 문서도 제공하지 않은 것보다 LLM의 정답 생성 성능이 34%포인트 감소하는 심각한 악영향을 끼쳤다. 이는 임베딩 기반 검색의 결과가 얼마나 취약할 수 있는지 실증적으로 보여준다. | LIMIT 논문의 이론적 한계를 보완하는 실증 연구로, 임베딩 모델이 단순히 표현력 한계뿐 아니라 편향된 스코어링 때문에 실제 관련 문서를 놓치는 문제를 부각한다. 두 논문 모두 임베딩 기반 검색의 근본 취약점을 지적하지만, 하나는 수학적 표현 한계에, 본 논문은 모델의 편향된 판단 기준에 초점을 맞춘다. | arXiv |
| FOLLOWIR: Evaluating and Teaching Information Retrieval Models to Follow Instructions | 사용자 지시사항을 반영한 새로운 검색 방식 | 현행 신경 IR 모델들은 질의와 함께 주어진 상세 지시문(내러티브)을 제대로 활용하지 못하고, 이를 추가 키워드 정도로 취급함으로써 복잡한 사용자 정보 요구를 충족하지 못한다는 점을 밝힌다. 복잡한 조건을 포함한 질의에 대응하기 위해 IR 모델을 지시문까지 따르도록 학습시키는 접근을 제안. | TREC 평가용 내러티브를 활용한 FollowIR 벤치마크를 구축하여 실험한 결과, 기존 Dense/Sparse 모델 대부분이 긴 지시문이 포함되면 성능이 떨어지는 등 지시문 이해에 실패함을 보였다. 예를 들어, 많은 모델이 지시문의 추가 정보를 제대로 활용하지 못하고 단순 키워드로만 사용하여 성능이 오히려 감소했다. 한편, 해당 지시문 데이터로 파인튜닝한 FollowIR-7B 모델은 복잡한 지시사항도 잘 반영하여 검색 정확도가 크게 향상되었고, 다양한 형태의 지시문에 대해 기존 모델 대비 우수한 결과를 얻었다. | LIMIT 논문에서 언급된 "임의의 관련성 개념까지 다룰 수 있는 검색"의 한 방향으로서, 사용자 지시문이라는 형태의 다양한 관련성 조건을 처리하려는 시도다. 임베딩 모델의 표현력 한계를 극복하고 질의 의도를 풍부하게 반영한다는 점에서 LIMIT 논문의 문제의식과 맥락을 같이 한다. | arXiv |
| Redefining Retrieval Evaluation in the Era of LLMs | LLM 시대에 맞는 새로운 관련성 정의 및 평가 | 대규모 언어모델이 검색 결과를 소비자로 사용하는 RAG 환경에서는, 전통적인 IR 평가 척도(nDCG, MAP 등)가 부적합하며 관련성 개념을 LLM 관점에서 재정의해야 함을 주장한다. 구체적으로, 인간 사용자를 가정한 기존 평가에서는 순위에 따른 가중치 감소와 이진적인 관련/무관 판단을 쓰지만, LLM에게는 순위보다는 유용한 정보의 기여도와 무관 정보의 방해 효과를 고려해야 한다고 지적한다. | 기존 평가 척도가 LLM 기반 응용 성능과 상관관계가 낮음을 보이고, 이를 개선하기 위해 연속적 유용성 점수와 분산(방해) 효과를 도입한 새로운 평가지표 UDCG를 제안하였다. 제안한 척도로 측정한 순위는 실제 LLM의 답변 정확도와 더 높은 정합성을 보였는데, 특히 UDCG는 전통 지표 대비 최대 36% 더 높은 상관성을 보여준다. 또한 유용성 점수로 상위 문서를 선별하였을 때 LLM의 최종 정답 정확도가 기존 관련성 위주 선별 대비 크게 향상됨을 입증하였다. | LIMIT 논문이 기존 임베딩 모델의 한계를 지적했다면, 본 연구는 기존 평가 패러다임의 한계를 지적한다는 점에서 통한다. 둘 다 전통적인 “관련성” 개념의 한계를 드러내고 재정의를 모색한다는 공통점이 있다. 단, 하나는 검색 모델 측면의 한계에, 다른 하나는 평가 기준 측면의 문제에 초점을 맞춰 상호 보완적인 관점을 제공한다. | arXiv |
| The Distracting Effect: Understanding Irrelevant Passages in RAG | RAG 시스템에서 방해가 되는 무관 문서의 영향 분석 | Retrieval-Augmented Generation에서 질의와 유사해 보이지만 답을 포함하지 않은 무관 문서는 LLM의 정답 생성에 악영향을 미치며, 기존의 단순 관련/무관 구분만으로는 이러한 영향을 평가하지 못한다고 주장한다. 따라서 무관 문서의 **“방해 효과(distracting effect)”**를 정의하고 정량화하여 취급할 것을 제안. | 질의-문맥-LLM 삼자 관계에서 방해 효과를 연속 변수로 측정하는 지표를 고안하고, 여러 LLM에 걸쳐 일관된 결과를 보임을 확인. 특히 강력한 retriever일수록 찾아오는 무관 문서들이 더 그럴듯하여 LLM에 더 큰 혼선을 주고, 검색 결과 상위에 랭크된 무관 문서일수록 방해 효과가 크다는 것을 실험으로 입증했다. 나아가, 이렇게 식별한 hard distractor들을 이용해 LLM을 파인튜닝한 결과, 일반 데이터로 학습한 모델 대비 정답 정확도가 7.5%p 향상되는 등 성능 개선을 달성했다. | LIMIT 논문이 임베딩 모델의 재현 한계를 지적한 반면, 본 연구는 검색된 무관 정보의 해악이라는 측면에서 새로운 관련성 개념(“방해되는 무관성”)을 정의한다. 임베딩 기반 검색의 문제를 결과 활용 단계에서 분석한 것으로, 현재 검색 모델의 성능 한계를 보완하려는 또 다른 접근이다. 궁극적으로 두 연구 모두 보다 견고한 IR 시스템 구축을 위해 기존의 관련성 개념을 재고해야 한다는 점에서 맥락을 같이 한다. | arXiv |
| Information Retrieval for Artificial General Intelligence: A New Perspective on IR Research | AGI를 위한 새로운 IR 과제 정의 (관련성 개념 확장) | IR을 인간 사용자뿐 아니라 지능형 에이전트의 도구로 간주할 것을 제안하면서, AGI 달성을 위해서는 기존과는 다른 형태의 정보 **“관련성”**이 필요하다고 주장한다. 즉, 인간 질의에 문서 찾기뿐 아니라, AI 에이전트가 학습하고 추론하기 위해 규칙을 검색하거나 시나리오를 검색하는 등 다섯 가지 새로운 IR 임무(EIR, PIR, CIR, RIR, SIR)를 제시한다. | 이 논문은 개념 제시 위주이므로 정량 실험보다는 로드맵을 제공한다. 제안된 5대 IR 과제 (외부 지식검색, 출처 추적, 커리큘럼 학습데이터 획득, 추론용 규칙 검색, 과거 시나리오 검색)에 대해 현행 기술의 한계를 논하고 향후 연구 방향을 제시했다. 예를 들어, 규칙 정보나 시나리오를 검색하는 과제는 전통적인 키워드 매칭이나 단순 임베딩 유사성으로는 어려우며, 논리적 추론이 가능한 새로운 관련성 정의가 필요함을 강조한다. | LIMIT 논문의 논지가 현재의 임베딩 방법으로 일부 질의에 대한 관련 문서 세트를 포괄하지 못한다는 것이었다면, 본 논문은 한 발 더 나아가 미래 AI에 필요한 IR의 역할을 정의함으로써 현재 방법론의 한계를 간접적으로 부각한다. 즉, AGI 관점에서 보면 기존 임베딩 기반 검색만으로는 감당하지 못할 복잡한 관련성 요구들이 등장하므로, 궁극적으로 LIMIT 논문의 주장처럼 IR 패러다임 전환이 필요하다는 점을 시사한다. | |
| Long-Context LLMs Meet RAG: Overcoming Challenges for Long Inputs in RAG | 장문맥 LLM과 대량 검색결과 활용의 한계 | LLM이 처리할 수 있는 문맥 길이가 늘어나더라도, 너무 많은 문서를 한꺼번에 제공하면 오히려 생성 품질이 떨어질 수 있음을 밝힌다. 초기에는 검색 결과를 많이 넣으면 이득이 있지만 일정 임계 이후 성능이 하락하며, 이는 검색된 “hard negative” 문서들이 LLM을 혼란시키기 때문이다. 이러한 문제를 극복하기 위해 검색결과 재정렬 등의 간단한 기법부터, LLM을 RAG 환경에 맞게 미세조정하는 방법까지 제시한다. | 여러 장문맥 LLM을 실험한 결과, 검색 문서 수를 늘릴수록 처음엔 성능이 향상되다가 이후 하락하는 U자 형태의 패턴이 나타났다. 하락 구간에서는 상위에 포함된 일부 무관 문서가 답변을 방해한 것으로 분석된다. 대응책으로, 검색 단계에서 점수 순이 아닌 LLM 활용에 유리한 순서로 결과를 재정렬하였더니 간단한 튜닝만으로도 출력 품질이 개선되었다. 또한 LLM을 RAG 특화 데이터로 추가 학습시켜 검색된 정보 활용 능력을 높였더니 상당한 성능 개선을 달성했다. 예를 들어, 중간 사족 정보를 고려하도록 LLM을 fine-tuning하는 등으로 복잡한 입력에서도 강인한 답변 생성을 이루었다. | LIMIT 논문의 “복수의 관련 문서 조합을 단일 벡터로는 표현하기 어렵다”는 한계를 LLM 응용 측면에서 실증한 연구라 할 수 있다. 많은 문서를 한꺼번에 다루는 복잡 질의 상황에서 임베딩 기반 검색의 한계를 드러낸다는 점에서 LIMIT의 문제의식과 통하며, 나아가 결과 정렬 최적화나 모델 튜닝 등 현실적인 보완책을 제시한다는 차이가 있다. | arXiv |
생각 정리
이번에 ChatGPT랑 대화를 하면서 해당 논문을 다시 공부하게 되었다.
보다 더 빨리 알았으면 좋았을 것 같다는 생각이 들긴 하지만, 내가 기존에 알던 similarity 개념과는 다른 방식으로 해석하고 수학적으로 조합으로 바라보는 관점이 있어서 배울 게 있었다고 생각하고 결국 검색이라고 하는 게 모델 하나만 바꿔서 해결하는 게 아니라 하나의 시스템을 만들어야 한다는 걸 다시 깨달았다.
쉬운 질문에는 임베딩으로 검색하고 어려운 질문에는 bm25나 filter를 통해 최대한 크면서 좋은 subset을 가지고 판단하는 함수f(q,d)를 통해 추출하는 게 필요하다
결국 거기서 발생하는 비용 문제가 있긴 하지만, 그런 것을 얼마나 효율적으로 만드냐가 앞으로 풀어야 할 숙제일 것 같다.
https://arxiv.org/abs/2508.21038
On the Theoretical Limitations of Embedding-Based Retrieval
Vector embeddings have been tasked with an ever-increasing set of retrieval tasks over the years, with a nascent rise in using them for reasoning, instruction-following, coding, and more. These new benchmarks push embeddings to work for any query and any n
arxiv.org
'관심있는 주제 > LLM' 카테고리의 다른 글
| OpenAI-Context Engineering 가이드(2025.09) 공부해보기 (1) | 2025.11.02 |
|---|---|
| LangChain 디버깅 가이드: 빠르게 훑고 깊게 파보는 3가지 방법 (0) | 2025.10.25 |
| MemOS: LLM 의 "Memory Operating System" 메모리 관련된 개념 이해하기 (4) | 2025.07.12 |
| MemOS: 대형 언어 모델을 위한 메모리 운영체제-논문 리뷰 및 정리 (5) | 2025.07.12 |
| 프롬프트 최적화 오픈소스 정리 (1) | 2025.05.07 |