ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Phrase Retrieval Learns Passage Retrieval, Too
    NAVER AI TECH 2023. 7. 5. 02:42

    이전 논문(Learning Dense Representations of Phrases at Scale)에서는 dense phrase model이 산출한 결과값이 곧 question에 대한 정답이었다. 즉 비교대상이 retrieval model & reader model이었다. (이전 블로그 글 참조)

     

    하지만 dense phrase model은 retriever model로서도 기능할 수 있다. maximmum score of phrases within the passage를 해당 passage의 점수로 사용하면 된다. 이전 논문에서 사용한 모델 그대로 retriever 모델로써의 성능을 평가해보았더니 아래와 같은 결과가 나왔다. 기존 DPR 모델을 상회하는 성능을 보여주는 것을 알 수 있다.

     

     

    어떻게 이런 결과가 나올 수 있었을까? 먼저 DPR과 DensePhrases의 차이점을 알아보자.

      DPR DensePhrases
    length of retrieval unit x 100 20
    initialized with BERT SpanBERT
    negatives in-batch, hard in-batch, in-passage

     

    저자는 DPR의 hard negatives와 DensePhrases의 in-passage negatives의 차이에 관심을 두었다.

    • Hard Negatives: question과 연관성이 높으나 answer를 포함하지 않는 samples를 negatives로 활용
    • In-passage Negatives: 동일 passage 내 answer를 포함하지 않는 phrases를 negatives로 활용

     

    저자는 in-passage negatives가 hard negatives와 비슷하게 기능했을 것이라고 예상했다. 한편, 쉬운 과제인 $L_{topic}$과 어려운 과제인 $L_{hard}$의 negatives 활용 여부에 따른 추이를 살펴보았다. ($L_{topic}$의 경우 gold passage와 topic이 다른 samples를 구별해야 하고, $L_{hard}$의 경우 gold passage와 topic이 유사한 samples를 구별해야 한다.)

     

    in-batch 방법이 $L_{topic}$을 줄이는 데 큰 도움을 주고 in-passage 방법은 $L_{hard}$를 줄이는 데 큰 도움을 준다는 사실을 확인할 수 있다. 그렇다면 DensePhrases에 hard negatives도 추가하면 성능이 더 올라가지 않을까? 애석하게도 성능 향상이 거의 없거나 오히려 성능이 떨어졌다. 이로부터 in-passage 방법이 좋은 phrase representations을 만드는 데 효과적이라고 해석할 수 있다.

     

    한편, 위 그림에서 확인할 수 있는 한 가지 사실은 DensePhrase가 DPR에 비해 $L_{topic}$이 높다는 것이다. 그렇다면 topic이 fine-grained entailment 보다 중요한 과제에서 성능이 떨어질 수 있다. 이 부분을 어떻게 극복할 수 있을까? 논문에서는 query-side fine-tuning 방법을 바꿨다.

     

    기존 Loss
    새로운 Loss

    차이점은 단 하나다. 위에서 $TEXT(s)=a^*$였던 부분이 $d(s) \in D^*$로 바뀌었다. 앞에서는 추출된 phrase와 answer가 일치할 때의 Loss를 최소화했다면, 이번에는 정답이 포함된 document 내 phrases와의 Loss를 최소화하는 방향으로 query encoder를 학습한다. 결과적으로 모델은 관련 문서 내 아무 phrases나 retrieve 하도록 훈련된다. 해당 방법을 통해 topic이 중요한 과제인 Entity Linking이나 Dialogue에서의 성능이 향상되었음을 확인할 수 있다.

     

     

    마지막으로 논문은 용량 및 성능의 효율성 문제를 다룬다. 기본적으로 하나의 passage에 다수의 phrases가 있으므로 DensePhrase는 multi-vector passage encoder라고 볼 수 있다. DensePhrase는 용량-성능 효율성 문제를 풀기 위해서 다음과 같은 방법을 사용한다.

     

    1. passage 내 일부 phrases를 filtering 한다. 해당 작업은 gold start/end positions를 활용한 binary cross entropy의 도움을 받은 filter layer를 통해 이루어진다. (이전 논문에서 차용한 방법이다.)
    2. 추가적으로 선별된 phrases를 indexing 할 때 optimized product quantization 방법을 사용하여 데이터를 압축하였다. product quantization을 가볍게 설명하면 다음과 같다. 원본 데이터 -> 서브 데이터로 분할 -> 클러스터링 -> 각 서브 데이터를 클러스터의 centroid index로 매핑
    3. 손실된 정보로 인해서 성능이 떨어지는 것을 막기 위해 quantization-aware training을 진행하였다. 

    위 그래프를 통해서 307GB일 때와 69GB일 때 성능 차이가 나지 않음을 확인할 수 있다.

     

    이전 버전 논문을 자세히 읽고 왔기 때문에 어렵지 않게 이해할 수 있었다. 21년도 9월에 나온 논문인데 23년 6월인 지금 또 어떤 방법들이 나왔을지 궁금하다. 한편, 한국어 데이터셋에 DensePhrase를 적용한다면 어떤 성능을 보일지도 궁금하다.

     

     

    Reference

    Lee, J., Wettig, A., & Chen, D. (2021). Phrase retrieval learns passage retrieval, too. arXiv preprint arXiv:2109.08133.

    'NAVER AI TECH' 카테고리의 다른 글

    Learning Dense Representations of Phrases at Scale  (0) 2023.07.04
    BERT  (0) 2023.06.29
    Attention Is All You Need(2)  (0) 2023.06.09
    NextRise 2023, Seoul 회고록  (0) 2023.06.04
    CleanLab  (0) 2023.06.04

    댓글

Designed by Tistory.