정보검색(IR. Information Retrieval)의 의미는 매우 광의적일 수 있다. 어쩌면 지갑에서 신용카드를 꺼내서 카드번호를 적는 그 자체도 정보검색의 일종이지만, 학계에서의 정보검색은 다음과 같이 정의가 된다.

  정보검색은 정형화되지 않은 세계에서 자료(일반적으로 문서들)을 찾는다. 보통 컴퓨터에 저장되어진 굉장히 큰 컬렉션 내의 정보욕구를 해결해준다..

  이런 의미로 정의됨으로, 정보검색은 소수(사서, 변호사 보조원, 전문적인 정보검색사)들에 의해 이용되어지는 것으로 여겨졌다. 현재 세상은 변하고 있다. 정보검색에 관여하는 수백만의 사람들이 매일 웹 검색엔진을 이용하고 자신의 이메일을 검색한다. 정보검색은 정보 접근의 지배적인 형태로 급속히 변화하고 있고 전통적인 데이터베이스 검색을 대체하고 있다.(  "미안하다, 당신의 주문 ID를 나에게 줘야만 당신의 주문서를 찾을 수 있다"라고 점원이 당신에게 말할 때와 같은 부류)

   또한, 정보검색은 위에서 언급한 핵심적 정의를 넘어서 다른 종류의 데이터나 정보 문제로까지 확장될 수 있다. "비정형화 데이터(unstructured data)"는 깔끔하지도, 의미적으로 명백하지도, 컴퓨터가 이해하기 쉬운 구조체이지도 않은 데이터를 말한다. "정형화된 데이터(structured data)"의 반대 의미이며, 중요한 산출물과 개인적인 레코드들을 사용하기 위해  회사의 관계된 데이터베이스가 전형적인 예이다. 사실, 어떠한 데이터도 비정형화된 데이터가 아니다. 만약, 여러분들이 인간 언어의 잠재적인 말을 생각한다면, 이것은 모든 텍스트 데이터에 대해 의미적으로 맞다는 것을 확인할 수 있다. 그러나, 의도된 개념 구조조차 명백한 구조라고 인정하고 있다. 대부분의 텍스트는 일반적으로 명백한 마크업에 의해 문서를 표현하는 머리말, 문단, 주석을 가진 구조이다. 정보검색은 또한 Java라는 단어가 있는 제목과 threading이 있는 본문을 가진 문서를 찾는 것처럼 "준정형화(semistructrued)" 검색을 용이하게 사용한다.

  정보검색의 분야는 브라우징 혹은 문서 컬렉션을 필터링 또는 검색된 문서 집합을 활용, 분석할려는 사용자들을 지원한다. 문서 집합이 주어졌을 때, 클러스터링(clustering)은 컨텐츠(검색된 문서 집합)를 기반으로 문서들을 적당한 그룹으로 분류하는 것이다. 서가에서 주제별로 책들을 정돈하는 것과 유사하다. 토픽 집합이 주어졌을 때, 분류화(classification)는 각각의 문서 집합이 어떤 클래스에 속하는지 정의하는 것이다. 이것은 처음에 수동으로 몇몇 문서들을 분류화함으로써 접근을 하고, 그 후론 자동적으로 새로운 문서들을 분류할 수 있도록 한다.

  정보검색 시스템은 연산을 하는 범위에 의해 구분되어질 수 있으며, 그것은 3개의 명백한 범위를 구분하는데 유용하다.

  웹 검색에서, 시스템은 수백만 대의 컴퓨터에 저장되어진 십억 개 이상의 문서들에 대해 검색을 제공한다. 주요 이슈는 색인을 위해서 문서들을 수집하는 것이 필요하다. 이러한 거대한 범위에서 효과적인 작업을 할 수 있는 시스템을 만들고, 웹의 특별한 면(하이퍼텍스트를 활용하는 것처럼)을 핸들링할 수 있으며, 검색엔진 랭킹을 올리기 위해 사이트 제공자가 페이지 컨텐츠를 조절할 만큼 어리석지 않아야 한다. 웹의 상업적 중요성을 시사하며 이것은 chapter 12-21에서 논의한다.

  다른 명백한 범위 중 하나는 개인정보검색이다. 최근 몇 년간 consumer operating systems들은 정보 검색을 통합하고 있다. (Apple's max OS X Spotlight나 Windows Vista's Instant Search). 이메일 프로그램은 일반적으로 검색 뿐만 아니라 텍스트 분류화 작업(classification)을 제공한다. 그것들은 적어도 스팸(junk mail) 필터를 제공하고, 일반적으로 특정한 폴더에 바로 이동시키는 분류화를 위해 수동적으로나 자동적인 방법을 제공한다. 주요 이슈는 전형적인 개인 컴퓨터에서 굉장히 많은 문서의 종류를 핸들링해야 하면, 검색 시스템의 유지, 보수는 무료여야 하고, 구동, 처리를 위해 충분히 가벼워야 하면, 소유자를 성가시게 하지 않고 하나의 기계에서 돌아가기 위한 디스크 공간을 사용해야 한다.

  이것들의 중간적인 의미로서, enterprise, instituional, domain-specific 검색이 있다. 회사의 내부 문서, 특허 데이터베이스, 생화학의 연구 논문과 같은 컬렉션을 검색한다. 이 같은 경우, 문서들은 전형적으로 중앙 집중하는 파일시스템에 저장되어진다. 이 책은 이러한 전체적인 범위 이상의 기술을 포함하지만 웹 검색에서의 몇몇 병렬/분산 검색과 같은 주제에 대해서는 상대적으로 조금만 다룰 것이다. 그러나, 소수의 웹 검색 회사 이외의 소프트웨어 개발자들은 대개 개인 검색과 enterprise 시나리오에 부닥칠 것이다.

  이번 chapter에서는 매우 간단한 정보검색의 문제로 시작한다. 그리고, term-document 배열의 아이디어(Section 1.1)와 역배열 구조체(Section 1.2)를 소개한다. Boolean retrieval model과 Boolean query는 어떻게 처리되는지(Section 1.3, 1.4)를 설명한다.

1.1 An example information retrieval problem

  많은 사람들이 소유한 장서 중 하나는 셰익스피어의 전집(Shakespeare's collected Works)이다. 당신이 이 책에서 Brutus와 Caeser라는 단어가 포함되고 Calpurnia라는 단어는 포함되지 않은 (Brutus AND Caeser AND NOT Calpurnia) 셰익스피어의 작품들을 확인하기를 원한다고 가정하자. 이것을 수행하기 위한 한 가지 방법은 처음부터 모든 텍스트를 읽는 것이다. Brutus와 Caeser가 포함되었는지 확인을 하되 Calpurnia가 포함되었다면 고려 대상으로부터 제외한다. 문서 검색의 가장 간단한 형태는 컴퓨터가 문서를 선형 스캔하는 것과 같은 방법을 행하는 것이다. 이러한 처리는 일반적으로 텍스트를 스캔하는 유닉스 명령어인 "grep"을 이용하여 grepping하는 것과 같은 방법을 추천한다. 텍스트를 grepping하는 것은 매우 효과적인 처리일 수 있다. 특히 주어진 현대 컴퓨터의 속도가 주어졌다면 말이다. 그리고 종종 정규 표현식을 통한 와일드 카드 패턴 매칭을 가능케 한다. 적당한 크기의 컬렉션의 간단한 쿼리를 위해 현대 컴퓨터가 있다면, 당신은 더 이상의 어떤 것도 필요치 않다. (셰익스피어의 전집의 크기는 전체적으로 100만 단어 이하이다.)
그러나, 더 많은 목적을 위해 여러분들은 더 많은 것이 필요로 한다.

1. 대용량 문서 컬렉션을 빨리 처리하기
   많은 온라인 데이터는 최소한 컴퓨터의 속도만큼이나 빨리 성장하고, 우리는 수 십억에서
   수 조의 단어가 있는 전체 컬렉션에서 검색할 수 있기를 원한다.
2. 좀 더 유연한 매칭 연산을 수행하기
   예를 들어, 쿼리 "Romans NEAR countrymen"은 grep을 이용해서 수행하기는
   비현실적다. (NEAR는 같은 문자 혹은 5단어 이내의 연산을 의미한다.)
3. 랭크된 검색을 수행하기
   많은 경우에 있어 당신은 특정 단어를 포함한 많은 문서들에서 최선의 답을 획득하기를
   원한다.

  각 쿼리에 대해서 텍스트를 선형적으로 스캐닝을 피하는 방법은 진보적으로 문서들을 색인하는 것이다. 셰익스피어의 전집을 Boolean retrieval model의 기초를 소개하는데 사용한다. 셰익스피어가 사용한 모든 단어는 각각의 단어를 포함하는지에 대한 여부를 각 문서(셰익스피어의 작품)에 대해 기록한다고 가정하자. (셰익스피어는 서로 다른 32,000개의 단어를 사용) 그 결과는 그림 1.1과 같은 term과 document간의 접속행렬로 표현할 수 있다.


term들은 색인 단위이다. (Section 2.2에서 앞으로 다룬다.) 그것들은 일반적으로 단어들이다. 일시적으로 여러분들은 그것들을 단어(word)로 여기겠지만 정보검색 학문에서 일반적으로 term이라 부른다. "I-9" 혹은 "Hong Kong"은 일반적으로 단어로서 생각하지 않는 거처럼 그것들의 일부이기 때문이다.

  자, 행렬의 가로든 세로든 보면, 각 문서에 출현한 각 term을 위해 벡터를 획득할 수 있고, 또는 문서에 출현한 term을 기준으로 보면 각 문서를 위한 벡터를 획득할 수 있다.
쿼리 "Brutus AND Caeser AND NOT Calpurnia"에 대한 답을 하기 위해, Brutus, Caeser, Calpurnia에 대한 벡터를 취하고 마지막으로 AND 비트 연산을 한다.

110100 AND 110111 AND 101111 = 100100

  이 쿼리에 대한 답은 "Antony and Cleopatra"와 "Hamle"이 된다. (그림 1.2)


  Boolean retrieval model은 정보검색의 한 모델이며 우리는 term들의 Boolean 표현의 형태로 어떤 쿼리를 취할 수 있다. 즉, term들은 연산 AND, OR, NOT을 이용하여 결합되어진다.
이 모델은 단어의 집합으로 각 문서들을 바라본다.
좀 더 현실적인 시나리오를 고려함과 동시에 몇몇 용어와 표기법에 대한 기회를 갖자. 우리는 N = 1 million 문서를 가지고 있다고 가정하자. 검색 시스템을 문서 단위로 구축하기로 결정했다. 문서들은 개인적인 메모들일 수도 있고, 책의 chapter일 수도 있다. (Section 2.1.2 - page 20에서 향후 다룬다.) 컬렉션으로서 검색을 수행하기 위해 문서의 그룹들을 참조한다. 때론 텍스트의 본문인 코퍼스(corpus)를 참조한다. 각 문서가 2-3페이지에 걸쳐 약 1,000개의 단어가 있다고 가정하자. 스페이스와 구두문자를 포함하여 단어당 평균 6byte라고 가정하면, 이것은 약 6GB의 문서 컬렉션이다. 전형적으로 이러한 문서에서 약 M = 500,000개의 서로 다른 term들이 있을 수 있다. 우리가 선택한 숫자에 대한 특별한 것은 아무 것도 없고, 그 숫자들은 크기나 그 이상의 것의 순서에 따라 변할 수 있지만, 그것은 우리가 다루어야 할 필요가 있는 갖가지 문제의 차원에 대한 몇몇 아이디어를 제공한다. 우리는 논의할 것이고 Section 5.1 (page 79)에서 이러한 크기를 가정하는 것을 모델링할 것이다.

  우리의 목표는 Ad-hoc 검색 임무를 가진 시스템을 개발하는 것이며, 이것은 가장 표준 IR의 임무이다. 시스템은 임의의 사용자 정보와 연관성이 있고 1회성의, 사용자 초기 쿼리의 의미로 시스템과 소통하는 컬렉션 내의 문서들을 제공해주는 것을 목표로 한다.

  필요한 정보는 사용자가 좀 더 알고자 하는 것에 대한 주제이며, 사용자가 필요한 정보를 획득하기 위한 시도로써 컴퓨터에 전달하는 쿼리로부터 차별되어진 것이다. 만일, 사용자가 개인적으로 필요한 정보에 부합한 정보의 가치를 포함한다고 여긴다면 문서는 연관성이 있다.
우리의 위의 예제는 필요한 정보가 특정 단어들로 정의되었다는 것은 다소 인위적이다. 반면, 일반적으로 사용자는 "파이프 누수"와 같은 주제에 관심이 있고 그들이 정확한 단어들(파이프 누수)를 사요하던지 "파이프 파열"과 같은 다른 단어를 씀으로써 개념을 표현하던지 상관없이 관련된 문서를 찾길 원한다. IR 시스템의 유효성(검색 결과의 질)에 접근하기 위해 일반적으로 사용자는 쿼리에 대한 시스템이 내주는 결과에 대한 2가지 주요 통계를 알고자 한다.

Precision (정확도) : 얼마만큼의 검색 결과가 필요하고자 하는 정보와 연관성이 있는가?
Recall (재현율) : 컬렉션에서 얼마만큼의 연관된 문서가 시스템에 의해 검색되었는가?

  Precision과 Recall을 포함한 연관성과 평가에 대한 기술된 논의는 chapter 8에서 다룬다.

  우리는 지금 원시적인 방법으로 term-document 행렬을 만들 수 없다. 500K X 1M 행렬은 너무 커서 컴퓨터 메모리에 적재하기 힘든 5천억 개의 0's와 1's를 가진다. 그러나 중요한 관점은 행렬이 너무 희박하다(Sparse Matrix). 즉 0이 아닌 엔트리가 극히 적다는 의미이다.  왜냐하면, 각 문서는 1,000개의 단어들로 구성이 되고, 그 행렬은 10억 개 이상의 1's를 가지지 않아서 구성원의 최소 99.8%가 0이다. 더 나은 표현법은 1의 위치만 기록하는 것이다.
 
 이 아이디어는 정보 검색에서 첫 번째 중요한 개념인 역색인(inverted idnex)의 핵심이다. 이름은 실제로 중복적이다. 색인은 항상 term에서 term이 발생한 문서의 일부분으로 거꾸로 매핑을 한다. 그럼에도 불구하고 역색인, 때론 역파일은 IR에서는 표준 용어로 사용되어지고 있다.


  역색인의 기본적인 생각은 그림 1.3에서 보여준다. 우리는 term들의 dictionary(때로 종종 vacabulary 나 lexicon처럼 언급한다. 이 책에서는 데이터 구조를 위해 dictionary를, term들의 집합을 vocabulary로 사용)를 유지할 것이고, 각 term은 term들이 발생한 문서의 레코드들을 리스트로 가진다. 리스트에서 각 아이템 - 문서에서 출현한 term의 레코드 (그리고, 향후에 종종 문서의 위치) -는 전통적으로 "posting"이라고 불리운다. 리스트는 "posting list (또는 inverted list)"라 불리우고, posting list들은 posting들을 참조한다. 그림 1.3에서 dictionary는 알파벳 순으로 정렬이 되어졌고, 각 posting list는 documen ID로 정렬되어진다. 우리는 이것이 Section 1.3에서 유용하다는 것을 알게 될 것이고 나중에 우리는 또한 이것의 사용 유무를 고려하게 된다. (Section 7.1.5)

** 다음 글 **
1.2 A first take at building an inverted index
1.3 Processing Boolean queries
1.4 The extended Boolean model versus ranked retrieval
1.5 References and further reading

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,



Introduction to Information Retrieval

지은이 : Manning, Raghavan, Schutze
간략 내용2008/06/27 - [IT/검색엔진] - 스탠포드 IR
책정보 보기 : 알라딘 인터넷 서점
PDF
다운받기 : PDF




검색엔진에 대한 경력이 제법 되어간다. 올해가 11년차?
그러나, 머리 속에 든 지식이 별로 없다.
10여년 동안 뭘 했나 싶기도 하다...
우울하다.
그래서, 머리 속에 검색에 대한 지식을 체계적으로 만들어보고자 이 책을 집어들었다.
책을 구입한 때는 2008년 8월...
4개월이 지나고 나서야 처음으로 보기 시작했다.
물론, 개인적으로 중간에 많은 일이 있긴 했지만, 책을 구입하고 4개월 뒤에 본다는 것이
살 때의 설레임으로 처음에 좀 치고 나가야 함에도 불구하고
이제서야 보게 되다니 이 결심이 언제까지 갈지는 모르겠다.

일단, 블로그에 남길려고 하는 것은 이 결심이 빨리 흐트러지지 않게 하기 위함이다.
회사를 다니면서 번역을 하고 요약을 하는 것은 쉽지 않은 일이기에
변명 또한 더 많이 생길 여지도 있고 그렇게 되면 이 또한 대충 훑어보는데도 상당한 시간(3년 이상?)이 소요될 것으로 보이므로 최대한 시간을 당기고 싶은 마음이 절실하기 때문이다.
이렇게라도 밝히고 나면 약간의 의무감(?)으로라도 할 수 있을 거 같기 때문이다.

우선, 원서라서 조금 고민을 했지만, 짧은 영어 실력으로 조금씩 시간나는대로 번역을 해보며
요약을 해서 완전히 나의 것으로 만들려고 한다.
chapter당 2~5건 분량의 글을 남길려고 한다.
워낙 많은 양인데다가 앞서 말한 거처럼 영어 실력이 많이 떨어지기에...
아마 이 책을 번역하고 요약본까지 만드는데 1년 혹은 2년은 족히 걸릴 수도 있겠다.
목표는 1년 안에 어느 정도의 번역본과 요약본을 볼 수 있도록 할려고 한다.
(목표가 클수록 좋다잖아요... ^^)

산출물에 대해서는 올리도록 한다.
상당히 오래도록 고민한 결과다.
사실, 영어 실력도 안 좋은데다가 이걸 번역해서 올린다면 고수님들의 비웃음을 감내할 수 없을 거 같았고, 비록 경력이 11년차이지만 내가 가지고 있는 지식으로 이 책의 내용을 오해하지 않고 제대로 번역할 수 없다면 검색에 대한 초심자나 검색에 대한 개념들이 막 자리잡고 있는 분들이 참고하여 자칫 더 혼란스럽게 하지는 않을까 라는 고민도 많이 했다.

그러나, 이 블로그는 나를 위한 블로그이며 나에 대한 하나의 시험 무대이기도 하다.
이기적으로 내가 우선시 되어야 하기에, 위 분들은 제발 원서를 읽고 나름대로의 개념을 습득하길 기원할 뿐이다.
단, 저의 짧은 영어로 인한 오역한 부분에 대해서는 이 글을 읽으시는 분들이 지적해주시면 저에게 상당히 고마운 일이 될 것이니, 맘껏 지적해주시면 감사하겠습니다.
대신 욕설은 하지 말아주세요. ㅋㅋ

** 목차 **
1. Boolean retrieval
   * Introduction
   * 1.1 An example information retrieval problem
   * 1.2 A first take at building an inverted index
   * 1.3 Processing Boolean queries
   * 1.4 The extended Boolean model versus ranked retrieval
   * 1.5 References and further reading

2. The term vocabulary & postings lists
   * 2.1 Document delineation and character sequence decoding


** 관련 글 **
스탠포드 IR

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,
주어진 Query로 각 Document가 해당 Query에 적합할 확률을 베이지언 룰을 활용하여 계산하는데,
독립가정을 전제로 베이지언 룰을 이용하여, 비연관문서 집합에서 질의가 포함될 확률에 대한
연관 집합에 포함될 확률을 계산하여 문서를 찾는 모델링이다.

장점 : 문서들이 질의에 대하여 적합할 확률의 순서에 내림 차순으로 랭크된다.
단점 : 비연관 문서와 연관 문서 집합의 초기의 결과 집합을 가정해야만 한다.
         불린 모델과 같이 가중치가 없어서 색인어의 빈도수에 대한 가중치를 부여할 수가 없다. (오카피 모델에서 적용)
       색인어들에 대한 상호 독립 가정을 전제로 한다.


블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,
불리언 모델은 간결하며, 빠르지만 문서 유사도를 계산할 수 없다는 단점이 있다.
불리언 모델은 사용자 질의 처리를 위한 단순한 방법을 제공한다.
검색서비스에서도 사용자 질의 처리기는 불리언 모델을 사용해서 분석하고
검색결과는 Vector Space Model을 사용하는 형식으로 구성이 된다.

즉, Extended Boolean Model은
Boolean Model을 기반으로 해서 Vector Space Model(VSM)의 유사도 계산 기법을 이용하여 가중치를 부여할 수 없다는 단점을 해결하는데 초점이 맞추어져 있다.

Document Term Weight간의 유클리드 거리를 구해서 유사도를 찾아내며
이것은 Vector Space Model(VSM)의 TF*IDF 모델을 사용해서 구한다.

자세한 내용은 파일을 다운받아 보시길...

1. Definition
2. Boolean OR
3. Boolean AND
4. Normalized
5. P-Norm
6. AND OR 조합
7. Features

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,

이 모델은 집합이론에 근거한 불리언 로직을 이용해서 질의어와 문서를 색인어의 집합으로 표현하는 모델이다.

불리언 모델은 사용자 쿼리로부터 주어진 Term을 포함한 문서를 찾는다고 하면,
해당 문서가 Term을 포함하고 있는지(true), 아닌지(false)에 대한 정보만을 가지고 문서를 찾아낸다.
매우 단순하고 효율적이며 빠른 구현이 가능하나, 사용자의 의도를 정확하게 파악하지 못하는 단점도 있다.

자세한 내용은 파일 다운 받아 보시길...

1. Definition
2. Query
3. Extension of Query
4. Limitations

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,

정보검색 개요를 작성한지 한참 만에 벡터 스페이스 모델에 대해서 정리를 했습니다.

벡터 스페이스 모델은 불리언 모델, 확률 모델과 더불어 검색 모델에 있어서 아주 중요한 부분입니다.

Term vector model이라고도 불리우며 정보 필터링, 정보검색, 색인과 유사도를 계산하기 위한 대수 모델입니다.
이 모델은 SMART Information Retrieval System에서 가장 먼저 언급이 되었으며,
무료 검색엔진인 루씬에서 이 모델을 기본적으로 사용하고 있습니다.


벡터공간 모델 상에서 각 도큐먼트들과 질문자들은 n차원 공간 속의 벡터들로 취급되며,
이때 각 차원들은 색인용어들로 표현된다.
이 기법에 의한 검색 절차는 다음과 같다.
1) 용어의 가중치는 정규화된 도큐먼트내의 빈도(TF)와 이의 역빈도수(IDF)를 조합하여 게산
2) "낮은 식별치(poor discrimination value)의 값을 지닌 용어들은 시소러스내의 저 빈도용어들로 대치되며
   구의 경우 고빈도 용어들로 대체된다.
3) 각 도큐먼트들은 이용자 질문에 대해서 그 유사성의 순위별로 출력되며, 이러한 과정은 코사인 상관도에
   의해 계산된다. (벡터 공간 내에서 이용자의 질의에 가장 근접해 있는 도큐먼트들을 직관적으로 검색해낸다.)


자세한 내용은 다운받아 보시길...

1. Definition
2. Applications
3. Examples
4. Limitations
5. Reference
6. Models based on and extending the vector space model

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,
간만에 여유가 생겨 하고 싶었던 부분들을 하나씩 정리하고자 하는 의미에서
일단은 정보검색에 대한 개요 부분을 정리했다.

1. data vs. information retrieval
2. definitions
    - collection, volume, document, term query, IRS
3. concept
4. requirement
5. issues

로 나누어서 정리를 했으며,
정보검색에 입문 하는 사람이라면 이 정도만 알고 시작해도 검색에 대한 두려움을 약간을 떨칠 수 있지 않을까 라는 생각이 든다. (나만의 생각인가???)

암튼, 부족한 부분들은 조금씩 채워나가는 방향으로 할 것이다.


블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,

시맨틱스에서 현재 개발/테스트 중인 Qrobo...
자사 홈페이지에 소개되어 있는 내용을 정리하자면 다음과 같다.

디렉토리 검색엔진은 예전부터 사용해 온 도서 분류학을 모태로 하여 각 홈페이지의 성격을 정하여 사용자의 접근을 좁혀 나가 결국에는 자신이  원하고자 하는 자료를 획득할 수 있었으나,
이젠 하나의 사이트가 하나의 성격을 가지는 것이 아니라, 여러가지 성격을 내포하고 있어
더 이상 구조화된 분류 체계로 표현하기 힘들다.
또한, 200억 페이지 가까이 되는 페이지를 사람(일명 서퍼)들이 일일이 분류하기엔 불가능한 일이다.

키워드 기반 검색엔진은 애매모호성을 띈다.
언어적으로 봤을 경우 하나의 단어가 여러가지 의미를 지니고 있음에도 불구하고
많은 링크가 달렸다는 이유로, 혹은 자주 봤다는 이유로 앞 페이지 대부분을 차지하여
정작 다른 의미의 정보를 원하고자 하여도 한참 뒷 페이지로 넘겨보거나
혹은 확실하지 않은 키워드를 여러개를 나열하여 좁혀 나가야 한다.
그러나, 정보에는 사용자가 원하는 키워드가 표현되지 않았다면 과연 어떻게 찾을까??

그리하여 탄생한 것이 Qrobo 이라고 한다.

검색 엔진 개발에 깊이 참여하고 있는 사람들은 최근 10년 남짓 키워드 기반의 검색엔진에 한계가
있음을 느끼고 있으며, 그렇다고 해서 이것을 뛰어넘는 기술 개발은 아직 많은 시간이 소요된다고 판단하고 있다.
나 또한 검색 엔진 개발만 10년이 넘었지만 쉽지 않은 일임을 잘 알고 있다.

언젠가는 시맨틱스가 지향하고 연구하고 있는 방향은 누군가가 해야할 임에는 분명해 보인다.
그게 1년이 걸리든, 10년이 걸리든...
결국엔 그 방향으로 가야함을 검색 기획자 또한 충분히 동의하는 부분일 것이다.

이런 전제를 놓고 현실의 Qrobo를 보자면 좋은 시도이긴 하나 첫 인상은 실망이다.

일단 시맨틱스가 지향하는 모토는 "사람의 손이 가지 않는 로봇이 만드는 검색엔진"이다.
그래서, 검색 창에 "사람의 손이 가지 않는 로봇이 만드는 검색엔진" 이라고 입력을 해 봤다.

사용자 삽입 이미지



기대감이 컸는지 실망감도 컸었다.
일단, 검색 속도는 둘째 치더라도 결과에 만족스럽지 못하였다.
단, 문서성향 분석은 그나마 위안은 된다.

최근의 검색의 추세는 비쥬얼과 시맨틱에는 의심의 여지가 없어 보이나
문서성향 분석은 이미 오래 전에 나왔던 것들이다.
내부적으로 어떻게 구현했는지 잘은 모르겠으나, 겉으로 보이는 모습은 클러스터링이다.
클러스터링과 무슨 차이가 있는지 내부가 궁금해질 뿐이다.

"Google"이라고 검색을 해봐도 별다른 반응을 주지 못할 뿐이다.
관련 키워드들로 정제되지 않은채 그대로 방치된 듯 전혀 키워드로서의 역할을 하지 못하고 있다.
사용자 삽입 이미지

여기에서 관련 키워드들이라고 제시해 놓은 것들 중에 과연 몇 개나 연관도가 높은지 전혀 모르겠다.
오히려 연관도를 잘 나타내고 있는 러시아의 "퀸투라" 엔진이 훨씬 나아 보인다.
이렇게 의외의 결과를 보여주는 것은 이젠 하나의 페이지조차 하나의 성격을 띄고 있지 않다는 것을 간과하지는 않았나 라는 생각이 물씬 풍긴다.

온톨로지를 사용한다는 것은 단어들간의 관계가 잘 정리가 되어야 한다.
이를 바탕으로 추론을 해야 하나 사람이 추론하는 거와는 정말  비교할 수 없는 결과를 낳고 만다.
또한, 온톨로지를 구축한다는 것은 아직은 Vertical한 성격을 지닐 수 밖에 없다.

아무리 기술이 뛰어나다고 해서 이러한 조건을 컴퓨터가 잘 정리할 수 있을까??
정말 사람이 손도 대지 않고 정리가 잘 될까??

아직은 정말 모체에서 갓 태어난 태아 수준이라고 밖에 말할 수 없다.
이러한 관점에서 보자면 시도를 떠나 아직은 실망스럽고 갓 태어난 내 새끼가 사람처럼 보이지 않듯
좀 더 많은 기술과 지식과 추론이 이루어져야 기는 수준이 될 거 같아 보인다.

그러나, 검색엔진...
영어로 그대로 옮기자면 Search Engine이다. 다른 표현으로는 Information Retrieval이다.
디렉토리 검색이든, 키워드 기반 검색이든 Information을 찾는 것이 아니라, data를 찾고 있다.
그 data에서 좀 더 나은 결과를 보여주기 위해 격렬한 전쟁을 벌이고 있으며 이런 전쟁에서 구글이 승자가 되었다.

앞으로는 Information을 찾아주는 시맨틱웹 검색을 취하는 자가 승자가 될 것이다.

나 또한 이런 시도에 대해서는 대만족이며, 나 또한 온톨로지와 검색엔진과의 결합을 고민하고 있으며
감성 또한 심어 보고자 노력하고 있는 중이다.

앞으로 시맨틱스의 도전과 과정을 지켜보고 싶다.



블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,