학교를 결정하고 나서, 정보 검색(Information Retrieval – 이하 IR)을 연구하러 간다고 주변 분들께 말씀드렸을 때 생소하게 여기는 분들이 많으셨습니다. 공부를 시작한지 이제 50일, 머지 많은 IR수업 중간고사 대비 겸해서 배운 내용을 정리해 볼까 합니다.

IR은 사람들의 정보 욕구(Information Needs)를 충족시키는 것을 목표로 합니다. 하지만 이런 정의는 Computer Science의 대부분의 분야를 포괄하죠. 데이터베이스도, 네트워크도 따지고 보면 그렇지 않습니까. 좀더 구체적으로는 무형의(Unstructured) 텍스트 데이터에서 사람들이 원하는 정보를 찾는 기술을 연구한다고 보시면 됩니다. 정형화된(Structured)데이터를 다루는 데이터베이스, 그리고 학습을 통하여 주어진 작업에서의 성능 개선을 목표로 하는 기계 학습과는 구분됩니다.

하지만 이쯤에서 만족하지 못하는 분들이 계실 겁니다. 학문이라면, 그것도 Computer Science 관점에서는 객관적인 지표가 필요할텐데 ‘사람들의 욕구 충족’ 이라는 주관적이고 모호한 척도를 어떻게 측정하고 평가하나요? 제가 처음 가졌던 의문도 바로 그 점이었습니다.

해답은 의외로 간단했습니다. 결국은 사람이 평가하는 것이었습니다. 평가자가 주어진 검색 결과에서 어떤 문서가 자신의 정보 욕구와 관련있는지 아니면 무관한지를 알려주면, 이에 얼마나 근사한 결과를 냈는지를 가지고 검색 시스템을 평가합니다. 이때 사용되는 지표가 Precision, 및 Recall인데, 기본적으로는 검색 결과가 얼마나 정보 욕구를 정확히, 그리고 완전히 만족시키는지를 측정하는 것입니다.

이처럼 (사람도 하기 어려운) Mind-reading을 하는 시스템을 만든다는 점에서 IR을 주로 인공지능(Artificial Intelligence)의 분야로 분류하곤 합니다. 모호한 타겟을 갖고 있다는 점이 IR의 어려운 점이자 매력이기도 합니다. (정보 욕구 해소를 삶의 미션으로 삼는 저의 이념과 부합하는 부분이죠;)

얼핏 간단해 보이는 이 ’검색’이라는 문제를 풀기 위한 전혀 다른 (적어도)수십가지 방법이 존재하는 이유도 이와 무관하지 않나 합니다. 현재 많이 사용되는 Vector Space Model, 그리고 CIIR 에서 개발하였으며 최근에 널리 사용되는 Language Model 등이 대표적인 예입니다.

IR은 Computer Science가 아닌 정보과학(Information Science) 관점에서도 많이 연구되고 있으며, 텍스트 데이터를 다루는 관계로 자연어처리(Natural Language Processing), 그리고 최근에는 분류(classification), 군집회(clustering)등 기계학습(Machine Learning)분야의 기반 기술의 응용을 통한 성능 향상을 꾀하고 있기도 합니다. 물론 이 모든 것의 기본은 확률론, 통계, 수학입니다.