모질대세: 모호한 질의어에 대처하는 검색엔진의 자세

by SL

검색엔진에 ‘모나리자’를 입력했을 때, 레오나르도 다 빈치의 그림과 조용필의 노래 중에 어떤 걸 원하는지는 그 사람만이 안다. 하지만, 침묵하는 사용자의 속마음을 알아내려는 검색 연구자들의 노력 또한 치열하다 못해 아주 뜨겁다. 그동안 제안된 아이디어를 간단하게 네 가지로 분류해보자.

1. 검색어 추천 (자동완성 / 관련검색어)

이미 많이 쓰이고 있으며 많은 이들이 익숙한 방식이다. 검색어를 입력하는 동안 혹은 검색한 후에, 사용자가 찾고 있음 직한 쿼리를 제안해준다. Daum에 ‘이정수’를 검색하면, 인물 프로필에서 동명이인들을 보여주고 그중 한 명을 선택하면 ‘스케이트선수 이정수’, ‘축구선수 이정수’ 등으로 쿼리를 확장해서 재검색해준다. 다른 방법에 비해 단순해 보이지만, 사용자가 스스로 명확하게 지정하기 때문에 오류나 혼란이 적다는 것은 무시하기 어려운 장점이다.

2. 상황인지(context-aware)

현재 사용자가 어디에 있는지, 무슨 요일인지, 몇 시인지에 따라서 다른 결과를 제공하는 것도 유용할 것이다. 스마트폰이 퍼지면서 더욱 각광받게 될 텐데, 가령 ‘시간표’라고 했을 때 사용자가 지하철역에 있느냐, 버스정류장에 있느냐에 따라 더 적절한 문서를 상단에 노출하는 식으로 응용할 수 있다. Searching the Wikipedia with Contextual Information 논문을 보면, 위키피디아에서 어떤 페이지를 보다가 검색했는지에 따라서 다른 결과를 제공하는 아이디어가 나온다. 금융이론에 대한 글을 읽다가 beta를 검색했다면 십중팔구는 이 베타를 찾는 것일 테니까 말이다.
그런데 context search로 논문을 찾아보면 위에서 말한 ‘상황’보다는 현재 검색 세션을 컨텍스트로 사용하는 경우가 많다. 즉, ‘이전에 어떤 쿼리를 날려서 어떤 문서를 클릭했으니, 이번 쿼리는 아마도 이런 걸 찾는 거겠지?’라는 건데, 영한사전에서 context의 첫 번째 의미가 ‘문맥’이라는 걸 감안하면 수긍이 되는 이야기다. 이런 컨텍스트를 고려해서 랭킹을 하면 세션 내에서 검색을 계속함에 따라 조금씩 의도에 부합하는 문서에 다가가는 데 도움이 될 듯하다.

3. 개인화(personalization)

여기서 말하는 개인화란, 사용자별로 프로파일을 만들어두고, 사람에 따라 동일한 쿼리라도 다른 결과를 제공하는 것이다. 프로파일에는 이전 검색과 클릭 내역, 사용자가 알려준 관심사나 직업 등이 들어갈 수 있다. 구글 등에서 이미 시도하고 있는데, 역시 가장 큰 이슈는 프라이버시와 어떻게 조화시키느냐는 문제 같다. 내가 생각하는 두 번째 문제는 검색결과의 편향이다. ‘Weka’라고 검색했을 때 내가 기계학습에 관심이 있다고 해서 소프트웨어 Weka에 대한 문서만 나오기를 바라지는 않기 때문이다. 뉴질랜드에만 산다는, 날지 못하는 새 Weka에 대한 정보도 보여줘서 그동안 몰랐던 새로운 지식을 얻을 기회를 놓치지 않았으면 좋겠다. 그래서 나는 구글에 검색할 때면 항상 먼저 로그아웃부터 한다. (그런데.. 이런 나의 희망을 반영해서 다양성을 보장하는 것까지도 포괄할 수 있는 개인화라면? 그건 또 그것 나름대로 무섭겠다 ㄷㄷㄷ)

4. 다양화(diversification)

사용자/상황에 따른 맞춤형 검색에 연연하지 않고, 쿨하게 처음부터 최대다수의 최대만족을 위해 다양화된 검색 결과를 제공하겠다는 전략이다. 재미있게도 구글과 마이크로소프트에서 같은 주제로 각각 논문이 나왔다. 심지어 두 논문의 제목마저도 비슷하다.

내가 임의로 종류를 구분하기는 했지만, 상황이나 개인화를 어떻게 정의하느냐에 따라 2와 3의 경계가 모호할 수 있고, 또 상황에 따라 다른 검색어를 추천하는 식으로 1과 2를 결합할 수도 있다. 실제로 동일한 쿼리에 대해 맞춤형 검색결과를 제공하는 간단한 방법은 Query Reformulation, 다시 말해서 쿼리 변형이다. 개인적으로는 4번 방식에 관심이 많은데, 다양화가 한때의 연구 유행으로 그칠지 아니면 검색의 필수 요소로 자리 잡을지 앞으로 관심을 두고 지켜봐야 할 것 같다.