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. TF (Term Frequency) : 하나의 문서 안에서의 Term의 출현 횟수
2. CF (Collection Frequency) : 하나의 콜렉션 안에서의 Term의 총 출현 횟수
3. DF (Document Frequency) : 하나의 콜렉션 안에서 Term이 출현한 문서의 개수
4. IDF (Inverse Document Frequency) : DF의 역수
5. TF * IDF : TF가 크고, DF가 작을수록 가중치는 커진다,
                  이것은 전체 문서에서 공통적으로 등장하는 단어들은 걸러지게 된다.
                 특정 문서에서 어떤 단어의 중요도를 평가하기 위해 사용되는 통계적인 수치.

예) 만약, 100개의 단어로 이루어진 어떤 문서에 단어 search가 3번 등장한다면,
     단어 search의 TF는 0.03 (= 3 / 100)이고,
     또한, 전체 10,000,000개의 문서 중에서 단어 search가 들어 있는 문서들의 숫자가 1,000개라면,
     DF는 0.0001 (= 1,000/10,000,000)이며 최종 TF*IDF 가중치는 300 ( = 0.03 * 1/0.0001)이 된다.

     이러한 것이 가장 기본적인 것이며, DF에 로그를 취하는 방법도 있으며, 여러가지 방법이 있을 것이다.
     만약 자연로그를 취한다면 IDF는 9.21 ( log(10,000,000/1,000))가 되고,
     TF*IDF 가중치는 0.27 (= 0.03 * 9.21)이 된다.

블로그 이미지

쩐의시대

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

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

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

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

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


블로그 이미지

쩐의시대

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

,

검색 대상이 되는 데이터들의 증가 속도는 그야 말로 기하급수적으로 늘어나고 있는 추세이며
데이터의 수는 감히 상상조차 하기 힘든 수치이다.

이에 사용자들의 눈높이는 날이 갈수록 높아지고 있으며
검색엔진은 이 눈높이를 맞춰 나가기가 벅찰 정도가 되어 있다.

그 중 하나인 검색 결과 속도 측면에서만 본다면 수백억건에서 사용자가 원하는 정보를
어떻게 빨리 보여줄 수 있을까??
과연 하드웨어가 뒷받침해 줄 수 있을까??

이런 고민들로 인해 압축 기법도 검색엔진에 도입이 되었고
압축 효율도 좋으면서 decoding도 빠른 압축 기법을 선호하게 된다.

속도랑 압축이 무슨 관계일까?

압축하지 않는 데이터를 disk에 그대로 저장을 한다면
disk i/o에서의 엄청난 bottle neck이 발생할 것이다. 물론 대용량일 경우에 한해서이다.
이 disk i/o를 최소화하여 bottle neck의 요소를 제거하자는 의도에서 압축 기법이 등장하게 된다.

검색엔진에서 사용할 만한 압축 기법을 정리해 보았다.

- byte-aligned compression
- variable byte code compression
- gamma code compression
- word-aligned compression
  * simple-9
  * relative-10
  * carryover-12
    * slide

블로그 이미지

쩐의시대

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

,