인공지능 논문정리/NLP 논문

[논문 요약] Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks

jimmy_AI 2022. 7. 16. 17:11
반응형

NLP RAG Paper Review

이번 글에서는 Open Domain Question Answering(ODQA) 분야에 Generative Reader

도입하여 성능 향상의 큰 획을 그은 RAG 논문에 대한 요약을 진행해보도록 하겠습니다.

 

논문의 제목은

"Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"이며,

NeurIPS 2020에 등재된 paper입니다.

 

 

실험 배경

Extractive Reader vs Generative Reader

이전까지의 Retrieval-Reader 기반 ODQA 프레임워크에서 Reader의 구조로는

문단 내에서 답변의 시작과 끝 위치를 맞추는 Extractive Reader 구조를 택해왔었습니다.

 

여기서는 T5, BART 등의 고성능 generative 언어 모델 구조에 기반하여,

이러한 언어 모델에 Retriever를 장착하여 질문과 관련 문단이 주어졌을 때,

답변 문장을 직접 생성하는 Generative Reader 구조를 시도하여 보았습니다.

 

실험 의의

Retriever 부분은 non-parametric 구조로 pre-train된 Reader 부분은 유사하게 두면서

Retriever를 변경하여 여러 종류의 task와 domain에 유연하게 적용이 가능합니다.

 

실제로 이 논문에서는 ODQA뿐 아니라 Question Generation 및 Fact Verification task에서도

외부 지식을 활용하는 Retriever 기반 언어 모델 구조 프레임워크의 장점을 입증하였습니다.

 

또한, answer span이 문단 내에 그대로 존재하지 않는 종류의 QA task에서도

확장 적용이 가능하다는 장점이 있습니다.

 

 

RAG 프레임워크 특징

프레임워크 요약

논문의 Figure 1 : RAG의 전반적인 프레임워크 요약

총 3가지 종류의 task에 대하여 해당하는 query text가 입력되면 인코딩 결과를

DPR 프레임워크로 구성된 Retriever에서 관련 top-k 문단들을 먼저 찾아냅니다.

 

이후 찾아낸 top-k 문단과 질문 정보를 활용하여 언어 모델 Generator(BART 구조)에서 

해당하는 답변 문장을 생성해내는 것이 RAG 프레임워크의 구성입니다.

 

RAG-Sequence vs RAG-Token

해당 논문에서는 두 가지 버전의 RAG 모델을 소개하고 있습니다.

 

참고로, 수식에서 x는 질문, y는 답변, z는 문단을 의미하는 notation입니다.

먼저, RAG-Sequence 방식의 경우에는 각 문단의 조건부 Sequence 전체 토큰 생성 확률 x

해당 문단이 Retrieval되었을 확률 값을 모든 top-k 문단에 대하여 모두 더하여

해당 Sequence의 최종 생성 확률을 모델링하였습니다.

(쉽게 설명하면, 전체 Sequence 입장에서 후보 Seuqence 들의 각 문단별 조건부 생성 확률을

모두 구하여 문단별 가중합을 구하는 방식입니다.)

 

이러한 방식은 디코딩 단계에서 단일 beam search로 문장을 생성하는 것이 어렵기때문에

각 top-k 문단 z에 대하여 beam search로 구한 hypothesis에 대하여 marginal하게

확률을 더하여 디코딩을 진행하며, 길이가 길어질 경우에 경우의 수가 굉장히 많아질 수 있어

해당 문단 대상 디코딩 시에 등장하지 않았던 답변 토큰에 대한 확률을 0으로 가정하는

Fast Decoding 방식을 도입했었습니다.

 

반면에, RAG-Token 방식의 경우에는 전체 토큰 대신 각 토큰별 문단 탐색 확률 x

해당 문단 조건부 토큰 생성 확률로 모델링을 진행하였습니다.

 

이러한 경우는 각 토큰에 대한 확률을 따로 구하기 용이하여 일반적인 beam search

방법을 디코딩 단계에서 적용할 수 있습니다.

 

참고로, target sequence length = 1인 경우에는 두 방식이 동일하게 되며,

loss 함수로는 각 토큰 log likelihood에 음수를 취한 값들의 합을 사용하였습니다.

 

적용한 Task의 종류

일반적인 ODQA task의 벤치마크 데이터셋인 NaturalQuestions(NQ), TriviaQA(TQA) 및

WebQuestions(WQ)에 대하여 실험을 진행했었으며,

 

Generative Reader의 특징을 활용하여 문단 내의 답변이 주어지는 것이 아니라

"What is the weather in Volcano, CA?"와 같이 유연하게 답변을 해야하는 종류의

Abstractive Question Answering task에 대해서도 실험을 했었습니다.

(해당 task에서 대표적인 MSMARCO 데이터셋을 활용했었습니다.)

 

또한, QA task 이외에도 좀 더 일반적인 언어 모델 특징 성능을 측정하기 위하여

"월드컵"라는 정답을 추출하기 위한 질문과 같이 해당 entity로 대답되기 위한

질문을 유연하게 생성해야하는 Jeopardy Question Generation task에 대해서도

SearchQA 데이터셋을 통한 실험을 진행했었습니다.

 

그리고 마지막으로 "버락 오바마는 하와이에서 태어났었다."와 같은 문장에 대한

supports/refutes/not enough info 여부를 판단하는 Fact Verification task에 대해서도

FEVER 데이터셋을 통한 실험을 했었습니다.

 

반응형

 

결과 분석

논문의 Table 1, 2 : RAG의 각종 Task 성능 측정 결과 요약

Table 1(위 그림의 왼쪽 표)에 따르면 일반적인 ODQA task에서도

대부분의 데이터셋에 대해서 SOTA를 달성하였으며,

이는 ODQA에서 Generative Reader 방식의 효과를 증명한 예시가 되었습니다.

 

Table 2(위 그림의 오른쪽 표)에서는 일반적인 BART 대비 Retriever를 장착한 RAG에서

각종 task의 성능 향상이 이루어진 점을 보여주고 있었습니다.

 

RAG-Token, RAG-Sequence 방식의 우열은 task 종류마다 달랐으며,

FEVER task에서는 문장의 길이가 1~3 토큰으로 매우 짧고, 첫 토큰에서

분류 결과가 갈리는 특징으로 두 모델링 방법 간의 유의미한 비교를 진행하지 않았습니다.

 

논문의 Table 3 : BART, RAG의 생성 문장 예시(?는 부적절, *는 일부 적절)

 

위의 Table 3에서는 일반 BART 및 RAG에서 생성되었던 문장의 예시를 보여주고 있으며,

BART에서 부적절했거나 일부만 적절하게 생성된 문장에 대하여 

RAG에서 어느 정도 교정이 진행된 사례를 볼 수 있었습니다.

 

논문의 Table 4, 5 : Human evaluation 결과 및 distinct tri-gram의 비율

Jeopardy Question Generation task에서 Human evaluation이 진행된 결과

및 생성 token의 다양성 모두 일반 BART보다 향상되었음을 의미하였습니다.

 

논문의 Table 6 : Retriever 부분의 Ablation Study 결과

DPR 대신 BM25 방식의 Retriever를 사용한 경우 및 DPR을 training 시 freeze한 경우에

대한 Ablation Study 결과, FEVER에서만 BM25가 조금 더 효과적이었고,

나머지 task에 대해서는 DPR을 fine-tune해서 사용한 결과가 우세하였음을 의미했었습니다.

(RAG에서 Retriever 모델의 중요성을 보여줄 수 있는 사례로 생각됩니다.)