이번에 읽을 논문은 Knowledge Base에서만 사용되는 Question Decomposition이 아닌, RAG와 다양한 QA상황에서 범용적으로 사용가능한 Query Decomposition에 대한 연구를 알아보기 위해 해당 논문을 정리했다. 해당 논문은 2020년 EMNLP에 등재된 논문이다.
1. Motivation
Question Answering(QA) system은 "What profession do H. L. Mencken and Albert Camus have in common?"와 같이 복잡한 질문에 대해서 잘 대답하지 못한다. 하지만 오히려 간단한 질문인 "What profession does H. L. Mencken have?" 와 "Who was Albert Camus?"와 같이 간단한 질문에서는 답을 잘 한다. 따라서 해당 논문에서는 divide-and-conquer방식을 제시한다.
- Hard Question을 Decompose하여 여러개의 simple한 sub-question을 생성한다.
- Sub-question을 이용하여 QA system에 질문한다.
- 각각 답을 종합하여 최종적인 답을 도출한다.
그렇다면 기존 연구의 문제점은 무엇이었을까?
[Talmor and Berant., 2018]에서는 rule-based algorithm이다. 또한 정답을 바탕으로 학습을 해야하는 supervised decomposition이었다. 즉 labeling된 정답을 상정해놓는 지도학습이었기에 사람의 노력이 많이 들어가야했다.
DecompRC[Min et al., 2019b]에서는 질문을 supervised하게 분류를 진행하고, 품사 태깅에 기반하여 문장을 분류하였다. special case에 대해서는 일일히 테스트를 진행하였다.
이러한 연구들은 question에 포함되어있는 단어로만 Decomposition을 진행하였다. 하지만 실제로 질문을 나눌때는 복합적인 문맥의 인해를 바탕으로 추가적인 단어의 생성이 필요한 경우가 많다. 따라서 해당연구에서는 $fully\ unsupervised$ 방식의 모델을 제시한다.
해당 논문에서는 One-to-N Unsupervised Sequence transduction (ONUS)를 제시한다. 해당 모델은 hard question을 많은 simple question으로 분해해주는 역할을 수행한다.
- 자동으로 $pseudo-decomposition$을 생성한다. 이는 sub-question이 될 수 있는 후보들로, 병렬적으로 10M개 까지의 sub-question을 생성할 수 있다고 한다. 이러한 방법은 Machine Translation 방식과 유사하다.
- mined data와 함께 unsupervised seq-to-seq model을 학습시켜, pusedo-decomposition보다 더 좋은 Decomposition 결과를 낼 수 있도록 한다.
그림을 통해 자세히 설명하면, Question에 대해 Simple question인 $S$를 바탕으로 pseudo-decomposition인 $D$를 찾는다. 또한 후보들은 embedding 유사도를 판단하여 sub-question 후보의 순위를 추린다. 이후 Q와 D를 바탕으로 standard seq-to-seq learning 또는 unsupervised seq-to-seq learning을 진행한다.
해당 연구에서는 여러 문서에 대한 검색이 필요한 multi-hop QA dataset중 HotpotQA[Yang et al., 2018]을 활용하여 검증을 진행하였다.
첫번째로는 ONUS은 RoBERT base model인 [Liu et al., 2019][Min et al.,2019a] 보다 뛰어났고, 위에서 설명한 DecompRC[Min et al.,2019b] 보다도 뛰어났다. 또한 그당시 SoTA model에 해당하였던 SAE[Tu et al.,2020]와 HGN[Fang et al.,2019]와 비슷하였다. 하지만 해당 모델들은 유사한 문장들을 supervision하는 추가 과정이 필요하였다.
두번째로는 Multi-hop QA를 sub-question으로 나누어 Single-hop QA model을 사용하니 관련 문서를 훨씬 잘 찾았다.
세번째로 기존의 연구였던 IBM Watson[Ferrucci et al.,2010]와 DecompRC[Min et al., 2019b]의 연구에서 제시한 방식은 사전에 정의된 question type에 따라 각각 다른 방법을 사용하였는데, ONUS 모델은 HotpotQA에 제시된 4가지 타입의 질문에 대해서 모두 잘 나누어 주었다.
2.Method
query decomposition에 대해서 먼저 설명하기 이전에, single hop question과, multi-hop question부터 정의해야한다.
single-hop question은 한 문단 또는 하나의 chunk에서 정답이 찾아지는 질문이다. 이외의 질문을 모두 multi-hop question이라 정의한다.
Multi-hop QA model의 목적은 $\log p_M(a|c, q)$을 sub query로 바꾸어 $\log p_M(a|c,[s_1,a_1],\cdots ,[s_N,a_N])$을 최대로 하는 것이다. 이때 $a$는 정확한 정답이고, $c$는 retrieved document, $q$는 multi-hop question, $s$는 sub-question들이다.
supervised learning에서는 사람이 일일히 annotate한 $s$ sub-question이 있어야한다. 이러한 단점을 극복하기 위해 해당 논문에서는 unsupervised learning방식을 택한다. 그렇기에 다음과 같은 방식으로 학습하게 한다.
- unsupervised technique를 사용하기 위해 question$q$를 $s_1,\cdots ,s_N$으로 나눈다.
- single-hop QA를 사용하여 $s_1,\cdots ,s_N$에 대해 답인 $a_1,\cdots , s_N$을 구한다.
- $s_1,\cdots ,s_N$와 $a_1,\cdots , a_N$을 활용하여 최종답인 $a$를 도출한다.
2-1 Unsupervised Question Decomposition
unsupervised decomposition model을 학습시키기 위해, hard question corpus $Q$와, simple question corpus $S$가 필요하다. 따라서 supervised 된 $(q,d)$대신 pseudo-decomposition인 $(q,d')$을 만든뒤, 이를 이용하여 seq-to-seq model을 학습시킨다. 이때 말하는 $d, d'$은 $\{s_1;\cdots ;s_N\}$의 집합이다.
따라서 $s_k$의 수식적 목표는 다음과 같다.
$$argmax _{d'\subset S} \sum _{s_i \in d'} f(q,s_i) - \sum _{s_i,s_j \in d'} f(s_i,s_j)$$
첫번째 항의경우 sub-question이 기존 question인 $q$와 유사해야 하며, $s_i$와 $s_j$는 다양해야한다.
Decompose NLG model을 학습하는 경우는 두가지가 있는데,
첫번째로는 Seq-to-Seq model을 사용하는 경우가 있다. 이때 수식은 $\log p_{\theta} (d'|q)$이다.
두번째로 One-to-N Unsupervised Sequence transduction을 사용하는 경우 nosiy한 pair인 $(d'|q)$를 사용하는 것이 아닌, unsupervised Seq2Seq model을 사용하여 $q \rightarrow d$ mapping을 할 수 있도록 한다.
pseudo-decomposition sub question은 common crawl을 사용하여 10M정도의 sub-query를 생성하고, 생성되는 simple query는 2개로 고정한다.
또한 실제 적용하는 수식의 경우 다음과 같다.
$(s_1*,s_2*)= argmax_{s_1,s_2 \in S} [\hat{v}_q ^{\intercal} \hat{v}_{s1} + \hat{v}_q^\intercal \hat{v}_{s2}- \hat{v}_{s1}^{\intercal} \hat{v}_{s2}]$
그리고 TopK는 1000 $s$에 대해서 ranadom retrieval 한다.
sub-question들은 Coomon Crawl을 사용하여 검색된$s$이기에 $q$와 다른 entity를 포함할 수 있다. 따라서 hallucination을 방지하기위해 $q$와 비슷한 type의 entity로 바꾸어준다. 특히나 PseudoD와, Seq2Seq 모델의 경우 변형된 $s$를 직접사용하거나, 이를 바탕으로 학습시키기에, 매우 중요하다.
seq2seq 모델과, ONUS model의 pretraining단계에서는 question과, pseudo-decomposition $D$를 사용하여 pre-training을 진행한다.
반면 ONUS의 경우는 back translation방식을 이용하기에 위와같이 entity를 바꿔주는 대신 $\log p_\theta (d|d')$ $\log p_\theta (q|q')$을 maximize하기 위해 denoising한다. 이때 사용되는 noisy한 데이터인 $p'$ 또는 $d'$의 경우 d와 p을 random masking, dropping, 또는 무작위로 섞는 과정을 통해서 만든다. back translation 단계에서 $\log p_\theta (d|\hat q)$ $\log p_\theta (q|\hat d)$를 최대화 하는 방식으로 학습한다.
결과적으로는 3개의 모델을 사용하여 Decomposed 된 Question을 토출할 수 있다.
1) Pseudo-Decomposition을 이용한 sub-question 검색 방식
2) seq2seq을 사용하여 생성하는 방식
3) ONUS를 사용하여 생성하는 방식
2-2 Answering Sub-questions
sub-question에 답변하기 위해 기존 구현되어있는 QA model을 사용한다.
single-hop QA를 답변하는 model로는 $RoBERT_{LARGE}$를 사용한다. 각각의 sub-question에 대해서 모든 검색 문단들에 대해 질문에 해당하는 answer span을 가지고 오거나, 질문에 일치하는 답변이 없을 경우에는 "no answer"을 답하도록 한다.
마지막에 최종 paragraph을 반환하기 위해 $softmax$함수를 사용한다. 이때 no answer에 해당하는 chunk는 제외하고 $softmax$함수를 사용한다.
Traing을 할때에는 Single-hop Question들에 대해서만 학습을 진행하였으며, 반환할때에는 정답 span만을 가져오는 것이 아닌, 문장 전체를 반환하여 많은 정보량이 포함될 수 있도록 하였다.
2-3 Learning to Recompose
original question과, sub-question, sub-question에 대한 답변을 이용하여 final question을 도출한다.
3. Result
Query Decomposition방식은 다음과 같이 HotpotQA 데이터중 Original, Multi-doc, Out-Of-Domain 3가지 버전에 대해서 테스트를 진행하였다. multi-hop version의 경우 multi-hop에 더욱 최적화 되는 방식으로 data를 변형한 것이고, Out-Of-Domain방식의 경우 일반화에 보다 용이하기 위해 생성한 데이터로, 원본 단락을 제외함으로써, 일반적이 ㄴ상황에서 어떻게 대응하는지 성능을 평가한다.
1hop과 Baseline의 경우 본인들이 학습시킨 RoBERT model을 사용한 결과를 나타내고, Baseline의 경우는 일반적인 RoBERT model을 나타내며, 1hop의 경우 한가지 단락만을 사용하여 답변하는 경우를 나타낸다. 성능은 FastText를 이용하여 학습시킨 ONUS의 F1 score가 가장 높게 나왔다.
왼쪽의 결과는 Hotpot QA의 4가지 질문 type으로, Bridging은 연결 추론이 필요한 질문, Comparison은 비교가 필요한 질문, Intersection은 여러 상황에 공통된 요소를 찾는 것, Single hop은 1가지 정보만 필요한 정보를 의미하고, 모든 경우에 대해 정답률이 높아진 것을 확인할 수 있다.
오른쪽의 결과는 결과를 종합할때, Subquestion이 있는 경우와 Subquestion의 포함유무에 대한 결과를 나타낸다. Sub answer중에 답변이 random하거나, 답변이 없을 경우는 도움이 되지 않으며, Sentence로 답변을 제공하는 것이 Span으로 제공하는 것 보다 성능이 더 좋은 것을 알 수 있다. sub-question의 포함 유무는 크게 중요하지 않았다.
해당 결과는 얼마나 답변이 자연스럽고, 정보가 잘 포함되어있는가를 평가하는 지표이다. 전체적으로 DecompRC보다 높은 성능을 보이고 있음을 알 수 있다.
4. Example
결과를 확인하기 위해 예시 Decomposition에 대한 결과를 몇개 가지고 왔다.
생각보다 Sub-question의 quality가 낮다고 생각했다.
5. Opinion
Query Decomposition을 unsupervised 방식으로 제시했기에 의미있었던 연구라고 생각한다. 필자가 검증에 사용한 Hotpot QA 데이터셋의 경우 Query Decomposition에 적합하지 않다고 생각한다. 정보가 나뉘어져있는 것이 아닌 오히려 Multi-hop(추론)에 해당하는 질문이 많기 때문이다. 게다가 single QA model에서 RAG와 같이 Retrieve하는 방식으로 진행되는데, Hotpot QA의 경우 10개의 관련 paragraph밖에 없기에 query decomposition이 재대로 되지 않아도, 검색이 잘 될 것이기에 크게 의미가 없다고 생각한다. 이때문에 논문이 제시된 2020년에는 괜찮은 성능일지 모르지만, 현재 HotpotQA의 순위를 보면 30위 밖으로 밀려난 것을 확인할 수 있다.
하지만 Query Decomposition을 NLG model을 활용하여 해결하려고 했었던 처음으로 재대로된 연구라고 생각하기에 가치가 있을 것 같다는 생각이 들었다.