티스토리 뷰

반응형

기존 통계 기반 언어 모델의 문제점

  1. 학습 데이터에 존재하지 않는 n-gram 데이터가 포함된 문장이 나타날 확률 값을 0으로 부여한다.
    • 이러한 문제점은 Back-off 또는 Smoothing 방법으로 일부 보완할 수는 있지만 완전히 해결할 수 있는 것은 아니다.
  2. '장기 의존성 (Long-Term Dependency)' 문제가 발생한다.
    • 즉, n-gram 의 n 의 값이 커질수록 등장 확률 값이 0인 단어 시퀀스가 폭발적으로 증가하게 된다.
  3. 단어 / 문장유사도를 계산할 수 없다.
    • 단어들은 모두 원-핫 벡터로 표현되고, 두 단어의 유사성을 구하기 위해 내적을 할 경우 값은 항상 0이 나오며, 이는 두 단어 벡터가 직교 (Orthogonal) 한다는 것이다.
    • 직교한다는 것두 벡터가 서로 독립적 (Independent) 이라는 것을 의미하지만, 현실에서는 단어들간 관련성이 없는 것이 아니다.
    • 이러한 문제를 해결하기 위해 분산 표현 (Distributed Representation) 이라는 개념이 등장한다.
    • 분산 표현 : Distributed Representation

 

Back-off ?

  • n-gram 등장 빈도n보다 작은 범위의 단어 시퀀스로 근사하는 방식이다.
    • ex) "나는 친구와 저녁에 방탈출 카페에서 방탈출을 하였다" 라는 문장이 있으며, 말뭉치에 한 번도 등장하지 않아 확률이 0이라고 해보자.
    • 7-gram 모델을 적용하면 당연히 등장 확률이 0으로 나오게 될 것이다.
  • Back-off 방식을 이용하여 7 을 4 (원하는 숫자) 로 줄인 다음 근사한 수식은 아래와 같을 것이다.
  • α와 β실제 빈도와의 차이를 보정해주는 파라미터이다.
  • 빈도가 1 이상이면 Back-off 방식을 사용할 필요 없이 그 빈도를 그대로 사용하면 된다.

Smoothing

  • 등장 빈도 표모두 k만큼 빈도수를 더해주는 기법이다.
    • "나는 친구와 저녁에 방탈출 카페에서 방탈출을 하였다" 라는 문장의 빈도는 k = (0 + k) 될 것이며, Add + k Smoothing 이라고도 한다.
  • Smoothing을 수행하면 등장 빈도가 높은 단어들의 등장 확률을 일부 깎고, 등장하지 않은 단어들에는 일부 확률을 부여한다.

 

NPLM (Neural Probabilistic Language Model) ?

  • NPLM은 통계 기반 언어 모델 문제점을 일부 극복한 방법이며, 아키텍처는 아래와 같다.

 

NPLM의 학습 과정

  • NPLM은 n - 1개의 단어 시퀀스를 가지고 n번째 단어를 예측하는 n-gram 언어 모델이다.
    • 즉, 단어 시퀀스가 주어지고 다음 단어가 무엇인지 맞추는 과정에서 학습한다.
  • NPLM은 아래 수식을 최대화 하려고 하며, 각 조건부 확률 \(P\) (\(w_{4}\) | \(w_{1}\), \(w_{2}\), \(w_{3}\)), \(P\) (\(w_{5}\) | \(w_{2}\), \(w_{3}\), \(w_{4}\)), \(...\) 을 높인다는 의미이다.

수식 설명

  • \(w_{t}\) : \(t\) 번째 단어
  • \(y_{w_{t}}\) : '출력 (Output)' 부분에서 설명

입력 (Input)

  • 아래 수식을 통해 문장 내 \(t\) 번째 단어 \(w_{t}\) (원-핫 벡터로 되어 있다) 에 대응하는 단어 벡터 \(x_{t}\) 를 만든다.

$$x_{t} = C (w_{t})$$

  • \(|V|\) x \(m\) 크기를 갖는 커다란 행렬 \(C\) 에서 \(w_{t}\) 에 해당하는 벡터를 참조 (Lookup) 한 형태이다.
  • \(C\) 행렬초기 원소 값은 랜덤으로 초기화한다.
  • \(|V|\) 는 어휘 집합 크기, \(m\) 은 \(x_{t}\) 의 차원 수다.
  • 이렇게 나온 문장 내 모든 단어에 대한 벡터 \(x_{t}\) 를 이어붙인다 (Concatenate).

참조 (Lookup) ?

  • 어휘 집합에 속한 단어가 5개 뿐이고, \(w_{t}\)가 네 번째 단어라고 가정하자.
  • 그러면 \(C(w_{t})\) 는 행렬 \(C\)와 \(w_{t}\) 에 해당하는 원-핫 벡터 (One-hot Vector) 를 내적 (Inner Product) 한 것과 같다.
  • 이는 \(C\) 행렬에서 \(w_{t}\) 에 해당하는 행 (Row) 만 참조하는 것과 동일하다.

출력 (Output)

  • NPLM은 \(|V|\) 차원의 Score 벡터 \(y_{w_{t}}\)Softmax 함수를 적용한 \(|V|\) 차원의 확률 벡터를 출력으로 내놓는다.
  • 이는 곧 조건부 확률과 같으며, 확률 벡터에서 가장 높은 요소의 인덱스에 해당하는 단어가 실제 정답 단어와 일치하도록 학습한다.

입력부터 출력 사이의 과정

  • 행렬 \(C\) 를  참조하여 단어 \(w\) \(=\) [\(w_{t - 1}\), \(w_{t - 2}\), \(...\), \(w_{t - n + 1}\)] 를 단어 벡터 \(x\) \(=\) [\(x_{t - 1}\), \(x_{t - 2}\), \(...\), \(x_{t - n + 1}\)] 로 만들었다.
  • 그 다음 n - 1 개의 단어 벡터 \(x\) \(=\) [\(x_{t - 1}\), \(x_{t - 2}\), \(...\), \(x_{t - n + 1}\)] 와 아래 수식을 이용하여 \(y_{w}\) 를 계산한다.

$$y_{w_{t}} = b + U · tanh(d + Hx_{t})$$

  • 마지막으로 각 \(y_{w_{t}}\) 에 Softmax 함수를 적용한 뒤 이를 정답 단어의 인덱스와 비교하여 역전파 (Backpropagation) 방식으로 학습이 이루어진다.
  • 최종적으로 학습이 종료되면 행렬 \(C\) 를 각 단어에 해당하는 \(m\) 차원 임베딩으로 사용한다.
  • 다음은 NPLM의 파라미터 차원 수를 정리한 것이다.

의미 정보

  • ["나는", "친구와", "저녁에"] 단어들을 가지고 "방탈출" 이라는 단어를 맞추는 과정에서 생기는 학습 손실을 최소화하는 그래디언트 (Gradient) 를 받아 동일하게 업데이트 된다.
  • 이는 단어 벡터들이 벡터 공간에서 같은 방향으로 조금씩 움직인다고 볼 수 있다.
  • 결과적으로 임베딩 벡터 공간상에서 거리가 가깝다는 것은 의미가 유사하다는 것이다.

 

NPLM의 이점과 한계

  • 기존 통계적 n-gram 언어 모델을 일부 개선하였지만 여전히 문제점을 가지고 있다.

1) 기존 모델에서의 개선점 (One-hot Vector -> Distributed Representation / Sparse -> Dense)

  • NPLM은 밀집 벡터 (Dense Vector) 를 사용한다.
  • 이 밀집 벡터를 통해 단어의 유사도를 표현할 수 있으며, 희소성 문제 (Sparsity Problem) 를 해결할 수 있다.
  • 또한, 모든 n-gram을 저장하지 않기 때문에 n-gram 언어 모델보다 저장 공간의 이점을 가진다.

2) 고정된 길이 입력 (Fixed-length input)

  • NPLM은 n-gram 언어 모델과 마찬가지로 다음 단어를 예측하기 위해 이전의 모든 단어를 참고하는 것이 아닌, 정해진 n개의 단어만 참고한다.
    • 이는 버려진 단어들의 문맥 정보를 참고할 수 없다는 것이다.
  • 훈련 말뭉치에 있는 각 문장의 길이가 전부 다를 수 있으며, 이를 개선하기 위해서는 모델이 매번 다른 길이의 입력 시퀀스에 대해서도 처리할 수 있는 능력이 있어야 한다.

3) 계산복잡성 (Computational Complexity)

  • 임베딩으로 사용하는 행렬 \(C\) 외에도 \(H\), \(U\), \(b\), \(d\) 등 다른 파라미터들까지 업데이트를 해줘야 한다.
  • 따라서, 과적합 (Overfitting) 이 발생할 위험이 높다.
  • 이러한 문제점을 극복하기 위해 학습 파라미터를 줄이는 방향으로 제시된 모델이 Word2Vec이다.

 

Reference

논문

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함