신경망 기반 언어 모델
2003년 요수아 벤지오(Josha Bengio)는 기존 통계 기반 언어 모델의 한계를 다음과 같이 지적했습니다.
학습 데이터에 등장하지 않는 어휘의 확률이 0이 됨.
긴 맥락을 반영하기 어렵다.
단어/문장이 모두 독립적이고, 상호 유사도 계산이 불가능하다.
기존 통계 기반 언어 모델에서는 학습 데이터에 등장하지 않은 단어나 구문이 있을 경우, 해당 단어의 확률을 0으로 설정하는 문제가 발생합니다. 그러나 실제 언어에서는 새로운 단어나 표현이 지속적으로 등장하며, 특히 희귀 단어나 신조어는 학습 데이터에서 충분히 나타나지 않을 가능성이 높습니다. 이로 인해 기존 모델은 새로운 단어나 문맥을 처리하는 데 어려움을 겪게 됩니다.
N-Gram 모델은 특정한 길이(N)만큼의 단어를 고려하여 다음 단어의 확률을 계산하는 방식입니다. 하지만 이 방식은 고정된 개수의 단어만을 참조하므로 긴 문맥을 반영하기 어렵습니다. 예를 들어, N을 3으로 설정하면 현재 단어의 확률을 계산할 때 이전 두 개의 단어만 고려할 수 있으며, 문장이 길어질수록 초기 문맥 정보가 손실됩니다. 또한 N을 너무 크게 설정하면 학습 데이터에서 해당 N개의 연속된 단어 조합이 등장하지 않는 경우가 많아 확률이 0이 되는 문제가 발생합니다.
통계 기반 모델에서는 단어 간의 관계를 개별적인 요소로 취급하여, 의미적 유사성을 반영할 수 없는 한계가 존재했습니다. 예를 들어, “휴대폰”과 “핸드폰”은 같은 의미를 가진 단어이지만, 통계 모델에서는 이 두 단어를 완전히 독립적인 요소로 간주하여 유사성을 고려할 수 없습니다. 즉, “휴대폰”이라는 단어가 자주 등장하는 문장에서는 “핸드폰”이 대체될 가능성을 전혀 인식하지 못하는 것입니다. 이는 자연어 처리에서 중요한 문제로, 인간은 두 단어가 동의어임을 쉽게 인식할 수 있지만, 기존 모델은 단순한 확률적 조합만을 고려하기 때문에 이러한 관계를 반영할 수 없습니다.
어휘의 수학적 표현¶
텍스트에서 사용되는 각 단어와 표현은 특정한 의미를 대표합니다. 대부분의 단어는 사용되면서 점차 의미가 형성되고 정리됩니다. 즉, 사전이 없어도 사람들은 이전부터 언어를 사용해 의사소통을 해 왔고, 언젠가 그런 것들을 텍스트의 형식으로 정리한 것이 사전입니다. 따라서, 사전적 정의는 사후의 것입니다.
언어의 의미 형성 과정은 통계적 접근 방식만으로는 완전히 설명하기 어렵습니다. 언어를 배울 때 다양한 활용 사례를 접하지만, 모든 경우를 직접 경험하지 않아도 활용 방식을 유추할 수 있습니다. 이러한 유추가 기존 언어 사용자들에게 자연스럽게 받아들여진다면, 우리는 해당 어휘의 활용법을 규칙으로 인식하게 됩니다. 즉, 텍스트의 의미를 온전히 텍스트만으로 전달하는 것은 한계가 있습니다. 그러나 우리는 '나는 너를 사랑’과 '나도 너를 사랑’이 강조하는 대상이나 감정의 뉘앙스가 다름을 직관적으로 이해합니다. 텍스트의 의미는 텍스트가 아닌 다른 형태의 무언가로 적절하게 표현될 필요가 있음을 시사합니다.
한국어에서 ‘형’, ‘오빠’, ‘언니’, '누나’는 유사한 개념이지만, 성별과 관계에 따라 다른 의미를 가집니다. 어떤 단어들은 의미적으로 가깝거나 반대되는 관계를 가질 수 있습니다. '형’과 '오빠’는 유사한 개념이지만, 완벽한 동의어는 아닙니다. 또한, '형’과 '오빠’는 남성을, '언니’와 '누나’는 여성을 기준으로 사용되므로 서로 대조적인 의미를 가질 수도 있습니다.
단어들의 거리를 우리가 느낀다면, 이는 어휘에 대해 수학적인 표현이 가능하고 필요하다는 것을 시사합니다. 예를 들어, 다음과 같은 넌센스 퀴즈를 가정해 보겠습니다.
여자 + 오빠 - 남자 = ?이러한 연산은 정의되지 않았지만 직관적으로 이해할 수도 있습니다. 실제로 이 문제를 풀어본 사람들 중 많은 이들이 '언니’라고 답했습니다. '언니’라고 답한 이유를 말로 서술하자면 '여자에게 손윗사람이면서 가족이고, 남자가 아니면서 오빠에 대응하는 사람’을 지칭한다고 표현하면 그럴 법하다고 느낍니다. 그런데 이러한 서술이 위와 같이 수학적 기호로 표현이 된 것에 대응한다고 느끼는 것이 우리 머릿속에서 단어를 어떻게 표현하는가에 대해 여러 시사점이 있습니다. 즉, 수학적 연산이 적용될 수 있는 내부적인 표현이 어떤 단어에 대응될 수 있다는 것입니다.
기호 기반 표현¶
기호 기반 표현(symbolic representation)은 각 단어를 기본적으로 정수로 인코딩합니다. 예를 들어, 개=1, 고양이=2와 같은 방식입니다. 이것은 연산 가능한 숫자로 바꿀 뿐 어떤 표기에서 다른 표기로 바꾸는 것에 지나지 않습니다. 만약 "1004"라는 숫자가 있을 때, 이 단어의 정수 인코딩값이 공교롭게도 1004라고 하겠습니다. 정수 인코딩 값은 어휘 집합에서 1004번째 단어임을 뜻합니다.
정수 인코딩에서 할당되는 값은 임의적인데, 종종 텍스트 데이터에서 도수가 높은 단어일수록 먼저 값을 배정하는 방식을 많이 활용합니다. 숫자는 보통 의미가 없지만, “007”, 역사적인 사건 등이 일어난 시점으로써 "1982"와 같은 숫자들은 의미있는 단어로 취급될 수 있습니다.
원-핫-인코딩¶
유한한 개수의 집합에서 정수값으로 표현될 경우, 이는 범주형 변수로 간주됩니다. 이때, 크기 개념이 의도치 않게 반영되는 문제를 방지하기 위해 원-핫 인코딩(one-hot encoding)이 자주 사용됩니다.
예를 들어, RGB 색상(Red, Green, Blue)과 같은 3가지 값이 가능한 범주형 변수를 살펴보겠습니다. 이 경우, 정수 인코딩을 적용하면 R=1, G=2, B=3과 같은 방식으로 변환할 수 있습니다. 그러나 이러한 방식에서는 빨간색이 초록색보다 작거나, 초록색이 파란색보다 작다는 잘못된 의미가 내포될 수 있습니다. 이러한 부작용을 방지하기 위해, 정수 값을 벡터 공간에서 표현하는 방법이 사용됩니다. 벡터 공간의 차원은 어휘의 크기만큼 설정되며, 각 단어는 단위 벡터로 표현됩니다.
이렇게 표현하면 각 어휘는 모두 서로 독립적입니다. 이는 각 벡터의 거리가 모두 동일하다는 것을 의미합니다. 기하학적으로, 이러한 벡터들은 서로 직교하는 형태를 가집니다. 이러한 방식은 정수 인코딩이 가지는 문제점인 의도하지 않은 크기 개념을 방지할 수 있습니다.
벡터 유사도¶
단어를 벡터로 표현하면, 해당 벡터의 위치를 통해 단어의 의미를 반영할 수 있다고 가정할 수 있습니다. 즉, 단어의 의미가 효과적으로 반영되었다면, 의미적으로 유사한 단어들은 샘플 공간에서 서로 가까운 위치를 차지하게 됩니다.
벡터 간의 유사도를 측정하는 대표적인 방법 중 하나로 코사인 유사도(Cosine Similarity)가 자주 사용됩니다.
두 벡터 간 유사도를 계산할 때 단순히 유클리드 거리를 사용하는 대신, 벡터 크기의 영향을 줄이기 위해 코사인 유사도를 활용합니다. 유클리드 거리는 벡터 크기에 따라 값이 달라질 수 있어 유사성을 정확하게 반영하지 못할 수도 있습니다. 반면, 코사인 유사도는 벡터 간의 방향적 유사성을 측정하여 벡터 크기의 영향을 받지 않고, 두 벡터의 상대적인 관계를 더욱 정확하게 반영할 수 있습니다.
예를 들어, 두 개의 단어 벡터를 2차원 공간에서 다음과 같이 정의한다고 가정해 보겠습니다.
개 (dog) = (3, 4)
강아지 (puppy) = (6, 8)
이 경우, 두 벡터의 유클리드 거리는 다음과 같습니다.
하지만, 코사인 유사도를 계산하면 다음과 같습니다.
유클리드 거리는 5이지만, 두 벡터의 방향이 완전히 동일하므로 코사인 유사도는 1이 됩니다. 즉, 벡터의 크기에 관계없이 방향이 동일하면 유사도가 1로 유지되며, 이는 단어 간 의미적 유사성을 측정하는 데 더욱 적절한 방식입니다.
‘강아지’, ‘개’, '사과’의 효과적인 벡터 표현을 가정하면, '개’와 '강아지’의 벡터는 높은 유사도를 가져야 하지만, '사과’의 벡터는 이들과 관련성이 낮아 유사도가 0에 가까운 값을 가져야 합니다.
그러나 기호 기반의 원-핫 인코딩 방식에서는 모든 벡터 간의 코사인 유사도가 0이 됩니다. 즉, 모든 어휘가 완전히 독립적인 요소로 간주되므로, 의미적 유사성이 전혀 반영되지 않습니다. 원-핫 인코딩 방식에서는 ‘개’, ‘강아지’, ‘고양이’, ‘자동차’, ‘집’, ‘남자’, ‘여자’ 등의 모든 단어가 동일한 크기를 가지며, 서로 직교하는 벡터로 표현됩니다. 이로 인해 단어 간 유사성을 반영할 수 없고, 모든 단어가 동일한 거리를 가지는 문제가 발생합니다. 단어 간 유사성을 반영할 수 없다는 점은, 원-핫 인코딩이 의미를 효과적으로 표현하는 방식이 아님을 의미합니다.
정리¶
통계적 접근과 신경망 기반 접근의 근본적인 차이를 정리하면 통계적 접근법에서는 단어의 등장 빈도를 확률로 변환하여 모델을 학습합니다. 반면, 신경망 기반 임베딩 기법은 데이터를 학습하며 단어의 의미적 표현을 스스로 학습하는 것에 초점을 맞춥니다. 정확한 표현 학습이 이루어지면, 모델은 문맥을 더 잘 이해하고, 이를 바탕으로 다음 단어를 효과적으로 예측할 수 있습니다. 즉, 통계적 접근과 신경망 기반 접근은 동일한 데이터를 학습하지만, 학습 결과는 본질적으로 다릅니다. 2003년 신경 확률 언어 모델(NPLM; Neural Probabilistic Language Model)에서는 신경망이 단어의 분산 표현을 학습할 수 있음을 보여주었습니다. 이는 기존 N-Gram 모델의 한계를 극복하는 중요한 전환점이었으며, 이후 Word2Vec, GloVe 등의 기법으로 발전하여 현대적인 자연어 처리 모델의 기반이 되었습니다.