본문 바로가기
Technology

의미검색

by 마루날 2007. 4. 17.
반응형
String Matching

지금까지의 검색은 사용자의 질의어가 존재하는 문서를 랭킹 알고리즘에 따라 결과를 정렬하여 제공하는 형태로 서비스가 제공되고 있다. 인터넷 초창기에는 웹 문서의 숫자가 많지 않아서 문서에 존재하는 질의어에 해당하는 키워드의 카운트 정도만으로도 매우 유용한 결과가 나왔다.

웹 문서의 폭발적인 증가로 인해, 다양한 기법을 통해서 검색결과를 최적화하지만(구글의 페이지랭크처럼) 기본적으로는 질의어에 대한 string matching이 기본이었다. 따라서 '디카의 사진을 현상을 하려면'이라는 의도를 가지고 검색하려면, 대부분의 사용자들은 '사진 현상'이라고 질의어를 넣고 검색결과 다시 브라우징해야 하는 악순환을 겪게 된다.

여러 가지 이유를 댈 수 있지만, 무엇보다 사용자들의 의도가 표현된 '문장'의 "의미"를 제대로 이해하지 못하는 검색엔진(단순히 string matching)으로는 한계가 분명히 존재한다.


의미

이를 개선하기 위해서 결국 사용자의 의도가 표현된 문장을 질의어로 입력받으면, 우선 그 "의미"를 해석하고 그 "의미"에 해당하는 문서를 색인에서 찾아서 해당 문서를 콜렉션에서 가져와서 결과를 보여주면 된다.

이를 위해서는 기존의 방식(string matching)과는 전혀 다른(?) 방식인 '의미'를 '분석'해야 하는데, 이를 위해 많은 연구자들이 선택한 방법이 '온톨로지'를 이용한 방식이다. 뭐 이미 온톨로지 기반 검색이라는 든지, 의미 컴퓨팅이라든지, semantic search를 말하는 선도적이고 혁신적인 기업들도 있다.


온톨로지(Ontology)


온톨로지는 개념(concept)이 있고 개념의 속성(predecate)이 있고 개념과 속성의 관계가 있고 이를 통한 추론 규칙(rules)이 있는특정분야에 사용하는 용어들의 집합이다. 사실 '온톨로지'는 정의만 놓고 보면, 시소러스와 유사하다. 시소러스 역시, 단어들이 존재하고 단어들간의 관계가 NT니 RT니 하면서 존재하는데..,
( 쉽게 설명을 못하는 것보니, 나도 잘 모르는 것 같다. T.T)


예를 들어보면, 자동차, 트럭, 엔진이라는 용어가 존재할 때,

온톨로지는

자동차 -(includeSpecific)-트럭
자동차-(hasComponent)-엔진


시소러스는

자동차-(NarrowTerm)-트럭
자동차-(NarrowTerm)-엔진


식으로 표현된다.(적절하지 않은 예제일 수도 있음 ^^)


어떤 문서 A에 " 999 트럭의 엔진결함으로 대규모 리콜이 진행될 것이다."라는 문장이 있다면,  질의어로 '자동차 리콜'이라고 입력했을 때, 온톨로지 기반의 경우 문서 A가 결과의 상위에 랭크되어 있을 것이고, 시소러스 및 기존 방식의 경우 '리콜'이라는 텀 매칭으로는 상위에 랭크되기 어려울 것이다.

(음... 반드시 그럴것이다라고 말하기는 어렵다)

이 예제를 든것은 온톨로지의 경우 개념과 속성의 관계를 표현하는 것이 다양하여, 아주 정교한 의미 분석이 가능해 지고, 이를 통해서 검색결과 성능이 우수해질 수 있다.


차세대 검색, 의미 검색

그러면 앞으로 대세는 온톨로지 기반의 검색엔진이라고 생각할 수 있는데, 정확하게 말하자면, 의미검색이 차세대 검색엔진의 주요한 특징이나 기능이 될 수 있을 것이다. 하지만, 여기에는 큰 장애물이 존재하는 온톨로지가 Real World 모두 매핑하기에는 현재로서는 불가능에 가깝다.

온톨로지가 원래 특정 Domain에 한정된 용어의 모음이고, Real World는 모델링하기가 매우 어렵고, 실제 개념과 속성을 매핑하기 위해서는 엄청난 비용이 소모될 것으로 보여진다. 사실 온톨로지를 기반으로 한 검색은 시멘틱 웹의 개념과도 잇닿아 있기에 여러가지 기술적인 비용적인 개선이 필요하다.

하지만 무엇보다, 단순한 string matching으로는 더 이상 사용자들의 기대를 채워 줄 수 없기에, 앞으로 의미검색으로 많은 시도와 연구가 이루어질 것으로 예상된다.

반응형