pocca2048 / ML-paper-reading

Daily ML paper reading
0 stars 0 forks source link

Autoregressive Entity Retrieval #12

Open pocca2048 opened 3 years ago

pocca2048 commented 3 years ago

Conference : Link : ICLR 2021 Authors' Affiliation : FAIR TL;DR : vector - vector dot product 대신 그냥 직접 unique entity name을 autoregressive하게 generate하자.

Summary :

1. Introduction

기존 entity retrieval 방식은 각 entity들이 하나의 label이 되어 multi-class classification으로 푸는 방식이었다. input과 label 간의 match는 bi encoder에서 나온 벡터 곱에서 나온 similarity로 계산하고 max-inner-product-search로 검색한다.

근데 이 방식은 여러 단점을 갖는다

  1. re-ranking 할때 cross-encoder를 쓰지 않는 이상 fine-grained interaction을 놓친다.
  2. dense vector를 저장해야 하므로 메모리 사용량이 크다.
  3. 정확한 softmax를 모든 entity에 대해 계산하는건 불가능하므로 negative data를 sampling해야 한다.
  4. cold-start 문제

여기서 제안하는 방식은 때때로 우리에게는 unambiguous, highly structured and compositional entity names이 있다는 사실로부터 모티베이션을 얻었다.

(위키피디아의 문서 제목과 같은)

inputs could be translated into unique entity names, word by word, instead of being classified among a huge set of options

GENRE = Generative ENtity REtrieval

context에 condition해서 entity name을 autoregressive하게 generate하는 방식이다. 근데 생성된 이름이 항상 valid한 이름은 아닐 수도 있다. 이를 방지하기 위해 constrained decoding 방식을 사용해서 생성되는 이름이 미리 정의된 후보 set에 있도록 강제한다.

이 방식으로 하면 entity count가 아니라 vocab size에 scale되므로 메모리 요구량이 크지 않다. negative 샘플링도 필요 없다.

candidate set은 trie로 저장하게 되면 메모리를 많이 아낄 수 있다.

4. Experiments

Entity Disambiguation, end-to-end Entity Linking (EL), page-level Document Retrieval 에서 SOTA 혹은 competitive 결과를 얻었다. 거기다 memory는 dramatic하게 줄어든다. image