웹 검색 엔진의 정의
웹 검색 엔진(web search engine)은 웹상에 존재하는 방대한 데이터를 찾아내기 위해 특화된 컴퓨터 서버입니다. 사용자가 검색어를 입력하면 검색 엔진은 그에 맞는 결과를 목록 형태로 반환하는데, 이 결과 목록을 흔히 '히트(hits)'라고 부릅니다. 히트에는 웹 페이지뿐 아니라 이미지, 각종 문서 파일 등 다양한 유형의 자료가 포함될 수 있습니다.
검색 엔진과 웹 디렉터리의 차이
일부 검색 엔진은 공개 데이터베이스나 오픈 디렉터리에 있는 정보도 함께 검색해 제공합니다. 다만 검색 엔진과 웹 디렉터리는 운영 방식에서 뚜렷한 차이가 있습니다. 웹 디렉터리는 사람이 직접 사이트를 분류하고 등록하는 인간 편집자 방식으로 유지되는 반면, 검색 엔진은 알고리즘에 따라 자동으로 작동하거나 알고리즘과 인간의 입력을 결합한 하이브리드 방식으로 운영됩니다.
거대한 데이터 마이닝 응용 시스템
웹 검색 엔진은 본질적으로 대규모 데이터 마이닝(data mining) 응용 시스템입니다. 검색 엔진을 이루는 모든 요소에는 다양한 데이터 마이닝 기법이 활용됩니다.
- 크롤링(Crawling): 어떤 페이지를 수집할지, 얼마나 자주 수집할지 결정합니다.
- 인덱싱(Indexing): 어떤 페이지를 색인할지, 색인을 어느 수준까지 구축할지 결정합니다.
- 검색(Searching): 페이지 순위를 어떻게 매길지, 어떤 광고를 노출할지, 검색 결과를 어떻게 맞춤화하고 '문맥 인식(context-aware)'형으로 만들지 결정합니다.
검색 엔진이 직면한 네 가지 데이터 마이닝 과제
1. 폭증하는 대규모 데이터 처리
첫 번째 과제는 계속 늘어나는 방대한 데이터를 관리하는 것입니다. 이런 규모의 데이터는 소수의 서버로는 감당할 수 없습니다. 그래서 검색 엔진은 수천 대에서 수십만 대에 이르는 컴퓨터가 협력해 대량의 정보를 마이닝하는 '컴퓨터 클라우드(computer cloud)'를 활용해야 합니다. 컴퓨터 클라우드와 고도로 분산된 데이터셋 위에서 데이터 마이닝 기법을 확장하는 일은 오늘날에도 활발히 연구되는 분야입니다.
2. 온라인 환경에서의 실시간 모델 처리
두 번째 과제는 온라인 기록을 다루는 것입니다. 검색 엔진은 대규모 데이터셋을 대상으로 모델을 오프라인으로 구축할 수 있습니다. 예컨대 검색어의 주제에 따라 질의를 미리 정의된 범주로 분류하는 '쿼리 분류기(query classifier)'를 만들 수 있습니다. 그러나 모델이 오프라인으로 만들어졌다 해도, 실제 서비스 단계에서는 사용자 질의를 실시간으로 처리해야 하므로 온라인 모델 소프트웨어는 매우 빠른 속도를 요구받습니다.
3. 급성장하는 데이터 스트림에 대한 모델 갱신
세 번째 과제는 빠르게 증가하는 데이터 스트림 위에서 모델을 지속적으로 지원하고 점진적으로 갱신하는 것입니다. 새로운 검색어가 끊임없이 늘어나고, 미리 정의된 범주와 데이터 분포도 시간이 지나며 달라지기 때문에 쿼리 분류기는 상시적인 점진 유지보수가 필요합니다. 그러나 기존의 많은 모델 학습 방식은 오프라인·정적(static) 방식이라 이런 환경에는 적합하지 않다는 한계가 있습니다.
4. 저빈도 질의와 문맥 인식 맞춤 검색
마지막 과제는 아주 드물게 검색되는 질의를 처리하는 것입니다. 예를 들어 검색 엔진이 문맥 인식형 질의 제안을 지원해야 한다고 가정해 봅시다. 사용자가 검색어를 입력하면 검색 엔진은 고객 프로필과 과거 검색 이력을 바탕으로 해당 질의의 문맥을 추론하고, 불과 몇 분의 1초 안에 더 맞춤화된 답변을 반환해야 합니다.
맺음말
이처럼 웹 검색 엔진은 단순한 검색 도구를 넘어, 분산 컴퓨팅과 실시간 데이터 처리, 지속적인 모델 갱신이라는 첨단 기술 과제를 함께 풀어가는 거대한 데이터 마이닝 시스템입니다. 이러한 과제들을 해결하는 과정에서 오늘날의 클라우드 컴퓨팅과 대용량 분산 처리 기술이 크게 발전했습니다.