Pre-trained Language Model for Web-scale Retrieval in Baidu Search, kdd2021

Yiding Liu et al., Pre-trained Language Model for Web-scale Retrieval in Baidu Search, kdd2021

요약 

  • baidu의 pre-trained model인 ERNIE를 이용한 검색 모델에 대한 내용이다. 
  • 검색의 2단계 중에서 첫번째 단계인 retrieval 를 위한 모델임 
    • 검색의 첫단계 = retrieval : 대량의 문서 중에서 관련있을 법한 문서를 찾는다. 
    • 검색의 두번째 단계 = ranking : 첫번째 단계에서 찾아진 문서들을 순위화 한다. 
  • 본 논문에서 다루는 웹검색의 주요 이슈 3가지: 
    • semantic matching
      • 기존 term matching 방식은 질의텀과 문서텀이 다르면 검색이 안 된다. 
      • 논문에서는 ERNIE bi-encoder 방식으로 문제를 해결한다. 
    • long-tail query 
      • tail query는 기존에 나타난 적이 별로 없는 질의여서 정보가 별로 없다. 
      • 논문에서는 multi-stage training을 이용해서 문제를 해결한다. 
    • deploying 
      • 논문에서는 term matching 방식과 semantic matching 방식을 함께 사용한다. 
      • lightweight post-retrieval filtering도 제안한다. 

Model Architecture 

  • bi-encoder backbone 
    • 질의 $q$와 문서 $d$의 유사도를 다음과 같이 $f(q, d)$로 계산한다. 

    $$f(q, d) = sim(\phi(q;\theta), \psi(d; \beta))$$

        • $\phi$는 질의 인코더이고, $\psi$는 문서 인코더이다. 각각 $\theta$와 $\beta$를 parameter로 사용한다. 
        • 질의 임베딩과 문서 임베딩을 각각 생성하고, 임베딩간의 유사도로 질의-문서간의 유사도를 구하는 방식 
        • 본 논문에서는 질의 인코더와 문서 인코더가 같다. 
    • poly attention 
      • 학습에서 사용하는 방법과 검색 시점에 사용하는 방법이 다르다. 
        • 질의 인퍼런스 방법이 다르고, 문서 인퍼런스는 동일하다. 
        • 학습시에는 질의에 대해서 m개의 representation을 생성하고, inference 시에는 1개의 representation을 생성한다. 
      • 학습에서 poly attention 
        • 질의 인퍼런스 
          1. ERNIE를 이용한 질의 토큰 임베딩 
          2. 토큰 인퍼런스 결과에 attention 취해서 m개의 임베딩 생성 
        • 문서 인퍼런스 
          • ERNIE cls 토큰을 문서 임베딩으로 사용 
        • 질의-문서간의 유사도 계산 
          1. m개의 질의 임베딩과 1개의 문서 임베딩간의 유사도를 계산
          2. m개의 유사도 값중에서 가장 큰 값을 유사도 간주 
      • 검색시에 poly attention 
        • 질의 인퍼런스 
          1. ERNIE를 이용한 질의 토큰 임베딩 
          2. 토큰 인퍼런스 결과에 attention 취해서 m개의 임베딩 생성 
          3. m개의 임베딩을 mean pooling해서 1개의 임베딩 생성 
        • 문서 인퍼런스 
          • ERNIE cls 토큰을 문서 임베딩으로 사용 
        • 질의-문서간의 유사도 계산 
          • 질의 임베딩과 문서 임베딩간의 유사도 
        • 질의당 하나의 임베딩이 생성되므로, ann을 1번만 검색하면 됨 
          • 실서비스시에 현실적인 방법으로 생각됨 


    • optimization
      • pairwise loss 방식임 
    • training data mining 
      • positive docs : 검색 결과에서 클릭을 받는 문서 
      • strong negative docs : 검색 결과로 제공되었지만 클릭을 받지 못한 문서 
      • random negative docs : in-batch에서 다른 질의의 문서들 
      • 수동 구축한 labeled data: 
        • 질의와의 관련성에 따라서 문서에 0 ~ 4 점을 부여함.  
        • 4점 문서는 질의와 관련성이 높은 문서이고, 0점은 관련성이 없는 문서임

    training paradigm 

    • 4단계로 학습을 진행한다. 1) pretraining, 2) post-pretraining 3) intermediate fine-tuning, 4) target fine-tuning 
    • pretraining 
      • 웹문서에는 다양한 문서들이 있으므로, pretraining 단계에서는 다양한 문서를 이용한다. 
      • MLM(masked language model)과 NSP(next sentence prediction) task로 학습한다. 
    • post-pretraining
      • baidu의 검색 질의와 문서를 이용한다. 
        • 1달치 검색 로그를 이용하고, 수백억건의 데이터이다. 
      • pretraining에서는 문서만을 이용했는데, post-pretraining에서는 질의도 함께 이용한다. 
      • MLM(masked language model)과 NSP(next sentence prediction) task로 학습한다. 
        • 질의와 문서 제목을 concatenation해서 데이터로 사용한다. 
        • NSP는 질의의 다음 문장으로 클릭한 문서를 사용한다. 
    • intermediate fine-tuning
      • post-pretraining에서 사용했던 검색 로그 데이터를 이용한다. 
      • pair-wise loss로 모델을 학습한다. 
        • positive docs: 클릭 받은 문서 
        • negative docs = strong negative docs + random negative docs 
    • target fine-tuning 
      • 수동 구축한 데이터를 이용한다. 
      • pair-wise loss로 모델 학습한다. 

    deployment 

    • embedding compression & quantization 
      • embedding 저장 공간과 전송 비용을 줄이기 위해서 compression과 quantization을 한다. 
      • embedding compression 
        • compression layer를 둬서, 768차원을 256차원으로 줄인다. 
        • 약간의 정확도 하락이 발생한다. 
      • embedding quantization 
        • float32를 int8로 quantization 한다. 
        • 질의-문서간의 유사도를 구할때는 복구한다. (당연하게도, 정확하게 복구되지는 않음) (appendix 참조) 
    • system workflow 
      • text matching, semantic matching, post retrieval filtering의 3가지 모듈로 구성된다. 
      • text matching으로 검색된 문서에 대해서 semantic matching 점수도 부여한다. 
      • semantic matching으로 검색된 문서에는 text matching 점수도 부여할 듯. 
      • post retrieval filtering은 text matching과 semantic matching으로 검색된 문서들에 대해서, GBRank, RankSVM 등의 기법으로 filtering한다. 
        • 자질은 text matching 점수, semantic matching 점수, click through rate 등을 이용한다. 

    offline evaluation 

    • datasets 
      • 수동 구축한 데이터
        • 6,423개의 질의와 147,341개의 (질의, 문서) 쌍으로 구성. 질의당 평균 22개의 문서 
      • 자동 구축한 데이터 
        • auto-rand: random 추출한 18,247개 질의, 112,091개의 (질의, 문서) 쌍으로 구성 
        • auto-tail: 78,910개의 tail 질의, 750,749개의 (질의, 문서)쌍으로 구성. tail 질의는 1주일에 10회 미만으로 검색된 질의 
        • positive docs: baidu 검색 10등까지의 문서 
        • negative docs: 다른 질의로 검색된 상위 10등까지의 문서 
    • evaluation metrics 
      • positive negative ratio: pair의 우열을 맞게 평가한 개수 / pair의 우열을 잘못 평가한 개수 
      • recall@10 
    • evaluation results 
      • multi-stage training이 효과가 있음 
      • random queries보다 tail queries에서 품질 향상이 더 있음 
        • tail query에는 navigational query에 별로 없어서 semantic matching 효과가 더 있을 듯. 
      • 의견) online system은 reranking 모듈이 있을텐데, online system보다 결과가 좋다? 
        • 추측으로는 online system에서 제안하는 모델을 retrieval에 사용한 경우와, 기존 모델을 retrieval에 사용한 경우로 생각됨 

    online evaluation

    • interleaving comparison: 잘 모르겠음 ㅠㅠ 
    • online A/B test : 
      • 클릭 빈도가 0.31% 증가 
      • click-and-stay 빈도가 0.57% 증가 
      • average post-click dwell time이 0.62% 증가 
      • click through rate가 0.3% 증가 
      • 의견) 향상폭이 크지는 않은거 같은데, 다수의 척도에서 품질 향상이 있어서 품질 향상이 있는 것으로 생각됨 
    • baidu에 적용한 이후의 품질 측정: dcg, side-by-side comparison 

    offline ablation study 

    • vanilla bi-encoder를 baseline model로 사용 
    • poly-attention, in-batch negative가 품질 향상에 기여를 함 
    • compression은 저장공간을 많이 줄여줌. 다만 품질 하락이 있음 
    • quantization은 품질 하락이 거의 없음 






    댓글

    이 블로그의 인기 게시물

    utf-8과 utf8