ABOUT ME

Today
Yesterday
Total
  • MRC 강의
    NAVER AI TECH 2023. 6. 7. 06:03

    MRC 평가방법

    대표적인 MRC 평가방법으로 Exact Match (EM), F1 Score, ROUGE-L, BLEU가 있다. ROUGE와 BLEU에 대해 잘 정리해놓은 글이 있어서 가져왔다.

     

    ROUGE

     

    예시를 통한 ROUGE 성능 지표의 이해 - Programador | Huffon Blog

    본 글은 Northeastern University의 강의 자료 What is ROUGE and how it works for evaluation of summarization tasks?를 번역한 글입니다. 원문으로 읽고자 하시는 분들은 링크를 참조해주세요.

    huffon.github.io

     

    BLEU

     

    14-03 BLEU Score(Bilingual Evaluation Understudy Score)

    앞서 언어 모델(Language Model)의 성능 측정을 위한 평가 방법으로 펄플렉서티(perplexity, PPL)를 소개한 바 있습니다. 기계 번역기에도 PPL을 평가에 사…

    wikidocs.net

     

    Extraction Based MRC

    학습

    1. Tokenization (주로 Byte Pair Encoding 사용)

    2. [CLS] 질문 문장 [SEP] 탐색 문장 [SEP]

    3. Attention Mask: max-length에 맞춰 0으로 padding

    4. Token Type IDs: 질문 문장에 0, 탐색 문장에 1 부여

    5. negative log likelihood 사용

    6. start position, end position 탐색

    7. F1 사용하여 학습

     

    추론

    1. score가 가장 높은 top N개의 start/end position 각각 탐색

    2. 불가능한 start/end 조합 제거

    3. 가능한 조합들을 score의 합이 큰 순서대로 정렬

    4. score가 가장 큰 조합을 최종 예측으로 선정

    5. Top-k가 필요한 경우 차례대로 내보내기

     

    Generation-based MRC

    1. 대표 모델: BART

    - Bidirectional Encoder --> Autoregressive Decoder

    2. 대표 서칭: Beam Search

    - vs Greedy Search, Exhaustive Search

     

    Sparse Embedding

    1. Bag-of-Words

    - unigram, bigram, ..., n-gram

    2. TF-IDF

    단어의 등장빈도인 TF와 단어가 제공하는 정보의 양인 IDF를 곱한 값을 이용하여 문서의 중요도 평가.

    3. BM25

    문서의 길이가 긴 경우 큰 가중치를, 문서의 길이가 긴 경우 작은 가중치를 부여한 후 문서의 중요도 평가.

     

    Sparse Embedding은 term overlap을 정확하게 잡아낸다는 장점이 있지만 의미가 비슷하지만 다른 단어(car - vehicle)을 잡아내지 못한다는 단점이 있다. 따라서 Dense Embedding의 개념이 등장한다.

     

    Dense Embedding

    Dense Embedding은 다음과 같은 장점을 지닌다. 첫째, 의미가 비슷한 다른 단어를 잡아내거나 맥락을 파악하는 데 뛰어나다. 둘째, 차원이 비교적 작아 활용할 수 있는 알고리즘의 개수가 많고 추가적인 학습도 가능하다.

     

    Dense Embedding은 다음과 같은 방식으로 문서 탐색에 활용된다.

    1. query를 위한 encoder와 passage를 위한 encoder를 훈련시킨다.

    2. query 벡터와 passage 벡터의 유사도가 높은 top-k의 문서를 탐색한다.

     

    Dense Embedding의 학습은 다음과 같이 이루어진다.

    1. query와 정답 passage, 오답 passages의 [CLS] 토큰의 임베딩 벡터의 내적값을 구한다.

    - 오답 passages를 까다롭게 고르면 모델 성능이 좋아질 수 있다.

    2. query와 정답 passage의 내적값은 높고 query와 오답 passages의 내적값은 낮도록 학습한다. 

    - negative log likelihood loss를 활용한다.

     

    Dense Encoding의 성능을 높이기 위해 다음과 같은 방법을 고려해 볼 수 있다.

    1. 학습 방법을 개선한다. (ex. Dense Passage Retrieval)

    2. 인코더 모델을 개선한다. (ex. BERT보다 정확한 PLM 사용)

    한편, Sparse Embedding과 Dense Embedding을 같이 사용하는 방법도 고려해볼 수 있다.

     

    FAISS

    MIPS(Maximum Inner Product Search)는 브루트포스 방식을 사용하여 탐색해야 하는 문서의 양이 방대할 경우 탐색하는 데 너무 오랜 시간이 소요될 수 있다. 따라서 일부 정확도를 희생하여 메모리 사용량 및 연산량을 줄여 효율성을 높일 필요가 있다.

    1. 메모리

    - SQ(Scalar Quantization): 벡터를 압축하여 하나의 벡터가 적은 용량을 차지하도록 한다. 일부 정보가 손실될 수 있다.

    2. 연산량

    - Pruning(Clustering & Inverted File): 같은 군집에 속한 벡터만 탐색에 활용한다.

     

    FAISS는 SQ와 Pruning을 모두 도와주는 라이브러리이다. Train Index & Add Index를 진행한 후 해당 Index를 활용하여 탐색을 진행한다. SQ보다 성능이 좋은 PQ라는 압축기법도 활용해볼 수 있다.

     

    Linking MRC and Retrieval

    ODQA(Open Domain Question Answering)을 해결하기 위해 Retriever와 Reader를 사용하게 된다.

    A. Retriever는 위에서 배웠던 Sparse Embedding 혹은 Dense Embedding을 활용한다.

    B. Reader는 MRC 데이터셋으로 학습한다.

     

    성능을 올리기 위해서는 다음과 같은 방법을 고려해볼 수 있다.

    1. Distant Supervision
    - 데이터 증강 기법이다. query-answer 쌍만 있는 데이터셋에 대하여 answer가 들어 있는 passage를 탐색한 후 query와 연관성이 가장 높은 passage를 supporting evidence로 활용한다.

    2. Granularities

    - passage의 기본 단위로 article, paragraph, setence, phrase 등 다양한 단위를 고려해볼 수 있다.

    3. Multi-Passage Training

    - top-k의 모든 passage를 합쳐서 정답을 탐색한다. 메모리 할당량 및 연산량이 늘어날 수 있다.

    4. Leveraging Retrieval Score

    - retrieval score를 passage와 함께 reader에 넘겨서 활용할 수 있다.

     

     

     

     

     

    'NAVER AI TECH' 카테고리의 다른 글

    BERT  (0) 2023.06.29
    Attention Is All You Need(2)  (0) 2023.06.09
    NextRise 2023, Seoul 회고록  (0) 2023.06.04
    CleanLab  (0) 2023.06.04
    Recent Work in Data-Centric NLP  (0) 2023.05.31

    댓글

Designed by Tistory.