(10강) QA with Phrase Retrieval
phrase retrieval을 활용한 real-time ODQA
retriever - reader구조와 비교
[Reference & Further Reading]
추가적인 아이디어를 소개. 대회에는 1~8강을 중점적으로 해보면 좋을 것 같음.
1. Phrase Retrieval in ODQA
1.1. Limitation of Retriever-Reader approach
- Error Propagation: 5-10개의 문서만 reader에게 전달됨 - retriever에 의존도가 높아짐 
 
- Query-dependent encoding: query에 따라 정답이 되는 answer span에 대한 encoding이 달라짐 - Query와 cotext를 concate해서 encoding을 하다보니 query가 달라지면 모두 다시 encoding을 해야한다. 
 
1.2. Phrase search (Document search)
문서 검색을 하듯이 phrase (절)을 바로 검색할 순 없을까 라는 아이디어에서 나왔다.
Phrase indexing

문장에서 각 Phrase마다 나누어 key vectors를 생성해둔다면 Query Vector만 encoding하여서 Nearest Neighbor Search를 통해 정답을 바로 구할 수 있다는 것이다. 즉, Query벡터가 변해도 큰 작업이 필요가 없다는 것.
Query-Agnostic Decomposition

- 위 식의 경우 q가 변함에 따로 F 모델을 다시 정의해야한다. 
- 아래처럼 F를 G와 H로 분리하는 방법론이다. - q가 변함에 따라 H를 다시 정의할 필요가 없어 속도가 매우 빠르다. 
- 하지만 F가 G와 H로 나눌수 있다는 보장이 없다. 
 
- 어떻게 각 phrase를 vector space상에 잘 mapping 할 수 있을지?? - Dense와 Sparse 임베딩을 둘다 사용해보자! 
 
2. Dense-sparse Representation for Phrases
- Dense vectors: 통사적, 의미적 정보를 담는데 효과적 
- Sparse vectors: 어휘적 정보를 담는데 효과적 

key vector를 생성함에 있어 dense와 sparse를 결합하여 사용한다.
Dense representation

- Dense vector를 만드는 방법 - Pre-trained LM (BERT)를 이용 
- Start vector와 end vector를 재사용해서 메모리 사용량을 줄임 
 
- Coherency vector - phrase가 한 단위의 문장 구성 요소에 해당하는지를 나타냄 
- 구를 형성하지 않는 phrase를 걸러내기 위해 사용함 
- start vector와 end vector를 이용하여 계 
- 선택된 Phrase가 좋은 Phrase 여부를 판단하는 값. 
 

- Question embedding - Question을 임베딩할 때는 [CLS] 토큰 (BERT)를 활 
 

2.2. Sparse representation
- Sparse Vector를 만드는 방법 - 문백화된 임베딩(contextualized embedding)을 활용하여 가장 관련성이 높은 n-gram으로 sparse vector 구 
- target phrase의 주변 단어들과의 유사성을 구해서 그 유사성을 각 단어 해당하는 sparse vector 상에 dimention에 넣어준다. 일종의 TF-IDF와 비슷하지만 각 phrase마다 weight가 변하는 벡터의 형태로 만들 줄 수 있다. 
 

2.3. Scalability Challenge
Wikipedia만해도 60 billion개의 phrase가 존재하여서 저장소의 크기가 고려되어야한다...
3. Experiment Result & Analysis
SQuAD-open

- s/Q: second per query on CPU 
- #D/Q: number of documents visited per query 
- Retriever-reader 보다 3.6% 성능향상과 68배의 속도향상을 확 
3.1. Limitation
- 다른 task에서는 낮은 성능을 보여주기도 한다. 
- 고성능 장비가 필요하다. 
- Decomposability Gab F -> G+H라는게 사실 성립하지 않기 때문에 발생 

Last updated
Was this helpful?
