NL-142, Contextual Fine-to-Coarse Distillation for Coarse-grained Response Selection in Open-Domain Conversations, ACL 2022

◼ Comment

  • 이 논문은 MRS에서 coarse 쪽 부분을 다룬 연구로 흥미로웠다.
  • 보통은 일반적인 poly-encoder (bi-encoder) 식의 방법을 많이 사용한다.
    • 왜냐하면, one-tower식으로 한번에 encoder을 통과시키면, 매번 임베딩 값을 계산해야하기 때문이다.
    • 따라서 이는 성능은 괜찮지만 속도 이슈가 있기 때문에 fine-grained에서 쓰고
    • coarse 쪽에서는 따로 인코딩하며 내적으로 유사도를 구하는식으로 사용한다.
    • 실제 사용할때는 벡터를 캐싱하는식으로..
  • 암튼, 이 논문에서는 입력을 바꾸는 것이다.
    • 기본적으론 context <-> response을 비교해서 적절한 response을 찾게 되는데
    • 이렇게말고 context <-> session(=context+response)을 비교하자는 것이다.
    • 그렇게하면 풍부한 정보를 비교할 수 있을테고 유사도가 높은 session에 해당하는 response가 후보가 되는 것이다.
    • 좀 더 세부적으론 3가지 방법이 있다.
    • 1. context <-> context후보 
    • 2. context<-> session 
    • 3. context <-> context + context <-> response
    • 2와 3은 컨셉은 같으나, 3에서는 각각을 비교해서 weighted sum을 하는 식이다.
  • 아무튼 이렇게 하면 기존의 데이터가 없기 때문에 새롭게 데이터를 구축한다.
    • 구축과정은 같은 response을 가진 context는 positive pair라고 생각한 것이다.
    • 근데, 실제로 response가 엄청 다양하다면 동일한 response가 많을까? 하는 생각이 든다.
  • 두 번째 contribution은 distillation이다.
    • student 모델은 bi-encoder (two-tower)이기 때문에 one-tower처럼, context와 response 사이의 attention이 이뤄지지 않는다는 것
    • 따라서 one-tower teacher 모델을 학습하고, distillation해서 student의 성능을 향상시킨다는 것이다.
  • 추가적으로 벡터 비교를 할 때는 찾아보니 다음의 라이브러리들이 있다.
    • https://ko.wikipedia.org/wiki/%EC%B5%9C%EA%B7%BC%EC%A0%91_%EC%9D%B4%EC%9B%83_%ED%83%90%EC%83%89
    • 실제 사용 (annoy): https://seokhyun2.tistory.com/49
    • 실제 사용 (sklearn): https://post.naver.com/viewer/postView.nhn?volumeNo=27366494&memberNo=18071586
    • 논문에서 사용: FAISS

0 Abstract

  • 우리는 retrieval 기반의 대화 시스템들에서 coarse-grained response selection의 문제를 연구한다.
  • 이 문제는 fine-grained response selection과 함께 중요하나, 기존의 문헌에서 덜 탐구되었다.
  • 이 논문에서, 우리는 오픈도메인에서 coarse-grained response selection을 위한 Contextual Fine-to-Coarse (CFC) distilled 모델을 소개한다.
  • 우리의 CFC 모델에서, query, candidate response 그리고 해당하는 context의 dense representations은 multi-tower 구조를 기반으로 학습되고 one-tower 구조로부터 학습된 보다 표현되는 knowledge는 multi-tower architecture (coarse-grained)로 distilled되어서 retriever의 성능을 향상시킵니다.
  • 우리가 제안한 모델의 성능을 평가하기 위해, 우리는 reddit comments dump와 twitter corpus을 기반으로한 2개의 새로운 데이터세트를 구축한다.
  • 두 개의 데이터세트에 대한 광범위한 실험결과들은 제안한 방법들이 기존의 베이스라인 모델들에 비해 모든 평가 메트릭에서 뛰어난 성능을 보여준다.

1 Introduction

  • query (context)의 발화가 주어졌을 때, retrieval-based dialouge (RBD) 시스템은 수많은 대화의 기록을 가지는 database에서 가장 연관성있는 response을 찾는 것을 목표로 한다.
  • RBD는 보통 두 가지 스테이지를 가지고 있다.
    • coarse-grained response selection (RS)
    • fine-grained response
    • 즉 N --> M으로 한번 후보를 추리고 M에서 하나의 response을 선택한다는 것이다.
  • coarse-graind RS 스테이지에서, retriever은 큰 database (miliions 혹은 그 이상)으로부터 candidate response의 리스트를 식별하고
    • fine-grained RS 모듈은 candidates로부터 가장 그럴듯한 response을 선택한다.
  • 최근 연구들은 fine-grained RS에 집중하고 다양한 복잡한 모델들은 query와 candidates 사이의 유사성을 계산한다.
  • 신뢰할만한 성능 향상이 있음에도 불구하고, fine-grained 스테이지의 성능은 제작된 candidate list의 퀄리티에 의해 불가피하게 제한된다.
  • 그래서, 높은 품질의 coarse-grained RS 모듈은 중요하고, 이는 기존의 문헌에서 덜 연구되었다.
    • 즉, coarse가 안좋으면 fine도 좋을 수가 업다는 것!!
  • 이 논문에서, 우리는 coarse-grained dialouge response retrieval의 테스크에 초점을 맞춘다.
  • 여기에는 두 가지 주요 챌린지가 있다.
  • 1) ad-hoc retrieval 혹은 question answering retireval와 같이 일반적인 텍스트 매칭 테스크들로부터의 다른점은, 대화의 context와 response 사이의 keyword overlapping이 거의 없다는 것이다.
    • 이것은 context 기반의 response을 식별하는것을 어렵게 한다.
  • 2) fine-grained response selection과 비교하여, coarse-grained 모듈들은 훨씬 많은 candidate response 사이즈를 다룬다.
    • 그래서, 복잡한 매칭 모델을 바로 적용하여 query와 response을 처리하여 유사도를 바로 계산하는 것은 많은 시간의 cost 때문에 비실용적이다.
  • 위에서 언급한 두 문제를 완화하기위해, 우리는 Contextual Fine-to-Coarse (CFC) distilled model을 오픈 도메인 대화에서 coarse-grained response selection을 위해 제안한다.
  • context와 response 사이의 매칭을 직접 하는 대신에, 우리는 새로운 테스크인 corase-graeind 검색을 위한 context-to-context 매칭을 제안하고
    • 이는 즉 contextual matching이다.
    • 즉 contextA - candidates가 주어졌을 때, candidates의 수 많은 context와 contextA와 비교해서 candidate을 추리겠다는 것이다.
  • query가 주어지면, 이것은 candidates에서 가장 유사한 것을 매칭하고 해당하는 response는 retrieved 결과로써 리턴된다.
    • 이 경우, contex들 사이의 훨씬 풍부한 keywords가 활용될 수 있다.
  • 계산 cost가 가능하면서 복잡한 모델의 장점을 유지하기 위해, 우리는 fine-grained retrieval module로부터 학습된 knowledge을 coarse-grained retrieval 프로세스에 distillate한다.
  • 평가를 위해, contextual matching을 위한 세팅에서 우리의 모델을 평가하기 위해 사용될 수 있는 데이터세트가 없다.
    • 왜냐하면 우리는 context와 context의 매칭이 필요하기 때문이고, context-response pairs와 같이 context-context의 쌍은  자연스럽게 사용가능하지 않기 때문이다.
  • 그래서, 우리는 Reddit comment dump와 Twitter corpus을 기반으로한 두 가지 데이터세트를 구축한다.
  • 광범위한 실험 결과들은 우리의 제안한 모델이 retrieval 정확성, perplexity, retrieved response의 relevance을 두 가지 데이터세트에서 모두 매우 높에 향상시킨다.
  • 메인 기여는 3가지이다.
    • 1) We propose a Contextual Fine-to-Coarse (CFC) distilled model for coarse-grained response selection in open-domain conversations; 
    • 2) We construct two new datasets based on Reddit comment dump and Twitter corpus, as a new benchmark to evaluate retrieval-based dialogue system; 
    • 3) We construct extensive experiments to demonstrate the effectiveness and potential of our proposed model in coarse-grained response selection in open-domain conversations. 
  • Both dataset and code will be released to facilitate further research on RBD systems.

2 Contextual Fine-to-Coarse Distillation Framework

  • retrieval-based 대화 시스템에서, candidate database는 수 많은 context-response pairs을 포함한다.
  • query가 주어졌을 때, (즉 query = 새로운 context) 목표는 query에 적절한 top-K response을 검색하는 것이다.
  • coarse-gain response selection을 위해, 우리는 contextual fine-to-coarse distillation 프레임워크를 제안한다.
  • 먼저, 우리는 contextual matching의 테스크로써 문제를 형식화한다.
    • 즉 response 대신에, context와 query을 매칭한다.
  • 두 번째로, 우리는 멀티타워구조를 활용해서 contextual matching에서 다른 text pairs의 유사도 계산을 다룬다.
  • 세 번째로, 우리는 knowledge distillation 요소를 제안하여 fine-grain 모듈을 위한 one tower 구조에서 학습된 query와 response 사이의 상호작용을 레버리지한다.

2.1 Contextual Matching

  • 오픈 도메인 response 검색에서 response와 query을 직접 매칭하는 것은 종종 불필요하고, 이는 꽤 낮은 검색 정확성을 보여줄 수 있다.
  • fine-grained RS (Fu et al. 2020)에서의 context-to-context 매칭의 최근 연구로부터 영감을 받아서, 우리는 contextual matching을 적용한다.
  • 이는 context와 query을 매칭하는 것이고 query와 가장 유사한 context에 해당하는 response을 리턴한다.
  • 우리는 match contexts을 매칭하는 다음의 방법을 고려한다.
  • Query-Context (QC)
    • QC 매칭에서, 우리는 query와 candidate contexts 사이의 유사도를 계산하고 가장 유사한 top-K contexts에 해당하는 response들은 retrieved 결과로 리턴된다.
    • QC 매칭을 사용한 직관은 유사한 contexts가 유사한 responses을 공유할 것이라는 것이다.
  • Query-Session (QS)
    • candidates session은 candidate context와 해당하는 response의 text을 concat시킨 것이고, 이는 우리가 볼 때 context 혼자보단 더 유익한 정보라고 생각한다.
    • QS 매칭에서, 우리는 candidate session과 query을 매칭하고 가장 유사한 top-K session에서의 response을 검색 결과로 리턴한다.
  • Decoupled Query-Session (DQS)
    • QS 매칭외에도, 우리는 또한 query와 candidate sessions과의 매칭하는 분리된(decoupled) way을 고려한다.
    • DAS 매칭에서, query와 context사이와 query와 response사이의 유사도들은 독립적으로 계산되고나서, query-session 유사도가 가중치합으로 얻게된다.
    • QS와 DQS 매칭은 실제로 다른 방법으로 query-session 유사도를 계산한다.

2.2 Multi-Tower Architecture

  • retriever로써, 이것은 효율성과 정확성 사이의 밸런스를 맞추는 것은 필수적이다.
  • low latency을 가지고 retriever로 많은 candidates을 검색을 위해, 뉴럴 기반의 모델들은 보통 멀티타워 구조로 설계된다. (그림2)
  • 멀티타워 모델에서, query와 candidates은 독단적으로 공통 vector space로 매핑되고, 매우 많은 candidates의 embeddings은 오프라인에서 미리 계산될 수 있다.
    • 이 방법에서, 빠른 sublinear-time 예측 방법들은 (nearest negihbor search 근사와 같은) 인퍼런스 페이즈동안 수용가능한 retrieval latency을 달성한다.
    • 참고: https://ko.wikipedia.org/wiki/%EC%B5%9C%EA%B7%BC%EC%A0%91_%EC%9D%B4%EC%9B%83_%ED%83%90%EC%83%89
    • 실제 사용 (annoy): https://seokhyun2.tistory.com/49
    • 실제 사용 (sklearn): https://post.naver.com/viewer/postView.nhn?volumeNo=27366494&memberNo=18071586
    • 논문에서 사용: FAISS
  • Two-Tower Model 
    • two-tower 구조는 QC와 QS 매칭에 적절하다.
    • QS 매칭을 예제로 들면, 그림 2(a)에서 dense session encoder $E_S(\cdot)$는 모든 candidate session을 d-dimensional space에서 real-valued embedding vectors로 매핑하고 index는 retrieval을 위해 모든 N session vectors로 구축된다.
    • 실행시, 다른 dense query encoder $E_Q(\cdot)$는 query을 d-dimensional vector로 매핑하고 (candidate) vector와 query vector와 가장 가까운 k candidate session을 검색한다.
    • 우리는 vector의 dot product을 query와 candidate session의 유사도로 사용한다. (Karpukhin et al. 2020을 따라서)
  • Three-Tower Model 
    • DQS 매칭을 위해, query, response, context의 dense representations들은 독단적으로 계산되고 구조는 three-encoder을 가진 three-tower로 고안된다.
    • 이는 query encoder $E_Q(\cdot)$, context encoder $E_C(\cdot)$, response encoder $E_R(\cdot)$ 각각 가지며, 그림 2(b)이다.
    • 유사하게, context와 response vectors은 계산되고 오프라인으로 캐싱되고 2개의 indexes들은 검색을 위해 구축된다.
    • query와 session의 최종 유사도는 query-context와 query-response의 dot product의 가중치합으로 계산된다.
    • weighting coefficient λ는 context 매칭 혹은 response 매칭에 편향된지 아닌지를 결정하기위해 조정될 수 있다.
  • Training Multi-Tower Model 
    • 우리는 two-tower와 three-tower 모델들의 학습을 같은 metric learning 문제로하여 통합한다.
    • goal은 positive pairs와의 유사도가 negative ones보다 높도록 매칭 공간을 학습하여 더 나은 embedding function을 학습한다.
    • 우리는 three-tower 모델 (DQS 매칭)의 학습으로 예제를 사용한다.
    • 수식적으로, 우리는 training set $D=\{ q_i,  \{ k^{+}_{i}, k^{-}_{i} \} \}^{N}_{i=1}$으로 표기한다.
    • 각 학습 인스턴스는 query $q_i$와 positive examples set $k^{+}_{i}$와 negative examples set $k^{-}_{i}$을 포함한다.
    • 그들중, $k^{+}_{i}$은 여러 개의 positive contexts와 여러 개의 positive responses을 포함하고, 유사하게 $k^{-}_{i}$은 여러 개의 contexts와 여러 개의 negative responses들을 포함한다.
    • 우리는 loss function을 동시에 모든 positive pairs의 negative log likelihood의 합으로 최적화한다.
    • 즉 분모는 query와 candidates(contex or session)간의 유사도의 exponential 합이 되는 것이다.
    • 분자는 그 중, positive pairs에 해당하는 유사도의 exponential 합이 되는 것이다.
    • 즉, 직관적인 개념은 모든 candidates중, positive와의 거리들만 가까워지도록 학습하겠다!
    • 일반적인 classification loss와는 다르군?
    • 여기서 유사도 함수는 다음과 같다.
    • 식 2의 k'의 embedding function E(·)는 k'의 type에 따라 $E_C(\cdot)$ 혹은 $E_R(\cdot)$일 수 있다.
  • Positive and negative examples 
    • contextual matching을 위한 multi-tower 모델들의 학습의 중요 이슈는 contex-context의 positive pairs을 찾는 것이다.
    • section 1에서 언급햇듯이, 우리는 정확하게 같은 response을 가지는 contexts는 서로서로 positive samples이고, 이는 신중하지만 신뢰할만한 전략이다.
    • 수식적으로, response r이 주어졌을 때, 만약 r에 해당하는 여러 contexts가 있다면, 우리는 랜덤으로 하나의 context을 query q로 선택하고 다른 contexts들은 q의 positive contexts로하고 r은 q의 positive response이다.
    • contexts와 responses의 negative samples in-batch 혹은 데이터세트의 샘플링으로 획득된다.

 2.3 Distillation from One-Tower Model

  • 멀티타워 구조에서, query와 candidates들은 그들의 embeddings으로 표현되고, 이는 정보의 손실을 야기할 수 있고 그들의 단조로운 상호작용 (inner product) 방식은 기능을 더욱 제한할 수 있다.
    • 즉 poly-encoder (여기서는 멀티타워) 식의 상호작용은 성능이 별로라는 것?
  • mutli-tower 모델과 비교하여, one-tower 모델은 보통 fine-grained RS에서 적용되고, 이는 query와 candidate 둘다를 concatenated input으로 하여 query와 candidate을 self-attention layer에서 cross-attention을 하게한다.
    • query와 candidate는 조인트하게 학습되면, 좀 더 유익한 representations이 수행될 수 있다.
  • one-tower model로부터 학습된 풍부한 표현을 활용하기 위해, one-tower 모델의 지식은 multi-tower로 distill되서 retriever을 강화시킨다.
  • Training One-Tower Model
    • distillation이전에, 우리는 one-tower 구조를 기반으로한 teacher model의 학습이 필요하다.
    • teacher model을 기반으로하는 QS 매칭의 학습으로 다음의 예시를 들어보자.
    • 추가적인 one-tower encoder은 query와 session이 관련있는지 (positive) 판별하도록 학습되고, 학습 objective는 BERT pre-training의 NSP 테스크와 비슷하다.
    • 형식적으로, training set $D=\{ q_i,  s_i, l_i \}$가 주어지면, $q_i$는 query이고, $s_i$는 candidate session이고 $l_i \in \{0, 1\}$으로 $s_i$와 $q_i$가 positive pair인지 아닌지를 가리킨다.
    • 좀 더 구체적으로, query와 candidate session가 주어지면, 모델은 $l_i$을 올바르게 예측하도록 학습된다.
    • 우리는 모든 타워모델들의 details을 table 1에서 요약한다.
    • multi-tower 및 one-tower 모델의 목표는 query와 candidate간의 유사성을 계산하는 것이지만 optimization 방법은 약간 다릅니다. 
      • 하나는 metric learning이고 다른 하나는 textual entailment과 유사합니다.
      • 왜 이렇게 했지? 각각의 효과가 다른가?
      • 아마도, multi-tower는 두 벡터를 비교하는 식이기 때문에 metric learning처럼 positive 부분의 확률을 키운거 같다.
      • 굳이, 두 벡터를 concat해서 MLP태워서 classification으로 멀티타워를 해결할 수도 있을거 같긴하다.
  • Fine-to-Coarse Distillation 
    • student model S-1의 distillation을 예제로 들면, 우리는 그에 해당하는 teacher model T-1을 학습했다고 가정한다.
    • query q가 주어졌을 때, contexts $C= \{ c^{+}, c^{-}_{1}, ..., c^{-}_{n}\}$와 그에 해당하는 label $y = \{1, 0, ..., 0\} \in R^{n+1}$가 주어졌다고 가정하고, 즉 하나의 positive context와 n개의 negative contexts가 주어지는 것이다.
    • 유사도 점수 vector는 S-1 모델로 계산된다고 가정하고 $z^s \in R^{n+1}$이고, 그리고나서 objective는 식1로 두 distribution의 KL divergence을 최대화하도록 하는 것과 같다. 
      • 두 분포: $softmax(z^s)$와 y
      • 여기서 softmax 함수는 score vector을 probability distribution로 바꾸는 것이다.
      • 즉, context와 query을 입력으로 받아 각각 embedding vector을 추출하고, 이 둘의 내적을 score라고 한다.
      • 그럼 각 context에 점수가 뽑힐텐데 총 n+1개의 candidate context가 있고, 이를 $z^s$라고하고 label y랑 KL divergence로 학습한다는 것.
      • listwise와 비슷한 개념이다.
      • 이는 근데 distillation은 아님.
    • one-hot label은 각 negative sample을 동일하게 다룬다, 그러나 각 negative sample와 query사이의 의 유사도는 다르다.
    • teacher model로부터의 knowledge을 distill하기 위해, 우리는 T-1 model을 사용해서 q와 C사이의 similarity vector을 계산하고 이를 $z^t \in R^{n+1}$으로 표기한다.
      • 이 때, T-1 model로 유사도는 positive logit에 해당하는 것을 사용한것인가?
    • 우리는 그리고나서, 두 분포 $softmax(z^s)$와 $softmax(z^t)$ 사이의 KL divergence을 최소하하는데, 이때 temperature T가 softmax에 적용되어서 saturation을 피하게 한다. (그림1)
    • fine-to-coarse distillation의 방법은 student model가 (멀티타워) teacher model (one-tower)의 predicxted label을 기존의 one-hot label대신에 soft target로써 예측하게끔 하는 것이다.
    • teacher model에 의해 예측된 labels을 fitting함으로써, multi-tower 모델은 structure이 변하지 않으면서, one-tower 모델로부터 좀더 정확한 유사도 점수의 distribution을 학습할 수 있다.

3 Datasets Construction

  • 우리의 모델의 성능을 평가하기위해, 우리는 Reddit comments dump와 Twitter corpus을 기반으로한 2가지 새로운 데이터세트들을 구축한다.
  • 우리는 학습 세트, multi-contexts (MC) test set와 Reddit과 Twitter에서 각각 candidate 데이터베이스를 생성한다.
  • Reddit의 경우, 우리는 추가적인 single-context (SC) test set을 생성한다.
    • The motivation for these settings is explained in § 4.4. 
    • 왜 reddit에서만하지?
  • 우리의 candidate database의 사이즈는 Twitter에서는 one million (백만)이고 Reddit에서는 ten million (천만)이고, 이는 response retrieval에 매우 챌린지하다.
  • 테이블 2는 자세한 통계를 보여준다.
    •  
  • 우리는 Reddit과 Twitter에 대해 데이터세트를 구축할때 같은 steps을 사용하고, 다른 큰 대화 코퍼스에서 이 방법으로 비슷한 데이터세트 또한 구축될 수 있다.
  • Preprocessing
    • 지루하고 분명치않은 콘텐츠를 필터링하고 검색 속도를 높이기 위해 컨텍스트 및 응답의 길이에 제한을 설정했습니다.
    • 우리는 context가 최소한 5개의 단어이상 128개의 단어보다 작게 포함하도록 제한하고, response는 5개 단어이상 64개 단어이하로 제한한다.
    • response의 길이를 제한하는 것은 특별한 장점이 있는데 왜냐하면, 우리의 통게에 따르면 많은 short response ("Fair Enough", "Thanks :D"와 같은) 들은 수 많은 (몇천개의) 다른 contexts을 가질 수 있기 때문이다.
  • MC test set 
    • 우리는 먼저, candidate database로부터 여러 개의 contexts을 가지는 response의 세트를 찾는다. (이를 R로 표기한다.)
    • R에서 각각의 response r에 대해, 우리는 여러개의 contexts $C_r$로부터 랜덤으로 context c을 선택하여 context-response (CR) pair을 만들고, 다른 $C^{-}_{r}$은 데이터베이스에 둔다.
    • 우리의 MC test set는 이러한 CR pairs으로 구성된다.
    • MC 테스트 세트의 각 response에는 여러 컨텍스트가 있으므로 이 response에 해당하는 데이터베이스의 다른 컨텍스트가 종료되므로 MC 테스트 세트에서 검색 정확도를 계산할 수 있습니다.
    • 예시로)
      • 발화A1|발화A2|발화X
      • 발화B1|발화B2|발화B3|발화X
      • 발화C1|발화X
      • 세 개의 대화 세션이 있다고하자.
      • 셋다 발화X의 response을 공통으로 가진다.
      • 즉, "발화B1|발화B2|발화B3" = C로 (CR) pair을 구축하고, 나머지 "발화A1|발화A2"와 "발화C1"은 $C^{-}_{r}$로 데이터베이스에 둔다는 것이다.
      • 이는 테스트세트로 테스트할때, $C^{-}_{r}$가 positive pair로 매칭되는지 보려고 하는 것일거다.
  • SC test set 
    • 우리는 Reddit 데이터세트에서 다른 test set (SC)을 생성한다.
      • Twitter에서는 안만드는데, 이는 DialogGPT로 평가를 하는데 DialogGPT가 reddit에 대해서 학습된 모델이기 때문. 
      • 즉 Twtitter SC test는 평가할 방법이 없다는 것
    • MC test set와 대조적으로, SC test 세트에서의 각 response는 오직 하나의 context만을 가진다. (즉 single-context)
    • 즉, response에 해당하는 정확히 일치하는 context가 데이터베이스에 없다.
      • 즉 response에 해당하는 context가 오직하나인 response들에 대한 것이란거
    • 명백히, retrieval 정확도 metric은 SC test 세트에서는 불가능하다.
    • 다음 장에서 SC 테스트 세트를 평가하는 다른 방법을 소개합니다.
    • SC 테스트 세트는 "unique" 컨텍스트에서 응답 검색의 품질을 평가할 수 있는 MC 테스트 세트를 보완합니다.
    • 두 테스트세트의 자세한 구성은 알고리즘에서 보여준다.
  • Candidate database 
    • 다양한 검색 방법들을 적용하기 위해, candidate database는 4개의 fields로 고안되었다. (context, response, session, response id)
    • 우리의 candidate database는 랜덤 context-response pairs로 구성된다.
    • 예외는, 위에서 언급햇듯이, $C^{-}_{r}$가 의도적으로 database에 결합된다는 것이다.
    • 즉 positive pairs은 위에서 말햇듯이 (MC, SC) 결합되고 negative pairs는 랜덤으로 contexxt-response쌍을 지어서 결합된다.
  • Train set 
    • 훈련 세트의 구성은 직관적이며 테스트 세트와 유사합니다.
    • responses과 그에 해당하는 여러 컨텍스트로 구성됩니다.
    • 수식적으로, 우리의 학습 세트는 $D=\{ r_i, c_{i,1}, ..., c_{i,q} \}^{N}_{i=1}, r_i$로 표기되고, $r_i$는 response이고 $\{ c_{i,1}, ..., c_{i,q} \}$는 response $r_i$을 가지는 모든 contexts이고 q는 $r_i$에 의존적인 수이다. (q ≥ 2)
  • 데이터베이스의 컨텍스트와 훈련 세트의 컨텍스트 간에 겹치는 부분이 없기 때문에 훈련 중 평가 메트릭을 과대평가할 수 있는 잠재적인 데이터 누출을 방지할 수 있습니다.
    • 학습 데이터도 똑같이 reddit, twitter을 기반으로 만들어진 것인데, 다른 세션들을 기반으로 한 것 뿐인가?

4 Experiments

  • 우리는 구축된 데이터세트에 대해 광범위한 실험들을 진행한다.
  • 이 섹션에서, 우리는 실험세팅, 평가 메트릭, 모델 성능, 사람 평가 등을 소개하여 제안한 모델의 효과성을 입증한다.

4.1 Comparative Models 

  • 베이스라인으로, 우리느 sparse representations 기반 방법으로써 BM25을 선택하고, 이는 text matching에서 실시나리오에서 널리 사용된다.
  • BM25 시스템과 두 개의 매칭 방법들 (QC, QS 매칭)을 기반으로, 두 retreivers은 획득되고 이를 BM25-QC, BM25-QS으로 각각 부른다.
    • 즉 QC: query vs context이고, QS: query-session
  • 우리는 dense representations 기반의 방법들로 몇 개의 multi-tower 모델들을 선택한다.
    • two-tower 모델들에서, 우리는 bi-encoders을 기반으로한 S-1와 S-2 모델과 비교한다.
    • 이를 BE-QC와 BE-QS라고 부른다.
  • three-tower 모델들에서, 우리는 tri-encoders을 기반으로한 S-3을 사용한다.
    • 이를 TE-DQS라 부른다.
  • 그리고 우리가 제안한 CFC 모델들의 변형들이 있다. (Contextual Fine-to-Coarse)
    • distillation한 것을 말하는거 같음.
    • student 모델이 주어지면, 우리는 먼저 그에 해당하는 teacher model(s)을 학습하고나서 teahcer model(s)로부터 학습된 knowledge을 student model로 transfer한다.
    • 우리는 3개의 student models S-1, S2, S-3을 distillation으로 학습하고 이를 CFC-QC, CFC-QS, CFC-DQS로 각각 부른다.
    • distilling S-3은 query-response와 query-context 둘다의 유사성을 계산해야 하므로 두 개의 teacher 모델을 훈련해야 합니다.

4.2 Implementation Details

  • BM25 방법을 구현하기 위해 Lucene 라이브러리를 기반으로 하는 강력한 검색 엔진인 Elasticsearch를 사용합니다(Białecki et al. 2012).
  • dense retrieval methods의 경우 FAISS(Johnson, Douze 및 Jegou 2019) 툴킷을 사용하여 retrieve candidate vectors를 검색합니다.
  • 타워 모델(1타워, 2타워 및 3타워 포함)의 모든 인코더는 bert-base로 초기화되며, 여기에는 12개의 인코더 레이어, 임베딩 크기 768 및 12개의 어텐션 헤드가 포함됩니다.
  • dense 모델(BE-QC, BE-QS, TE-DQS)의 경우 Reddit 및 Twitter에 대해 동일한 배치 크기 32를 사용하고 Reddit에서 30 Epoch, Twitter에서 10 Epoch를 훈련합니다.
  • teacher 모델(T-1, T-2, T-3-1 및 T-3-2)의 경우 동일한 배치 크기 16을 사용하고 Reddit에서 40 Epoch, Twitter에서 20 Epoch를 훈련합니다.
  • distilled 모델(CFC-QC, CFC-QS, CFC-DQS)의 경우 BE-QC, BE-QS, TE-DQS의 초기 체크포인트에서 시작하여 (공정한 비교를 위해 Reddit에서 20 Epoch, Twitter에서 5 Epoch) 각각 레딧에서 10개의 에포크를 추가로, 트위터에서 5개의 에포크를 추가로 훈련합니다.
    • 즉, student모델을 랜덤초기화는 아니고 teacher 모델을 학습하면서 중간의 early checkpoint에서 부터 시작한다는 것
    • 그리고 남은 epoch (reddit에선 30-20=10, twitter에서 10-5=5 epoch)만큼 추가 학습을 distillation한다는 것
  • 매개변수를 최적화하기 위해 학습률이 2e-4이고 준비 단계가 200인 Adam(Kingma and Ba 2014) 옵티마이저를 사용합니다.
  • knowledge distillation temperature를 3으로 설정하고 distillation loss을 1.0으로 설정했습니다. 
  • 모든 실험은 4개의 NVIDIA Tesla V100 32G GPU가 있는 서버에서 수행됩니다.

4.3 Automatic Evaluation Metrics

  • 리얼 시나리오에서, 우리의 retrievers을 평가하기위해, 우리는 다음의 3가지 automatic evaluation metrics을 사용한다.
    • Coverage@K, Perplexity@K and Relevance@K. 
  • 이전의 연구에 따르면, Coverage@K는 top-K retrieved candidates가 정답 response을 포함하는지를 평가하는데 사용된다고 한다.
    • 이것은 recall metric $R_M@K$와 동일하고, 이는 보통 fine-grained RS에서 사용되는 것으로 M은 candidate database의 사이즈이다.
    • 그러나 Coverage@K는 오직 MC test set을 평가하는데만 적절하다.
      • 왜냐하면 SC test 세트는 response에 대해 하나의 context만 주어지는 것이다.
      • 따라서, context가 주어졌을 때, 적절한 response을 찾기 위해 후보군의 context을 검색해봤자 적절한 response을 찾을 수 없다. (왜냐하면 후보군에 정답 response가 애초에 없기 때문)
      • 따라서 MC 에서는 coverage@k가 적절하나, SC에서는 다른 방법으로 평가한다.
    • 게다가, 이는 context와 response 사이의 many-to-many의 관계때문에 전체 retrieved quality을 평가할 수는 없다.
    • --> 그래서 보통 fine-grained RS에서는 많은 positive가 있는 경우는 precision을 같이 평가하긴 함.
  • 보충으로 우리는 pre-trained models, 즉 Perplexity@K 및 Relevance@K를 기반으로 하는 두 가지 자동 평가 메트릭을 제안합니다.
  • 검색된 top-K responses에대해서, DialogGPT-large는 query가 주어졌을 때, 검색된 response의 conditional perplexity을 계산하는데 사용된다.
    • DialogGPT는 Reddit 디스커션 thread으로부터 147M multi-turn dialogue에 대해 pretrained LM이고 그래서 우리의 생성된 Reddit 데이터세트를 평가하는데 매우 적절하다.
    • Perplexity@K는 top-K retreived responses의 perplexity의 평균이다.
  • Perplexity외에도, 우리는 query와 retrieved response 사이의 correlation을 계산한다.
    • 우리는 DialogRPT을 사용하는데, 이는 human-vs-rand task로 이루어진 large-scale human feedback data로 pre-trained되었다.
    • human-vs-rand task는 주어진 context에대해 response가 random response보다 얼마나 더 그럴듯하게 하는지 예측하는 task이다.
    • Relevance@K는 query와 top-K retrieved responses사이의 예측된 correlation 정도의 평균이다. 

4.4 Overall Performance

  • Dense (BE-QC, BE-QS, TE-DQS) vs. Sparse (BM25)
    • Table 3,4는 주요 결과들을 보여준다.
    • 이것은 dense methods이 sparse methods보다 모든 메트릭들에서 좋다는 것을 보여준다.
    • 모든 dense retrievers은 BM25보다 높은 retireval accuracy을 가지고, 이는 dense representations의 장점이다.
    • 게다가, dense retriever의 retrieval accuracy은 BM25 시스템들보다 K가 증가할때, 더 빠르게 증가하고, 이는 dense retriever가 recall rate에서 분명한 장점이 있음을 보여준다.
    • Perplexity@K에서, Reddit MC와 SC 테스트세트의 CFC-QS의 Top-20 평균 perplexity는 BM25-QS와 비교하여 11.1과 15.2만큼 감소한다.
    • Relevance@K의 경우 Reddit의 MC 및 SC 테스트 세트에서 CFC-QS의 상위 20개 평균 관련성은 BM25-QS에 비해 8.9% 및 9.3% 절대적으로 증가합니다.
    • PLM을 기반으로 하는 두 가지 평가 메트릭인 Perplexity@K 및 Relevance@K는 전체 검색 품질을 측정하는 반면 Coverage@K는 검색자가 골드 응답을 회상하는 능력을 측정합니다.
    • 세 가지 메트릭들은 우리의 모델에서 일관성 있으며, 이는 직관적이다.
    • 즉, 만약 retriever가 전반적인 검색 품질이 더 좋다면 골드 응답을 검색할 확률이 높아집니다.
  • Distillation Benefit 
    • 우리는 fine-to-coarse distilled 모델들의 성능 향상에 주의를 기울인다.
    • distilled models은 3가지 메트릭들에대해 명백히 성능 향상을 달성한다.
    • 명백한 패턴은 distilled 모델들은 작은 K에 대해 더 큰 성능향상을 갖는다.
      • Twitter 데이터세트로 예를 들면, CFC 모델들의 Top-500 retrieveal 정확도는 distillation후에 1.5~2.4 증가하고, 이 동안 Top-1 retireval 정확도는 4.6~6.7 증가한다.
    • Perplexity@K and Relevance@K에서, CFC 모델들은 비슷한 성능을 달성한다.
    • 위의 결과들은 우리의 student 모델들이 teacher models로부터 fine-grained knowledge을 상속 혹은 학습으로부터의 장점을 얻는것을 가리킨다.
  • Retrieval Method 
    • 다른 retrieval methods의 영향은 논의된다.
    • QC 매칭과 비교해서, QS와 DQS 매칭은 응답에서 제공하는 추가 정보로 인해 실제로 권장되어야 합니다.
    • 그러나, BM25 시스템은 response의 정보의 좋은 사용을 만들어내지 못한다.
      • 즉 BM25-QS 모델은 BM25-QC보다 명백히 좋다는 것을 Reddit과 Twitter 데이터세트 모두에서 보여주지 못한다.
    • 반면에, dense retrieval 모델들은 response을 효율적으로 활용가능하다.
      • 예를 들어, BE-QS는 BE-QC보다 Reddit의 MC test에서 response retrieval 정확도가 top-500에 관해서 7.9%p만큼 좋다.
      • QS와 DQS 매칭에서, 성능차이는 적다.
      • 특히, Reddit SC 테스트세트와 Twitter MC test에서 SC, 성능차이는 근소하다.
  • Difference Between Reddit and Twitter 
    • DialogGPT 및 DialogRPT는 Twitter에서 사전 훈련되지 않았기 때문에 Perplexity@K 및 Relevance@K는 Twitter 데이터 세트를 평가하는 데 적합하지 않습니다.
    • 따라서 Twitter용 SC 테스트 세트를 구축하지 않습니다. 
    • Twitter와 비교하여 우리가 사용하는 Reddit 데이터 세트는 더 일반적인 다중 턴 대화와 훨씬 더 높은 검색 난이도로 훨씬 더 큽니다.
    • Twitter의 상위 500개 검색 정확도는 60%에 도달한 반면 Reddit은 약 20%에 도달했습니다. 이는 공개 도메인 대화에서 거친 응답 검색 작업이 여전히 큰 도전 과제임을 나타냅니다.

5 Further Analysis

5.1 Effect of Database Size

  • 후보 데이터베이스의 크기가 모델의 성능에 미치는 영향에 대해 논의합니다. 
  • 다양한 후보 데이터베이스 크기(백만에서 천만)에 대해 Reddit의 MC 테스트 세트에서 BM25-QS, BE-QS 및 CFCBE-QS의 Coverage@500 메트릭을 비교합니다(그림 3).
  • Coverage@500은 데이터베이스의 크기가 커질수록 서서히 감소하는 경향을 보이는 것을 알 수 있다.
  • 데이터베이스의 크기를 늘리면 모델 성능이 급격히 떨어지지 않으며 이는 모델의 효율성과 견고성을 보여줍니다.

5.2 Human Evaluation

  • 모델을 추가로 평가하고 비교하기 위해 인간 평가 실험을 수행합니다.
  • Reddit 데이터 세트의 MC 및 SC 테스트 세트(각각 500개)에서 1000개의 쿼리를 무작위로 선택하고 각각 BM25-QS, BE-QS 및 CFC-QS 모델에 의해 Top-1 응답을 검색합니다.
  • 3명의 크라우드소싱 작업자에게 응답 순위를 매기도록 요청합니다.
  • 각 쿼리에 대해 애노테이터는 세 가지 모델의 검색된 응답 순위를 지정합니다.
  • 평균 순위 점수(1과 3 사이, 작을수록 좋음)와 승률을 쌍으로 비교하여 보고합니다.
  • 각각의 두 애노테이터에는 특정 수(약 200개)의 겹치는 주석 샘플이 있습니다.
  • 평가자 간 신뢰도를 계산하기 위해 Cohen의 카파 계수(Kraemer 2014)가 채택되었습니다.
  • 표 5와 표 6은 각 모델의 평균 순위 점수와 모델 간의 쌍별 비교를 각각 보고합니다.
  • CFC-QS의 평균 순위 점수가 가장 높으며, 대부분의 경우 CFC-QS가 BE-QS 및 BM25를 능가할 수 있습니다(74.7%~81.6%). 이는 CFC-QS가 Top-1 검색에서 분명한 우위를 점하고 있음을 나타냅니다.
  • 모든 Cohen의 카파 계수는 0.6과 0.7 사이이며, 이는 주석이 중간 수준의 일치에 도달했음을 나타냅니다.
  • 인간 평가의 결과는 증류에 의해 모델에 가져온 성능 향상을 추가로 확인합니다.
  • 우리는 사례 연구로 인간 평가와 함께 몇 가지 예를 선택하고 부록에 넣습니다.

5.3 Retrieval efficiency

  • reddit MC 테스트 세트에서 BM25-QS, BE-QS의 검색 대기 시간을 비교합니다. 
    • 이는 각각 sparse, two-tower 검색기의 효율성을 나타냅니다.
  • 배치 크기를 32로 수정하고 가장 유사한 상위 100개 후보를 검색합니다.
  • FAISS 인덱스의 도움으로 BE-QS에 의한 각 배치의 평균 검색 시간은 581.8ms입니다.
  • 반면 파일 인덱스를 사용하는 BM25 시스템의 평균 검색 시간은 1882.6ms로 BE-QS의 약 3배에 달한다.
  • 이는 덴스 리트리버가 검색 효율성에서도 이점이 있음을 나타냅니다.
  • BE-QS에 비해 상대적으로 열등한 것은 후보 데이터베이스의 임베딩을 계산하고 파이스 지수를 설정하는 것인데, 이는 상당한 시간이 소요되고 8개의 GPU로 천만 명의 후보에 대해 약 9시간이 걸립니다.
  • BM25 인덱스를 구축하는 데 약 10분밖에 걸리지 않습니다.

6 Related Work 

  • Fine-grained Response Selection 
    • 최근 몇 년 동안 검색 기반 챗봇에서 세분화된 선택 모듈의 성능을 향상시키기 위한 많은 작업이 제안되었습니다(Wu et al. 2016; Zhang et al. 2018; Zhou et al. 2018; Tao et al. 2019; Whang). 외 2019, Yuan 외 2019).
    • 사전 훈련된 언어 모델(PLM)의 급속한 발전으로 인해 최근 작업은 BERT와 같은 PLM을 활용하여 컨텍스트와 응답 간의 교차 주의 및 복잡한 교차를 모델링함으로써 최첨단(SOTA) 결과를 달성합니다.
  • Coarse-grained Response Selection 
    • 반면에, 거친 대화 검색은 중요하지만 거의 탐구되지 않은 분야입니다. 
    • 효율성에 의해 제한을 받는 응답 선택에는 일반적으로 BM25로 표현되는 희소 표현 기반 방법과 Dual-Encoder로 표현되는 조밀 표현 기반 방법의 두 가지 방법이 있습니다.

7 Conclusion

  • 이 논문에서, 우리는 Contextual Fine-to-Coarse (CFC) distilled model을 제안한다.
  • CFC 모델에서, 우리는 query-response와 query-context 두개의 매칭을 적용했다.
  • retrieval latency을 고려했을 때, 우리는 multi-tower 아키텍쳐를 사용해서 queries, response, 그에 해당하는 context의 denser representation을 배운다.
  • 추후 retriever의 성능을 강화하기 위해, 우리는 one-tower 구조 (fine-grained)로부터 학습된 knowledge을 multi-tower 구조 (coarse-grained)으로 disill한다.
  • 우리는 Reddit comment dump와 Twitter corpus을 기반으로 2개의 새로운 데이터세트를 구축하고 광범위한 실험으로 우리가 제안한 모델의 가능성과 효율성을 입증한다.
  • 추후 연구에서는, 우리는 어떻게 coarse-grained RS가 fine-grained RS의 강화를 도울 수 있는지 탐구할 것이다.

Reference

댓글