28 장한솔1.png Hansol Jang 2022.06.27

[ACL 2022] 자연어 이해를 위한 검색 기반 지식 확장 방법

올해로 60주년을 맞이한 자연어처리 학회 ACL(Annual Meeting of the Association for Computational Linguistics)은 자연어처리를 주제로 한 국제 학회 중 최고로 손꼽히고 있습니다. 이번 블로그에서는 지난 2022년 5월에 열린 ACL 2022에서 소개된 내용인 ‘knowledge nlp 튜토리얼을 기반으로 자연어처리의 지식 정보를 결합한 언어 모델’ 연구의 동향을 살펴보고자 합니다.

일반적으로 언어모델은 기본적인 코퍼스들을 사용하여 학습합니다. 하지만, 특정 단어와 단어 사이의 관계와 일반적인 상식과 같은 ‘지식' 정보들이 언어모델에 녹여진다면 어떨까요? 이런 궁금증을 바탕으로 한 많은 연구 중 검색을 기반으로 한 연구들을 모아보았습니다.

이번 블로그에서는 벡터 검색과 관련된 연구인 REALM, DPR부터 RETRO와 WebGPT 그리고 올해 공개된 REINA, KFormer까지 총 여섯 가지의 연구 내용을 소개합니다.

 

REALM: Retrieval-Augmented Language Model Pre-Training

REALM 연구는 외부 정보를 언어모델에 결합하기 위해 해당 언어모델을 학습하는 과정에 지식 검색기(a knowledge retriever)를 도입했습니다. 기존 연구와는 다르게 지식 검색기를 비지도 학습 방식으로 훈련시켰습니다.

Figure 1. REALM 모델 훈련에 대한 전체 구조도. Retrieved document를 언어모델 학습과 결합하여 Retriever와 Encoder를 동시에 학습합니다.


언어모델을 훈련할 때 지식 정보를 포함하기 위해 관련 정보를 찾아 입력값 뒤에 붙여 새로운 입력값을 구성하였습니다. 이 과정에서 관련 정보를 찾는 모델(Neural Knowledge Retriever)과 언어모델(Knowledge-Augmented Encoder)을 그림1과 같은 구조로 결합하여 동시에 학습시켰습니다. 언어모델의 훈련에 검색 모델을 포함하였다는 점에서 검색 모델 학습이 비지도 학습으로 훈련될 수 있었습니다.

REALM은 공개 당시 업계에서 가장 높은 성능을 보여주었던 모델입니다. 이전에 공개된 오픈 도메인 질의응답 모델인 ORQA에 비해 약 5.9%~7.1% 높은 차이의 성능을 보여주었으며, 당시 공개된 모델 중 가장 큰 언어 모델이었던 T5(11b) 모델과도 5.9%의 성능 격차를 내면서 주목받았습니다.

 

Dense Passage Retrieval for Open-Domain Question Answering

DPR 연구는 현재까지도 벡터 검색 연구에 많이 언급되고 있습니다. 본 연구는 질문이 주어질 때 가장 연관성이 높은 문단과 정답을 찾는 과제를 해결하기 위해 두 개의 인코더 모델을 사용하였으며 배치(Batch) 내의 데이터를 효율적으로 활용하는 방식을 도입했습니다.

질의응답 과제에서는 처음으로 두 개의 인코더를 활용한 바 있으며, 이때의 인코더는 자연어처리에서 잘 알려진 트랜스포머 기반의 인코더 모델 ‘버트(BERT)’로 초기화하여 학습하였습니다. 각 인코더는 질문과 문단을 맡아 학습하였으며 추론 시에는 관련성이 높은 문단을 찾을 수 있도록 하였습니다.

또, 이 연구의 중요한 특징은 제시한 DPR(Dense Passage Retrieval) 모델을 훈련시키기 위해서 In-batch negatives를 사용하는 것입니다. 아래의 수식 1을 로스 항으로 사용하고, 같은 배치 안에 있는 모든 문단들을 이용하여 데이터로 주어진 문장과 가장 관련성이 높은 문단이 더 유사한 벡터를 가지도록 학습했습니다. 같은 배치 내에서 해당 질문에 대한 정답을 찾을 수 있는 문단과, 정답은 없지만 관련성이 높은 문단(hard negative passage), 다른 질문들에 대한 문단을 모두 훈련에 활용하여 더 효율적으로 두 개의 인코더를 학습하는 방식입니다.

 

Equation 1. i번째 질문에 대해서 positive passage와 n개의 negative passage와의 유사도를 이용한 negative log likelihood loss 항


이 연구는 당시 Open domain Question Answering에서 가장 높은 성능을 기록했으며, 기존 엘라스틱 서치를 뛰어넘는 딥러닝 검색 성능을 보여주었다는 점에서 의의가 있습니다.

 

Improving Language Models by Retrieving from Trillions of Tokens

본 연구는 파라미터를 증가시켜 만든 거대 언어모델(Large Language Models)에서 아이디어를 얻어 시작되었습니다. 이 연구에서는 파라미터를 늘리는 대신 수조 개의 단어를 포함한 데이터를 학습에 이용하는 RETRO(Retrieval Enhanced TRansfOrmers) 모델을 만들었습니다.

앞서 소개해 드린 REALM과 유사하게 RETRO 모델 또한 입력값에 관련 지식정보를 추가하는 아이디어를 사용하지만 보다 긴 텍스트(document chunks)를 다룹니다. 다만, 앞의 두 모델이 인코더 기반이었던 것과는 다르게 RETRO 모델은 인코더-디코더 기반의 모델(auto-regressive language models)을 사용합니다.

 

Figure 2. (왼쪽) RETRO 아키텍쳐. (오른쪽) 교차 어텐션의 구조


그림 2에서 볼 수 있듯이, RETRO 모델에서는 셀프 어텐션(ATTN)과 피드 포워드 네트워크(FFW) 사이에 교차어텐션(CCA, Chunked cross-attention) 구조가 추가되어있습니다. 이 교차 어텐션은 해당 구조를 통해서 지식 정보를 추가하는 역할을 합니다. 관련성이 높은 데이터들은 이미 학습된 언어모델을 거쳐 벡터화되고, 문서 단위의 입력값이 순차적으로 벡터화된 정보와 결합됩니다.

이 모델은 관련성이 있는 데이터를 모델로 찾아와 학습에 사용하기 때문에 학습에 사용하는 데이터를 끊임없이 받을 수 있다는 장점을 가지고 있습니다. 이러한 점에서 본 연구는 같은 파라미터라도 데이터 활용 방식에 따라 동일한 트랜스포머 모델 대비 성능이 크게 향상될 수 있다는 것을 보여주었습니다.

 

WebGPT: Browser-assisted question-answering with human feedback

WebGPT 연구는 사람이 인터넷에서 궁금한 내용을 찾을 때, 웹 브라우저에 질문을 검색하고 관련 페이지에 접속해 스크롤을 움직이며 정보를 찾는 것에서 힌트를 얻어 GPT-3를 파인튜닝 한 연구입니다.

이 연구에서는 검색을 이용하여 찾은 내용으로부터 “검색: ... ”, “페이지에서 찾기: ... ”, “인용: ... ” 과 같이 특정 내용에 대한 설명을 추가하여 모델의 입력값을 생성하도록 합니다. 사람이 만든 정답을 가지고 지도학습을 수행하기도 하고(behavior cloning), 몇 가지의 정답을 생성한 후에 강화학습에서의 보상을 적용하여(rejection sampling) 학습을 진행하기도 했습니다.

앞서 소개한 RETRO 모델은 자체 데이터베이스에서 정보를 찾지만, WebGPT는 정보 조달을 위해 마이크로소프트의 검색 엔진 Bing에서 검색합니다. 이렇게 검색해서 문서를 가져올 경우 대부분의 문서가 최신 문서라는 점, 기존 검색 모델의 역할을 웹 브라우저에 맡기고 정답을 잘 찾는 것에만 집중할 수 있다는 점에서 의미 있는 연구입니다.

 

Training Data is More Valuable than You Think: A Simple and Effective Method by Retrieving from Training Data

본 연구는 거대 모델을 튜닝하는 방법의 하나인 프롬프트 러닝에서 아이디어를 얻어 진행되었습니다. 프롬프트 러닝은 추론 과정에서 풀고자 하는 문제에 대한 데이터를 앞에 넣어주는 방식입니다. 본 연구에서는 연구 중 지도학습에서 관련한 데이터를 더 넣어주는 방법을 고안하고 이를 열 한 가지 데이터로 실험했습니다.

연구를 통해 훈련 데이터에서 비슷한 데이터를 찾아 모델에 같이 입력해 성능을 높일 수 있다는 사실을 보여주었으며, 이때 사용한 방법을 REINA(REtrieving from the traINing datA)라는 이름으로 소개했습니다.

 

Figure 3. REINA 방법으로 훈련 데이터 인덱싱 구조


 

Figure 4. REINA에 의해 입력값이 변경된 것을 보여주는 도식도


그림 3에서 보여주는 것처럼 요약 문제의 경우 REINA 방법은 비슷한 문서의 요약문을 추출할 수 있도록 훈련 데이터를 재구성합니다. 이렇게 비슷한 문서에 대한 요약문들을 그림 4와 같이 모델 훈련 과정에서 인코더의 입력값으로 함께 넣어주는 방식입니다.

NLU (Natural-language understanding)와 NLG (Natural language generation) 중 보통 한 종류의 문제에 집중하는 다른 연구들과는 다르게 REINA는 두 종류의 문제에 대해서 모두 높은 성능을 냈으며, XSum, Big- Patent, CommonsenseQA 등 세 데이터에 대해서는 최고 수준의 성능을 기록하였습니다. 요약 문제에 대해서는 BART 모델과 비교했는데, REINA 방법을 사용했을 때 BART-base가 BART-large와 대등한 수준의 성능을 보여주었습니다.

이 연구를 통해 훈련 데이터에서 비슷한 데이터를 같이 입력해주는 것만으로도 모델 추론 단계에서 필요한 정보를 더 넣어주는 효과를 낼 수 있다는 것을 여러 데이터로 확인할 수 있었습니다.

 

Kformer: Knowledge Injection in Transformer Feed-Forward Layers

마지막을 소개할 내용은 지식 정보를 피드 포워드 레이어 단에서 주입하도록 하는 모델인 Kformer를 통해 사전 학습이 완료된 언어 모델에 특정 분야의 전문적인 지식 정보를 보다 효과적으로 결합하는 방식을 소개한 연구로 가장 최근에 공개되었습니다.

현재까지 공개된 트랜스포머 인코더 기반의 언어 모델들은 일반적인 언어를 이해하도록 만들어졌기 때문에 특정 분야의 전문적인 지식이 포함되지 않았습니다. 따라서 언어 모델에 지식 정보를 추가로 넣어주고자 하는 경우, 대부분의 기존 연구들은 입력값에 지식 정보를 붙여서 넣어주거나 모델의 어텐션 구조에서 정보를 넣어주고자 했습니다.

Figure 5. Feed-Forward Network 단을 통해 지식 정보를 결합하는 모델인 Kformer 구조도


본 연구는 기존 연구들과는 다르게 어텐션 구조가 아닌 피드 포워드 네트워크가 기록한다는 연구를 바탕으로 그림 5와 같이 피드 포워드 구조에 지식 정보를 주입하도록 모델 구조를 변경하여 Kformer를 만들었습니다. 이를 통해 Kformer를 사용하였을 때, 상식추론 문제를 다루는 SocialIQA 데이터세트와 의학 질의응답 데이터인 MedQA-USMLE에서 더 나은 성능을 내는 것을 확인하였습니다.

이 연구에서 제시하는 Kformer는 이미 사전 학습된 다양한 언어모델에 적용해서 점수를 낼 수 있고, 때마다 필요한 전문적인 지식 정보를 주입할 수 있다는 것이 장점입니다.

 

지금까지 언어 모델에 검색을 도입해 외부적인 지식을 주입하고자 한 연구들을 살펴보았습니다. 연구 과정에서 검색 모델이 전체 모델 안에 포함되기도 하고, 입력하는 데이터 자체를 확장하거나 검색된 정보를 추가하는 과정에서 모델의 구조가 더 효과적으로 변경되기도 했습니다. 비록 검색이 딥러닝에 포함되어 엔드 투 엔드로 작동한 것은 채 몇 년이 되지 않았지만, 검색과 딥러닝, 이 둘의 결합을 통해서 과제를 더 효과적으로 수행하는 방식에 대한 연구는 빠르게 진행되고 있습니다. 앞으로도 둘의 상호작용으로 보다 다양한 과제에서 시너지가 발휘되기를 기대합니다.

참고
Guu, Kelvin, et al. "Realm: Retrieval-augmented language model pre-training." arXiv preprint arXiv:2002.08909 (2020).

Lee, Kenton, Ming-Wei Chang, and Kristina Toutanova. "Latent retrieval for weakly supervised open domain question answering." arXiv preprint arXiv:1906.00300 (2019).

Karpukhin, Vladimir, et al. "Dense passage retrieval for open-domain question answering." arXiv preprint arXiv:2004.04906 (2020).

Borgeaud, Sebastian, et al. "Improving language models by retrieving from trillions of tokens." arXiv preprint arXiv:2112.04426 (2021).

Nakano, Reiichiro, et al. "WebGPT: Browser-assisted question-answering with human feedback." arXiv preprint arXiv:2112.09332 (2021).

Wang, Shuohang, et al. "Training data is more valuable than you think: A simple and effective method by retrieving from training data." arXiv preprint arXiv:2203.08773 (2022).

Yao, Yunzhi, et al. "Kformer: Knowledge Injection in Transformer Feed-Forward Layers." arXiv preprint arXiv:2201.05742 (2022).

Dai, Damai, et al. "Knowledge neurons in pretrained transformers." arXiv preprint arXiv:2104.08696 (2021).