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
- 질의 인퍼런스
- ERNIE를 이용한 질의 토큰 임베딩
- 토큰 인퍼런스 결과에 attention 취해서 m개의 임베딩 생성
- 문서 인퍼런스
- ERNIE cls 토큰을 문서 임베딩으로 사용
- 질의-문서간의 유사도 계산
- m개의 질의 임베딩과 1개의 문서 임베딩간의 유사도를 계산
- m개의 유사도 값중에서 가장 큰 값을 유사도 간주
- 검색시에 poly attention
- 질의 인퍼런스
- ERNIE를 이용한 질의 토큰 임베딩
- 토큰 인퍼런스 결과에 attention 취해서 m개의 임베딩 생성
- 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은 품질 하락이 거의 없음
댓글