내적 기반 최적 매칭을 위한 트리 탐색

내적 기반 최적 매칭을 위한 트리 탐색

초록

본 논문은 데이터 집합에서 질의와의 내적값이 최대가 되는 최적 매치를 효율적으로 찾는 문제를 다룬다. 기존 연구는 거리나 코사인 유사도에 초점을 맞췄지만, 내적을 직접 최적화하는 방법은 거의 제시되지 않았다. 저자들은 트리 구조를 이용한 일반적인 branch‑and‑bound 알고리즘을 제안하고, 다중 질의 상황을 위한 dual‑tree 알고리즘 및 이를 가속화하는 새로운 데이터 구조를 설계한다. novel한 상한·하한 바운드를 통해 탐색 범위를 크게 축소시켜, 실험에서 최대 10⁵배의 속도 향상을 확인하였다.

상세 분석

이 논문은 “Maximum Inner‑Product Search (MIPS)”라는 문제를 일반적인 고차원 데이터 환경에서 해결하고자 한다. 기존의 최근접 이웃(NN) 탐색은 유클리드 거리나 코사인 유사도를 기준으로 삼아, 삼각 부등식이나 각도 기반의 경계값을 활용한다. 그러나 내적은 거리와 달리 비대칭적이며, 두 벡터의 길이와 방향 모두에 의존한다. 따라서 기존 NN용 바운드 기법을 그대로 적용하면 탐색 효율이 급격히 떨어진다. 저자들은 이러한 차이를 극복하기 위해, 트리 노드에 포함된 점들의 내적 상한내적 하한을 계산하는 새로운 수학적 식을 도출한다. 구체적으로, 각 노드에 대해 중심 벡터와 반경을 정의하고, 질의 벡터와의 내적을 중심‑반경 형태로 근사한다. 이때, 코사인 유사도와 달리 길이 정보를 보존하기 위해 노드 내 최대·최소 노름을 함께 저장한다. 이렇게 얻은 상한값은 branch‑and‑bound 과정에서 “이 노드 안에 있는 어떤 점도 현재 최적 후보보다 나은 내적을 가질 수 없다”는 결정을 가능하게 하며, 불필요한 서브트리 탐색을 대폭 감소시킨다.

다중 질의 상황을 위해 제안된 dual‑tree 알고리즘은 질의 트리와 데이터 트리를 동시에 순회한다. 질의 트리의 각 노드에 대해 데이터 트리의 노드와 쌍을 이루어 바운드 검사를 수행함으로써, 동일한 데이터 서브트리에 대해 여러 질의가 공유하는 연산을 재사용한다. 이는 특히 대규모 배치 질의나 실시간 추천 시스템에서 중요한 성능 향상을 제공한다.

또한, 저자들은 dual‑tree 탐색을 더욱 가속화하기 위해 Hybrid‑Tree라는 새로운 데이터 구조를 설계한다. Hybrid‑Tree는 기존 kd‑tree와 ball‑tree의 장점을 결합해, 노드 분할 시 데이터의 분산도와 내적 상한을 동시에 고려한다. 결과적으로 트리 깊이가 얕아지고, 상한값이 더 촘촘히 잡히게 되어 탐색 비용이 크게 감소한다.

실험에서는 이미지 피처, 텍스트 임베딩, 추천 시스템 로그 등 다양한 도메인의 데이터셋을 사용하였다. 평균 질의당 탐색 시간은 naïve 선형 스캔 대비 10⁴~10⁵배가량 빨라졌으며, 정확도(최대 내적값)에서는 완전 탐색과 동일한 결과를 보였다. 특히, 데이터 차원이 1000차원을 초과하는 경우에도 제안 알고리즘은 안정적인 성능을 유지한다.

이 논문은 MIPS 문제에 대한 최초의 일반적인 트리 기반 해결책을 제공함으로써, 고차원 내적 검색이 필요한 머신러닝·추천 시스템·정보 검색 분야에 실용적인 도구를 제시한다. 또한, novel한 상한·하한 바운드 기법은 향후 다른 비대칭 유사도 측정에도 확장 가능성을 시사한다.