ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Coursera] Text Retrieval and Search Engines (MODULE 2)
    개인 프로젝트 A 2024. 7. 20. 09:26

    1. 개요

    질의응답 모델을 배포하기 위해서 가장 먼저 해야 하는 일은 검색 모델(Retrieval Model)을 구축하는 것이다. 검색 모델을 구축하는 데 사용할 수 있는 다양한 알고리즘이 있는데, 어떤 알고리즘이 내 과제에 가장 적합한지 잘 모르겠다는 느낌이 들었다. 따라서 코세라 강의를 통해 부족한 지식을 보충하고자 한다. University of Illinois에서 Chengxiang Zhai 교수님께서 강의하시는 수업이 있길래 해당 과목을 수강했다. 다행히 코세라에서는 제공하는 1주일 무료 서비스를 통해 공짜로 강의를 듣고 수료증도 발급할 수 있게 되었다.

     

    2. MODULE 2

    바로 강의 내용으로 들어가겠다. MODULE 1은 앞으로 어떻게 학습해야 하는지 알려주는 부분이라 따로 기록할 만한 부분은 없었다. MODULE 2에서는 6개의 동영상 (Natural Language Content Analysis, Text Access, Text Retrieval Problem, Overview of Text Retrieval Methods, Vector Space Model - Basic Idea, Vector Space Retrieval Model - Simplest Instantiation) 강의를 제공한다. 

     

    2) Text Access

    Text Retrieval에는 주로 두 가지 큰 과제가 있다. 하나는 Push이고 다른 하나는 Pull이다. Push는 정보를 사용자에게 밀치는 것이다. 추천 시스템이 Push 모드에 해당한다. Pull은 사용자가 정보를 당겨오는 것이다. 검색 엔진이 Pull 모드에 해당한다. Pull 모드에는 두 가지 종류가 있다. 하나는 Querying이고 다른 하나는 Browsing이다. Querying이 우리가 흔히 아는 방법으로, 검색 엔진에 키워드를 입력하고 원하는 정보를 찾는 방법이다. Browsing은 정확한 핵심 키워드를 알지 못할 때, 문서 구조를 따라가며 관련된 정보를 탐색하는 방법이다. 내가 중점적으로 배우고자 하는 것은 Querying이라고 할 수 있다.

     

    3) Text Retrieval Problem

    Text Retrieval은 Database Retrieval과 다음과 같은 방면에서 구별된다. Database Retrieval 같은 경우 정형화된 데이터를 구조화된 쿼리를 통해 정확히 일치하는 레코드를 추출한다. 반면에 Text Retrieval은 비정형화된 데이터를 모호한 쿼리로 관련된 문서를 추출한다. 정확히 일치하는 문서란 없기 때문에 Text Retrieval에는 경험에 기반한 평가가 적용될 수밖에 없다.

     

    Text Retrieval에서 사용되는 주요 용어로는 Vocabulary $V$, Query $q$, Document $d$, Collection $C$가 있다. 우리의 목표는 쿼리($q$)가 들어왔을 때 관련성이 높은 문서의 집합($C$)을 반환하는 것이다. 이를 위해서는 두 가지 방법을 고려해 볼 수 있다. 첫 번째는 각 문서와 쿼리가 관련되어 있는지 아닌지를 반환하는 방법인 Document Selection이고 다른 방법은 각 문서의 관련 등수를 반환하는 Document Ranking이다. Document Selection의 경우 "어떤 문서가 관련된 문서인지"를 학습하기가 어렵다는 단점이 있다. 기준을 높게 두면 문서가 반환되지 않을 것이고 기준을 낮게 두면 관련성이 없는 문서도 반환된다. 따라서 일반적으로 Document Ranking 방법을 사용하게 된다.

     

    4) Overview of Text Retrieval Methods

    네 가지 방법이 Text Retrieval을 위해 사용된다. (1) Similarity-based models (2) Probablistic models (3) Probablistic Inference models (4) Axiomatic models. 흥미롭게도 적절히 사용된다면 각 방법이 비슷한 성능을 보인다고 한다. 우리는 먼저 유사도 기반 모델에 대해 배울 것이다. 관련 최신 방법론으로는 [1] Pivoted Length Normalization [2] BM25 [3] Query Likelihood [4] PL2가 있다. 성능은 비슷하지만, 일반적으로 BM25가 가장 많이 쓰인다. 나 또한 해당 방법을 사용하는 것을 우선으로 두고 있다. 마지막으로 "Bag of Words", "TF-IDF"에 대해 짧게 소개하는데 내가 이에 대해 이전에 정리해놓은 글을 던져 놓는다(https://koppie.tistory.com/5).

     

    5) Vector Space Model

    벡터 공간 모델의 개념은 다음과 같다. 문서를 벡터 공간에 매핑한다. 쿼리를 벡터 공간에 매핑한다. 문서 벡터와 쿼리 벡터의 유사도를 계산하여 높은 유사도를 가진 문서를 반환한다. 이를 위해서는 "어떻게 매핑할 것인가"와 "어떻게 유사도를 계산할 것인가"를 결정해야 한다.

     

    6) Vector Space Retrieval Model - Simplest Instantiation

    가장 쉬운 방법은 다음과 같다. Bag of Words를 활용해 문서와 쿼리를 벡터 공간에 매핑한다. Dot Product를 사용해 유사도를 계산한다. 예를 들어, 쿼리 "post traumatic stress disorder"가 있고 문서 1: "post traumatic stress disorder is a serious problem."과 문서 2: "where is the post office nearby?"가 있다고 하자. 쿼리의 벡터를 [1, 1, 1, 1]이라고 표현한다면 문서 1의 벡터는 [1, 1, 1, 1]이 되며 문서 2의 벡터는 [1, 0, 0, 0]이 된다. 따라서 쿼리와 문서 1의 유사도는 4, 쿼리와 문서 2의 유사도는 1이 된다. 그러나 이 방법은 가장 단순한 경우를 가정한 것이기 때문에 많은 문제점을 갖게 된다. 당장에 보이는 문제점은 단어의 등장 빈도를 고려하지 않았다는 점이다. 어떻게 개선된 모델을 만들 수 있을지 모듈 3에서 알아보자.

     

     

    댓글

Designed by Tistory.