IR분야의 최고 컨퍼런스인 SIGIR 2008이 얼마전에 싱가포르에서 열렸습니다. 그 권위만큼이나 대표적인 연구자들의 최신 성과들이 집대성되기에, 발표된 논문을 훑어보면 지금 IR 연구의 state-of-the-art, 그리고 앞으로의 방향까지 짐작케합니다.

그중 저의 눈길을 끌었던 것은 사용자의 질의를 분류하여 적절한 검색 방식을 선택하는 주제였습니다. 어떤 쿼리가 들어오든지 정해진 검색 모델을 사용하여 랭킹을 계산하던 모델은 사용자 및 검색 의도(query intent)가 제한적이었던 시절에는 유효했을 겁니다. 하지만 거의 모든 사람이, 온갖 목적으로 검색엔진을 이용하는 요즘에는 질의어에서 속성(feature)을 추출하여 분류(classification) 혹은 군집화(clustering)하고, 이에 따른 적절한 처리를 하는것이 중요한 이슈가 되고 있습니다.

이중 MSR에서 질의어를 분석하여 가장 적합한 검색엔진으로 검색한 결과를 보여주는 주제로 논문이 나왔습니다. 여기서는 더 나은 검색엔진을 만들어도 이미 구글에 락인(lock-in)된 사용자들을 유인하기 쉽지 않은 MS의 고민이 엿보입니다. 브라우저 플러그인 형태로 만들어져 가장 좋은 검색결과가 예측되는 검색엔진을 자동 선택해주기 때문에, 검색엔진간의 자유경쟁 시대를 예고하는 잠재력을 가진 연구라고 할까요. 물론 MS에서 개발된 플러그인은 웬만하면 Live Search를 추천하겠지만요;)

또한 질의어 분석을 통해 검색 개인화(personalization) 여부를 결정하는 논문도 흥미있었습니다. 개인화가 중요한 화두임에는 분명하지만, 이를 무차별적으로 적용했을 때는 오히려 검색결과의 품질이 전반적으로 떨어진다는 점이 문제인데, 여기서는 질의어와 상위 랭크된 문서를 분석하여 개인화가 성능을 높일 것으로 예측되는 질의에만 선택적으로 적용한다는 해결책을 내놓고 있습니다. 그리고 검색 의도가 분명치 않아 다양한 종류의 결과가 나오는 질의어일수록 개인화에 의해 성능을 높일 수 있다는 분석 결과를 밝히고 있습니다. 이와 유사한 연구로 질의어를 통해 지역화(localization)여부를 결정하는 논문도 있군요.

마지막으로 쿼리 분류를 랭킹 학습(Learning to Rank)에 접목시킨 연구도 눈여겨볼만 합니다. 기존 랭킹학습이 쿼리의 종류에 관계없이 단일한 랭킹 함수를 학습했다면, 여기서는 일단 기존의 질의어 집합을 K-Nearest Neighbor알고리즘으로 클러스터링하여 각 클러스터별로 랭킹을 학습한 뒤 새로 들어온 질의어에는 이와 유사한 질의어 클러스터의 랭킹 함수를 조합한 랭킹 함수를 적용한다는 아이디어입니다. 예를들어 어떤 질의에는 검색 결과의 최신성(recency)이, 다른 질의에는 권위(authority)가 중요할텐데요, 질의어를 보고 이를 예측하여 적절한 처리를 하겠다는 겁니다.

해마다 SIGIR에서는 발표 논문의 소주제(예 : 웹검색, 개인화, 랭킹 학습 등등)가 10가지 정도 결정되곤 하는데, 그 주제 자체가 매년 상당수 바뀝니다. 이렇게 역동적인 분야에서 연구를 한다는 것은 분명 도전이지만 그만큼 흥미진진합니다. 무럭무럭 자라는 아이를 지켜보는 느낌이랄까요. 내년에는 그 아이의 성장에 저도 한 숟가락(?) 기여해 보렵니다.

예전에 잠깐 정보 검색 연구를 소개한 적이 있지만, 앞으로 정보검색론(Information Retrieval이하 IR)에 대해 써볼 생각입니다. 아직 풋내기 대학원생이지만, 지난 1년간의 공부를 정리하고 앞으로의 방향을 잡아보는 차원에서 시작합니다.

IR은 웹 검색이다?

제 연구분야를 간단히 소개할 때 검색엔진을 연구한다고 말하곤 합니다. 그러면 보통 ‘검색엔진? 그거 다 연구된거 아냐?’ 라는 반응을 봅니다. 사실 저도 구글 등 상업용 검색엔진을 쓰면서 불편함을 많이 느끼지 못했기에 비슷한 의문을 가졌습니다.

하지만 IR은 단순히 웹 문서의 검색을 연구하는 것이 아닙니다. IR은 좀더 넓은 의미에서 사용자의 정보 욕구(information needs)를 만족시키는 정보물(information object)를 찾아주는 것을 목표로 하기 때문입니다. 웹 문서 검색이 가장 잘 알려진 분야인 것은 사실이지만, 우리가 ‘아 그게 뭐지?’, 혹은 ‘아 그것이 어디 있을까?’라고 궁금해 하는 순간순간이 모두 IR연구자들이 해결하고자 하는 문제인 것입니다. 실제 세상의 모든 유무형의 사물은 정보의 형태로 표현될 수 있으며, 이들 정보물의 양에 비해 사람의 인지능력은 항상 턱없이 부족하기에 검색 연구는 앞으로도 계속될 것입니다.

흔히 우리가 보는 웹 검색, 질문과 답변을 찾는 지식 검색, 뉴스 검색, 이미지와 비디오 검색, 지도와 전화번호 검색 이외에도 어떤 분야의 전문가를 찾아주는 전문가 검색, 도서 검색, 음악 검색, 제품 검색 등 검색의 대상에는 제한이 없습니다. 또한 현재 연구중인 RFID 기술 등이 보편화되어 세상의 모든 물체에 센서가 달리게 되면 실제 사물역시 검색의 대상이 될 수 있겠습니다.

검색의 방식 측면에서도 한국어로 검색어를 입력했을 떄 적절한 영어 문서를 찾아주는 교차어 검색(cross-language IR)이나 키워드가 아닌 질문 형태의 검색어를 받아 적절한 답(문서가 아닌)을 구해주는 질의 응답(question answering – 컴퓨터가 답변해주는 지식인이라고 생각하시면 됩니다.), 여러 곳에 나누어진 정보를 모아서 검색해주는 분산 검색(distributed IR) 역시 검색의 세부 분야로 연구되고 있습니다.

무엇을 어떻게 연구하나?

검색을 연구한다면 정확히 뭘 하는지 궁금하실 겁니다. 우선 사용자의 정보욕구는 검색어(query) 형태로 표현되기 때문에, 질의어를 분석하는 것이 필요합니다. 질의어에서 어구(phrase)나 사람 이름 등의 고유명사를 추출하기도 하고, 질의어에서 단어를 빼거나 추가하면 검색 결과가 좋아지는 경우가 많은데 관련된 기술을 질의어 확장(query expansion)이라고 합니다.

질의어가 분석되었다면 정보물(여기서는 문서를 가정)을 분석해야 할 것입니다. 문서는 미리 색인화(indexing)를 거쳐 속성 집합(feature set) 형태로 표현되는데, 이 속성에는 문서에 포함된 단어나 어구, 문서의 인기도나 최선성 등의 관련 정보가 모두 포함됩니다. 어떤 속성(feature)를 검색에 사용하느냐가 검색 성능을 좌우하기 때문에 검색회사나 연구자들은 검색에 도움이 되는 속성을 개발하느라 열심입니다. 상업용 검색엔진에는 수천개의 속성이 사용되고 있으며, 지금도 계속 추가된다고 하는군요!

질의어와 문서가 분석되고 나면 이를 비교해서 관련성(relevance)이 높은 문서 순으로 정렬해야 할 것입니다. 이를 위해 각 문서에 점수를 매기는데, 이때 사용되는 수식이 검색 모델입니다. 검색모델은 기본적으로 검색어와 문서의 유사성(textual similarity) 및 문서의 품질 등을 종합적으로 고려하여 순위를 매기는데, 검색어와 문서를 벡터로 놓고 비교하는 방법, 문서를 확률 변수로 보는 방법 등이 있지만 어느 모델이 더 우월한지는 결론이 나지 않은 상황입니다. 최근에는 각 속성간의 중요도를 자동으로 결정하는 기계학습 기반의 방법이 개발되어 널리 사용되고 있습니다.

검색 결과가 나온 다음에는 이를 평가해야 할 것입니다. 제가 검색 연구를 시작하기 전에 가장 궁금했던 부분인데, 결국에는 사람이 판단해준 결과를 바탕으로 검색 품질을 점수화하는 것이었습니다. 예컨데, 상위 10개 문서중 7개가 관련성이 있다면 0.7점을 주는 식이죠. 언뜻 간단하게 보이지만, 이 과정에는 비용도 많이 들어가고 고려해야 할 점이 많기에 검색 결과의 평가는 검색 연구의 중요한 축을 형성하고 있습니다.

아직 궁금하다면…

검색을 다루는 글이니만큼 참고자료도 ‘정보검색’ 이라는 키워드를 사용한 검색결과로 제공하겠습니다;) 목록을 보시면 위키피디아 페이지, 책 등의 자료가 첫페이지에 있는 것을 보실 수 있습니다. 저희학교 정보검색 수업 홈페이지도 있군요.