Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

1. boolean 검색

2.066 visualizaciones

Publicado el

Publicado en: Educación
  • Inicia sesión para ver los comentarios

1. boolean 검색

  1. 1. 최신 정보 검색론 1. Boolean 검색
  2. 2. 1.1 정보 검색의 예 • • • • • • 각 질의에 대응하여 텍스트를 순차 스캔 하는 것을 방 지하는 방법은 문헌을 미리 색인 (index)하는 것이다. Shakespeare 전집을 대상으로 Boolean 검색 모델의 기본을 살펴보자. Shakespeare 가 사용한 모든 단어 (Shakespeare 는 32,000 개의 서로 다른 단어를 사용했다.)에 대해 당 해 문헌이 각 단어를 포함하고 있는지 아닌지를 기록 한다고 해보자. 그 결과는 그림 1.1 과 같이 용어-문헌의 이진 발생 행 렬 (incidence matrix)로 표현된다. 용어 (term)는 색인의 단위로서(자세한 것은 2.2 절 에서 다룬다) 일반적으로 단어다. 당분간은 단어라고 생각해도 된다. 그렇지만 정보 검 색 문헌에서는 통상적으로 용어를 지칭한다. 왜냐하 면 ‘1-9" 또는 “Hong Kong“ 처럼 일부는 단어로 간 주하지 않기 때문이다.
  3. 3. 1.1 정보 검색의 예 • 이제 행렬의 가로 또는 세로 중 어느 것을 보느냐에 따 라. 각 용어의 벡터 값(용어가 출현한 문헌들을 나타 냄)을 확인하고 내 또는 문헌의 벡터 값(문헌에 출현 한 용어들을 나타냄)을 알 수 있다
  4. 4. • 질의 식 ’‘Brutus AND Caesar AND NOT Calpurnia" 에 답하기 위해 Brutus, Caesar, Calpurnia 의 벡터 값을 계산하고 마지막 용어의 보수 값을 얻은 다음 AND 비트연산을 수행한다. • 그래서 이 질의에 대한 답은 “'Antony and Cleopatra" 와 ‘Hamlet’ 이 된다(그림1.2).
  5. 5. 1.1 정보검색 문제의 예 • • • • • • • • Boolean 검색 모델(boolean retrieval model)은 용 어들을 Boolean 논리식 형태로 모든 질의를 작성할 수 있는 정보 검색 모델로서, 질의식을 구성하는 용어 들은 AND, OR, NOT 연산자로 결합된다. 이 모델은 모든 문헌을 단순한 단어의 집합으로 간주 한다 좀 더 현실적인 시나리오를 생각해보자. 여기서 몇 가 지 전문 용어와 표기도 함께 소개한다. 문헌 수 N=100 만 건이 있다고 가정하자. 여기서 문 헌(document) 은 어떤 단위가 되었든지 간에 하나의 검색 시스템을 구축하기로 결정한 기반 단위를 의미 한다. 문헌은 개인 메모 또는 한 책의 장일 수도 있다(자세 한 사항은 2.1 .2절에서 다룬다. ). 검색 대상이 되는 문헌의 집단을 (문헌) 컬렉션 (collection) 이라 하며,말뭉치 (corpus: 텍스트의 본 문)라고도 한다. 각 문헌은 약 1,000 단어(책의 2-3 쪽 분량) 길이라 고 가정하자. 공백 문자와 구두점을 포함하여 단어당 평균 6 바이트 라고 가정하면/ 문헌 컬렉션은 약 6 GB 분량이 된다.
  6. 6. 1.1 정보검색 문제의 예 • • • • • • • • • 이들 문헌에서 용어 수 M= 약 500,000 개 정도이다. 우리가 선택한 수치는 특별할 것이 없으며 데이터 양 으로는 차이가 있을 수 있다. 그렇지만, 다루어야 할 문제가 어떤 것인지를 시사해 준다. 5.1 절에서 이러한 데이터 규모에 대해 그 가정 을 다루고 모델링한다. 우리의 목적은 단순 검색 (ad hoc retrieval) 작업을 다루는 시스템을 개발하는 것이다. 이것은 가장 전형적인 정보 검색 작업이다. 여기서/ 시스템의 목적은 임의의 사용자가 던진 질의 를 한 번에 하나씩 시스템에 전달하여 사용자의 정보 요구에 적합한 문헌을 컬렉션에서 찾아 제공하는 것 이다. 정보 요구(information need) 는 사용자가 더 알아 보고자 하는 주제이며, 질의와는 다르다. 질의 (query) 는 사용자의 정보 요구를 컴퓨터에 전달 하기 위해 사용자가 표현하는 것이다. 어떤 문헌이 사용자의 개인적인 정보요구와 관련하여 가치 있는 정보를 수록하고 있다고 사용자가 판단한 다면 그 문헌은 적합(relevant) 문헌이다.
  7. 7. • • • • • • 앞에서 설명한 예제는 정보 요구가 특정 단어들로 정 의되었다는 점에서 다소 작위적이다 반면. 사용자는 “파이프 누수” 주제에 관심이 있을 때. 그 단어들을 정확하게 표현하든지 아니면 “파이프 파 열” 등 다른 단어로 그 개념을 표현하든지 상관없이 적합문헌을 찾고 싶어 한다. 정보검색 시스템의 유효성 (effectiveness)을 평가하 는데 있어서(예: 검색 결과의 품질) 사용자는 어떤 질 의에 대해 시스템이 반환한 결과에 대한 다음의 두 가 지 핵심적인 통계량을 알고 싶어 한다 정확률(Precision): 반환된 결과 중 정보 요구에 적합 한 비율은 얼마인가? 재현율(Recall) : 컬렉션에 포함된 적합 문헌 중 시스 템에 의해 반환된 적합 문헌이 차지하는 비율은 얼마 인가 정획률과 재현율을 포함한 적합성과 평가척도에 대한 자세한 논의는 8 장에서 다룬다.
  8. 8. • • • • • • • • 단순한 방법으로 용어-문헌 행렬을 민들 수는 없다. 왜냐하면, 500 K x 1M 행렬은 오백억 개의 0 과 1 을 항으로 갖기 때문에 컴퓨터 메모리에 적재하기 어 렵다. 그러나 이 행렬은 극단적으로 희소하기 때문에, 0 이 아닌 값을 갖는 항은 얼마 되지 않는다는 점에 주목해 야 한다 즉 각 문헌은 1,000 개의 단어로 구성되고/ 그 행렬 은 많아야 10 억 개의 1 을 가지므로 99.8% 의 항들 은 0 을 갖는다. 따라서 1 을 갖는 향들만을 기록하는 것이 훨씬 더 좋 다. 이 방법이 바로 역색인 (inverted index) 이며 정보 검색에서 첫 번째 주요 개념의 핵심을 이룬다. 색인은 항상 용어로부터 용어들이 출현한 문헌의 특 정 부분으로 사상되므로 “역(inverted)" 이라는 말을 붙일 필요는 없다 그럼에도 역색인 혹은 역파일 (inverted file)은 정보 검색 분야에서는 표준용어가 되었다
  9. 9. • • • • 역색인의 기본원리는 그림 1.3 에서 보는 바와 같다. 용어 사전 (dictionary)을 어휘집 (vocabulary) 또는 어휘 사전(lexicon) 이라고도 하는데 이 책에서 는 자료구조를 말할 때는 사전이라 하고,용어 집합에 대해서는 어휘집이라 한다. 다음으로,각 용어에 대해서 어떤 문헌에 그 용어가 출 현하는지를 기록하는 목록을 작성한다. 이 목록의 각 행을 통상 포스팅 (posting) 이라 하는 데 그 항에는 어떤 문헌에서 출현하는 용어를 기록한 다.(그 문서 내의 위치도 기록한다.)
  10. 10. 1.1 정보 검색의 예 • • • 그렇게 되면 그 목록을 포스팅 목록(postings list) (또는 역목록)"이라 하고/ 모든 포스팅 목록들을 일컬 어 포스팅 (posting) 이라 한다. 그림 1.3 에 있는 사전은 알파뱃 순으로 정렬되었고, 각 포스팅 목록은 문헌 식별변호로 정렬 이것이 왜 필요한 것인가에 대해서는 아래의 1.3 절에 서 살펴보고, 나중에는 이 방법의 대안에 대해서도 살 펴볼 것이다(7. 1.5 절).되어 있다.
  11. 11. 1.2 역색인 구축의 첫 단계 • • • • • 검색할 때 색인의 효과를 높이려면 미리 색인을 구축 해두어야 한다. 그 주요 과정은 다음과 같다. 처리 과정의 초기 단계/ 즉 1~3 단계는 2.2 절에서 살 펴볼 것이다. 그때까지는 토큰(token)과 정규화 토큰(normalized token)을 단어와 거의 유사한 것으로 간주한다. 여기서는 첫 세 단계를 이미 수행했다고 가정하고/ 정 렬-기반 색인 (sort-based indexing)으로 기본적인 역색인 구축내용을 살펴본다.
  12. 12. 1.2 역색인 구축의 첫 단계 • • • 어떤 문헌 컬렉션 내에서, 각 문헌은 문헌식 별자(do cID) 라는 고유한 연속번호를 갖는다고 전제한다. 색인 구축과정에서 새로운 문헌이 들어오면 각각에 그냥 연속적인 정수를 할당할 수 있다. 색인의 입력값은 각 문헌의 정규화 토큰 목록이며 그 림 1 .4처럼 용어-문헌 식별자 쌍으로 구성된 목록으 로 간주할 수 있다.
  13. 13. 1.2 역색인 구축의 첫 단계 • • 색인 결과를 저장하기 위해서 사전과 포스팅 목록을 위한 저장 공간이 필요하다. 포스팅 목록이 더 커서, 사전은 일반적으로 메모리 에 있는데 비해 포스팅 목록들은 디스크에 저장된다.
  14. 14. 1.3 Boolean 질의 처리 • 역색인과 기본 불리언 검색 모델을 이용해서 질의를 어떻게 처리할까? 다음과 같이 단순 결합 질의 (simple conjllnctive qllery) 처리를 생각해보라. • 그림 1.3 에서 일부 보았던 역색인에 대해 다음을 수 행한다. 1. 사전에서 Brutus 의 위치를 확인한다. 2. Brutus 와 관련된 포스팅을 검색한다. 3. 사전에서 Calpurnia 의 위치를 확인한다. 4. Calpurnia 와 관련된 포스팅을 검색한다. 5 그림 1 .5에서 보았던 것처럼 두 포스팅 목록의 교 집합을 구한다. • • • • •
  15. 15. 1.3 Boolean 질의 처리 • • • • 교집합(intersection) 연산은 매우 중요하다. 왜냐하면, 두 용어를 모두 포함하는 문헌들을 빨리 찾 을 수 있도록 하기 위해서다. 포스팅 목록으로부터 교집합 연산을 효과적으로 수행 해야 하기 때문이다 병합 알고리즘을 이용하여 포스팅 목록의 교집합을 구하는 단순하고도 효과적인 방법이 있다(그림 1.6)
  16. 16. 1.3 Boolean 질의 처리 • 디음과 같이 좀더 복잡한 질의를 처리하기 위해 교집 합연산을 확장할 수 있다. • 질의 최적화(query optimization) 란 시스템이 수행 해야 할 총 작업량을 최소화시킬 목적으로 질의에 대 한 응답을 조직하는 방법을 선택하는 과정이다. 불리언 질의에 대한 최적화의 주요 내용은 포스팅 목 록에 접근하는 순서를 결정하는 것이다. 질의 처리를 위한 최적의 순서는 무엇일까? 다음과 같 이 f 개의 용어들을 AND 조합한 질의를 생각해보자. • • • • • t 개의 용어에 대해 포스팅을 찾은 다음 AND 연산을 수행해야 한다. 가장 일반적인 방법은 문헌 빈도가 낮은 용어부터 처 리하는 것이다. 만일 제일 작은 두 포스팅 목록에 대해 교집합 연산부 터 수행하면 모든 중간 결과는 제일 작은 포스팅 목록 보다 결코 크지 않을 것이므로 총 작업량을 최소화시 킬 수 있다.
  17. 17. 1.3 Boolean 질의 처리 • 따라서 그림 1.3 의 포스팅 목록에 대해 위의 질의는 다음과 같이 실행한다. • 이것이 사전에 용어의 출현 빈도를 기록하는 첫 번째 이유이다. 이처럼 어떤 포스팅 목록에 접근하기 이전에 메모리 에 있는 데이터를 근거로 연산순서를 결정할 수 있다. 이제 다음과 같이 더 일반적인 질의를 최적화시키는 방법에 대해 생각해 보자. • • • • • • 이전과 마찬가지로, 모든 용어의 출현 빈도를 얻으면 그 논리합 용어의 출현 빈도를 합하면 각 OR 항의 크 기를 예측할 수 있다. 그런 다음 논리합으로 묶인 각 용어의 크기가 낮은 순 서부터 질의를 처리한다. 임의의 Boolean. 질의에 대해서 복잡한 질의식의 경 우, 중간 단계의 질의식에 대한 답들을 평가하여 임시 로 저장해야 한다. 그러나 많은 경우, 질의는 순전히 논리곱으로 구성된 다
  18. 18. 1.3 Boolean 질의 처리 • • • • 왜냐하면, 질의 언어의 속성 때문이거나 아니면 단순 히 사용자들이 표현하는 질의의 가장 일반적인 유형 이기 때문이다. 이런 경우에는 병합포스팅 목록을 두 개의 입력과 하 나의 출력이 있는 기능으로보는것보다는각각검색된 포스팅목록과 현재 메모리에 있는 중간 결과를 교집 합 연산시키는 것이 훨씬 효율적이다. 여기서 중간 결과는 가장 적은 출현 빈도를 보이는 포 스팅 목록을 로딩하여 초기화한다. 이 알고리즘은 그림 1. 7과 같다.
  19. 19. 1.3 Boolean 질의 처리 • • • • • 교집합 연산은 따라서 비대칭이다. 왜냐하면, 중간결 과는 메모리에 있지만 교집합될 용어의 포스팅 목록 은 디스크에 있기 때문이다. 또 중간 결과는 항상 적어도 다른 목록만큼 짧아지며, 많은 경우 매우 짧아진다. 포스팅 교집합은 그림 1.6 과 같은 알고리즘으로 문제 없이 처리되지만, 목록 길이 간의 차이가 매우 클 때는 다른 대안을 생각할 수 있다. 중간 결과 목록에서 불필요한 항목을 수정하거나 표 시하여 교집합을 계산할 수 있다. 또는, 중간 결과 목록의 포스팅 목록이 길면 이진 검색 을 수행할 수도 있다. 또 다른 방법은 긴 포스팅 목록 을 해시 테이블로 저장함으로써 중간결과에 포함되어 있는지를 확인하는 시간은 선형이나 로그시간이 아니 라 상수시간으로 계산할 수 있다.
  20. 20. 1.4 확장 Boolean 모델과 순위 검색 • • • • • • Boolean 검색 모델은 벡터 공간모형 (6.3 절)과 같은 순위 검색 모형 (ranked retrieval model)과 비교된 다. 순위 검색 모형에서 사용자는 대부분 자연어 질의 (free text query), 즉 질의를 표현하려면 연산자와 같은 정교한 언어를 사용하지 않고 자연어 문장처럼 단어를 나열하는 편이 더 효과적인 방법이며, 시스템 도 질의에 가장 적합한 순으로 문헌을 정렬하는 편이 더 효과적일 것이다. 수십 년 동안 이러한 장점을 갖는 순위 검색 모형에 관 한 학술적인 연구기- 있었음에도 대부분의 검색 시스 템은 Boolean 검색 모델을 사용해왔다. 근 30 년 동안 대형 정보 제공;7;1들도 검색 시스템의 선택 사양으로만 제공해 오긴 했지만 그렇다고 해서 현재 사용되는 Boolean 연산지들(AND, OR, NOT) 만을 제공하는 것은 아니다. 단순 Boole때 질의에서는 검색 결과가 정렬되지 않아 서 시용자들이 원히는 정보를 이용하기에는 너무 제 한적이다. 그리고 이들시스템은 근접 연산자와 같은 추가적인 연산자를 제공하는 확장 Boolean 검색 모델을 구현 하였다.
  21. 21. 1.4 확장 Boolean 모델과 순위 검색 • • • 근접 연산자(proximity operator) 는 질의 에 있는 두 용어가 한 문헌에서 서로 가까이 출현하는 조건을 지 정하는 데 사용된다. 여기서 말하는 근접은 단어 사이 의 거리일 수도 있고 문장이나 문단과 같은 구조적인 단위로 제한승}는 것을 의미하기도 한다. 웹 검색에서는 긴 질의나 근접 연산지를 사용하는 것 이 일반적이지 않다는 것을 알아야 한다. 질의 길이는 평균 10 단어 내외다. 웹 검색의 일반적 인 형태와는 달리, 여기서는 단어 사이의 공백은 OR 을 의미하고, &는 AND이며 , Is, /p, /k 는 문장/ 문 단 혹은 k 개 단어 내에서 어울려야 됨을 의미한다. 또 한/큰따옴표(“")는 구절 검색(phrase search)(연속적 인 단어)을 의미한다(2 .4절 참조).
  22. 22. 1.4 확장 Boolean 모델과 순위 검색 • • 많은 사용샤 특히 전문가들은 Boolean 질의 모델을 더 선호한다. Boolean 질의는 정확하다. 하나의 문헌은 특정 질의에 일치하거나 그렇지 않다. 사용자는 무엇이 검색될지를 더욱더 잘 통제할 수 있 고 투명하게 확인할 수 있도록 제안한다.

×