올해는 다양한 분야에 있어서, AI를 탑재한 제품/서비스들이 적극적으로 활용되기 시작하고 있습니다. 그중에서도, 커뮤니케이션에 꼭 필요한 언어의 분야에서 많은 사람들이 편리하다고 느끼고 있어 더욱더 큰 주목을 받고 있습니다.
이 AI의 언어의 분야에는 자연어 처리를 시작으로 하는 기술이 필요합니다. 그래서 이번에는 자연어 처리 기술 향상에 중요한 역할을 하고 있는 Word2vec에 대해 자세히 소개해 드리려고 합니다.
용어가 조금 생소하게 느껴지실 수도 있겠지만, 최대한 쉽고 간단하게 풀어서 설명해 보려 하니 아래 글을 참고 부탁드립니다.
자연어란?
Word2vec에 대해서 알아보기에 앞서, 이전 포스팅에서 간략히 말씀드렸던 자연어에 대해서 간략하게 복습해 보도록 하겠습니다.
자연어란 우리가 일상적으로 이야기하거나 쓰고 있는 한국어나 영어, 독일어 등 '자연스러운 언어'를 가리킵니다. 이 자연어의 대조적인 존재가 프로그래밍 언어입니다.
프로그래밍 언어에는 일체의 모호성이 없지만, 자연어에는 모호성이 있기 때문에, 그 말(문자)의 의미를 컴퓨터가 올바르게 이해하는 것은 결코 쉬운 일이 아니었습니다.
예를 들면 '갈색 눈이 큰 늑대'라는 말이 있었다고 가정해 봅시다. 이 경우 '눈이 갈색이다', '큰 늑대'라는 뉘앙스도 되고, '갈색'의 '눈이 큰 늑대'라는 뉘앙스도 되는 것입니다. 따라서 본래 전하고 싶은 의미와는 다르게 전달되는 경우도 자주 발생했습니다.
프로그래밍 언어의 경우는 간단한 수학 계산식과 같이, 답이 하나밖에 존재하지 않습니다. 컴퓨터 제어를 하기 위한 프로그램을 기술하는 언어이기 때문에 모든 컴퓨터가 같은 해석을 할 수 있는 것입니다. 그렇기 때문에 같은 프로그래밍에 대해 컴퓨터마다 다른 움직임을 한다는 현상이 일어나는 일은 없습니다.
그렇다면 Word2vec 이란 무엇일까요? 자세하게 알아보겠습니다.
Word2vec란
Word2vec란 문장에 포함된 단어를 수치(숫자) 벡터로 변환하여 그 의미를 파악해 나가는 자연어 처리 기법입니다. 비교적 간단하게 학습을 실시할 수 있는 Python을 이용할 수 있기 때문에, 초보자도 이용하기 쉬운 자연어 처리의 수법으로 알려져 있습니다.
그런 Word2vec는 기존의 자연어 처리보다 정확도가 높은 것이 특징입니다. 특히 문장의 의미를 파악한다는 점에서는 지금까지의 자연어 처리보다 훨씬 높은 정확도를 실현할 수 있게 되었습니다.
Word2vec의 이름은 그야말로 word to vector라는 말입니다. Word2vec는 '의미 벡터'라고 하는 단어의 벡터 표현을 가능하게 하는 기술이라서 이와 같은 이름이 붙여졌습니다. '같은 맥락에서 나타나는 단어는 비슷한 의미를 가진다.'라는 분포 가설이 근본적인 설계 사상으로 자리 잡고 있는 것입니다.
Word2vec는 Google의 연구자인 토마스 미코로후(Tomáš Mikolov)가 이끄는 연구 팀이 2013년에 작성되었습니다. 그 해에 논문을 공개하는 특허도 취득하고 있습니다.
Word2vec의 구조
Word2vec에는 2개 층의 신경망으로만 구성되어 있다는 큰 특징이 있습니다. 구조가 단순하기 때문에 대규모 데이터에 의한 분산 표현 학습을 현실적인 계산량에 의해서 실행할 수 있게 된 것입니다. 그 결과, 분산 표현에서의 자연어 처리를 비약적으로 진행할 수 있었습니다.
그런 Word2vec에는 스킵그램(skip-gram)법과 CBOW라고 하는 2개의 모델이 내포되어 있습니다. 이 두 가지 구조에 대해 자세히 살펴봅시다.
스킵그램(skip-gram) 법
스킵그램법에서는 지도학습이 이용됩니다. 입력으로서 중심어를 부여하고, 그 주변어의 예측을 출력해 가는 구조입니다. 이 학습을 통해 네트워크 내 단어 주위에 어떤 단어가 나타날 수 있는지 배우게 합니다.
CBOW
중심어에서 주변어를 예측하는 방식의 스킵 그램 법과는 반대로, CBOW는 주변어에서 중심어를 예측하는 구조입니다. CBOW도 스킵그램과 마찬가지로 지도학습이 사용됩니다. CBOW에서는 입력이 주변어 출력이 중심어가 됩니다.
오늘 포스팅에서는 Word2vec의 개념과 구조에 대해서 알아보았습니다.
다음 포스팅에서는 설명드린 Word2vec이 할 수 있는 일에는 어떤 것이 있고, 어떻게 활용하고 있는지에 대해서 다뤄보도록 하겠습니다.
'인공지능 (AI)' 카테고리의 다른 글
전이 학습의 개념, 장단점, 활용 사례 (2) | 2025.01.03 |
---|---|
Word2vec의 활용 범위와 사례 (2) | 2025.01.02 |
RNN(순환 신경망)의 활용 범위와 응용 (0) | 2024.12.30 |
RNN(순환 신경망)의 정의, 개념, 구조 (0) | 2024.12.27 |
CNN(합성곱 신경망)의 특징과 활용 사례 (2) | 2024.12.26 |