[논문 리뷰] Timehash: Hierarchical Time Indexing for Efficient Business Hours Search
Timehash는 계층적이고 다중 해상도 시간 인덱싱 방법을 도입하여 인덱스 크기를 대폭 축소하면서 비즈니스 시간 검색에 분 단위 정밀도와 100% 재현/정밀도를 보장합니다.
Temporal range filtering is a critical operation in large-scale search systems, particularly for location-based services that need to filter businesses by operating hours. Traditional approaches either suffer from poor query performance (scope filtering) or index size explosion (minute-level indexing). We present Timehash, a novel hierarchical time indexing algorithm that achieves over 99% reduction in index size compared to minute-level indexing while maintaining 100% precision. Timehash employs a flexible multi-resolution strategy with customizable hierarchical levels. Through empirical analysis on distributions from 12.6 million business records of a production location search service, we demonstrate a data-driven methodology for selecting optimal hierarchies tailored to specific data distributions. We evaluated Timehash on up to 12.6 million synthetic POIs generated from production distributions. Experimental results show that a five-level hierarchy reduces index terms to 5.6 per document (99.1% reduction versus minute-level indexing), with zero false positives and zero false negatives. Scalability benchmarks confirm constant per-document cost from 100K to 12.6M POIs, while supporting complex scenarios such as break times and irregular schedules. Our approach is generalizable to various temporal filtering problems in search systems, e-commerce, and reservation platforms.
연구 동기 및 목표
- 대규모 역인덱스에서 비즈니스 시간 검색을 위한 시간 범위 인덱싱 문제를 형식화한다.
- Timehash를 제안한다. 이는 시간 범위를 확장 가능하고 사람이 읽을 수 있는 시간 버킷으로 분해하는 계층적 다중 해상도 알고리즘이다.
- 실제 데이터 분포에 맞춘 최적의 계층 구조 선택을 위한 데이터 기반 방법을 보여준다.
- 이론적 공간 및 정확성 보장을 증명하고 생산 규모의 데이터에서 확장성을 검증한다.
제안 방법
- 계층적 시간 입자 집합을 정의한다(예: 4시간, 1시간, 15분, 5분, 1분)하고 각 단계에서 가장 큰 적합 블록으로 시간 범위를 탐욕적으로 커버한다.
- 분 단위 정밀도를 보존하는 시간 범위를 나타내는 다중 Timehash 키를 생성한다.
- 포인트 질의에 대해 완전 재현을 보장하고 범위 질의를 지원하기 위해 모든 계층 수준에서 질의 키를 생성한다.
- 공간 복잡도는 O(T/m1)임을 증명하고, 테스트된 계층 구조에서 키 수의 상한이 작고 일정하다는 것을 보여준다(최대 28개).
- getIndexTerms(from, to)와 getQueryTerms(hhmm) 함수가 포함된 C++ 라이브러리 구현을 제공한다.
- 최대 1,260만 개의 합성/생산 POI를 대상으로 접근법을 검증하여 인덱스 크기를 99.1% 감소시키고 위양성/위음성 제로를 입증한다.
실험 결과
연구 질문
- RQ1마이크로 단위 정밀도를 유지하면서 작은 인덱스 크기로 비즈니스 시간의 시간 범위 필터링을 어떻게 달성할 수 있는가?
- RQ2계층적 다중 해상도 인코딩이 정확성을 해치지 않으면서 문서당 인덱스 용어 수를 줄일 수 있는가?
- RQ3Timehash의 이론적 공간 및 질의 복잡도는 무엇이며 실제 생산 데이터에서 어떻게 작동하는가?
- RQ4주어진 시간 분포에 대해 크기와 정밀도 사이의 균형을 맞추려면 최적의 계층 구조를 어떻게 선택해야 하는가?
- RQ5Timehash가 중단 시간, 불규칙한 일정, 야간 범위와 같은 복잡한 패턴을 효율적으로 처리할 수 있는가?
주요 결과
- 다섯 수준의 계층 구조(4시간, 1시간, 15분, 5분, 1분)가 인덱스 크기와 정밀도 사이의 최적의 균형을 달성한다.
- Timehash는 문서당 인덱스 용어를 99.1% 감소시켜 예시에서 5개의 키로 축소했고 위양성 0, 위음성 0을 달성한다.
- 공간 복잡도는 O(T/m1)로, 순수한 분 단위 인덱싱에 비해 상수 계수 감소를 나타내며 최악의 경우 키 수의 경험적 상한은 28(분 단위의 1,440분 대비).
- 이 접근법은 중단 시간, 불규칙한 일정, 24시간 운영을 지원하며 10만에서 1,260만 POI까지 선형적으로 확장한다.
- 생산 배포는 18개월을 포함했고 1,260만 POI를 인덱싱했으며 생산 탐색 작업에 적합한 시각성 및 안정성을 보였다.
- 재현성을 위해 제공된 GitHub 저장소에서 코드와 아티팩트를 확인할 수 있다.
더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.