1. in batch negatives
두 encoder BERTp와 BERTq는 어떻게 training을 할까?
query와 연관된 passage인 ground truth passage와는 최대한 거리가 가깝도록 embedding을 함
nearest neighbor의 L2 distance를 좁힐 수 있지만 강의에서는 inner product를 최대화 시킴
(question,passage) pair dataset은 어디서 구하냐고? 기존 MRC dataset인 KorQuAD, SQuAD 등 활용

기존 MRC dataset을 활용하면 하나의 query에 대해 정답인 passage와 정답이 아닌 passage가 있다
전자인 정답 passage를 positive sample, 정답이 아닌 passage는 negative sample이라고 한다
in batch negatives란 (question,passage) pair dataset에서 주어진 question에 대응하는 정답 passage는 1개니까 당연히 가져와야하고
정답이 아닌 passage인 negative sample은 여러개니까 그 중에서 random sampling함
그러면 정답 passage와의 거리는 최대한 가깝게하고, 동시에 정답이 아닌 passage와의 거리는 최대한 멀게 학습을 진행함

2. negative sample의 선택
1) 그냥 corpus내에서 random으로 아무거나 뽑음
2) 혹은 모델 입장에서 조금 더 헷갈리는 negative sample을 뽑음
예를 들어 높은 TF-IDF를 가지는 passage는 question의 답이 없더라도 모델 입장에서는 구별하기가 까다롭다
실제로 이렇게 헷갈리게 뽑으면 성능이 높아지는 경우가 많다고 알려짐
3. objective function
positive sample과 negative sample을 모두 활용한 negative log likelihood loss(NLL loss)사용
positive sample과의 거리는 최대한 가깝게 만들고(inner product score는 최대로 만들고)
그와 동시에 나머지 negative sample과의 거리는 최대한 멀게 만들고(inner product score를 최소로 만들고)
positive inner product score와 negative inner product score의 softmax function으로 이루어짐

4. encoder의 성능을 측정하는 방법?
TOP-k accuracy score는 retrieve된 가장 점수가 높은 k개의 passage중 ground truth가 존재하면 1점을 부여하는 방식으로 정확성을 계산
MRC와 관련된 TOP-k retrieval score는 retrieve된 가장 점수가 높은 k개의 passage중 question의 정답을 실제로 포함하는 passage의 비율로 계산
extractive MRC의 경우는 실제로 지문 내에 정답이 있다면 굳이 ground truth가 아니여도 되긴 하니까 top-k retrieval score가 의미 있을 수 있어
5. inference
passage는 질문을 받기 전부터 corpus내의 모든 passage를 미리 embedding을 하여 저장해둠
query가 들어오면 query를 embedding하고 저장해둔 passage embedding들과의 유사도 점수를 전부 계산함
이중에서 유사도 점수가 가장 높은 passage를 가져옴
가져온 passage와 들어온 question을 MRC model에 넣어 만약 학습이 잘되었다면 정확하게 정답을 내놓을 것임

6. 학습방법을 개선하는 방법
MRC의 성능을 높여 정답을 정확히 내놓는거 물론 중요하지만 그만큼 중요한 것은 질문에 잘 맞는 지문을 잘 가져와야함
더 많은 데이터를 사용하거나 다른 전처리를 해보거나 데이터를 개선함
BERT보다 크고 최근에 나온 해당 task에 적합한 그러면서 더 정확한? pretrained language encoder를 사용
'딥러닝 > Machine Reading Comprehension' 카테고리의 다른 글
Machine reading comprehension에서 어려운 점 (0) | 2024.03.02 |
---|---|
Machine reading comprehension 개요 (0) | 2024.03.01 |
dense embedding encoder modeling -개요와 학습방법- (0) | 2022.05.26 |
dense embedding과 sparse embedding 비교 (0) | 2022.05.24 |
TF-IDF(term frequency - inverse document frequency) 기본 맛보기 (0) | 2022.05.20 |