RocketQAv2, baidu, emnlp2021

Ruiyang Ren, et al., RocketQAv2: A Joint Training Method for Dense Passage Retrieval and Passage Re-ranking, EMNLP2021

RocketQA의 개선 버전인 RocketQAv2 제안 

  • dynamic listwise distillation 
    • retriever와 re-ranker를 동시에 학습하는 방법 
      • retriever는 dual encoder로 구성 
      • re-ranker는 cross encoder로 구성 
    • retriever는 re-ranker를 teacher로 distillation 함. dynamic distillation을 사용함 
  • hybrid data augmentation 
    • labeled positives, undenoised negatives, denoised negatives, denoised positives를 함께 사용함 

dynamic listwise distillation 

  • retriever는 re-ranker를 teacher로 distillation 함. dynamic distillation을 사용함
    • retriever가 부여하는 문단 점수가 re-ranker가 부여하는 문단 점수와 유사하게 되게끔 retriever를 학습함 
    • retriever가 각 문단에 부여하는 점수를 softmax를 취해서 확률값으로 표현함 
      • 질의 $q$와 문단 $p$간의 softmax 유사도 $s_{de}'(q, p)$. $de$는 dual encoder를 의미함 
      • $s_{de}(q, p)$는 질의 $q$와 문단 $p$간의 유사도 
      • $P_q$는 $q$의 positive, negative 문단들의 집합 
$$s_{de}'(q, p) = \frac{e^{s_{de}(q, p)}}{\sum_{p' \in P_q} e^{s_{de}(q, p')}} $$
    • re-ranker가 각 문단에 부여하는 점수도 softmax를 취해서 확률값으로 표현함
      • 질의 $q$와 문단 $p$간의 softmax 유사도 $s_{ce}'(q, p)$. $ce$는 cross encoder를 의미함 
      • $s_{ce}(q, p)$는 질의 $q$와 문단 $p$간의 유사도 
      • $P_q$는 $q$의 positive, negative 문단들의 집합 
$$s_{ce}'(q, p) = \frac{e^{s_{ce}(q, p)}}{\sum_{p' \in P_q} e^{s_{ce}(q, p')}} $$
      • KL-divergence를 loss로 이용해서 retriever 문단의 확률값들과 re-ranker 문단의 확률값들이 유사하도록 함 
    $$L_{KL} = \sum_{q \in Q, p \in P_q} s_{de}'(q, p)  \log \frac{s_{de}'(q, p)}{s_{ce}'(q, p)} $$  
    • re-ranker는 학습 데이터의 label을 참조해서 학습함 
      • loss는 다음과 같음. $N$는 training instances 수 
    $$L_{sup} = - \frac{1}{N} \sum_{q \in Q, p+} \log \frac{e^{s_{ce}(q, p^+)}}{e^{s_{ce}(q, p^+)} + \sum_{p^-} e^{s_{ce}(q, p^-)}}$$ 
    • 전체 loss는 다음과 같음. 
      • 이 loss를 어떻게 사용하는지? 
    $$L_{final} = L_{KL} + L_{sup}$$ 

    hybrid data augmentation 

    • labeled positive, undenoised hard negative, denoised hard negative, denoised positive를 함께 학습에 사용함 
    • 그림2에 hybrid data augmentation을 위한 방법이 설명되어 있음 
    • undenoised hard negatives 
      • rocketQA의 retriever를 이용해서 문단 검색함. 
        • 이 retriever는 rocketQA의 1단계 dual encoder 모델임
      • 검색된 문단 중에서 랜덤으로 문단을 선택해서 negative로 사용함. 
    • denoised hard negatives 와 denoised positives 
      • rocketQA의 retriever를 이용해서 문단 검색함. (retriever는 rocketQA의 1단계 모델임) 
      • rocketQA의 re-ranker를 이용해서 denoised hard negatives와 denoised positives를 선정함 
        • rocketQA의 re-ranker는 rocketQA의 2단계  cross encoder 모델임 

    implementation details 

    • retriever는 rocketQA의 1단계 모델인 dual encoder로 초기화함 
    • re-ranker는 rocketQA의 2단계 모델인 cross encoder로 초기화함 
    • batch size 96으로 3 epoch 학습함 
    • positive와 negative의 비율을 MS MARCO는 1:127, Natural questions (NQ)에서는 1:31로 함 

    실험 결과 

    • table 3: re-ranker를 이용한 문단 검색 결과 
      • re-ranker는 rocketQAv2의 re-ranker를 이용하고, retriever로 rocketQA retriever를 사용한 경우와 rocketQAv2 retriever를 사용한 경우의 품질 차이가 크지 않음 
        • rocketQA와 rocketQAv2의 retriever 품질 차이가 별로 없거나, 혹은 retriever의 품질이 re-ranker에 큰 영향을 안 줄 수도 있음. 
    • table 4: 
      • dynamic distillation 대신 static distillation을 사용하면 품질 하락 있음. 
      • listwise 대신 pointwise 사용하면 품질 하락 있음 
      • denoised instance를 사용하지 않으면, 품질 하락 있음 
    • in-batch negatives 추가 사용 
      • in-batch negatives를 더 추가하더라도 품질 향상은 없었음. 

    기타 

    • dynamic listwise distillation이 좋은 결과를 보인 듯 
    • undenoised hard negative를 제거했을 때의 실험 결과도 있으면 좋을 듯. 

    댓글

    이 블로그의 인기 게시물

    utf-8과 utf8