PStage MRC 7강 - Linking MRC and Retrieval

Introduction to Open-domain Question Answering (ODQA)

MRC는 지문이 주어진 상황에서 질의응답을 하는 과제이다. 이에 반해 ODQA는 비슷한 형태이지만, 지문 부분이 주어지는 것이 아니라 위키 혹은 웹 전체가 주어지게 되기 때문에 매우 많은 지문을 봐야하는 Large Scale 과제가 된다.

ODQA라는 문제는 꽤 예전부터 다루었던 문제이며, short answer with support의 형태를 목표로 했었다.

1) Question processing

질문으로부터 키워드를 선택하여 답변의 타입을 선택할 수 있도록 했다.

2) Passage Retrieval

기존 IR 방법을 활용하여 연관된 document를 뽑고, passage 단위로 자른 후 선별한다.

3) Answer processing

주어진 질문과 passage들 내에서 답을 선택하는 휴리스틱한 분류문제로 진행했다.

ODQA는 꽤 역사가 길며, 지금까지는 위와 같은 방식으로 진행되고 있었는데, 2011년 IBM Watson을 통해 발전하게 된다.

자세히 보기

PStage MRC 6강 - Scaling up with FAISS

저번 강의에서 임베딩을 통해 리트리벌을 진행하려고 할 때 질문과 지문 쪽 각각 인코더가 존재했다는 것을 배웠다. 질문은 그때그때 임베딩을 하며, 지문은 미리 임베딩을 해놓지만 새로운 것이 들어올 때 추가하여 적절한 임베딩을 반환하게 된다.

Nearest Neighbor Search에서는 Passage 개수가 늘어날 수록 Top-k 때 Dot product 연산이 부담스러워질 수 있는데, 이러한 과정에서 Similarity Search를 아는 것이 중요하다.

기본적으로 Nearest Neighbor Search보다, Inner product Search가 더 많이 사용되고 있다. Nearest Neighbor와 같은 L2 유클리디언 거리를 계산하는 것보다 Dot Product의 Maximum을 찾는 문제로 돌리는 것이 더 수월하기 때문이다. 가장 가까운 벡터를 찾겠다는 것은 Maximum Inner Product를 찾겠다는 것으로 이해하면 된다. 하지만 개념 정리나 상상을 할 때는 Nearest Neighbor Search를 떠올리는 것이 더 쉽긴 한다.

MIPS는 주어진 질문(query) 벡터 q에 대해 Passage 벡터 v들 중 가장 질문과 관련된 벡터를 찾는 문제이며, 관련성은 내적이 가장 큰 값으로 찾는다.

하지만 실제 검색해야할 데이터는 위키피디아에만 5백만개이며, 수십억, 수십조까지 커질 수 있기 때문에 사실상 모든 문서 임베딩을 Bruteforce로 찾는 것은 불가능하다.

1) Search Speed - 쿼리당 유사한 벡터 k개를 찾는 시간. 많은 벡터를 가지고 있을수록 당연히 시간이 오래걸린다.

Pruning 을 사용하면 속도 개선 가능

자세히 보기

PStage MRC 4-5강 - Passage Retrieval - Sparse Embedding, Dense Embedding

Introduction to Passage Retrieval

Passage Retrieval

Passage Retrieval은 질문에 맞는 문서를 찾는 것을 의미한다. 데이터베이스에 따라서 형태가 달라질 수는 있지만, 일반적으로 웹 상에 존재하는 모든 문서를 대상으로 한다. 예를들어 토트넘이라는 쿼리에 대해서 토트넘의 역사, 우승기록, 손흥민 등에 대한 문서를 가져오는 시스템을 의미한다.

Passage Retrieval with MRC

Passage Retrieval을 MRC와 연결지어 생각했을 때, Open-domain Question Answering이 가능해진다. Passage Retrieval과 MRC를 이어서 2-Stage로 만들어버리는 것을 의미하는데, 쿼리가 들어왔을 때 데이터베이스에서 적절한 문서를 가져온 후, MRC 모델을 통해 가져온 문서에서 답을 찾는 프로세스이다.

이 때 중요한 것은 정답이 있을 만한 문서를 적절하게 찾아서 가져오는 과정이며, Query와 Passage를 미리 임베딩한 뒤 유사도로 랭킹을 매겨놓고, 유사도가 가장 높은 Passage를 선택한다.

Passage Embedding and Sparse Embedding

Passage Embedding Space

Passage Embedding의 벡터 공간을 의미하며, 벡터화된 Passage를 이용하여 Passage 간 유사도도 계산할 수 있다.

Sparse Embedding

자세히 보기

PStage MRC 3강 - Generation-based MRC

Generation-based MRC

Generation-based MRC 문제 정의

Extraction-based mrc와 다르게 주어진 질문의 답이 지문 내에 존재하지 않을 수도 있기 때문에 기본적으로 답변을 ‘생성’하는 문제로 분류한다.

input은 Extraction-based mrc와 동일하지만, generation-based mrc에서는 fine-tuning 시 정답 text까지 생성하는 seq2seq 모델로 분류할 수 있다.

Generation-based MRC vs. Extraction-base MRC

  1. MRC 모델 구조
    • Seq-to-Seq PLM 구조 (Generation) vs. PLM + Classifier 구조 (Extraction)
  2. Loss 계산을 위한 답의 형태 / Prediction의 형태
    • Free-form text 형태 (Generation) vs. 지문 내 답의 위치 (Extraction)
    • Extraction-based MRC는 f1 계산을 위해 text로의 별도의 전환 과정이 필요하다.

Pre-processing

Tokenize

Extraction과 같이 토큰화를 진행한 뒤 input_ids(또는 input_token_ids)를 생성한다.

Generation 모델에서는 PAD 토큰은 사용되지만, CLS와 SEP 토큰의 경우 사용할 수는 있지만 보통 자연어를 이용한 텍스트 포맷으로 대신하는 경우가 많다. ex) CLS -> Question, SEP -> Context

자세히 보기

PStage MRC 2강 - Extraction-based MRC

Extraction-based MRC

Extraction-based MRC의 문제 정의

질문의 답변이 항상 주어진 지문 내에 span으로 존재한다고 가정한다.

평가방법은 크게 EM과 f1이 존재한다. f1은 조금 더 soft한 metric으로 보통 EM보다 점수가 높게 형성된다. EM score는 정답과 조금이라도 다르면 0점을 부여하고, F1은 정답과의 overlap 비율을 계산하여 부분점수를 부여한다.

모델의 input은 Context, Question 두 개의 벡터가 임베딩의 형태로 들어가게 되며 start index와 end index이 존재하는 벡터가 output이 된다.

Pre-processing

Tokenization

텍스트를 작은 단위(token)로 나누어야 한다.

띄어쓰기, 형태소, subword 등 여러 단위의 토큰 기준이 사용되는데, 최근엔 OOV(out of vocab) 문제를 해결해주고 정보학적 이점을 가진 BPE가 주로 사용되며, WordPiece Tokenizer 역시 BPE 방법론 중 하나이다.

input으로 들어갈 때 SEP 라는 special 토큰으로 context와 질문을 구분하게 된다.

자세히 보기

PStage MRC 1강 - MRC Intro

Introduction to MRC

Machine Reading Comprehension (기계독해)는 주어진 지문(Context)를 이해하고, 주어진 질의(Query/Question)의 답변을 추론하는 문제이다.

예를들어 서울특별시에 대한 지문에서 서울의 GDP는 세계 몇 위야? 라는 질문을 했을 때, 세계 4위 라는 답변을 하는 과제이다.

주로 질문(쿼리)가 들어오면 문서에서 답을 낼 수 있는 시스템(구글, 인공지능 스피커)에서 사용되며, 관련 문서를 찾고 -> 정답을 찾는 방식으로 구성된다.

MRC의 종류들은 아래와 같다.

1) Extractive Answer Datasets

질의에 대한 답이 항상 주어진 지문의 segment(or span)으로 존재하는 경우. 이런 방식을 채택하는 데이터셋으로는 SQuAD, KorQuAD, NewsQA 등이 있다.

2) Descriptive/Narrative Answer Datasets

답이 지문 내에 존재하지 않고, 질의를 보고 생성된 sentence(or free-form)의 형태. MS MARCO, Narrative QA 등의 데이터셋이 이러한 방식을 채택한다.

3) Multiple-choice Datasets

자세히 보기