(10강) QA with Phrase Retrieval

newbie·2021년 10월 29일
0

강의소개

10강에서는 phrase retrieval을 활용한 real-time oepn-domain question answering에 대해 배워보겠습니다. Phrase 단위로 retrieval한다는 것이 무엇인지 알아보고, phrase retrieval을 수행하는 방법에 대해 알아보겠습니다. 마지막으로, 기존 retrievar-reader 구조와 비교해 어떤 장점과 단점을 가지고 있는지 짚어볼 예정입니다.

Further Reading


Phrase Retrieval in Open-Domain Question Answering

Curruent Limitation of Retriever-Reader approach

  1. Error Propagation : 5-10개의 문서만 reader에 전달
  • 문제를 해결하기 위해 reader에 전달된 문서가 올바른 문서인지에 대한 보장이 없음
  • 즉, Retriever가 성능이 떨어지면 reader의 성능이 떨어지는 문제
  1. Query-dependent encoding : query에 따라 정답이 되는 answer span에 대한 encoding이 달라짐
  • 동일한 context라도 query에 따라 encoding을 다시 해줘야 하므로 상당히 비효율적인 인코딩 방식

Phrase Indexing

  • 앞서 설명한 문제점들을 보완하기 위해 제시된 방법 중 하나는 Phrase search(= document search)
  • 4,5,6강에서 다룬 것처럼, 사전에 문서에 대한 Dense 또는 sparse vector를 생성 하여 indexing
  • 인덱싱은 NNS나 MIPS(6강)을 활용
  • 문서에 존재하는 모든 phrase에 대해 mapping을 하여 key vector로 사용
  • query vector와 가장 가까운 key vector를 찾는 방식으로 문제를 치환 가능

Query-Agnostic Decomposition

  • 기존에는 a,d가 동일하더라도 q가 달라지면 전체를 F라는 function을 다시 계산해야 하지만, phrase indexing 시 H쪽의 encoding은 그대로 사용하고 질문이 들어올 때마다 G만 다시 계산해주면 되므로 연산을 줄일 수 있음.
  • 단 여기서, F가 G와 H로 나뉠 수 있어야 한다는 가정이 반드시 필수적
  • 여기서 F는 상당히 복잡한 함수로, G와 H는 F에 근접하게 수행할 수 있도록 만들어야 함.
  • 즉, key challange는 어떻게 각 Phrase는 G와 H에 모델링 하여 vector space 상에 잘 맵핑할 수 있는지이며, 하나의 solution은 Dense와 sparse 임베딩을 둘 다 사용하는 것

Dense-sparse Representation for Phrases

Dense vs Sparse vectors

  • Dense vectors : 통사적, 의미적 정보를 담는데 효과적
  • Sparse vectors : 어휘적 정보를 담는데 효과적

Phrase and Question Embedding

  • Phrase에 관한 embedding을 구할 시, Dense와 sparse를 둘 다 계산 후 합쳐서 하나의 vector로 고려하고 내적이나 NNS를 진행

Dense Representation

  • Dense vector를 만드는 방법
    • Pretrained LM(e.g BERT)를 이용
    • e.g.) Start vector와 end vector를 재사용하여 메모리 사용량을 줄임
  • Coherency vector
    • phrase가 한 단위의 문장 구성 요소에 해당하는지를 나타냄
    • 구를 형성하지 않는 phrase를 걸러내기 위해 사용
    • Start와 end vector를 이용하여 계산
  • Question embedding
    • Question을 임베딩할 때는 CLS 토큰(BERT)을 활용

Sparse Representation

  • Sparse vector를 만드는 방법
    • 문맥화된 임베딩(Contextualized embedding)을 활용하여 가장 관련성이 높은 n-gram으로 sparse vector 구성

Scalability Challenge

  • 단 이렇게 했을 때 가장 큰 문제는 다음과 같음
    • 위키피디아에는 60 bilion개의 phrases가 존재 =< Storage, indexing, search의 scalability가 고려되어야 함
      • storage : Pointer, filter, scalar quantization 활용(240T -> 1.4T storage)
      • Search : FAISS를 활용하여 Dense vector에 대해 search를 먼저 수행 후 sparse vector로 reranking

Experiment Results & Analysis

Experiment Results - SQuAD-open

  • DrQA(Retriever-reader)보다 3.6% 성능 상승 / 68배 빠른 inference speed

Limitation in Phrase Retrieval Approach

  • Large storage required : 2TB SSD for phrases
    • GPU는 필요 없지만, 어느 정도의 RAM과 저장 공간, 그리고 CPUs가 필수
  • 최신 Retriever-reader 대비 낮은 성능
    • Natural Questions(NQ)에서 낮은 성능
      => Decomposability gap이 하나의 원인!!

Decomposability gap

  • 기존) question, passage, answer가 모두 함께 encoding
  • phrase retrieval) question과 passage/answer이 각각 encoding -> question과 passage 사이 attention 정보 X
  • F에 대해 G,H를 approximate하지만, F 자체가 복잡한 NN이기에 정확히 나눠질 수 없으므로 이 차이가 발생.
profile
DL, NLP Engineer to be....

0개의 댓글