자연어 처리 문제 개관 — Application 관점

Hugman Sangkeun Jung
11 min readMay 8, 2024

--

Translation via NLP (Image by the Author using ChatGPT)

(영어버젼의 포스트는 링크에서 찾아볼 수 있습니다.)

자연어 처리(Natural Language Processing, NLP)는 인공지능(AI) 분야에서 가장 빠르게 발전하고 있는 분야 중 하나입니다. 최근에는 특히 두 가지 유형의 문제가 많이 연구되고 있습니다. 이 글은 2개 유형을 각각 설명하는 시리즈 중 첫번째에 해당합니다.

첫 번째 유형은 NLP 기반 서비스를 위한 실용 평가입니다. 이는 NLP 기술을 실제 서비스에 적용할 때의 실제성능 측정에 초점을 맞춥니다. 예를 들어, 자동 번역, 개체명 인식, 감성 분석 등 다양한 NLP 작업이 이 유형에 속합니다. 이런 경우, 해당 AI 모델이 최종 사용자에게 제공될 어플리케이션의 성능을 개선하는 데 기여하는 정도를 평가하는 것이 주 목적입니다.

두 번째 유형은 기계의 ‘언어 이해’ 능력을 파악하는 평가로, AI 모델이 언어를 얼마나 잘 이해하고 있는지를 측정하는 것을 주 목적으로 합니다. 이 유형의 평가는 모델이 언어의 복잡성과 다양성을 얼마나 잘 처리할 수 있는지를 확인하려고 합니다. 예를 들어, entailment, 의미론적 유사성 판단, 문맥적 의미 분석, 객관식 문제 풀기등이 이에 해당합니다. 이를 통해 얻은 이해능력 점수는 해당 AI 모델이 다양한 문제를 해결하기 위한 기반 모델로서의 잠재력이 있는지를 평가하는 데 사용될 수 있습니다.

이 글에서는 특히 첫 번째 유형, 즉 실용적인 NLP 서비스를 위한 평가에 초점을 맞추어 이야기를 진행하고자 합니다. 첫 번째 유형의 평가는 기술의 상용화에 직접적인 영향을 미치므로, 기업이나 개발자들에게 매우 중요한 정보를 제공합니다. 다음 섹션에서는 이러한 평가들의 종류들에 살펴보고, 평가방법에 대해 자세하게 설명할 예정입니다.

자연어 처리(Natural Language Processing, NLP)는 우리가 매일 사용하는 다양한 응용 프로그램에서 중요한 역할을 합니다. 이러한 응용 프로그램들은 복잡한 자연어 데이터를 처리하고, 이를 통해 유용한 정보를 추출, 번역하거나, 사용자와 소통하는 방법을 제공합니다. 다음은 일반적으로 알려진 NLP 기반의 서비스들과, 이들이 해결해야 할 구체적인 문제들입니다.

  1. 형태소 분석기(Morphological Analyzer): 텍스트를 개별 형태소로 분리하고 각 형태소의 기능을 식별합니다. 이는 텍스트의 품사를 태깅하고 구문적 속성을 분석하는 데 필수적입니다. 형태소 분석기는 보통 자연어 데이터를 의미적으로 분리하는데 활용됩니다.
  2. 구문 분석기(Syntax Analyzer): 문장의 구조를 분석하여 문법적인 관계를 파악합니다. 이는 문장 내에서 주어, 동사, 목적어 등의 구성 요소와 그들 사이의 관계를 식별하는 데 사용됩니다. 구문 분석기는 보통 문장의 구조등을 파악하거나 이를 이용해 문장을 여러 단위로 분절하는데 활용됩니다.
  3. 개체명 인식기(Named Entity Recognizer): 텍스트에서 인명, 지명, 기관명 등의 특정 정보를 식별하고 분류합니다. 이 정보는 정보 추출, 문서 요약 등에 활용됩니다.
  4. 번역기(Translator): 한 언어의 텍스트를 다른 언어로 변환합니다. 보통 이를 구현하기 위해 광범위한 문법 지식과 대규모 어휘 데이터베이스를 필요로 합니다. 최근에는 한 언어에서 다른 언어로의 번역뿐만 아니라 서로 다른 종류의 데이터 들 간의 변환 — 예를들어 이미지 → 텍스트 — 등도 번역의 테두리 안에 넣고는 합니다.
  5. 문법 및 철자 교정기(Grammar and Spelling Checker): 텍스트의 문법적 오류와 철자 오류를 수정합니다. 이는 문서 작성과 편집 과정에 매우 유용합니다. 더 나아가, 음성 인식 혹은 모바일 폰에서의 채팅 메시지등을 정규화 하거나 교정하는데 많이 활용됩니다.
  6. 감성 분석기(Sentiment Analyzer): 텍스트에서 감정의 극성(긍정적, 부정적, 중립)을 판단합니다. 이는 소셜 미디어 모니터링, 시장 조사, 고객 서비스 개선 등에 활용됩니다.
  7. 음성 인식 시스템(Speech Recognition System): 음성 데이터를 텍스트로 변환합니다. 이 기술은 가상 비서, 자동 음성 응답 시스템, 챗 서비스등에 사용됩니다.
  8. 챗봇(Chatbots): 사용자의 질문에 자동으로 응답하는 시스템입니다. 이는 고객 서비스 자동화, 대화형 마케팅 등에 사용됩니다.
  9. 추천 시스템(Recommendation System): 사용자의 과거 이력과 프로파일 및 유사사용자 그룹의 데이터를 분석하여 개인화된 제품이나 서비스를 추천합니다. 쇼핑몰, 온라인 서점등의 큐레이션에 많이 활용됩니다.
  10. 주제 분류기 (Topic Classifier): 텍스트 전체를 분석하여 주어진 문서의 주제를 단일 카테고리로 분류합니다. 텍스트 데이터의 주요 카테고리를 분류해주는 기술들을 크게 묶어 주제 분류기로 구분하고는 합니다.

이 외에도 더 다양한 NLP 애플리케이션들이 있을 수 있습니다. 예전에는 이러한 문제를 해결하기 위해 사용되는 도구와 알고리즘이 각 문제별로 따로 존재하기도 했습니다. 하지만 딥러닝 NLP와 시퀀스 투 시퀀스 학습이 등장한 이후로는 위의 문제들이 어느정도 패턴화 되었습니다.

이 글에서는 그러한 패턴, 즉 어떠한 입력이 들어오고 어떠한 출력이 나가는지를 N21, N2N, N2M 관점에서 분석하고 패턴화해보겠습니다. 더불어 각각의 문제에 활용되는 손실 함수와 평가 메트릭에 대해서도 살펴보고 정리하겠습니다.

N21 문제 모델링

N21 문제는 N개의 token (입력단위)을 입력 받아 하나의 결과를 내놓는 문제의 형태입니다. 이러한 형태를 가지는 문제는 아래와 같습니다.

  • 주제 분류기 (Topic Classifier): N개의 token으로 구성된 텍스트 전체를 분석하여 주어진 문서의 주제를 단일 카테고리로 분류합니다.
  • 감성 분석기(Sentiment Analyzer): 전체 텍스트의 감정을 분석하여 하나의 극성(긍정적, 부정적, 중립)으로 요약합니다.
  • 추천 시스템 (Recommendation System): 사용자의 다양한 상호작용 데이터(N개 데이터)를 분석하여 개인화된 제품이나 서비스의 하나의 추천 목록을 제공합니다.
Topic Classifier Using the N21 Modeling Pattern (Image by the Author)

N21 문제의 경우에 많이 활용되는 손실함수와 평가 메트릭은 다음과 같습니다.

손실 함수

  • Cross-Entropy Loss: 분류 문제에 주로 사용되며, 모델이 예측한 확률 분포와 실제 레이블의 분포 사이의 차이를 측정합니다. 이 손실 함수는 주제 분류기나 감성 분석기에 적합합니다.

평가 메트릭

  • 정확도 (Accuracy): 모델이 얼마나 정확하게 각 카테고리를 예측하는지를 측정합니다. 주제 분류나 감성 분석에 사용됩니다.
  • F1 Score: 데이터의 클래스가 불균형할 때 유용한 메트릭으로, 정밀도와 재현율의 조화 평균을 측정합니다.

N2N 문제 모델링

N2N 문제는 각 입력 단위가 각각 독립적인 출력을 만드는 구조입니다. 이러한 문제 유형은 다음과 같은 예시를 포함합니다.

  • 형태소 분석기 (Morphological Analyzer): 텍스트의 N개 입력 토큰에 대해 해당 토큰의 품사를 태깅하고, 이를 1:1 매핑으로 출력합니다.
  • 문법 및 철자 교정기 (Grammar and Spelling Checker): 텍스트 내 각 문장이나 단어의 문법적 오류나 철자 오류를 개별적으로 식별하므로 N2N문제로 모델링 가능합니다.
  • 개체명 인식기 (Named Entity Recognizer): 텍스트에서 각 토큰이 인명, 지명, 기관명등에 대해 어떤 관계를 가지는지 각각 매핑하여 출력합니다.
Named Entity Recognition Using the N2N Modeling Pattern (Image by the Author)

손실함수

  • Cross-Entropy Loss: 이 손실 함수는 모델이 각 입력 토큰에 대해 예측한 출력의 확률 분포와 실제 라벨의 분포 사이의 차이를 측정합니다. 각 토큰에 대한 예측이 정확한지를 평가하여 오류를 최소화하도록 합니다. N2N 문제에서는 문장이나 문서에 포함된 모든 토큰에 대해 이런 식으로 손실을 계산한 후, 이를 평균내어 전체 문장이나 문서에 대한 손실을 계산합니다. 예를 들어, 문장에 10개의 토큰이 있고, 각 토큰에 대한 Cross-Entropy Loss가 각각 다르게 계산되면, 이들의 평균값을 최종 손실로 사용합니다.

평가 메트릭

  • Precision: 모델이 예측한 결과 중 실제와 일치하는 비율을 측정합니다. 특히 개체명 인식 같은 태스크에서 중요한 지표로, 모델이 얼마나 정확하게 필요한 정보만을 추출했는지를 보여줍니다.
  • Recall: 실제 필요한 결과 중에서 모델이 얼마나 많이 잡아냈는지를 측정합니다. 이는 중요 정보를 놓치지 않고 얼마나 잘 가져왔는지 평가하는 데 사용됩니다.
  • F1 Score: Precision과 Recall의 조화 평균을 사용하여 계산되며, 두 메트릭의 균형을 평가하는 데 유용합니다. F1 점수는 두 값 사이의 균형을 나타내므로, 한 쪽으로 치우치지 않고 전반적으로 균형 잡힌 성능을 보여주는지 확인하는 데 적합합니다.

N2M 문제 모델링

N2M 문제는 하나의 입력에서 여러 개의 출력을 생성하는 형태입니다. 이러한 유형의 문제들은 다음을 포함합니다.

  • 구문분석기 (Syntax Analyzer): 하나의 문장을 입력으로 받아 그 문장의 구조를 나타내는 구문적 요소로 분해합니다.
  • 번역기 (Translator): 하나의 문장을 다른 언어의 문장으로 변환하므로 N개의 입력이 들어가 M개의 출력이 나옵니다.
  • 문법 및 철자 교정기: 문장 내의 여러 오류를 검출하고 이에 대해 다수의 수정 제안 M token 을 만들어 냅니다.
  • 챗봇 (Chatbots): 사용자의 하나의 질문이 N token 일 때 M 에 해당하는 다양한 응답을 생성합니다.
Translation Using the N2M Modeling Pattern (Image by the Author)

주목할 것은 최근에는 N2M 형태의 모델링을 구현할 때 굳이 encoder-decoder 기반의 기술을 안쓰는 경우도 많다는 것입니다. Decoder 만 활용하여 N2M 문제를 풀어내는 방법이 GPT 계열같은 경우에 많이 활용되고 있죠.

손실 함수

  • Cross-Entropy Loss : 가장 일반적으로 사용되는 손실 함수 중 하나입니다. 각 시점(time step)에서 모델이 예측한 출력 시퀀스의 확률 분포와 실제 타겟 시퀀스의 분포 차이를 측정합니다. 모델이 각 단어의 정확한 확률을 최대화하도록 합니다.
  • Perplexity : 주로 언어 모델의 성능을 평가하는 데 사용되지만, 손실 함수로도 사용될 수 있습니다. 모델이 데이터를 얼마나 잘 예측하는지를 나타내는 척도로, 낮을수록 좋습니다. 수학적으로는 Cross-Entropy Loss의 지수 함수입니다.
  • Connectionist Temporal Classification (CTC) Loss : 주로 음성 인식이나 필기 인식 같은 태스크에서 사용되며, 입력과 출력의 시간적 정렬이 불확실할 때 유용합니다. 입력 시퀀스 내의 각 요소가 어떤 출력 레이블에 매핑되는지에 대한 확률을 최대화합니다.
  • Contrastive Loss : 주로 질문 응답 시스템과 같이 쌍으로 구성된 데이터에서 사용됩니다. 정확한 답변과 잘못된 답변 사이의 마진을 최대화하는 방식으로 작동합니다.

평가 메트릭

  • BLEU Score: 번역 품질을 측정하는 데 널리 사용되는 메트릭입니다. 출력 문장이 참조 문장과 얼마나 유사한지를 측정합니다. 특히, n-gram의 오버랩을 비교하여, 번역된 문장의 품질을 평가합니다.
  • ROUGE Score: 주로 요약 태스크에서 사용되며, 생성된 요약이 참조 요약과 얼마나 유사한지를 측정합니다. 이 메트릭은 다양한 형태(Rouge-N, Rouge-L 등)로 사용되어, 요약의 다양한 측면을 평가합니다.
  • Edit Distance: 출력 시퀀스와 목표 시퀀스 사이의 수정 필요 횟수를 측정합니다. 문법 및 철자 교정기에 유용합니다. 수정 횟수는 삽입, 삭제, 대체를 포함하여 계산되며, 시퀀스의 유사도를 정량적으로 평가하는 데 사용됩니다.

결론

이 글에서는 자연어 처리가 응용의 목표가 되는 경우 어떠한 자연어 처리 문제들이 있으며, 각 문제들이 어떻게 정의되고 평가되는지를 살펴보았습니다. 특히, 시퀀스 투 시퀀스 학습 방식에 따라 자연어 처리 문제를 N21, N2N, N2M 등 몇 가지 패턴으로 쉽게 모델링할 수 있음을 확인하였고, 각각에 맞는 손실 함수와 평가 방식도 살펴보았습니다.

--

--

Hugman Sangkeun Jung

Hugman Sangkeun Jung is a professor at Chungnam National University, with expertise in AI, machine learning, NLP, and medical decision support.