5.자연어 생성

김지우·2023년 7월 24일

NLP_Basic

목록 보기
5/9

해당 글은 자연어 처리 바이블 (임희석 저) 에서 참고하여 작성되었음을 알려 드립니다.

목차
1. 배경
2. 지도학습기반
3. 강화학습기반
4. 적대학습기반

1. 배경

연관분야: 작시, 이미지 캡셔닝, 요약, 번역, 대화시스템
특징

  • 자연어가 아닌 경우에 입력과 출력 사이에 정보 불균형이 존재한다.
    • 입력값의 의미는 대체로 명확하지만, 자연어 고유의 특징으로 인해 때로 모호성을 동반하기 때문이다.
    • 입력정보를 적절히 표현하고, 목표 언어의 패턴을 파악할 수 있어야 한다.
  • 자연어 생성 과정에는 문법적 복잡성이 존재한다.

동향

  • 초기 => N-gram 언어 모델
  • 최근 => 인공 신경망 언어 모델
    세가지 방식이 있다.
    • 지도학습
    • 강화학습
    • 적대학습

2. 지도학습기반

최대 우도 추정

  • 최대 우도 추정(maximum likelihood estimation, MLE)는 자연어 생성 문제를 순차적 다중 레이블 분류로 여김으로써 다중 레이블 크로스 엔트로피를 직접 최적화할 수 있다.
  • 목적함수
    Jθ(sn)=t=0n1logP^(xtst)J_{\theta}(s_{n}) = - \sum_{t = 0}^{n-1}log\hat{P}(x_{t}|s_{t})
  • 다른 학습 방법에 비해 안정적(robust)하고 수렴확률이 높아 자주 사용된다.
  • MLE 기반의 신경망모델이 따르는 N-gram 패러다임은 이론적으로 장기 의존성을 파악할 수 없다는 한계가 있다.

순환 신경망 언어모델(RNNLM)

  • 장기의존성 문제를 해결하고자 제안
  • 특징 가변적인 길이를 갖는 이전 입력값을 은닉(hidden)벡터로 자동-회귀적(auto-regressive)으로 표현하고, 이것을 다음 단어를 예측하는데 사용한다.

  • P^(xicontext)P(xtRNN(x0,x1,...,xt1))\hat{P}(x_{i}|context) \approx P(x_{t}|RNN(x_{0},x_{1},...,x_{t-1}))
  • 목적함수
    Jθ(sn)=t=0n1logP^(xtRNN(st))J_{\theta}(s_{n}) = - \sum_{t = 0}^{n-1}log\hat{P}(x_{t}|RNN(s_{t}))
  • 하지만 RNNLM처럼 MLE를 통해 입력 데이터의 분포를 학습하는 것은 노출편향에의 해 자연스러운 생성결과가 나오지 않을 수 있음
    • 노출편향이란 학습 환경과 추론 환경의 불일치 현상을 의미
    • 자기-회귀적 행성 모델이 학습과정에서 정답을 통해 문맥을 파악하는 반면, 추론과정에서 자신이 생성한 정보를 참조하기 때문에 발생
  • RNN에 LSTM, GRU 등 다양하게 변형된 RNN을 적용함으로써 장기 구조를 이용하더라도 RNN 모델의 태생적 한계로 인한 Gradient Vanishing문제와 그로 인한 장기의존성문제를 완전히 해소할 수 는 없다.
  • 순차적으로 이루어지기 때문에 병렬처리가 불가능하다는 단점이 있다.

스케쥴 샘플링
자동-회귀 생성모델이 학습과정에서도 추론 환경을 경험할 수 있도록 한 기법

  • 자신이 생성했던 샘플을 다음 스탭의 입력값으로 제공하는 것을 샘플링이라고 한다.
  • 미리 설정한 확률에 따라 이와 같이 샘플링할지 혹은 정답 정보를 제공받을 것인지 결정한다.
    트랜스포머
    셀프 어텐션 기반 모델의 경우 RNN과 달리 입력을 병렬 처리해 은닉 강태로 표현할 수 있다.
  • 일단 같은 문맥으로 입력되었다면 토큰 간 거리에 따른 장기 의존성 문제는 완전히 없어진다.
  • 디코더에서의 병렬 처리는 이뤄지지 않아, 트랜스포머의 추론 시간을 단축하기 위한 여러 기법이 제안된다.

3. 강화학습기반

PG-BLEU
자연어 생성 문제를 마르코프 결정과정(Markov decision process, MDP)을 이용해 풀 수 있다.

  • 강화학습이란?
    • 이산(descrete) 행동 후보 중 최고의 보상을 얻는 행동을 에이전트(agent)가 선택하도록 행동 전략을 학습

    • PG-BLEU는 강화학습을 자연어 생성 분야에 적용한 기법.

      • REINFORCE 같은 강화학습 정책-기울기 (Policy-gradient, PG) 알고리즘을 이용하여 BLEU로 대표되는 미분 불가능한 평가지표

BLEU 자연어 생성 작업에서의 대표적인 평가지표다.

precision=TruePositiveTruePositive+FalsePositiveprecision = \frac{TruePositive}{TruePositive + FalsePositive}

  • BLEU 점수는 precision에 기반한다. N-gram 정밀도는 생성한 문장의 N-gram 시퀀스 중 정답 문장에 포함된 시퀀스의 비율을 의미한다.

    • 단 precision만으로 성능을 표현할 경우 정답 문장에 포함된 소수의 단어만 포함된 아주 짧은 문장을 생성하더라도 BLEU 점수가 높게 책정된다.
    • 따라서 문장길이에 대한 패널티를 곱해준다.
  • PG-BLEU는 REINFORCE를 이용해 BLEU 점수를 최적화하는 기법으로, 최소화함으로써 학습을 진행할 수 있다.

    Jθ(s^n)=t=0n1logP^(xtst)J_{\theta}(\hat{s}_{n}) = -\sum_{t = 0}^{n-1}log\hat{P}(x_{t}|s_{t})

  • 근본적으로, PG-BLEU의 보상을 결정하는 BLEU는 계산 비용이 저렴하지 않은 평가 지표이기 때문에 상태(state)마다 보상을 계산해야 하는 강화학습에 부적합하다.

  • 단순히 통계적인 N-gram 유사도

    • 성능평가에 완벽하지 않음
    • 불필요한 편향이 모델에 전해짐
    • 활용과 탐색에 들이는 비용이 많음
      => 지도학습의 강점을 취할 필요성이 발생

모방학습(Imitation Learning)

모방학습이란? 강화학습이 시작되는 초반에 지도학습을 결합함으로써 강화학습의 약점을 지도학습의 강점으로 보완할 수 있는 학습 기법

  • 강화학습의 관점에서 MLE는 정답데이터에서 샘플링된 에피소드를 이용한 오프-폴리시(off-policy) 학습이기 때문에 모방 학습은 지도학습의 성격을 가진 강화학습
  • 목적함수
    Jθ(s^n)=t=0n1logP^(xtst)J_{\theta}(\hat{s}_{n}) = -\sum_{t = 0}^{n-1}log\hat{P}(x_{t}|s_{t})
  • 많은 강화학습 시나리오에서의 분산을 낮춰주는 역할

4. 적대학습기반

생성적 적대 네트워크(Generative Adversarial Networks)
정의 사실적인 결과물을 생성해내기 위해 두 개의 신경망이 서로 경쟁하는 학습 기계 모델

CV 분야에서 좋은 성능으로 학회와 현업에서 각광받는 기법이지만, GAN은 연속적인 데이터에 사용되도록 디자인된 기법이기 때문에 자연어 같은 이산적인 데이터에 대해서는 모델에 경사도를 전달하기 어렵다.

SeqGAN(Sequence Generative Adversarial Networks)
배경 이산적인 데이터에 GAN을 직접 적용하기 어렵다는 문제를 해소하고자, 이산적인 후보군 중에서 최고의 보상을 얻는 행동을 취하도록 강화학습 기법을 적용한 모델

  • GAN과 마찬가지로 생성자와 판별자로 이루어져있다. 생성자 모델로는 LSTM을 사용하고, 판별자로는 CNN을 사용한다.
  • 효과적인 강화학습을 위해 생성자와 판별자를 사전학습한다.
    • 생성자는 MLE로, 판별자는 실제 데이터와 사전 학습된 생성자로 만든 가짜 데이터를 구분하도록 크로스 엔트로피 손실을 계산하고, 정책 경사도를 통해 생성기의 파라미터를 업데이트 한다.
  • 생성자로 만든 문장과 실제 문장을 잘 구분하도록 판별자의 파라미터를 업데이트한다.

GAN의 문제점과 해결 방안
문제점

  • 판별자의 성능이 너무 강력할 때 생성자가 제대로 학습되기 어려워지는 Gradient Vanishing
  • mode collapse => 생성자가 판별자를 속이기 가장 쉬운 아웃풋만 반복적으로 생성하여 다양성이 낮아짐

나중에 다시 정리하면 좋은 내용들

  • 강화학습 기초 개념들
profile
프로그래밍 기록 + 공부 기록

0개의 댓글