Open domain question answering에서 고민해야할 issue

1. passage의 단위?

 

앞에서 passage의 엄밀한 정의를 하지 않았는데 위키피디아 같은 경우도 passage를 어떻게 볼지 엄밀하게 정의하지 않았다

 

etc-image-0

 

 

영어 위키피디아에서 article로 보면 500만개 정도 있고 paragraph로 보면 3000만개 정도 있고 sentence로 보면 7600만개 정도 있다고 한다

 

retriever가 reader한테 질문과 관련된 passage를 넘겨줄 때 몇개를 넘겨줘야 적당한가?

 

passage를 정의한 범위에 따라서도 몇개를 넘겨줄지 고려해야함

 

몇개의 passage를 넘겨주느냐에 따라 모형의 성능도 다르다

 

etc-image-1

 

 

 

 

위와 같이 큰 단위일수록 적게 넘겨줌

 

위는 article일때 k=5, paragraph는 k=29, sentence는 k=78로 그냥 설정해보고 실험한 논문 예시

 

k가 크면 그만큼 많이 보고 신중하게 여러 답안을 내니까 성능이 오를 수 있는데 항상 그런건 아니다

 

그렇다고 k=1로 해버리면 그 하나에 정답이 있을 가능성을 100퍼센트 보장 못하니까 위험하다 그래서.. 보통 k=1은 안하는듯

 

 

2. single passage를 볼 것인가? multi passage를 볼 것인가?

 

일반적인 single passage 방식은 TOP-k로 출력한 연관 문서 각각에서 질문에 대한 가장 그럴듯한 답을 찾은 뒤에 점수를 측정하고

 

측정한 점수들 중 가장 높은 점수를 받은 span을 최종 정답으로 내는 방식

 

etc-image-2

 

 

근데 이렇게 구하는 방식은 사실 전체 k개의 passage를 한번에 보지않고 각각 독립적으로 바라봤다는 점에서 아쉬울 수 있음

 

그래서 생각한 multi passage 방식은 k개의 retrieve된 passage를 전부 하나의 passage로 묶은 다음에 Reader model이 그것으로부터 정답을 찾도록함

 

그러나 k가 너무 크면 문서가 너무 길어져 GPU 메모리가 바닥날수있고 연산량도 엄청날 수 있어 주의해야함

 

etc-image-3

 

 

 

3. retrieve된 passage의 중요성?

 

retrieve할 때 질문과 연관성이 가장 높은 TOP-k passage로 출력했다는 것은 질문과 연관성이 높은 정도의 차이가 있다는 것

 

그런데 이 문서를 reader model에 그냥 넘겨주면 reader는 어떤 passage가 더 연관성있는지는 사실 잘 모르고 전부 동등하게 바라보면서 정답을 찾음

 

만약 retrieve 당시 연관성 점수를 reader가 정답을 낼때 정답일 확률 점수에 가산하여 정답을 낸다면 더 정확한 정답을 도출할 수 있을 것임

 

etc-image-4

 

 

 

retrieve passage score를 마지막 answer score에 가산하여 정답을 도출했음

 

전부 BERTserini? 여기서 나온건데 이거 좀 읽어볼만한데?

728x90