목차 : 
질의어 분석 - 하나를 보고 열을 찾아라
랭킹 함수 (retrieval model) - 검색 엔진의 심장부
검색 결과 평가하기 - 평가 없이는 향상도 없다
검색 기술의 미래 - 
  
검색 연구자들은 어떤 생각을 하고 있을까 

이번 글의 주제는 질의어 분석입니다.
검색을 '문제 해결'에 비유한다면 질의어 분석은 문제를 정확히 파악하는 것인데, 문제 파악이 제대로 되어야 올바른 답안(문서)를 고를 수 있다는 것은 자명합니다. 특히 
사용자의 질의어는 대부분 불충분하며 (평균 2~3단어) 오류를 포함하는 경우도 많기에 효과적인 질의어 분석은 검색 품질에 결정적인 영향을 끼칩니다. 

구글이나 야후, 빙과 같은 검색 엔진들도 이를 잘 알기에 사용자의 질의어를 고쳐주거나(spell correction), 더 나은 대안을 제시하거나(query suggestion) 합니다. 이를 구현하기 위해 과거에 대부분 규칙 기반(rule-based)의 처리에 의존했던 것이, 막대한 양의 사용자 데이터(query log)를 활용한 통계적인 기법으로 대체되고 있습니다. 예컨데 과거에 고정된 규칙이나 단어 목록을 사용하던 어근 분석(stemming)이나 불용어 제거(stopword removal)에도 데이터에 기반하여 검색 성능을 최적화하는 연구가 진행되고 있습니다. 

질의어 분석이라는 주제는 
저희 연구실에서 한학기동안 세미나를 했을 정도로 방대하기에, 이번 글에서는 검색엔진이 사용자의 질의를 받아 처리하는 과정을 단계별로 소개하고, 그 과정에서 질의어 분석의 주요 이슈를 소개하고자 합니다. 아래의 네 단계는 세미나 내용을 바탕으로 제가 구성한 것입을 밝힙니다. 

(1) 분석을 위한 추가적인 단서 찾기 (augmentation)

질의어 분석을 위해 가장 먼저 해야하는 일은 분
석을 위한 추가적인 단서를 찾는 것입니다. 사용자가 입력하는 질의는 보통 짧지만 사용자의 프로필이나 현재 위치, 혹은 과거의 질의 목록을 안다면 분석에 도움을 받을 수 있는 경우가 많습니다. 흔히 말하는 검색 결과의 개인화는 이 단계에서 이루어지는 경우가 많습니다. 

(2) 유형별로 분류하기 (classification)

단계 (1)을 거쳐 확장된 질의는 추가적인 처리를 거치기 전에 유형별로 분류되는 것이 보통입니다. 분류의 기준은 매우 다양하겠지만, 보통 정보를 찾는지 (informational) 웹사이트를 찾는지(navigational), 뉴스 / 지역 / 쇼핑 등 특정 분야의 컨텐츠를 원하는지(vertical intent) 등을 판별해 내는 것이 목적입니다. 질의어에 대한 세세한 처리를 거치기 전에 질의어의 유형을 파악함으로써 유형에 따른 적절한 처리가 가능해집니다.

(3) 질의 해석하기 (interpretation)

그 다음 순서는 질의를 세부적으로 해석하는 일입니다. 질의에서 고유명사를 찾아내거나 
(named entity recognition)
, 잘게 나누거나(segmentation), 오류를 수정하는 일(spell correction)이 모두 이 단계에서 이루어집니다. 앞서 언급한 
어근 분석(stemming)이나 불용어 제거(stopword removal) 역시 이에 해당합니다. 
단계 (1)과 (2)에서 파악된 추가적인 단서와 유형은 이 단계에서 정확한 해석을 하는데 큰 도움이 됩니다. 예컨데 쇼핑에 대한 질의로 판명된 경우, 알려진 제품명과 대조하는 방법으로 고유명사를 찾아낼 수 있을 것입니다. 

(4) 질의 다듬기 (refinement)

앞선 단계에서 질의 자체의 의도에 대한 분석에 초점을 맞추었다면, 마지막 단계에서는 분석 결과를 바탕으로 질의를 다듬고 개선합니다. 추가적인 질의어를 더하거나 (expansion) 쓸데없는 질의어를 빼기도 하고 (reduction),  질의어에 중요도에 따라 가중치를 두기도 합니다 (weighting). 당연한 말이지만 적절한 변형을 위해서는 질의 자체에 대한 정확한 분석이 선행되어야 합니다. 이처럼 변형된 질의는 사용자의 원래 질의를 대체하는 것이 보통이지만, 경우에 따라서는 사용자에게 제안되기도(suggestion) 합니다. 

마치며
이번 글에서는 검색 엔진의 질의어 분석 과정을 처리 순서에 따라 알아 보았습니다. 사용자가 입력하는 몇 안되는 단어를 가지고 사용자의 의도를 파악하고 이를 더욱 효과적인 질의로 변형하는 과정은 이처럼 복잡 다단합니다. 또한 위에서 설명한 단계들간에 밀접한 연관성이 있기 때문에, 이 모두를 아우르는 통합적인 모델의 개발이 최근의 연구 초점이라는 점도 주목할만 합니다. 좀더 궁금하신 내용을 답글로 알려주시면 감사하겠습니다.

참고자료
Query Evolution by W. Bruce Croft : 질의어 분석에 대한 저희 지도교수님의 발표자료입니다.