11편: 자연어 처리(NLP)의 진화, 단어에서 문맥을 읽기까지
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이미지넷 대회를 통해 시각 지능 분야에서 완벽한 승기를 잡은 딥러닝은 이제 인간 고유의 영역이자 가장 복잡한 데이터인 '언어(Language)'로 눈을 돌리기 시작했습니다. 컴퓨터 과학에서 인간의 말을 이해하고 분석하는 분야를 '자연어 처리(NLP, Natural Language Processing)'라고 부릅니다.
사실 초기 딥러닝이 언어를 다룰 때만 해도 학계의 시선은 그리 곱지 않았습니다. 이미지 속 픽셀은 고정된 수치 데이터지만, 인간의 언어는 유기적으로 변하고 모호하며, 같은 단어도 상황에 따라 완전히 다른 의미를 갖기 때문입니다.
실제로 제가 초기 자연어 처리 모델을 활용해 간단한 챗봇이나 번역기를 테스트했을 때 가장 골머리를 앓았던 부분이 바로 '동음이의어'와 '문맥의 단절'이었습니다. 예를 들어 "그는 배를 타고 가면서 배를 먹다가 배가 아팠다"라는 문장을 주면, 과거의 컴퓨터는 탈것(Ship), 과일(Pear), 신체 부위(Belly)를 전혀 구별하지 못하고 엉터리로 번역하곤 했습니다. 컴퓨터에게 언어는 그저 무의미한 숫자의 나열에 불과했기 때문입니다.
[단어를 숫자로 바꾸는 혁명: 워드투벡터(Word2Vec)]
이 한계를 깨부순 첫 번째 혁신은 2013년 구글이 발표한 '워드투벡터(Word2Vec)'라는 기술이었습니다. 말 그대로 '단어(Word)를 벡터(Vector, 숫자 배열)로 바꾼다'는 뜻입니다.
워드투벡터의 핵심 원리는 아주 기발했습니다. "비슷한 위치에서 함께 자주 나타나는 단어들은 서로 의미도 비슷하다"는 가정에서 출발한 것입니다. 예를 들어 '왕'과 '왕비', '남자'와 '여자'라는 단어는 수많은 문장 속에서 비슷한 맥락으로 등장합니다. 컴퓨터는 수십억 개의 문장을 읽으며 각 단어의 의미적 거리를 수학적 좌표 공간에 점으로 찍기 시작했습니다.
이 기술이 적용되면서 컴퓨터 세계에서는 놀라운 수학 연산이 가능해졌습니다.
[왕] - [남자] + [여자] = [왕비]
컴퓨터가 단어의 표면적인 글자 모양을 넘어, '왕은 남자의 속성을 가졌고, 거기에 여자의 속성을 더하면 왕비가 된다'는 개념적 관계를 숫자의 뺄셈과 덧셈으로 이해하기 시작한 것입니다. 처음 이 연산 결과를 논문으로 보았을 때의 전율은 지금도 잊혀지지 않습니다. 기계가 인간의 사유 방식을 수학으로 추적하기 시작한 순간이었으니까요.
[시간의 흐름을 기억하는 신경망: RNN과 LSTM]
단어의 의미는 채워졌지만, 진짜 문제는 '문장의 흐름'이었습니다. 인간의 말은 앞 단어가 뒤 단어에 영향을 주는 '시계열 데이터'입니다.
이를 해결하기 위해 등장한 것이 순환 신경망(RNN, Recurrent Neural Network)입니다. RNN은 정보를 한 방향으로만 처리하는 일반 신경망과 달리, 이전 단계에서 처리한 단어의 정보를 다음 단계로 넘겨주며 '기억'을 유지하는 구조였습니다. 덕분에 "나는" 다음에 "밥을"이 오면 "먹었다"가 올 확률이 높다는 것을 문맥 속에서 인지할 수 있게 되었습니다.
그러나 현실은 생각보다 냉혹했습니다. 문장이 조금만 길어지면 앞부분에 나왔던 중요한 단어를 컴퓨터가 까맣게 잊어버리는 '장기 의존성(Long-Term Dependency)' 문제가 발생한 것입니다. 문장 앞쪽에 나온 주어가 무엇이었는지 뒤쪽 조사나 서술어 단계에 이르면 기억하지 못해 전체 문맥이 꼬여버렸습니다.
이 문제를 보완하기 위해 중요하지 않은 정보는 지우고 기억해야 할 핵심 정보만 오래 남겨두는 '장단기 메모리(LSTM, Long Short-Term Memory)' 구조가 도입되었지만, 이 역시 태생적인 한계가 있었습니다. 문장을 처음부터 끝까지 '순서대로' 한 단어씩 읽어야만 했기 때문에, 대용량 데이터를 빠르게 병렬로 학습시키는 하드웨어(GPU)의 장점을 제대로 살릴 수 없었던 것입니다. 문장이 길어질수록 번역과 분석 속도는 턱없이 느려졌습니다.
인간의 복잡한 언어를 완벽하게 이해하기에는 여전히 무언가 결정적인 한 조각이 부족해 보였습니다. 그리고 2017년, 구글의 연구원들은 이 순서대로 읽는 가혹한 굴레를 완전히 벗겨버릴 역사상 가장 혁신적인 언어 아키텍처를 세상에 공개하게 됩니다.
[핵심 요약]
초기 자연어 처리(NLP)는 문맥과 동음이의어를 구분하지 못하는 한계가 있었으나, 구글의 '워드투벡터(Word2Vec)'를 통해 단어의 의미를 수학적 벡터 공간에 정밀하게 표현하며 돌파구를 찾았습니다.
문장의 순서와 흐름을 기억하기 위해 RNN과 LSTM 신경망이 도입되어 초기 문맥 이해를 도왔습니다.
그러나 문장이 길어질수록 과거 정보를 잊어버리는 장기 의존성 문제와, 순차적 연산으로 인한 학습 속도의 저하라는 기술적 장벽에 부딪혔습니다.
[다음 편 예고]
순서대로 단어를 읽던 한계를 깨부수고, 문장 전체의 관계를 한눈에 파악하는 혁신적인 구조가 등장합니다. 다음 편에서는 현재 ChatGPT를 비롯한 모든 생성형 AI의 거대한 뿌리가 된 '트랜스포머(Transformer) 아키텍처'의 탄생 비화를 다루어 보겠습니다.
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기