Skip to content

Key Value Memory Networks for Directly Reading Documents(2017)

hwkim94 edited this page Mar 11, 2018 · 9 revisions

1. Abstract

  • QA, 즉 document(문서)를 읽고, 그 내용에 대해서 질문하는 것, 을 해결하기 위한 방법을 사용

  • Knowledge Base를 사용하는 것이 추세인데, 특정 대답은 못하거나 데이터가 sparse하다는 문제가 존재

    • 따라서, FreeBase를 사용하지 않고 wikipedia를 사용하는 것이 유리
    • FreeBase : "practical, scalable tuple database used to structure general human knowledge."
  • end-to-end Memory network에서 question과 내적되는 부분이 key, softmax값과 곱해지는 부분이 value가 된 형태

  • 이전에는 따로 embedding을 시켰지만, 여기서는 같이 embedding하여 key-value pair로 만들어줌

    • key hashing이라는 과정이 추가됨

2. Introduction

  • 최근에는 질문을 logical form으로 변환하여 KB(Knowledge Base)에서 검색을 하는 방식을 채택

    • 하지만 다양한 형태의 대답을 내놓지는 못한다는 한계점
    • 지식들이 structured되어 있음
    • 이미 KB에 대답이 정해져있으므로 표현이 fixed 되어있음
    • KB에 없는 것에는 대답할 수가 없음
    • missing information문제를 해결하려는 시도도 있었지만, 성능은 좋지 않음
    • 따라서, KB를 그냥 사용하는 것은 any topic에 대한 general question에 대응하는 것이 어려움
  • key를 사용하여 질문과 관련 있는 memory에 접근

    • 모델에 먼저 key-value structured memory를 저장함
    • raw data를 embedding하여 key와 value로 나타내지는 형태로 저장됨
    • 알맞은 key를 학습하는 모델

3. Related Work

  • Memory Network

4. Key-Value Memory Networks

m

  • key-value의 형태에 KB나 document의 memory를 저장
    • (k1, v1) , ... , (km,vm)
  • key는 question의 특성을 잘 반영할 수 있어야함
  • value는 answer를 오바르게 표현 할 수 있어야함

4.1 Model Description

  • end-to-end 모델
  1. Key Hashing
  • m
  • inverted index방식 사용
  • knowledge source로 부터 question의 각 단어와 어울리는 N개의 key-value pair를 찾는 과정
  1. Key Addressing
  • m
  • question을 embedding한 것과, key hashing을 통해 얻어진 각각 key에 feature map을 곱해준 후 내적하여 softmax
  • 각각의 key와 question embedding을 내적하여 그중에서 중요한 key를 구하는 과정
  • end-to-end memory network는 question과 정보를 바로 내적하여 p값을 뽑아내지만, 이 모델에서는 key와 내적하여 p를 뽑아냄
  1. Value Reading
  • m
  • 위에서 구해진 '중요성'을 나타내는 상수와 value(정보)를 이용해 weighted sum
  • 메모리에 접근하기위해 question을 embedding하여 query로 사용하는 것
  • 다음 쿼리 = R(q+o)
    • 이전의 output과 question을 더하여 질문 업데이트 + R로 feature map 적용
  • m
  • m
  • H번 반복하여 q_(H+1)을 구한 후, 가장 가능성 있는 대답들 yi과 각각 내적 후 softmax
    • EX) yi는 KB의 모든 정보도 될 수 있음

4.2 Key-Value Memories

  • key와 value를 어떻게 지정할건지에 대한 것
  1. KB Triple
  • m
  • subject, relation, object 의 structure로 구성되어 있음
  • key는 subject, 나머지는 value의 역할
  • relation에 !(not)을 취해준 정보를 추가하여 KB를 2배로 늘림
    • 대답을 할 때 중요하기 때문에 사용
    • ex) "밥 먹었니?" 와 "밥 안먹었니?" 처럼 다른 질문이지만 같은 대답에 대비
  1. Sentence Level
  • KB에 document가 들어올 경우 BOW(BAG-OF-WORD)를 통해서 key와 value를 형성
  • 이럴 경우, key와 value가 같기 때문에 기존의 memory network와 같아짐
  1. Window Level
  • KB에 document가 들어올 경우 window를 지정한 후 split
  • window 전체를 encoding 하여 key로 사용, 각 window의 center word를 encode하여 value로 사용
  1. Window + Title
    • 제목은 내용을 대표하는 것이므로, 같이 encoding하면 좋은 효과
    • 제일 성능이 좋았음
    • key는 window부분, value는 document title

5. The WikiMovies Benchmark

m

  • DOC, KB, IE 세 가지 타입의 knowledge representation 구축

6. Experiments

m

7. Conclusion

그냥 막 memory를 구성한다고 좋은 것이 아니라 '잘' 구성해야한다.


8. Reference

Clone this wiki locally