728x90
반응형
SMALL

자연어처리 모델을 만들다 보면 항상 부딪히는 가장 큰 골첫거리가 있다. 바로 모델이 학습할 때 한번 도 본 적 없는 '모르는 단어(OOV, Out-Of-Vocabulary)'나 '처음 보는 문장 패턴'을 만났을 때이다. 

N-gram 언어 모델 같은 경우, 한 번도 본 적 없는 단어 조합이 나오면 확률을 '0'으로 계산해 버려서 문장 전체의 확률이 0이 되어버리는 치명적인 문제가 발생한다. 이런 융통성 없는 모델에게 유연함을 가르쳐주는 똑똑한 대처법, 백오프(Backoff) 기법이다. 

 

1. 백오프(Backoff)란 무엇인가 ?

백오프는 영어로 '물러서다', '후퇴하다'라는 뜻이다. 자연어 처리에서는 모델이 어떤 단어나 문장의 확률을 계산하려 할 때, "내가 아는 정보가 없으면, 한 발짝 물러나서 더 작고 일반적인 정보에 기대어 예측하겠다"는 전략을 말한다. 

주로 N-gram 언어 모델에서 '희소 문제(spartsity problem)'를 해결하기 위해 사용된다. 3개의 단어 조합(Trigram) 을 찾을 수 없다면 2개의 단어 조합(Bigram)으로 물러서고, 그것도 없으면 1개의 단어(Unigram)빈도수로 물러서서 어떻게든 확률을 계산해 내는 방식이다.

쉬운 비유로 이해하기 : 식당 메뉴 추천하기

단골 식당의 웨이터라고 상상해 보세요. 손님이 들어와서 주문을 하려고 합니다.

  • 원래 계획 (Trigram): "이 손님은 비가 오는 날(1) + 혼자 오면(2) + 항상 짬뽕(3)을 드셨지! 짬뽕을 추천하자."
  • 문제 발생: 그런데 오늘은 비가 오는데(1) + 친구랑 같이(2) 왔다. 이런 적은 처음이라 데이터가 없다! (확률 0)
  • 백오프(Backoff) 발동 (Bigram으로 후퇴): "비가 오고 친구랑 온 데이터는 없네... 한 발짝 물러서자. 그냥 '비가 오는 날(1)'에는 사람들이 보통 뭘 많이 먹었지? 아, 파전을 많이 먹었구나! 파전을 추천하자."

이처럼 완벽하게 일치하는 긴 조건(데이터)이 없을 때, 조건을 하나씩 줄여가며(후퇴하며) 어떻게든 가장 그럴듯한 정답을 찾아내는 과정이 바로 백오프이다. 

반응형

2. 백오프가 필요한 이유 (희소 문제 해결)

언어 모델이 "소년이 공을 던진다"라는 문장이 얼마나 자연스러운지 확률을 계산한다고 해본다.

만약 모델이 학습한 수백만 권의 책 중에 "소년이 공을 던진다"라는 정확히 똑같은 문장이 단 한 번도 나오지 않았다면 어떻게 될까요? 단순한 N-gram 모델은 이 문장이 세상에 존재할 확률을 '0%'라고 극단적으로 판단해 버린다. 이를 희소 문제(Sparsity Problem)라고 부르다.

백오프는 이럴 때 "소년이 공을"이라는 조건이 없으면, 한 발짝 물러나서 "공을 던진다"라는 패턴이 얼마나 자주 쓰였는지를 보고 확률을 대신 계산해 준다. 덕분에 모델이 처음 보는 문장 앞에서도 당황하지 않고 유연하게 대처할 수 있게 된다.

 

3. 카츠 백오프(Katz Backoff)

백오프 기법 중 가장 유명한 것이 바로 카츠 백오프(Katz Backoff)이다.

단순히 한 발짝 물러서기만 하면, 원래 데이터가 풍부했던 패턴과 물러서서 구한 패턴 사이의 확률 계산이 불공평해질 수 있다. 그래서 카츠 백오프는 "자주 등장하는 패턴의 확률을 아주 조금씩 깎아서(Discounting), 그 남은 확률들을 모아 한 번도 등장하지 않은 패턴들에게 나누어 주는" 아주 공평하고 정교한 수학적 방식을 사용한다.

마치 부자들에게 세금을 조금씩 걷어서 가난한 사람들에게 나누어주는 복지 정책과 비슷하다고 볼 수 있다. 

 

728x90

 

4. 한눈에 보는 비교 : 단순 N-gram vs 백오프 적용

비교 항목 단순 N-gram 백오프(Backoff) 적용 모델
모르는 패턴 대처 확률을 무조건 '0'으로 처리 (에러 발생) 한 단계 낮은 N-gram 으로 후퇴하여 활률 계산
희소 문제(Sparsity) 매우 취약함(조금만 길어져도 데이터가 없음) 유연하게 대처 가능(어떻게든 확률을 찾아냄)
계산의 유연성 융동성 없이 완벽히 일치하는 것만 찾음 조건이 안 맞으면 타협(후퇴)할 줄 앎
확률의 정확도 본 적 없는 문장은 무조건 틀린 문장 취급 처음 보는 문장도 꽤 그럴듯하게 자연스러움 평가 가능

 

 

마무리

백오프 (Back off)는 인공지능이 완벽한 정답(데이터)을 찾지 못했을 때 포기하지 않고, "내가 아는 선에서 가장 비슷한 차선책을 찾아보자"라며 한 발짝 물러서는 아주 똑똑하고 유연한 대처법이다. 

최근의 챗GPT 같은 딥러닝 기반의 대형 언어 모델(LLM)들은 임베딩(Embedding)이라는 더 발전된 기술을 사용하여 이 희소 문제를 해결하고 있다. 하지만 백오프가 보여준 "모르는 것을 만났을 때 유연하게 대처하는 철학"은 자연어 처리 발전 역사에서 빼놓을 수 없는 아주 중요한 개념이다.

728x90
반응형

+ Recent posts