8. NNLM

Eunji·2025년 12월 11일

Stochastic Language Model's Problem

Out-of-Vocabulary

  • 학습 데이터에 존재하지 않는 단어 또는 n-gram이 테스트 시 나타나 확률 계산 불가
  • Back-off or Smoothing 기법으로 일부 완화되지만 근본적 해결 어려움

Long-term Dependency

  • n-gram 모델에서 n값이 증가할수록 휘귀 시퀀스 확률이 0에 가까워짐
  • 긴 문맥의 의존 관계를 포착하지 못해 성능 저하

표현 한계

  • 단어를 one-hot vector로 표현하면 모든 벡터가 orthogonal(내적=0)하여 유사도 측정 불가
  • 현실의 단어 간 의미적 관련성 불가 \rightarrow 분산 표현 필요

1. NNLM

A Neural Probabilistic Language Model

  • 전통적인 n-gram 언어 모델의 한계를 줄이기 위해 신경망을 이용해 조건부 확률을 직접 근사

1.1 Procedure

NNLM 언어 모델링 과정

  • "what will the fat cat sit on"
  • E.g., 입력: "what will the fat cat", 예측 값 : "sit"
    • 컴퓨터가 단어를 인식할 수 있도록 모든 단어를 숫자로 인코딩
    • 훈련 corpus에 7개의 단어만 존재한다고 가정 \rightarrow one-hot encoding

입력: "what will the fat cat", 예측: "sit"

  • what, will, the, fat, cat의 one-hot vector를 입력받아 sit의 one-hot vector를 예측하는 문제
  • one-hot vector들이 훈련을 위한 NNLM의 입력이면서 예측을 위한 레이블
  • n = 4, "what will the fat cat"라는 단어 시퀀스가 주어졌을 때, 다음 단어를 예측하기 위해 앞의 4개 단어 "will the fat cat"까지만 참고 (window = 4)

1.2 Architecture

  • 총 4개의 Layer로 이루어진 인공 신경망
    • Input Layer
      • Input: 4개의 단어 'will, the, fat, cat'의 one-hot vector
    • Output Layer
      • Output: Model Prediction(정답에 해당하는 단어): 'sit'의 one-hot vector
    • Projection Layer
      • 4개의 one-hot vector를 입력 받은 NNLM은 다음 층인 projection layer를 지나게 됨.
    • Hidden Layer
      • 인공신경망에서 입력층과 출력층 사이의 층을 보통 은닉층이라고 부름
      • 투사층이 일반 은닉층과 구별되는 특징은 가중치 행렬과의 연산은 이루어지지만 활성화 함수가 존재하지 않음

1. Input Layer

  • "what will the fat cat sit on"
    • E.g., Input: ""what will the fat cat", Prediction: "sit"
    • 컴퓨터가 단어를 인식할 수 있도록 모든 단어를 숫자로 인코딩
    • 훈련 corpus에 7개의 단어만 존재 \rightarrow one-hot encoding

2. Projection Layer

  • 투사층의 크기를 M으로 설정하면 각 입력 단어들은 투사층에서 V x M 크기의 가중치 행렬과 곱해짐
    • V: 단어 집합 크기
    • M: 투사층 크기
  • 만약 one-hot vector 차원이 7, M이 5라면?
  1. Lookup table
    • one-hot vector와 가중치 W 행렬의 곱은 사실 W행렬의 i번째 행을 그대로 읽어오는 것 \rightarrow lookup
    • V의 차원을 가지는 one-hot vector는 이보다 더 차원이 작은 M차원의 단어 벡터와 mapping
    • vector들은 초기에는 랜덤한 값을 가지지만 학습 과정에서 값이 계속 변경, 이 단어 벡터를 embedding vector라고 한다.
  2. Connection
    • 각 단어가 table lookup을 통해 embedding vector로 변경되고, 투사층에서 모든 embedding vector들의 값은 연결됨
  • x: 각 단어의 one-hot vector
  • t: NNLM이 예측하고자 하는 문장에서 t번째 단어
  • n: 윈도우 크기
  • lookup: lookup table을 의미하는 함수
  • ;: 연결 기호

3. Hidden Layer

  • 투사층의 결과는 h의 크기를 가지는 은닉층을 지남
  • 은닉층의 입력은 가중치와 곱해진 후 편향이 더해져 활성화 함수의 입력이 됨.
    • WhW_h: 가중치, bhb_h: 편향
    • tanh: 은닉층의 활성화 함수

4. Output Layer

  • 은닉층의 출력은 V의 크기를 가지는 출력층으로 전달
    • 다시 또 다른 가중치와 곱해지고 편향이 더해지면, 입력이었던 one-hot vector들과 동일하게 V차원 벡터
  • 만약 입력 벡터의 차원이 7이었다면 여기서 나오는 벡터도 7차원
  • 출력층에서는 활성화 함수로 Softmax 함수 사용
    • V차원의 벡터는 Softmax를 지나면서 0~1 사이의 실수값, 총 합 1.
    • 이렇게 나온 벡터를 NNLM의 예측값이라는 의미에서 y^\hat{y}

y^=softmax(Wyhlayer+by)\hat{y} = softmax(W_yh^{layer} + b_y)

  • 벡터 y^\hat{y}의 각 차원 안에서의 값이 의미하는 것.
    • y^\hat{y}의 j번째 인덱스가 가진 0과 1 사이의 값은 j번째 단어가 다음 단어일 확률
  • y^\hat{y}는 실제 정답에 해당되는 단어인 one-hot vector의 값(실제 y)에 가까워져야 함
    • 실제값에 해당되는 다음 단어를 y라고 했을 때, 이 두 벡터가 가까워지기 위해 Loss function으로 cross-entropy 사용
    • 역전파가 이루어지면서 가중치 행렬들이 학습되는데, 이 과정에서 embedding vector들도 학습됨

Pros

  • one-hot이 아니라 embedding으로 표현해 비슷한 용도로 쓰이는 단어들이 비슷한 벡터 값을 갖도록 학습되며 단어 간 유사도 표현 가능
  • embedding 덕분에 훈련에서 못 본 시퀀스라도 비슷한 문맥의 단어들을 이용해 그럴듯한 확률을 주고, 모든 n-gram count를 저장할 필요가 없어 sparsity & 저장 공간 문제 완화

Cons

  • 고정 길이 입력(n-gram window)을 사용하므로 정해진 n개 이전 단어만 보고 다음 단어를 예측해 더 먼 과거 문맥 정보는 활용 불가
  • 문장마다 길이가 다른 현실 데이터를 잘 다루려면 임의 길이 시퀀스를 처리할 수 있는 RNN, LSTM, Transformer와 같은 모델이 필요하다.

1.3 Computational Complexity

한 단어 처리 시 연산량

  • Projection Layer
    • 입력 n개의 one-hot vector를 embedding 차원 m으로 투영하는 데 n x m 연산
  • Hidden Layer
    • embedding을 모아 은닉층 크기 h로 변환하는 데 n x m x h 연산
  • Output Layer
    • 은닉층에서 단어 집합 크기 V로 가는 softmax 연산 h x V가 필요해 전체 복잡도는 nm + nmh + hV

지배항과 실제 규모

  • 일반적으로 V(단어 집합 크기)가 매우 크기 때문에 hV항이 나머지를 압도하며 사실상 복잡도는 O(hV)O(hV)
  • E.g., n = 10, m = 500, h = 500, V = 100,000 정도만 되어도 한 단어당 연산량이 매우 커져 NNLM 학습이 느려진다.

2. NNLM vs. Word2vec

NNLM

  • 언어 모델이므로 이전 단어들 \rightarrow 다음 단어 확률을 직접 예측하는 게 목적

Word2vec

  • 주변 단어들로 중심 단어를 맞히면서 embedding 학습에 초점
  • NNLM 구조에서 비선형 은닉층을 제거하고, 투사층(embedding)에서 바로 출력층으로 연결되는 훨씬 단순한 신경망

2.1 Computational Complexity

NNLM

  • nm + nmh + hV

Word2vec

  • 은닉층을 없애고 계층적 softmax나 negative sampling 같은 기법으로 각 단계 복잡도를 nm + mlogV까지 줄여 훨씬 빠르게 학습된다.
profile
갓생호소인

0개의 댓글