InhyeokYoo / inhyeokyoo.github.io

MIT License
1 stars 1 forks source link

옮길거 #4

Closed InhyeokYoo closed 6 months ago

InhyeokYoo commented 2 years ago

https://arxiv.org/pdf/2010.06467.pdf

다큐먼트 랭킹의 경우 symmetric하지 않음. 따라서 semantic similarity가 qeur-document 연관성을 그대로 측정하기는 어려울 수 있음.

MS MARCO: 데이터 셋

Text ranking의 formulation은 구조화되지 않은 corpus/text의 collection \mathcal C = {d _i}가 있다고 가정. \mathcal C는 매우 크기 때문에, computational efficiency가 고려가 되야 함.

텍스트의 길이는 다양하므로, 텍스트의 구성이나 처리방법, 랭킹에 대한 최종적인 세분화 정도는 독립적일 수 있다. 예를 들면, 논문 같은 경우 타이틀이나 초록만 검색하게끔 고를 수 있다. 이 겨우 아티클에 대한 일부 포션만 다루게 된다. 이에 대체되는 방법은 아티클을 파라그래프로 나누고 각 파라그래프를 검색에 대한 유닛으로 바라보는 것이다. 즉, 시스템은 파라그래프에 대한 리스트를 결과로 반환하게 된다. 또 다른 방법은 파라그래프에 대한 evidence를 취합하여 랭킹하는 것이다. 이는, 파라그래프를 분석의 기본 단위로 취급하지만, 글 자체를 랭킹하는 것은 이로부터 얻어진 파라그래프가 된다.

랭킹을 목적으로 문서를 passage로 나누고 여러 문서의 granularity로부터 evidence를 통합하는 것 (이를 passage retrieval이라고도 함)은 1990년대에 많이 있었음. 이 경우 중요한 것은 적절한 수준의 granularity를 결정하는 것이 까다로울 수 있다는 것임. 예를 들어 이메일 같은 경우 개개의 이메일로 진행해야될지, 이메일의 연속을 봐야할지 어려움.

텍스트의 길이는 트랜스포머를 활용한 랭킹에도 중요한 개념임. 왜냐하면 시퀀스를 정해놓기 때문에 긴 문장을 의미있게 인코드하기가 어렵고, 이에 따른 메모리 이슈가 있음.

유저가 사용하는 짧은 키워드 쿼리는 단지 information need에 대한 표현: 이를 anmoalous state of knoledge (ASK)라 함. 따라서 쿼리랑 인포메이션 니드는 엄밀히 말하여 동의어가 아니다.

TREC에서는 인포메이션 니즈를 '토픽'으로서 조작할 수 있게 한다. Ad hoc retrieval를 위한 TREC topic은 다음과 같다:

대부분의 IR 이밸류에이션에서 타이틀은 쿼리로서 사용. Narrative가 더 많은 정보를 포함하고 있는 것은 사실이나, 대부분의 경우 네러티브를 랭킹 모델에 넣는 것은 안 좋은 결과를 불러옴 <- 토픽과 연관없는 term이 많기 때문.

도메인에 따라 다르긴 하지만, 일반적으론 타이틀/타이틀+디스크립션 조합이 백 오브 워즈 쿼리에서 좋은 결과를 냄. 그러나 효율적인면에서 이 둘의 차이는 없다. 그럼에도 불구하고 여기서 핵심은 랭킹모델에 들어가는 인포메이션 니드의 표현이 종종 retrieval effectiveness에 실질적인 효과를 갖는다는 점이다.

다음과 같이 인풋을 더 자세하게 표현하여 텍스트 랭킹 문제를 표현할 수 있다: 쿼리 $q$로 표현된 인포메이션 니드가 주어질 때, 텍스트 랭킹 태스크는 유한한 임의의 텍스트 컬렉션 $\mathcal C = {d _i}$로부터 관심있는 메트릭(e.g. nDCG, AP, etc.)을 최대화하는 k개의 랭킹 리스트 ${d _1, \cdots, d _k}$를 반환하는 것.

랭킹 테스크는 또한 tok-k retrieval/ranking 이라고도 불린다.

랭킹을 수행하는 "것"은 {ranking, retrieval, scoring} × {function, model, method, technique . . . } 등으로 불리며, 가끔은 "시스템" ("the system")이라고도 불린다.

여기서 중요한 차이점은 랭킹은 일반적으로 텍스트의 랭크드 리스트을 구성하는 작업을 의미하고, 이를 트랜스포머 기반의 모델에 바로 적용하여 top k를 뽑기에는 비실용적이다. 대신, 모델은 키워드 기반의 검색결과에 대해 문서의 후보를 rerank하기도 한다. 이를 formal하게 풀어쓰면 랭킹은 text의 리스트 $R = {d _1, \cdots d _k}$를 받아 또다른 리스트 $R' = {d' _1, \cdots d' _k}$을 만든다. 여기서 R 프라임은 R의 permutation이다. 모든 코퍼스를 reranker에 넣게 되면 개념적으로 랭킹과 리랭킹이 동일해지지만, 실제로 이 둘은 전혀 다른 테크닉을 사용한다.

2.3 Releavance

마지막으로 인포메이션 니드의 표현으로서의 쿼리를 텍스트의 "좋음"으로 측정하는 방법을 알아보자. 이러기 위해서는 metric이 필요하다. 궁극적으로 메트릭은 관련성(relevance)과 관련있으며, 이는 텍스트와 특정 인포메이션 니드 사이의 관계를 나타낸다. 어떤 텍스트는 information need를 해소할 수 있는 경우 관련이 있다고 말한다. 그러나 이를 이진적으로 다루는 것은 간단화한 것으로, 다차원에서 서열척도(ordinal scale)을 통해 연관도를 특성화하는 것이 더욱 정확한 평가를 가능하게 할 것이다.

연관도는 정확하게 정의하기 어려운 개념이다. 따라서 topical relevance (텍스트의 토픽이나 주제가 인포메이션 니드와 맞아 떨어지는가?), cognitive relevance (텍스트가 유저에게 이해할 수 있는 것인가?), situational relevance (텍스트를 통해 문제를 바로 해결할 수 있는가) 등의 개념들이 있다.

이를 설명해보자. 텍스트의 topic이 연관은 있지만, 전문가를 위해 쓰여져 있어서 검색자가 이해하지 못하는 경우가 있다. 이 경우 cognitive perspective로부터 연관이 없을 수 있다. 이번에는 유저가 특정한 결정을 내리기 위해 정보를 찾는 경우로 생각해보자. 텍스트의 topic이 연관이 있고, 유용한 정보를 제공해주긴 하지만, 이 결정에 실행가능한 조언을 못 주는 경우도 있을 것이다. 이 경우 topically relevant하다고 하지만, 유용하지는 않다 (즉, situational relevance가 없다).

InhyeokYoo commented 2 years ago

랭킹 모델을 개발한다고 해보자. 이때 가장 중요한 것은 유저에 눈으로 바라보는 것이다. 텍스트에 대한 유저의 특정적인 판단은 복잡한 인지적인 과정을 거친다 (즉, 인포메이션 니드를 위해, 다른 누구도 아닌 '내가' 텍스트가 연관있는지 아닌지를 판단함). 따라서 연관성의 판단은 특정한 사람의 평가를 나타내는 것이고, 이러한 사람을 assessor (annotator)라고 한다. 따라서 연관성을 평가하는 것은 주관적인 일이고, "진실"되지 않으며, 텍스트의 고유한 성질이 아니며, assessor가 "풀어야"한다. 다르게 말하면, 누구나 진실이나 사실과는 다르게 누구나 연관성에 대한 자기만의 표현이 있고, 이는 모두 옳다고 할 수 있다.

이런 식으로 NLP 어플리케이션에서 휴먼 어노테이터에 따라 연관성은 조금씩 달라진다. 예를들어 진짜 POS/dependency 관계가 두 단어 사이에 있을 때, 훈련된 어노테이터들은 POS에 대해 대부분 같은 의견을 갖는다. 그리고 서로 의견이 다른 경우 POS에 대해 적절하게 정의하는 것을 실패한 것으로 간주할 수 있다. 어노테이터들의 POS에 대한 '의견'이라는게 조금은 이상할 수 있으나, 연관성이라는 것이 원래 그렇다. 바로 텍스트와 인포메이션 니드 사이의 관계에 대한 assessor의 의견이 연관성이다.

이러한 점에서 살펴보았을 때, assesor 사이의 의견차이가 있는 것은 놀랍지 않으며, 중요한 시사점은 assesor의 일치여부가 NLP 연구원이 human annotation task에 대해 만족하는 값보다 훨씬 낮다는 것이다 (κ > 0.9이면 "좋은" agreement값을 나타냄). 연구자들은 이에 대해 더 좋은 annotation 가이드라인이 필요하다고 생각하지만, 실제로는 이는 불가능하다.

서로 다른 assessors가 제공한 relevance judgments간의 일치여부가 낮은 이유는 무엇일까? 이를 위해선 우선 이러한 실험에 대한 setup을 이해하는 것이 중요하다. 결국 인포메이션 니드는 개개인에게서 발생하기 때문이다. TREC에선 human assessor가 정보 탐색 과정에서 비교적 초기에 information need을 최대한 명확하게 표현하는 주제를 개발한다. 토픽은 초기의 exploratory searches를 통해 formulate하지만, 텍스트를 심도 있게 정독하기 전에 진행된다. 그 후 평가자들한테 배포되며, 토픽을 만든 사람들이 시스템 아웃풋을 평가한다.

따라서 만일 다른 assessor로 하여금 relevance judgments에 대해 독립적인 set을 생성하도록 한다면 (e.g. POS 태깅을 multiple annotators에게 요청하여 inter-annotator agreement를 계산), 이러한 테스크는 information need에 대한 특정한 외부의 표현이 된다 (e.g. TREC topic) 그러므로, 두번째 사람은 연관성을 이러한 표현의 해석의 관점으로 판단한다. 실제로 요구하는 정보의 특성은 사용자의 머리속에 있는 인지적인 상태라는 것을 기억하자 (i.e., Belkin’s anomalous state of knowledge.). 또한, 어떤 경우에는 토픽의 설명이 시작해야 하는 실제 정보에 대한 실제 표현조차 되지 않을 수 있다. 세부 사항이 누락될 수 있고 표현 자체에 불일치가 있을 수도 있다. 연관성에 대한 모순은 만약 유저가 완전히, 철저히 연관성에 대한 파라미터를 명확하게 할 수 있다면 검색할 필요조차 없을 수 있다는 것에 있다. 이럴려면 유저는 원하는 정보를 이미 알고있어야 하기 때문이다.

앞서나온 TREC의 figure를 보며 구체적인 예시를 들어보자. 불곰 (brown bear, grizzly bear)에 대한 문서는 과연 이 토픽과 연관이 있을까? 이는 실제로 과거에 진지하게 토론되었던 주제 중 하나이고, 이와 비슷한 토론으로는 QA 맥락에서의 트럼프와 타지마할이 있다. 실제로 어떤 경우에는 곰의 공격에 대한 일반적인 주제로 관심을 갖는 경우가 있을거고, 흑곰을 이에 대한 출발점으로 잡았을 수도 있다. 어떤 경우에는 오직 흑곰의 공격에만 관심을 갖을 수도 있고, 이는 불곰의 공격과 반대될 수도 있다. 혹은 아예 이 둘을 구분 못할 수도 있다. 그래서 흑곰에서 시작했다가 초기 결과를 읽는 과정에서만 곰의 종류에 대한 결정이 내려지는 경우일 수 있다. 세 가지 시나리오 모두 다 가능성이 있으며, 이제 다른 해석이 어떻게 매우 다른 판단을 초래할 수 있는지 확인할 수 있다.

이렇듯 인지적인 상태의 대표적인 결핍 (representational deficiencies)을 중점으로 하는 근본적인 문제를 넘어 사람에 관련된 문제도 존재한다. 사람은 망각을 하므로, 이전 결정에 대한 해석을 까먹고 비 일관적인 판단을 하는 경우가 있다. 여러 텍스트를 넘나들며 생기는 학습효과도 있다 (첫번째 문서에 쓰인 기술 용어를 못 알아듣다가 두번째 문서에서 이에 대한 설명을 보고 이해하는 경우). 이 경우 문서의 순서가 중요하게 되며, assessor는 이전 문서를 검토하지 않을 수도 있다. 이보다 더 평범한 요인도 있는데, Assessors가 피곤하여 오독하는 경우이다. 가끔씩 버튼을 잘 못 누르는 실수도 있고, 이러한 요인 모두가 낮은 일치도에 기여하게 된다.

InhyeokYoo commented 2 years ago

2.4 Relevance Judgments

Relevance Judgments (혹은 qrels)이라고 불리는 것은 (q, d, r)의 세 개로 구성되어 있으며, (q, d)에 대한 연관성 r을 (인간이) 측정한 것이다. Relevance judgments는 relevance labels or human judgments으로도 불린다. 실질적으로 이들은 텍스트 파일로 구성되어 있고, ground truth로 간주된다 (그러나 이는 단순한 의견이기 때문에 이렇게 불리는 경우가 많지는 않다).

단순하게는 관련있는지 없는지를 표현하는 경우가 있고, 관련있음, 없음, 매우 관련있음으로 표현하는 방법도 흔하게 사용된다. 웹 서치의 경우 perfect, excellent, good, fair, and bad의 5개로 표현하는 경우도 있다 (PEGFB).

Relevance judgments에는 두 가지 목적이 있다. SL을 통해 ranking models을 학습하거나 랭킹 모델을 평가하는데 사용된다. 이는 머신러닝 엔지니어한텐 좀 이상하게 보일 수도 있다. 이는 보통 train/dev/test 셋이 수행하는 것이기 때문이다. 그러나 역사적으로 보았을 때, information retrieval test collections이 랭킹모델을 유의미하게 학습할 정도로 충분하지 않기 때문에 그렇다. 그러나 MS MARCO가 나오면서 이러한 문제점을 해결해줌

d의 경우 코퍼스 내 텍스트의 고유한 id를 지칭하며, 특정한 경우에는 (QA 등) text의 span으로 취급하기도 함. non-relevant documents는 종종 질적으로 relevant documents와 다른 경우가 있다. relevant documents는 거의 항상 있는 그대로 판단된다. 그러나 Non-relevant documents는 명시적으로 사람의 판단이 들어가거나 heuristically 구성된다. 예를 들어 MS MARCO passage ranking test collection의 경우 BM25 결과에서 관련없는 것으로 판단된 문서가 샘플링된 결과이다. 여기서 학습/테스트 셋을 나누는 분기점이 있는데, heuristically sampling non-relevant documents의 경우 모델을 학습시킬 때 흔히 사용되는 테크닉이다. 그러나 이러한 샘플링은 평가시점에선 대부분 절대 사용되지 않는다. 따라서 명시적으로 non-relevant하다고 판단된 데이터와 unjudged documents는 다른 데이터이다.

unjudged documents는 qrel에 나타나지 않는 문서로, relevant하지 않은 것으로 간주한다. 그러나 이 경우 성능이 낮게 평가될 수 있다.

InhyeokYoo commented 2 years ago

2.5 Ranking Metrics We rewrite a ranked list R = {(d _i, s i)}^l {i=1} of length l as {(i, di)}^l _{i=1}, retaining only the rank i induced by the score si’s. Many metrics are computed at a particular cutoff (or have variants that do so), which means that the ranked list R is truncated to a particular length k, {(d _i, s i)}^k {i=1} where k ≤ l: this is notated as Metric@k.

From a ranked list R, we can compute the following metrics:

Precision: ranked list R에 문서들 중 연관있는 문서들의 비율로 정의 Graded relevance judgments같은 경우 relevance/highly relevant를 1로 정의. 종종 k개로 자르고, precision@k (P@k)로 표현하기도 함. 장점은 해석하기 쉽다는 것과 단점으로는 graded relevance judgments를 고려하지 못한다는 점, k개로 자른 것 안의 순서는 신경쓰지 못한다는 점.

Recall: 전체 relevant 집합 C에서 ranked list로 뽑힌 문서의 갯수. 장단점은 위와 동일.

Reciprocal rank (RR): RR(R, q) = \frac{1}{\text{rank} _i}

\text{rank} _i는 가장 작은 랭크. 3개 중 1위로 나오면 1, 2위면 1/2, 3위면 1/3, k개 중 없으면 0점이다. 직관적이지만 첫번째 연관성있는 결과의 등장만 잡는다. QA나 단답으로 충분한 태스크의 경우 적절하지만 ad hoc retrieval에선 일반적으론 poor choice. 왜냐하면 보통 유저는 여러개의 연관된 문서를 원하기 때문.

Average Precision (AP)

\text{AP} (R, q) = \frac{\sum {(i, d) \in R} \text{Precision}@i(R, q) \dot \text{rel} (q, d)}{\sum {d \in \mathcal C} \text{rel}(q, d}

average precision은 직관적으로 모든 연관있는 문서의 등장에 해당하는 cutoff에서의 precision의 평균값으로 이해할 수 있다. 분모는 rel. doc.의 갯수이므로 ranked list에 등장하지 않는 rel. doc.은 평균값에 영향을 끼치지 못한다.

일반적으로 명시적인 cutoff 없이 사용하지만, 대부분의 평가에서 사용하는 default length l값이 1000이기 때문에 이를 주로 사용한다 (그러나 따로 AP@1000으로 적진 않는다.). AP가 모든 rel. doc.의 검색을 고려하므로, cutoff는 인위적으로 점수를 줄이게 된다 (즉, ranked list에 나타나지 않는 rel. doc.에 대해, average값에 0으로 합산됨). 평가는 태스크가 리콜을 고려해야하는 경우 average precision을 이용하게 된다. 따라서 cutoff를 도입하는 것은 말이 되지 않는다. Cutoff 1000이 의미하는 것은 정확한 측정과 실용성에 대한 타협이다. 현실적으로 1000위 밖의 rel. doc.은 최종 점수에 거의 영향을 주지 않으며 (소숫점 이하 4자리), 1000 hits per topic으로 시스템에 제출하는 것이 사이즈면에서 부담스럽지도 않기 때문이다.

AP는 해석하긴 어렵지만 단일의 요약통계량값이고 프리시젼과 리콜 둘 다 고려한다는 장점이 있다. 또한, ranked list의 상위권에 존재하는 문서를 고려한다. 단점으로는 relevance와 grade를 구분하지 못한다는 것이다.

Normalized Discounted Cumulative Gain (nDCG)

웹 검색결과에서 자주 사용됨. 다른거랑은 다르게 grade를 위해 사용. 획득(gain)이란 용어는 여기서 유틸리티측면에서 사용 (즉, 특정한 결과로부터 유저가 얻은 값). 고려 요인은 두개: relevance grade, the rank at which the result appears discounting은 gain에 대한 감소치(decay)를 의미하며, 유저가 이를 낮게 소비하게되고, 랭크드 리스트에서 낮은 결과를 의미(요인 2번) nDCG는 DCG/IDCG로 얻게 되는데, IDCG는 ideal 랭크드 리스트의 DCG를 의미 (즉, 랭크드 리스트가 높은 순서로 정렬). 즉, nDCG는 DCG가 가능한 최고의 결과에 대해 [0, 1]로 normalize된 것. 일반적으로 10/20 cutoff를 사용. 다음의 이유로 인기있음:

  1. 그레이드에 대해 분류해줌
  2. discount/cutoff가 real-world user behavior에 대한 합리적으로 정확한(단순화되기는 하지만) 모델을 나타냄.

다음은 remarks로 암묵적으로 사용하는 지식과 convention에 대해 설명한다.

InhyeokYoo commented 2 years ago

2.8 Keyword Search

키워드 서치는 후보군을 제공한다 (이를 initial retrieval or first-stage retrieval라고도 함). 그 후 결과가 트랜스포머기반의 모델에서 rerank를 시도함.

키워드서칭이라 함은 exact term matching을 이용하여 쿼리와 텍스트 사이 연관점수를 계산하는 형태의 테크닉을 의미. 이는 주로 bag of words 쿼리를 이용하여 달성함. 이는 쿼리로부터 얻어진 에비던스(스코어)를 독립적으로 고려함을 의미.

InhyeokYoo commented 2 years ago

3 Multi-Stage Architectures for Reranking

텍스트 랭킹을 쉽게 바라보는 방법은 그냥 분류문제로 바꾼 뒤에 확률값을 토대로 정렬하는 것. information access problem에선, 원하는 클래스는 인포메이션 니드임으로 이를 연관성 분류문제라고도 부른다.

BERT나 GPT는 종종 PLM으로 분류되지만, 이 둘에는 큰 차이가 있음. LM은 sequence에 대한 확률을 부여하는 거고, BERT가 이런일을 하려면 약간의 수고스러움을 동반해야한다는 것과, 트랜스포머는 일반적으로는 이러한 전통적인 LM보다 더 많은 일을 하기 때문.

Relevance classification은 다음과 같이 표현 가능:

$$ P(\text{Relevant} =1 \rvert d _i, q) $$

여기서 d는 candidate text이고, q는 쿼리이다. 여기서 드는 의문은 d를 어떻게 정의하냐 이다. 코퍼스 내 모든 텍스트에 대해서 모든 유저의 쿼리에 대해 인퍼런스하는 것은 굉장히 비효율적이다.

최근 BERT를 활용할 때에는 retrieve-and-rerank approach을 사용. candidate texts는 bag-of-words queries against inverted index를 활용한 keyword search를 통해 얻음

그리고 이러한 candidate에 대해 rerank를 한다. 또한, 여기에 다른 relevance signal을 합쳐 reranking하기도 한다. 일반적으론 BM25를 활용한 initial retrieval의 결과를 활용하는 것이 더 나을 것이란 기대가 있고, 따라서 BERT를 활용한 텍스트 랭킹 모델은 실제로는 reranking을 하는 것임.

monoBERT

입력: [[CLS], q, [SEP], di, [SEP]] 이런식으로 넣는걸 cross-encoder라 하고, 독립적으로 수행하는 걸 bi-encoder라 함. 나머지는 뭐 BERT랑 비슷 문제점:

loss는 CE를 사용하는데, 이때 한번에 오직 하나의 candidate text를 고려하기 때문에 이는 pointwise learning-to-rank methods의 일종으로 생각할 수 있음. Point-wise의 경우 한번에 하나의 아이템을 고려하는 방법을 의미함.

다음은 monoBERT의 성공에 대한 이유를 탐구해보자.

Effects of Training Data Size k=1000인 candidate에 대해 reranking하여 10으로 cutoff. 총 5회 반복하여 95%의 confidence level을 얻음 모든 데이터를 활용하는 경우 코스트의 문제로 epoch 1만 줌. 그 결과 데이터가 많을수록 성능이 올라감. 데이터가 적은경우 bm25보다도 낮게됨.

Effects of Candidate Generation. monoBERT는 retrieve-and-rerank approach이므로 이에 대해 조사할 필요가 있음. 검색효율을 증가시키는 테크닉인 pseudo-relevance feedback을 이용하여 query expension에 대한 효율을 검사. keyword retrieval using BM25 + RM3 with a standard pseudo-relevance feedback baseline를 통해 실험. pseudo-relevance feedback이 MRR@10을 감소시키는 것으로 판별남 (recall에선 큰 차이 없음). RM3가 추가되던 말던 MRR@10에선 비슷한 것으로 보임. 따라서 MRR@10관점에서 안 좋은 데이터를 가져오더라도, monoBERT는 연관된 텍스트를 잘 골라내는 것으로 보임.

pseudo-relevance feedback는 enhancing effect가 있음 <- expanded query를 통해 연관된 텍스트에 나오는 추가적인 term을 잡을 수 있기 때문. 그러나 평균적으로는 MS MARCO에는 쿼리당 하나의 relevant passage가 있기 때문에 결과가 좋지 않음 (sparse judgement: many queries but very few relevance judgments per query) unjudged texts는 관련이 없는 것으로 보기 때문에, ranking technique은 recall을 향상시킨다고 보장하기 힘듬. 따라서 MS MARCO는 pseudo-relevance feedback의 효과를 제대로 잡아내기가 힘듬.

이와 똑같은 조건으로 TREC에 실험할 수 있음: 훨씬 적은 토픽과 토픽 당 훨씬 많은 judeged passage (dense pessage). 이 결과 BERT와 pseudo-relevance feedback이 성능을 향상시키는 것을 확인. 또한 RM3를 활용한 pseudo-relevance feedback를 통해 candidate가 end-to-end effectiveness after reranking을 향상시키는 것을 확인.

여기서 중요한 점은 특정 평가 도구(i.e. the test collection)의 한계와 실험이 평가 기능을 초과할 때의 한계를 인식하는 것.

Effects of Reranking Depth.

candidate $k$가 클수록, 성능이 올라가는 것을 확인: 1000 -> 10000은 MRR@10에서 0.372 -> 0.377로 증가하였으나, $k$가 50000까지 증가했을 때는 성능의 변화가 거의 없음. k에 대한 효율성에 대한 그래프는 concave하지 않음 <= 추가로 들어오는 candidate가 안 좋은 것들 뿐이고, BERT는 이에 현혹되지 않음. 또한, first-stage retrieval를 통해 확실하게 쓸모없는 것들은 버리게 되므로, 효율성이 좋아졌다고 볼 수 있음.

레이턴시/하드웨어에서 허용하는한 최대한 많은 k를 잡으면 됨.

Effects of Combining Exact Match Signals.

BM25와 BERT의 성능을 합쳐봄. 제일 쉬운 것은 linear interpolation $$ s i \triangleq \alpha \dot \hat{s} {\text{BM25}} + (1 - \alpha) \dot s _{\text{BERT}} $$

s i 는 최종 점수이고, \hat{s} {\text{BM25}}은 normalized bm25 score, s _{\text{BERT}}는 monoBERT socre이다. monoBERT 점수는 logit으로 [0, 1]에 있으므로, BM25점수 또한 normalize 되어야 한다.

$$ \hat{s} {\text{BM25}} = \frac{s {\text{BERT}} - s {\text{min}}}{ s {\text{max}} - s _{\text{min}}} $$

BM25에 대한 weight를 높일 경우 성능이 점차 떨어지는 것으로 나왔음. 이는 앞서 본 depth analysis에서도 일관적으로 나타나는 현상. k가 10000에서 50000으로 증가해도 MRR@10을 향상시킬 때, BM25는 값이 제한되어 rank들끼리 비교하는 힘이 없다고 볼 수 있음. 즉, 다르게 말하면, monoBERT는 BM25의 도움이 그닥 필요없다는 뜻이기도 함.

그러나 이러한 사실이 엄밀하게 증명되진 않았고, linear interpolation의 경우, MS MARCO에서 그닥 도움은 되지 않았다는 뜻은 된다. 다른 연구들은 BM25를 활용하여 효과를 봤다고 한다.

Effects of Input Template Variations.

monoBERT는 token, segment, position embedding의 세 개의 토큰레벨에서의 dense vector의 합으로 이루어짐. 이러한 구조를 input template라 하고, 이에 대한 효율성을 조사해봄. monoBERT는 token position으로부터 relevance signal을 잘 이용하여 ranking하는 것으로 확인. position없어도 BM25보단 낫고, 이를 통해 "soft" semantic matching을 하는 것으로 보임. 두 개의 인풋을 넣는 경우, 이를 어떻게 합쳐서 넣는지도 주요 포인트. segment embedding없이도 MRR이 잘 떨어지지 않는 것으로 보아 SEP 토큰만으로도 이 둘을 잘 구분하는 것으로 보임. SEP를 T5처럼 query:와 document: 글자로 바꾸어 실험해본 결과 MRR@10이 drop => SEP가 특별한 역할을 하는게 확실하고, pre-training에서 많은 역할을 하기 때문인 것으로 확인.

Effects of Simple monoBERT variants.

RoBERTa로 변경 => 성능 감소: 일반적인 NLP 태스크와 information access tasks를 분리해서 바라볼 필요가 있음.

InhyeokYoo commented 2 years ago

3.2.3 Investigating How BERT Works

NLP에서 잘된다고 IR에서 잘 되는 것은 아님. 따라서 이번엔 BERT가 왜 잘되는지 이유를 파악.

What is the relationship between BERT and “pre-BERT” neural ranking models?

interaction-based approaches (middle) are generally more effective than representation-based approaches <= similarity matrix가 the query and the candidate text내의 개개의 term과 seuqence of terms exact/soft semantic matche를 잘 잡기 때문.

BERT는 쿼리 term-cadidate term내/간의 all-to-all interactions이 multi-head attn을 통해 잘 잡음. monoBERT는 다른 architecture를 필요로 하진 않지만 다른 구조를 통해 더욱 발전할 수 있음 (e.g. PARADE). 즉, 더 큰 모델의 빌딩 블록으로서의 역할이 가능

What does BERT learn from pretraining? internal representations이 NLP 태스크에 유용한 정보를 encode하고, 어떤 레이어에선 이러한 태스크에 유용한 representation을 생성하는데 더 좋은 성능을 보임. 그러나 몇몇 연구 (Elazer et al. 2021)은 amnesic probing을 이용, 이러한 linguistic information이 다운스트림 태스크에서 반드시 사용된다고 보기 어렵다는 것을 증명함. Clark et al. [2019]은 sep 토큰이나 specific position offsets에 attention하는 패턴을 연구하였고, linguistic notions (e.g., verbs attending to direct objects)에 해당하는 attention head를 확인하였음. Kovaleva et al. [2019]는 특별히 self attn pattern에 주목하였고, limited set of attention patterns이 서로 다른 헤드간에 반복됨을 파악함: over-parameterized. 특정 헤드에서 attn을 못하게하면 몇몇 NLP 태스크에선 성능이 향상됨을 확인. BERT의 MLM에 대한 연구도 진행. Ettinger [2020]은 BERT가 동의어는 잘 잡아도 부정어를 다루는 것엔 약하다는 것을 파악.

How does BERT perform relevance matching? Qiao et al. [2019]에 따르면 BERT는 paraphrase tokens끼리의 semantic match를 선호하는 “interactionbased sequence-to-sequence matching model”임. 또한, BERT’s relevance matching behavior는 쿼리 로그 내 유저의 클릭으로 학습하는 neural rankers와는 차이가 있음. Zhan et al. [2020b]는 interaction signals을 포착하고 semantic representations을 쌓는 과정이 다른 레이어에서 기인하는 것으로 보았다. lower layer는 주로 representations을 포착하고, 상위 레이어는 최종적으로 관계를 결정하는 interaction signals을 포착하는 것이다. Câmara and Hauff [2020]는 diagnostic datasets를 사용, BERT가 IR 공리의 범위를 만족시키는지 테스트하였다. 이는 query term에 대한 occurence, the discriminativeness (idf) of matched terms, the number of non-query terms in a document, semantic matches against query terms, the proximity of query terms 등에 기반하여 검색 점수가 변하는지 탐구하는 것이다. 이를 통하여 distillBERT가 더 효율적임에도 불구하고 Indri’s query likelihood model보다 훨씬 덜 자주 공리를 만족시킴을 발견, 공리만으로는 BERT의 효율성을 설명할 수 없다는 결론을 내놓음. Formal et al. [2021b]는 BERT가 idf와 연관된 term importances의 개념을 갖고 있는지 테스트해보았는데, low idf의 경우 high idf를 마스킹하는 것보다 성능은 더 적었으나, the importance of a term은 idf와 correlated되지는 않음.

InhyeokYoo commented 2 years ago

3.2.4 Nuances of Training BERT 일반적인 BERT의 학습에는 다양한 변형이 있을 수 있음:

이들을 구분짓는 차이점은 self-supervision을 쓸 것인가 아니면 task-specific labeled data을 쓸것인가임. 그러나 이러한 테크닉은 다른 맥락에서 다른 모델에서 사용되기 때문에, 상위 레벨에서 이들을 살펴볼 것임.

Additional Unsupervised Pretraining. SSL corpora와 target corpus간의 오버랩이 있긴 하지만, vocab dist., genre, register, 기타 수 많은 요인들에서 다른 부분이 많다. MLM/NSP objective도 ranking을 잘 수행하도록 하지만, ranking task와는 상관이 없다. 따라서 target corpus에 추가적인 학습을 진행하던가, 새로운 objective를 개발할 필요가 있음. 학습은 처음부터 target corpus로 진행하는 경우도 있고, 아닌 경우도 있음. 도메인에 데이터가 풍부한 경우 처음부터 학습하는 것이 further pretraining보다 권장됨.

Ma et al. [2021b]는 “representative words prediction” (ROP)를 제안, 두 개의 sets of terms를 주어진 다큐먼트에 대해 어떤 set이 더 연관되었는지 판별하는 objective를 추가하였음. 그리고 CLS토큰을 통해 relevant를 분류하게 되며, loss는 pairwise hinge loss를 사용. 그리고 각 set에 대해 A multinomial query likelihood model with Dirichlet smoothing [Zhai, 2008]를 사용하여 score를 계산함. 또한, further pretraning을 MLM, ROP, both에 대해 실험. 그 결과 BM25 reranking했을 때 Robust04, ClueWeb09B, and GOV2 test collections에 대해 MLM보다 ROP가 좋음을 확인. MLM+ROP는 약간의 향상. 그러나 이 방법은 이후 설명할 다른 방법에 비해 좋지 않음.

“Multi-Step” Supervised Fine-Tuning Strategies (curriculum learning) finetuning은 타겟 다운스트림 태스크와 같은 도메인의 레이블 데이터를 포함. 그러나 종종 이게 힘들때가 있음. out-of-task or out-ofdomain labeled data (or out-of-distribution labeled data)를 사용하여 해결. multiple labeled datasets를 활용하여 파인튠할 때 주의할 점은 catastrophic forgetting임. BERT-based의 경우 덜한 경향이 있음.