위키피디아 문단을 100개의 단어 기준으로 잘라 총 21M개의 문서를 knowledge source로 활용
Memory Construction
외부 메모리 (External Memory) (Green)
OpenIE를 활용해 선택된 triplet의 end node(주어, 목적어)를 annotate
OpenIE는 평범한 문장을 triplet 형태로 변경
e.g. Iceland is a Nordic island country in the North Atlantic Ocean and it is the most sparsely populated country in Europe. -> ⟨subj:Iceland, rel:is,obj:Nordic island country⟩, ⟨subj:Iceland, rel:is, obj:most sparsely populated country in Europe⟩
해당 triplet을 활용해 Knowledge Trie (=prefix tree)를 생성
주어는 key, 관계는 edge, 목적어는 value
offline으로 생성
로컬 메모리 (Local Memory) (Blue)
input context에 있는 개체(entity)로 초기화
online으로 update
Interaction Guided Decoding
로컬 메모리에 있는 각각의 개체(entity)를 Key로 사용해 외부 메모리에 쿼리를 날려 Knowledge demonstration (Purple) 수집
Value가 Key를 가진다면, 다시 쿼리를 날림 (최대 hop까지)
새로운 개체(entity)가 생성된다면 로컬 메모리 업데이트
policy gradient를 통해 updated policy를 얻고 이를 활용해 새로운 토큰을 생성
평가
Tasks
Abstractive Question Answering: ELI5, MSMARCO
Logic-centric Writing: ROC, alphaNLG
Dialogue Generation: WoW, MuTual
다른 decoding 방식들과 비교했을 때 ELI5, ROC, WoW에서 SOTA 성능
다른 Knowledge-infusion 방식과 비교했을 때 few-shot에서 좋은 성능
이밖에도
사람의 평가에도 좋은 성능
파인튜닝되지 않은 언어모델에서 더 좋은 성능
exposure bias를 완화하는 효과 (문장 길이와 관계없이 안정적인 품질을 보여줌)
한계
Reviewer said...
논문 이해의 어려움
baseline 선택의 이유가 명확하지 않음
이러한 의견을 참고해 저자들은 더 자세한 설명과 baseline을 추가
Decoding 시간이 굉장히 오래 걸림
web demo를 이용했을 때 약 11분이 걸림 (Nvidia T4 GPU)
직접 실험했을 때 약 6분이 걸림 (Titan XP GPU)
또한 논문에서 태스크나 데이터셋에 따라 추론 시간이 달라질 수 있음을 언급함. practicality가 다소 떨어짐
의의
Reviewer said...
어떤 모델 혹은 태스크에도 활용될 수 있는(model and task agnoastic) 재학습이나 파인튜닝이 필요없는 방법
고정적인(static) knowledge retrieval 대비 역동적으로 외부 지식을 주입한다는 점에서 장점을 가짐