MRC(9) : ODQA

SeongGyun Hong·2024년 10월 8일

NaverBoostCamp

목록 보기
9/64

1. MRC와 ODQA의 차이

Open-domain Question Answering(ODQA)와 MRC는 질문에 대한 답 또는 Context가 주어지느냐 주어지지 않느냐에 큰 차이가 있다.
ODQA는 기본적으로 context가 따로 주어지지 않은 채 방대한 양의 정보들을 Web 등에서 Search하여 해당 정보를 기반으로 대답을 제공한다.

2. ODQA의 실현방안 : Retriever-Reader

  • Retriever는 데이터베이스에서 관련있는 문서를 검색(Search) 하여 Reader에 넘긴다.
    • 입력 : documents, query
    • 출력 : document

      TF-IDF, BM25와 같은 경우에는 별도의 학습이 없으나, Dense Embedding의 경우에는 학습이 가능하다.

  • Reader는 Retriever가 넘겨준 검색된 문서에서 질문에 해당하는 답을 찾아낸다.
    • 입력 : Documnets
    • 출력 : answer

      SQuAD와 같은 MRC 데이터셋으로 학습 하며 학습데이터 추가를 위하여 Distant supervision을 활용한다.


2.1 Distant supervision

Distant Supervison이란?
대규모 데이터셋에서 레이블을 자동으로 생성하는 방법을 의미한다. 일반적으로 사람이 모든 레이블 데이터를 라벨링하는 것은 비효율적이기에, 기존 레이블 된 데이터나 외부 지식을 기반으로 활용하여 자동으로 레이블을 생성하는 방식을 사용한다. 일종의 데이터 증강 !

  • 절차
  1. 데이터 수집 :
    위키피디아와 같은 대규모 코퍼스에서 관련 문서를 Retriever를 이용하여 검색한다.
  2. 데이터 필터링 :
    1) 너무 짧거나 긴 문서 제외
    2) Query에 대한 정확한 답변이 포함되지 않은 문서 제외(Exact-Match 되어야함)
  3. 관련성 평가 :
    남은 document 중에서 Query와 가장 관련성이 높은 문서를 증거로 선택한다.
  4. 레이블 생성 :
    선택된 문서에서 관계를 추출하고 레이블을 생성함.
    • 예를들어, 지식 그래프에서 "Albert Einstein"과 "Nobel Prize"가 "수상자"라는 관계에 있다고 가정하면, 위키피디아 문서에서 이 두 엔티티가 함께 언급된 문장들을 자동으로 수집하여 "수상자"관계로 레이블링 하고
      이렇게 생성된 레이블을 활용해 모델을 학습하면 대규모 레이블 데이터를 빠르게 확보할 수 있어서 모델 성능 개선에 도움이 된다.

3. 이슈와 최근 방법론

3.1 Passage에 대한 정의를 어떻게 할 것인가?

하나의 문서에 대하여 크게 Article에서 시작해 Paragraph로 쪼개고, 다시 이걸 Sentence로 쪼갤 수 있다.
위키피디아의 경우에는 Article에서 Sentence로 갈수록
5.08 > 29.5 > 75.9milion으로 증가한다.

3.2 Retriever에서 상위 몇개의 document를 넘길 것인가?

경우의 수에 따른 Top-K 설정 문제이다.
만약 앞서서 ArticlePassage 단위를 정했다면 ParagraphPassage 단위로 설정했을 때 보다 더 적게 k를 설정할 수 있을 것이고, SentencePassage단위로 설정한다면, kArticle의 경우보다는 많게 설정되어야 할 것이다.

다만, 무조건 적으로 많은 K가 좋은 것은 아니다. 일종의 Noise로 작용할 수 있기 떄문

3.3 Single / Multi passage training

  • Single Passage Training
    Top-K에서 설정한 K개의 Passage들에 대해서 Reader가 각각 확인하여 특정 answer span에 대한 예측 점수를 나타낸다. 그리고 이중에서 가장 높은 점수를 가진 answer span을 고르도록 하는 것이 Single-Passage Training...
    • 그러나 이러한 경우에 개별적으로 Passage들을 하나씩 들여다 보는 것이므로, Retrieved된 K개의 Passage 전체에 대해서 직접적인 비교를 한다고 볼 수는 없다.

      즉, 각각의 K개의 Passage에서 최상의 answer span 5개가 나오고, 그 5개 중에서 가장 높은 점수의 answer span이 다시 최종 답변으로 선정되는 형식이다.

      그래서 나온 것이 바로 Multi-Passage Trianing

  • Multi Passage Training
    Retrieved 된 Passages 전체를 하나의 Passage로 취급하고, Reader 모델이 그 안에서 answer span 하나를 찾도록 한다.
    • 그러나 위와 같이 진행할 경우에 취급하는 context 자체가 너무 길어지므로, GPU 메모리 할당 및 연산이 증가한다는 단점이 있다.

3.4 answer span 선정시 추가적 고려 : Retrieval Score

answer span을 최종적으로 선정할 때에
해당 점수만 고려하는 것이 아니라, Retriever 모델에서 추출된 Top-K 에해당하는 K개의 문서 각각의 Retrieval score를 Reader 모델에 전달해준다.

즉, Reader에 Retrieval score 정보를 넘겨줘서 판단에 도움을 주는 것.

profile
헤매는 만큼 자기 땅이다.

0개의 댓글