TL;DR

  • BERTScore는 PLM의 Contextual Embedding을 활용하여 토큰 레벨의 의미적 유사성을 평가하는 지표다.
  • Greedy Matching과 IDF 가중치를 결합하여 어휘 일치를 넘어선 문맥적 유사도를 산출한다.

BERTScore (Evaluating Text Generation with BERT)

기존의 n-gram 기반 메트릭(BLEU 등)은 어휘가 정확히 일치하지 않으면 유사도를 낮게 평가하는 한계가 있다. BERTScore는 PLM의 임베딩 공간에서 코사인 유사도를 계산함으로써, 유의어나 문맥적 의미가 유사한 문장 쌍을 더 정확하게 평가한다.


1. 방법론 (Methods)

프로세스

  1. Contextual Embedding: Candidate(Hypothesis)와 Reference 문장을 BERT에 입력하여 각 토큰의 임베딩 벡터를 추출한다.
  2. Similarity Matrix: 두 문장의 토큰 쌍 간의 모든 코사인 유사도를 계산하여 유사도 행렬을 생성한다.
  3. Greedy Matching:
    • Recall (): 참조 문장의 각 토큰이 후보 문장의 어떤 토큰과 가장 유사한지 확인 (Row-wise max pooling).
    • Precision (): 후보 문장의 각 토큰이 참조 문장의 어떤 토큰과 가장 유사한지 확인 (Column-wise max pooling).
  4. Importance Weighting: (선택 사항) IDF를 가중치로 활용하여 토큰별 중요도를 반영한다.

상세 계산 예시

  • Reference (A): [“cat”, “on”, “mat”]
  • Candidate (B): [“cat”, “sits”, “on”, “rug”]
Token (A)cat (B)sits (B)on (B)rug (B)
cat (A)0.950.200.100.05
on (A)0.100.300.900.10
mat (A)0.050.400.200.80
  • Recall (): 참조 문장(A)의 각 행에서 최대값을 선택하여 평균 산출.
  • Precision (): 후보 문장(B)의 각 열에서 최대값을 선택하여 평균 산출.
  • F1 Score:

2. 코드 레벨 분석 (greedy_cos_idf)

핵심 스코어링 로직

def greedy_cos_idf(ref_embedding, hyp_embedding, ref_idf, hyp_idf):
    # (1) L2 정규화 -> 내적 = 코사인 유사도
    ref_embedding.div_(torch.norm(ref_embedding, dim=-1).unsqueeze(-1))
    hyp_embedding.div_(torch.norm(hyp_embedding, dim=-1).unsqueeze(-1))
 
    # (2) 유사도 행렬 생성: [batch, hyp_len, ref_len]
    sim = torch.bmm(hyp_embedding, ref_embedding.transpose(1, 2))
 
    # (3) Greedy matching
    word_precision = sim.max(dim=2)[0]  # hyp 각 토큰 -> ref 내 최적 매칭 (Precision)
    word_recall    = sim.max(dim=1)[0]  # ref 각 토큰 -> hyp 내 최적 매칭 (Recall)
 
    # (4) IDF 가중 평균
    P = (word_precision * hyp_idf).sum(dim=1)
    R = (word_recall * ref_idf).sum(dim=1)
    return P, R, 2 * P * R / (P + R)

Dimension 방향 이해

  • 코드의 sim 행렬([H, R])은 위 예시 행렬([R, H])의 전치 형태다.
  • sim.max(dim=2): 가로 방향(Reference 축) 최대값 Precision
  • sim.max(dim=1): 세로 방향(Candidate 축) 최대값 Recall

3. 주요 기술적 개념 (Key Concepts)

레이어 선택 (Layer Selection)

  • BERT의 모든 레이어가 동일하게 유용하지 않다. 논문 실험 결과 중간 레이어가 의미적 유사성을 가장 잘 포착하며, 최종 레이어는 사전 학습 목적 함수(MLM)에 특화되어 성능이 떨어진다.
  • 공식 구현에서는 WMT16 데이터를 기반으로 각 모델별 최적 레이어를 미리 지정해두고 사용한다.

Greedy matching vs Optimal matching

  • BERTScore는 계산 효율성을 위해 Greedy 방식을 사용한다. [[MoverScore]]처럼 WMD 기반의 Optimal Matching을 사용할 수도 있으나, 논문은 Greedy 방식만으로도 인간의 평가와 충분히 높은 상관관계를 보임을 입증했다.

Baseline Rescaling

  • 코사인 유사도 값이 좁은 구간()에 분포하는 특성을 보정하기 위해, 랜덤 문장 쌍을 이용한 하한선()을 구하여 스코어를 범위로 선형 변환한다.

Connections