[논문리뷰]Retrieve-Rewrite-Answer: A KG-to-Text Enhanced LLMs Framework for Knowledge Graph Question Answering
카테고리: NR
Wu, Y., Hu, N., Bi, S., Qi, G., Ren, J., Xie, A., & Song, W. (2023, September 20). Retrieve-Rewrite-Answer: A KG-to-Text enhanced LLMS framework for knowledge Graph question answering. arXiv.org. https://arxiv.org/abs/2309.11206
Problem Statment
1. LLM은 여전히 long-tail knowledge등의 모든 지식을 저장하는 것이 불가능하다.
LLM은 여전히 long-tail knowledge등의 모든 지식을 저장하는 것이 불가능하기 때문에 specialized knowledge를 다루는 Knowledge-Intensive Task에서 낮은 성능을 보인다. 이는 Hallucination과 Factual Inaccuracy로 이어진다.
2. 많은 양의 자원을 요구함.
LLM을 지속적으로 pre-training하는 연구들은 방대한 양의 corpora를 학습한다. 하지만, 이는 매우 많은 양의 text data, 컴퓨팅 자원, 학습 시간을 요구한다는 단점이 있다.
3. 프롬프트 엔지니어링은 지식 표현의 중요성을 간과한다.
- 일부 LLM 연구들은 지식을 보다 직접적인 방식으로 풍부하게 하기 위해, 질문과 관련된 사실적 정보를 질문 앞에 추가하여 지식이 보강된 프롬프트를 구성한다. 예를 들어 프롬프트 엔지니어링이 이에 해당한다. 이는 성능측면에서 성공적이고 cost-effective하다. 하지만, 이 방식은 지식의 표현(knowledge representation)의 중요성을 간과한다. (e.g., 단순 정보 추가로 인한 맥락과 관계성 부족, 효율적 활용의 한계)
Related Work
1. KG-Augmented LLM for KGQA
- 사전에 정의된 템플릿을 통해 Triple과 Question의 textual representation을 knowledge-augmented prompt로 변환한다. 이렇게 변환된 프롬프트를 QA를 위한 LLM에 입력시켜 정답을 생성한다.
- 이 논문은 이러한 지식 표현 형식이 KGQA(Knowledge Graph Question Answering) 작업에서 LLM의 성능에 미치는 영향을 고려하지 않았다고 지적하고 있다. 즉, 지식을 어떤 형식으로 표현하여 LLM에 제공하느냐에 따라 성능이 달라질 수 있는데, 이전 연구들은 이 점을 충분히 고려하지 않았다는 것이다.
2. KG-to-Text
- GNN 기반 접근법
- GNN기반의 접근법은 subgraph의 구조적 정보를 효율적으로 인코딩할 수 있다. 이를 위해 더 복잡한 인코더를 설계하는 방향으로 연구가 진행중이다. 하지만, GNN은 locality정보만을 처리할 수 있고, 그래프의 global한 정보를 추출하지는 못한다.
- 이를 해결하고자 Transformer기반의 아키텍쳐를 사용하여 인코더를 설계하는 연구들이 진행중이다.
- PLMs 기반 접근법
- KG-to-Text를 end-to-end generation task로 모델링한다. 이 연구들은 모델 아키텍처를 수정하고 구조적 정보를 추출하는 능력을 향상시키기 위한 pre-training tasks을 도입하는 것을 포함한다.
Method
0. Preliminary
모델 설명에 앞서 Knowledge를 표현하는 두 가지 형식에 대해 알아야 한다. KG에 존재하는 Knowledge를 트리플의 형식이 직관적으로 보이게 표현한 것이 바로 ‘Triple-form Text’이다. 반면, 문맥적으로 일반적인 텍스트 형태로 지식을 표현한 것을 ‘Free-form Text’라 한다.
- Triple-form Text
- Ex) (Korea, capital, Seoul), (China, capital, Beijing)
- Ex) (Leonardo Da Vinch, painted, Monarisa)
- Free-form Text
- Ex) Korea’s capital is Seoul, China’s capital is Beijing
- Ex) Leonardo Da Vinch painted Monarisa
다음으로 알아야 할 개념은, Retrive-then-Answer(RA)와 Retrieve-Rewrite-Answer(RRA)이다. 선행 연구들은 보통 RA방식을 채택하며, 본 논문에서 제안한 방식이 RRA이다. RA와 RRA의 가장 큰 차이는 Rewrite 모듈이다. Retrieve-than-Answer은 입력으로 들어온 질문을 KG에 검색해서 트리플 형식인 Triple-form Text형식으로 반환받는다. 이를 바로 zero-short으로 QA 모델에 입력해 정답을 추론한다. 반면, Retrieve-Rewrite-Answer은 트리플 형식의 자연어 표현을 Free-form Text형식으로 변환한 후 모델에 입력시킨다.
1. Model Architecture
1) Retrieval: Subgraph Retrieval
Retrieve-Rewrite-Answer은 이름에서와 같이 1) Retrieve 모듈, 2) Rewrite 모듈, 3) Answer 모듈 이 세 개의 모듈로 구성되어있다. 먼저 Retrieve Module은 말 그대로 입력으로 들어온 question에 대해서 유용한 정보를 찾기위해 KG에서 검색을 하는 과정이다. Retrieval은 Hop prediction, Relation path prediction, Triple sampling의 세 과정을 포함한다. 이를 통해 유용한 reasoning path를 찾아내게 된다.
Hop Prediction
Hop prediction은 질문에 필요한 relation path의 길이를 예측하는 과정이다. 다음은 hop prediction을 하는 과정을 수식으로 나타낸 것이다.
- 식(1) \(q_v = \text{PLM}(q)\): 질문 \(q\)를 벡터 표현 \(q_v\)로 인코딩한다.
- 식(2) \(D'_h = [d'_{h1}, d'_{h2}, \ldots, d'_{hH}] = \text{Linear}(q_v)\): 질문 벡터 \(q_v\)를 선형 분류 계층을 통해 각 홉 수에 대한 확률 분포 \(D'_h\)를 계산한다.
- 식(3) \(d'_{hc} = P(h_c \vert q_v), \quad c = 1, 2, \ldots, H\): 각 홉 수 \(h_c\)에 대한 확률 \(d'_{hc}\)를 계산한다.
- 식(4) \(h = \arg\max_{h_c} d'_{hc}, \quad c = 1, 2, \ldots, H\): 가장 높은 확률을 가진 홉 수 \(h\)를 선택한다.
- 식(5) \(D_h = [d_{h1}, d_{h2}, \ldots, d_{hH}]\): 정답 홉 수에 대한 원핫 벡터 \(D_h\)를 생성한다.
- 식(6) \(d_{hc} = \begin{cases} 1, & h_c = h_{\text{gold}} \\ 0, & h_c \neq h_{\text{gold}} \end{cases}\): \(h_{\text{gold}}\)가 정답 홉 수일 때, 해당 홉 수에 대한 확률을 1로 설정하고, 나머지는 0으로 설정한다.
- 식(7) \(L_{CE} = -D_h \log D'_h = - \sum_{c=1}^{H} d_{hc} \log d'_{hc}\): Cross Entropy 손실 함수 \(L_{CE}\)를 계산한다.
정리하자면, Retrieval의 가장 첫번째 단계인 hop prediction은 주어진 질문에 대해 몇 개의 홉(Multi level)이 필요한지를 예측하기 위한 과정이다. 이 과정은 질문을 벡터로 인코딩하고, 이를 통해 각 홉 수에 대한 확률 분포를 계산한 후, 가장 높은 확률을 가진 홉 수를 선택한다. 이를 통해 모델은 복잡한 다중 홉 질문에 대해 적절한 관계 경로를 예측할 수 있다.
Relation Path Prediction
Relation Path Prediction은 예측된 hop수에 따라 각 단계별 relation을 순차적으로 예측하고, 최종적으로 reasoning path에 대한 relation path를 구하는 과정이다. 이 과정은 전반적으로 hop prediction하고 유사하다.
- 식(1) \(q_v = \text{PLM}(q)\): 질문 \(q\)를 벡터 표현 \(q_v\)로 인코딩한다.
- 식(2) \(D'_{r,1} = [d'_{r1}, d'_{r2}, \ldots, d'_{rR}] = \text{Linear}(q_v)\): 질문 벡터 \(q_v\)를 선형 분류 계층을 통해 첫 번째 홉의 relation의 확률 분포 \(D'_{r,1}\)를 계산한다.
- 식(3) \(d'_{rc} = P(r_c \vert q_v), \quad c = 1, 2, \ldots, R\): 각 relation \(r_c\)에 대한 확률 \(d'_{rc}\)를 계산한다.
- 식(4) \(p_{t-1,i} = r_{i,1} \vert r_{i,2} \vert \ldots \vert r_{i,t-1}, \quad i = 1, 2, \ldots, K_{t-1}\): 이전 홉까지의 relation path \(p_{t-1,i}\)를 나타낸다.
- 식(5) \(Q_t = q \vert r_{i,1} \vert r_{i,2} \vert \ldots \vert r_{i,t-1}\): 질문과 이전 relation path를 연결하여 새로운 입력 시퀀스 \(Q_t\)를 만든다.
- 식(6) \(Q_{t,v} = \text{PLM}(Q_t)\): 입력 시퀀스 \(Q_t\)를 벡터 표현 \(Q_{t,v}\)로 인코딩한다.
- 식(7) \(D'_{r,t} = [d'_{r1}, d'_{r2}, \ldots, d'_{rR}] = \text{Linear}(Q_{t,v})\): \(Q_{t,v}\)를 선형 분류 계층을 통해 다음 hop의 relation 확률 분포 \(D'_{r,t}\)를 계산한다.
- 식(8) \(d'_{rc} = P(r_c \vert Q_{t,v}), \quad c = 1, 2, \ldots, R\): 각 relation \(r_c\)에 대한 확률 \(d'_{rc}\)를 계산한다.
- 식(9) \(Score(p_{t,i}) = Score(r_{i,1} \vert r_{i,2} \vert \ldots \vert r_{i,t}) = \prod_{l=1}^{t} d'_{r_{i,l}}, \quad i = 1, 2, \ldots, K^h\): relation path \(p_{t,i}\)의 점수는 경로에 있는 모든 relation의 확률의 곱으로 계산된다.
Relation path prediction은 주어진 질문에 대해 가장 적절한 relation path를 예측하기 위한 과정이다. 이 과정에서는 질문을 벡터로 인코딩한 후, 각 단계별로 가능한 relation을 순차적으로 예측하여 최적의 경로를 구성한다. 이를 통해 모델은 질문에 대한 multi-hop path를 예측하여 정확한 답변을 생성할 수 있다. 결과적으로 answer을 찾기 위해 가장 가능성 있는 여러 개의 relation path를 반환받는다.
Triple Sampling
Triple sampling은 예측된 relation path를 기반으로 KG에서 관련된 트리플을 추출하는 과정이다. 이 과정에서는 높은 점수를 가진 relation path를 우선적으로 선택하고, 각 경로에 해당하는 트리플을 순차적으로 샘플링하여 모델의 추론 성능을 향상시킨다. 이를 통해 모델은 질문에 대한 답변을 더욱 정확하게 제공할 수 있다.
2) Rewrite: KG-to-Text
Rewrite 모듈은 본 논문에서 가장 핵심이 되는 모듈이다. 일반적인 Retrieve-than-Answer 방식과는 달리 KG에서 검색해서 찾아낸 트리플 형식(Triple-form Text)의 자연어 정보를 일반적이 텍스트 형식(Free-form Text)으로 변환하여 모델에 입력시키는 과정이다.
- Ex) Triple-form-Text: (Korea, capital, Seoul) (Seoul, zip code, 50000)
- Ex) Free-form-Text: Korea’s capital is Seoul, and Seoul’s zip code is 50000.
- 식(1) \(D'_{v,t} = [d'_{v_1}, d'_{v_2}, \ldots, d'_{v_V}]\): 주어진 프롬프트 \(p_1\)와 이전 \((t-1)\) 스텝의 정답 토큰들 \(y_1, y_2, \ldots, y_{t-1}\)에 기반하여 \(t\) 스텝에서의 토큰 분포 \(D'_{v,t}\)를 예측한다.
- 식(2) \(d'_{v_c} = P(v_c \vert p_1, y_1, y_2, \ldots, y_{t-1}), \quad c = 1, 2, \ldots, V\): 여기서 \(d'_{v_c}\)는 주어진 프롬프트 \(p_1\)와 이전 토큰들 \(y_1, y_2, \ldots, y_{t-1}\)을 기반으로 \(v_c\)의 확률을 나타낸다.
- 식(3) \(D_{v,t} = [d_{v_1}, d_{v_2}, \ldots, d_{v_V}]\): 정답 토큰 \(y_t\)에 대한 원핫 벡터 \(D_{v,t}\)를 나타낸다.
- 식(4) \(d_{v_c} = \begin{cases} 1, & v_c = y_t \\ 0, & v_c \neq y_t \end{cases} \quad c = 1, 2, \ldots, V\): \(y_t\)가 정답 토큰일 때, 해당 토큰 \(v_c\)에 대한 확률을 1로 설정하고, 나머지는 0으로 설정한다.
- 식(5) \(J_t = -D_{v,t} \log D'_{v,t} = - \sum_{c=1}^{V} d_{v,c} \log d'_{v,c}\): Cross Entropy 손실 함수 \(J_t\)를 계산한다.
- 식(6) \(L_{CE} = \frac{1}{T} \sum_{t=1}^{T} J_t\): 최종 Cross Entropy 손실 함수 \(L_{CE}\)를 계산하여 파라미터를 업데이트한다.
정리하자면, Rewrite 모듈은 구조화된 트리플을 자연스러운 자유 형식의 텍스트로 변환하기 위한 과정이다. 이 모듈은 KG에서 추출한 트리플을 입력으로 받아, 이를 언어 모델을 통해 자연어 문장으로 변환한다. 변환된 텍스트는 질문에 대한 답변을 제공하는 데 사용되며, 모델의 추론 성능을 높이는 데 기여힌다.
3) Answer: Knowledge Text Enhanced Reasoning
Answer 모듈은 생성된 지식 \(y\)와 질문 \(q\)를 통합하여 최종 답변을 생성하는 과정이다. 이를 위해 “다음은 질문에 답하는 데 관련될 수 있는 사실들이다 예를 들어 {free-form text \(y\)} Question: {question \(q\)} Answer:”와 같은 템플릿 T2를 사용하여 free-form text \(y\)와 질문 \(q\)를 KG-augmented 프롬프트 \(p_2\)로 매핑한다. 그런 다음, 이 프롬프트 \(p_2\)를 QA 모델에 입력하여 예측된 답변 \(a\)를 수집한다. 이를 통해 Answer 모듈은 사용자에게 정확한 답변을 제공할 수 있다.
- T2”다음은 질문에 답하는 데 관련될 수 있는 사실들입니다:
- {free-form text \(y\)} Question: {question \(q\)} Answer:”.
- free-form text \(y\)와 Question \(q\)를 템플릿 T2를 사용하여 KG-augmented 프롬프트 \(p_2\)로 매핑한다.
- 이후 프롬프트 \(p_2\)를 QA 모델에 입력하고 출력을 예측된 답변 \(a\)로 수집한다.
2. Corpus Generation (Ground Truth Generation)
corpus generation 과정은 KG-to-Text 모델을 학습하기 위해 필요한 데이터를 준비하는 중요한 단계이다. 세 과정을 거쳐서 최종적으로 KG-to-Text Corpus를 생성하게 된다.
1) Subgraph Extraction
- KG를 선택하고, 필요한 정보를 추출한 후, 모델 학습에 적합한 형식으로 변환한다.
2) Text Generation
- KG에서 주어진 question과 관련된 subgraph를 추출하고, 이를 텍스트로 변환한다. 이후 triple 형식으로 된 텍스트를 free-form text형태로 변환한다.
3) Quality Evaluation
- KG-augmented 프롬프트를 모델에 입력시키고, 정답을 생성해 낸다.
정리하면, Corpus Generation (Ground Truth Generation)은 모델 학습을 위해 KG에서 트리플을 추출하고 이를 자연어 텍스트로 변환하는 과정이다. 먼저, KG에서 관련 트리플을 추출하고, 이를 자연어 문장으로 변환한다. 예를 들어, 트리플 (South Korea, capital, Seoul)을 “South Korea’s capital is Seoul.”로 변환한다. 그런 다음, 변환된 텍스트와 원래 트리플을 페어링하여 데이터셋을 구성한다. 이 데이터셋은 KG-to-Text 모델의 학습 및 평가를 위한 ground truth로 사용된다.
Experiments
1. Main Result
평가 지표로는 Hits@1을 사용하였다. BLEU Score나, METEOR, ROUGE와 같은 평가 지표는 생성된 텍스트와 정답(reference) 텍스트 간의 유사도를 측정하는 데 사용된다. 이 평가 지표들은 정답 텍스트가 존재할 때만 유효하게 사용될 수 있다. 그러나 KG-to-Text 변환을 위한 데이터셋에는 일반적으로 그래프와 텍스트 쌍이 주어지지 않기 때문에, 모델이 생성한 텍스트를 비교할 수 있는 정답(reference) 텍스트가 부족하다. 따라서, 기존의 평가 지표를 사용할 수 없다.
위와 같은 이유로 인해, 논문에서는 생성된 텍스트의 품질을 평가하기 위한 대안적인 방법을 사용한다. 논문에서는 생성된 텍스트가 실제로 질문에 답변하는 데 도움이 되는지를 평가한다. 이 방법은 생성된 텍스트와 질문을 결합하여 다시 모델에 입력하고, 모델이 생성한 답변이 정답인지 여부를 평가하는 방식이다. 이렇게 함으로써 생성된 텍스트가 실제로 유용한지를 평가할 수 있다.
논문에서는 다음의 절차에 따라 생성된 텍스프의 품질을 평가한다.
- Free-form Text와 Question의 결합
- 생성된 free-form text \(y\)와 질문 \(q\)를 결합하여 KG-augmented 프롬프트 \(p_2\)를 만든다.
- 예시 템플릿: “Below are the facts that might be relevant to answer the question:
- {free-form text \(y\)} Question: {question \(q\)} Answer:”
- LLM에 프롬프트 입력
- 생성된 프롬프트 \(p_2\)를 질문-응답 모델에 입력하여 예측된 답변 \(a\)를 얻는다.
- Hits@1 평가 지표 사용
- LLM이 생성한 답변 \(a\)가 적어도 하나의 정답 엔티티를 포함하는지를 확인한다. 답변 \(a\)에 하나 이상의 정답 엔티티가 포함되어 있으면 질문에 올바르게 답변한 것으로 간주한다.
- 이 방법을 통해 생성된 텍스트가 질문에 답변하는 데 얼마나 도움이 되는지를 평가할 수 있다.
Baseline 대비 SOTA달성. 하지만 baseline이 2개 밖에 없으므로 모델 성능의 객관화가 떨어짐. 두 실험 모두 Hits@1을 보여줌.
2. Ablation Study
- No Knowledge: 모델은 질문에 대한 답변을 생성할 때 외부 지식 없이 질문 자체만을 기반으로 답변을 생성함.
- Triple Knowledge: 각 질문에 대해 관련된 트리플을 KG에서 검색하고, 이를 기반으로 답변을 생성함.
- MTL Knowledge (Multi-Task Learning Knowledge): Multi-Task Learning을 통해 학습된 지식을 사용하는 설정. 이 설정에서는 여러 과제를 동시에 학습하여 모델이 다양한 질문 유형에 대해 더 잘 일반화할 수 있도록 한다.
- MVP Knowledge (Multi-View Prompt Knowledge): 다양한 방식의 프롬프트를 사용하여 knowledge를 적용하는 설정. 이 설정에서는 같은 질문에 대해 여러 방식의 프롬프트를 생성하여 모델의 응답을 다양하게 하고, 그 중 최적의 답변을 선택한다.
결론적으로 Triple Knowledge를 사용하는 것이 가장 좋다. 즉, KG를 검색해서 정보를 사용하는 것이 QA문제를 푸는데 도움이 된다.
3. Analysis
이 실험 결과는 다양한 모델과 설정에서의 성능을 Hit@1(%)로 비교한다. 실험 결과에 따르면, KG를 활용한 모델들이 전반적으로 더 높은 성능을 보였다. 특히, Multi-View Prompt Knowledge (MVP Knowledge) 설정이 가장 우수한 성능을 기록하며, 이는 다양한 프롬프트를 통해 모델의 답변 정확도를 향상시킬 수 있음을 보여준다. 또한, Llama-2-chat 13B 모델과 같은 대규모 언어 모델이 더 작은 모델에 비해 성능이 뛰어남을 확인할 수 있다. 이는 모델 크기와 학습된 지식의 양이 질문 응답 성능에 중요한 영향을 미친다는 것을 시사한다.
Limitations and Contributions
- Limitations
- Main Result의 실험이 너무 부실하다.
- Corpus를 generation하는데 특정 dataset에 의존한 것, 즉, corpus generation을 wikidata나 freebase와 같이 Large-scale KG에서 만들어 일반화하는 것이 성능에 더 좋지 않을까? 즉, 특정 데이터셋으로만 corpus를 생성하면, Knowledge-Intensive-Task나 Open-Domian QA 문제 모두를 제대로 해결할 수 있을까?
- Q1. LLM이 QA문제를 해결함에 있어 가지고 있는 문제점 중 하나가 long-context question에 대한 정답 추론을 제대로 못한다는 것이다. 하지만, benchmark QA dataset의 경우 topic entity가 주어지며, reasoning path도 4 hop정도로 매우 짧기 때문에, 과연 이 benchmark들이 long-context question을 제대로 반영하는가?
- Contributions
- Retrieve-Rewrite-Answer라는 KGQA를 위한 향상된 LLM framework, KG-to-Text를 제안함. 핵심이 되는 모듈은 Rewrite 모듈이다. 이 모듈은 fine-tuning된 LLM을 KG-to-Text 모델로 사용하여 검색된 subgraph를 KGQA에 적합하게 textualized 한 문장으로 변환한다.
- KG-to-Text의 corpus annotation의 부족 문제를 해결하고자 automatic한 KG-to-Text generation 방법을 제안하였다. 질문과 관련된 subgraph를 추출하고, chatGPT를 corpus generation을 위한 tool로 사용한다. QA LLMs의 피드벡을 바탕으로 KG-to-Text 레이블링 데이터 구축을 위한 answer-sensitive knowledge description을 생성한다.
댓글 남기기