본문 바로가기
AI Researcher가 될끄야!/XAI(설명가능한 AI)

[논문 리뷰] Fine-grained Fact Verification with Kernel Graph Attention Network

by 여니여니여 2022. 7. 14.

안녕하세요😚

오늘의 논문리뷰는 ACL 2020에 공개된 "Fine-grained Fact Verification with Kernel Graph Attention Network" 논문입니다.

 

💌 논문 링크 : https://arxiv.org/abs/1910.09796arxiv.org/abs/2112.10424

 

Unifying Model Explainability and Robustness for Joint Text Classification and Rationale Extraction

Recent works have shown explainability and robustness are two crucial ingredients of trustworthy and reliable text classification. However, previous works usually address one of two aspects: i) how to extract accurate rationales for explainability while be

arxiv.org

 

💚Overview

 

가장 먼저 본 논문이 다루고 있는 fact verification task에 대해 알아보자면 구문론적이고 의미론적으로 올바르지만 잘 뒷받침되지 않는 주장을 식별할 수 있는 미묘한 단서를 찾아서 주장이 올바른지 아닌지를 판별하는 task입니다. QA와 다르게 올바르지 않을경우 그 이유도 함께 찾을 수 있도록 하는 부분이 있습니다.

 

따라서 해결해야하는 문제는 back ground corpus로 부터 관련된 evidence를 retrieve할 수 있어야하고, 선택된 evidence들을 활용하여 joint resoning을 통해 claim의 무결성을 밝혀내야 합니다.

그래서 본 논문에서는 증거들간의 공동 추론을 위한 엣지 커널과 적절한 증거를 추출해 낼 수 있는 node kernel을 활용한 KGAT를 공개하였습니다. 결과적으로 Fact check task FEVER 데이터셋 벤치 마크 평가지표 Fever Scroe 70.38%를 달성하였고, dot product attention보다 효율적으로 evidence 추출이 가능하다는 것을 밝혀내었습니다.

 

본 테스크가 수행되기 위해서는 사전과정이 필요합니다!

이는 FEVER 데이터셋이 구축되는 과정이라고 말씀드릴 수 있습니다. 가장 먼저 주어진 주장을 AllenNLP 안에 있는 Parser로 엔티티를 나타내는 모든 phrase를 추출하고 이를 쿼리로 활용하여 online MediaWiki API를 활용하여 관련 있는 article을 저장합니다. 이렇게 저장된 article에서도 관련있는 sentence level의 문장들을 추출합니다. 본 논문은 ESIM과 BERT 모델 기반 Retrieval 모델을 활용하였습니다. 이렇게 최종적으로 구축된 데이터셋들이 각각의 증거 추출에 활용되는 sentence로 활용된 후 claim verification task가 진행되고 이 부분에 KGAT가 적용되는 것 입니다.

💜Method

결과적으로 보다 정확한 evidence들을 고르고 추론 능력을 커널 방식을 활용해 높였습니다. 과정은 claim-evidence sentence pair로 노드를 구성하고 fully connected edge형태로 그래프를 구성합니다. 이때 두가지 커널을 적용하는데 edge 커널과 node커널의 역할은 다음과 같습니다. 최종적으로 이 두가지 signal이 합쳐져 공동추론 방식으로 보다 정확한 fact verification이 될 수 있도록 합니다.

그 방식을 살펴보도록 하겠습니다. 먼저 Kernel graph attention network는 retrieved된 문장들을 활용하여 evidence graph를 만듭니다. 그래서 D는 전체 evidence가 될수 있는 문장들이고 claim과 페어링되어 노드 집합 N을 이룹니다. KGAT는 multiple, single evidence reasoning scenario를 따르며 주어진 그래프에서 claim의 라벨을 예측하게 됩니다. 이때 예측은 두 개의 부분으로 나누어 지는데 전체 그래프의 조건 하에 각 노드별 예측과 증거가 될 확률에 대한 부분으로 나뉠 수 있습니다.

 

여기서 커널 method를 알아볼 필요가 있습니다. 저희의 목적이 확률밀도를 구하는 것이라 할 때 주어진 unit에 우리가 원하는 데이터가 얼마나 포함되어 있는 지를 구별하는 것 입니다. 이 때 여기서 N은 총 데이터 샘플 수, K는 영역안에 포함되어 있는 데이터 수, V는 영역의 볼륨입니다.

확률 밀도를 구하는 식에서 N 값은 데이터 전체의 크기이기 때문에 고정입니다. 이때 region의 부피 V를 고정하고 그 안에 몇 개가 들어갈 수 있는지 K를 찾아냄으로써 확률 밀도를 구하는 방식이 Kernerl method 방식입니다. 이와 반대로 k를 고정하고 그 부피를 결정하는 것이 k-nearest neighbor입니다. 이러한 kernel method 중 대표적인 방법이 parzen window 방식입니다. 다음과 같은 그림에 평면이 있다고 할 때 kernel method는 일정한 부피 안에 들어갈 데이터의 개수를 세는 방식입니다. 기준점을 (0,0)이라고 할 때 그림에서 k는 네모 안의 점 개수 5개가 됩니다. 사각형의 길이를 h라고 하면 V는 h*h가 됩니다. 이를 식으로 정의하면 다음과 같습니다. 본 논문에서는 커널 function으로 가우시안 커널을 사용했습니다.

 

다시 kgat로 돌아가 가장먼저 노드 표현을 초기화 해주는 과정이 필요합니다. 노드 representation은 사전학습된 Bert의 hiddenstate 값으로 초기화되는데, 이때의 input는 claim과 document title, evidence sentence가 들어가게 됩니다. 최종적으로 히든 스테이트의 cls 토큰값이 초기화된 표현으로 활용됩니다. 각각 히든 스테이트들의 구성은 다음과 같습니다.

다음부터는 각 커널에 대한 정보입니다.

 

먼저 엣지 커널은 커널 어텐션 메카니즘을 통해 evidence propagation과 각 노드별 예측이 이루어지게 됩니다. 과정은 먼저 엣지 커널을 통해 노드 np의 representation vp를 계산하고 이것으로 각 노드별 예측을 하는 과정입니다. 엣지 커널은 hierarchical attention mecahanism으로 node들 간의 정보가 propagate 되는데 토큰 레벨 어텐션을 통해 node representaion을 생성하고, sentence level attention을 통해 정보가 propagate 될 수 있도록 합니다.

 

토큰레벨 어텐션은 커널을 활용하여 노드 np의 이웃노드 nq로 부터 fine grained representation을 얻기 위함인데요 이때 content propagation과 어텐션은 커널에 의해 모아집니다. nq의 i번째 토큰 어텐션 weigh를 구하기 위해 가장 먼저 q th 노드와 p th 노드 사이에 translation 매트릭스 M을 만듭니다. 엠의 ij 요소는 두 노드의 히든 스테이트 토큰에서 각 각 ij의 cosine similarity로 구성됩니다. 그리고 K kernel이 매칭 feature를 추출하기 위해 사용됨. 각 커널 k개는 가우시안 커널 펑션으로 특징이 추출되고 translation score가 요약됨. 따라서 이는 multi level interaction을 support하는 역할을 하게됨. 여기서 u와 엡실론은 k-th 커널의 평균과 길이임 이것은 특정 레벨에서의 토큰들간의 interaction을 캡쳐함. 그 후 토큰 어텐션 weight가 리니어 레이어에 의하여 계산됨. attention weight는 token representaion을 컴바인하는데 사용됨. 최종적으로 이것은 nq에서 np로의 content signal propagate임.

 

sentence level attention은 이웃 노드 간의 정보를 combine하는데 사용됩니다. 이는 그래프 어텐션 매카니즘을 통해 구현됩니다. 가장 먼저 nq의 어텐션 weight를 np에 대하여 계산합니다. 여기서 ○는 operato을 concatenate 하고, zp는 노드 np의 초기화된 버전입니다. 그 후 p-th 노드의 representation은 이웃 노드들과의 representation의 어텐션을 통해 결합되어 업데이트 됩니다. node representation은 이웃 노드와 함께 업데이트 되며, 업데이트 되는 정보들은 가장 먼저 token level attention에 의해 선택되고, 이후에 sentence level attention을 통해 업데이트됨. 그래서 최종적으로 업데이트된 p-th 노드 representation은 claim 라벨 확률을 계산하는데 사용됩니다. 노드 representation은 이웃노드에서 정보를 수집하여 업데이트되므로 각 노드에 대한 레이블 확률의 예측도 전체 그래프 G에 대해 조건화됩니다.

 

 

Node 커널은 어떤 evidence가 중요한지를 밝히는 역할을 합니다. 가장 먼저 노트 커널은 각 노드들의 리드 아웃 representatio을 계산합니다. 앞서 엣지 커널과 비슷하게 가장 먼저 P-th 주장과 근거의 translation matrix M을 만듭니다. 이때 각각 히든 스테이 값들을 활용합니다. 그리고 Kernel은 골라진 노드의 representation을 생성하기 위해 translation matrix에 feature를 매칭하고 combined 합니다. 이 값은 readout을 거쳐 근거로 골라질 확률로 계산됩니다. KGAT는 멀티레벨 soft matching capability를 적용하여 claim과의 관련성을 기반으로 evidence 그래프 node-level 예측에 가중치를 부여합니다. 그리고 전체 모델은 end-to-end 방식으로 크로스 엔트로피 로스를 줄이기 위해 학습됩니다.

 

🤎DATA & Experiments

 

 

데이터셋에 대한 설명입니다. 데이터셋은 fact check 벤치마크 데이터셋인 fever 1.0 데이터셋을 이용했습니다. 185455개의 어노테이션된 주장 데이터와 함께 500만개의 위키피디아 문서가 활용된 데이터입니다. claim 라벨은 supports, refutes, not enough info로 나누어 집니다.

평가지표는 claim에 대한 라벨 값을 얼마나 정확하게 맞췄는지 측정하는 la와 fever score을 대표적으로 사용했고, 기타 golden fever와 precision, recall, f1 scrore를 사용했습니다.

fever score에 대한 부분은 실제 예시를 통해 설명해드리겠습니다. 어떻게 보면 대화 상태 추적의 JOINT GOAL ACCURACY와도 비슷한거 같습니다.  따라서 인스턴스 안에 요소 라벨과 에비던스내용이 다 맞을 경우가 전체 데이터셋에 어느정도인지가 FEVERSCORE라고 생각하시면됩니다. 여기서는 Strict score가 그 값입니다.

 

 

그래서 결과는 3가지 버전의 방식으로 비교를 진행했습니다. 일단 동일한 bert 기반 인코더를 활용하고 esim retrieval 모델을 활용한 1번 방식, 2번은 bert retrieval 모델을 활용한것 입니다. 3번은 인코더를 roberta를 활용한것입니다. 이랬을 때 최종적으로 3번 조합과 KGAT가 적용된 모델이 기존의 Graph 어텐션 모델이나 fact check task 베이스라인 모델보다 좋은 성능을 보였습니다.

별도로 retrieval 모델 성능을 비교했을 때 실제로 BERT Retrieval 모델이 성능이 더 좋음을 보입니다.

 

커널 방식에 대한 효과를 검증하기 위해 다른 시나리오 별로도 실험을 진행했습니다. single, multiple evidence 셋에 대하여 실험을 진행하였음, gat는 기존의 graph attention 방식임. KGAT는 세가지 방식과 비교했음. 가장 먼저 노드 커널만 적용한 것, 엣지에만 커널을 적용한 것, 다 적용한 것으로 나눠진 버전으로 실험을 진행. Single evidence만 있는것과 multiple의 차이는 다음과 같습니다.

먼저 node에만 적용한 버전을 살펴보면 single과 multiple에서 모두 0.3% 이상 향상되었는데 GFEVER에서는 evidence가 주어지기 때문 evidence selection이 필요없기 때문에 성능향상이 미미한것으로 보이며, 이로서 node 커널은 적절한 evidence를 고르는데 많은 역할을 한다는 것을 알 수 있습니다. 엣지커널은 multiple에서 0.8, single에서 0.1 정도 성능향상을 보였따. 이는 여러 evidence간에 정보가 결합되고 이를 통해 추론이 될 수 있또록 함을 알 수 있엇습니다. 결과적으로 single에서는 가장 중요한 evidence를 고르고 하나의 evidence로 적절하게 추론할 수 잇어야하며 multiple evidence 일 경우에는 clue들의 정보를 요약하고 이를 기반으로 적절한 추론이 진행되야 합니다. 따라서 KGAT는 적절한 Evidence를 node kernel을 통해 고르고 edge 커널을 통해 각 evidence정보를 결합하고 이를 기반으로 추론할 수 있도록 합니다.

 

실제 예시에서 각 방식을 비교해보기도 하였습니다. 첫번째는 multiple evidence 라벨된 claim의 예시이고 두번째는 첫번째 evidenc에서 2번째 evidence로의 attention distribution입니다. 일단 주장은 ‘AI Jardine’이 아메리칸 리듬 기타리스트라는 것인데, 첫번째 문장은 아메리칸 뮤지션인지 알려주지만 정보가 부족합니다. 이때 edge kernel이 추가적인 정보를 pick함으로써 "두번째 증거에서 rhythm guitarist라는 것을 밝혀내서 reasoning chain을 완성 시킵니다. 흥미로운 사실은 "ai jardine"자체도 attention을 조금 더 받게 되는데 이는 두번째 evidence에 올바른사람에 대해 정보를 뽑을 수 있도록 돕습니다. kernel attention pattern은 이를 통해 단순 dot product 어텐션보다 좋음을 보입니다.

 

결과적으로 KGAT는 GNN을 활용해 정확한 Evidence를 고르고 fine-graind 한 공동추론이 가능하게 하였으며 두가지 다른 kernel을 활용해 fact verification을 다른 측면으로 해결했습니다. 실제 어텐션 결과를 보면서 dot product 방식보다 좋음을 보였습니다. 이후 모델의 설명성 분야에도 핵심기술이 될 것이라고 이야기하고 있습니다.

댓글