인공지능과 자연어처리의 개념
인공지능은 주어진 데이터를 바탕으로 추론(inference), 지각(recognition) 및 학습(learn)하는 인간의 지적 능력을 컴퓨터에 구현하고자 하는 분야입니다. 현재의 인공지능 기술은 대량의 학습 데이터(training data)를 바탕으로 주어진 태스크를 인간의 개입을 최소화 하여 해결하는 것(약인공지능, weak ai)에 초점이 맞추어져 있지만 궁극적으로는 인간의 개입을 완전히 없애고 모든 분야에서 스스로 생각하고 판단할 수 있는 기계(강인공지능, strong ai)를 창조하고자 합니다.
인공지능은 스스로의 존재 의미를 궁금해하는 지구상에서 가장 발달한 지적 생명체 인간이 또다른 지적인 존재를 창조해내고자 하는 염원이 담긴 분야입니다. 따라서 인공지능은 단순히 컴퓨터 과학과 통계학뿐 아니라 인지심리학, 신경과학, 뇌 과학 그리고 철학에 이르기까지 매우 다양한 분야와 상호작용하며 매우 빠르게 발전하고 있는 흥미로운 분야라고 할 수 있습니다.
이 책에서 다루는 자연어처리(NLP)는 인공지능의 한가지 분야인데, 인공지능은 다루는 데이터의 형태에 따라 크게 두가지로 나눌 수 있습니다. 우선 기온, 주가, 매출액 등 수치형 데이터(numerical data)입니다. 수치형 데이터는 행(row)과 열(column)로 잘 정리되어 데이터 분석에 활용하기 쉽죠. 회귀 분석(regression analysis), 의사결정나무(decision tree) 등 비교적 간단한 기계학습 모델로 분석이 가능합니다. 이러한 데이터를 정형 데이터(structured data)라고 하는데, 정해진 구조에 따라 테이블 형태로 저장된 데이터 말합니다.
그러나 실제로 인공지능의 원료가 되는 데이터는 대부분 지저분하고 규칙성 없이 인터넷 상에 아무렇게나 널려있는 비수치형 데이터(non numerical data) 경우가 많습니다. 데이터를 처음 받아봤을 때 도무지 어떻게 처리해야 할지 감이 안오는 난감한 데이터들이죠. 이처럼 숫자의 형태를 띄지 않고 정의된 구조가 없는 텍스트, 이미지, 로그와 같은 데이터를 비정형 데이터(unstructured data)라고 합니다.
자연어처리는 텍스트라는 구조화 되지 않은 비정형 데이터를 다루는 분야입니다. 컴퓨터는 기본적으로 숫자로 데이터를 인식하기 때문에 이러한 비정형 데이터가 아무리 많다고 해도 곧바로 인공지능 학습 데이터로 사용할수는 없습니다. 따라서 이러한 텍스트 데이터를 컴퓨터가 인식할 수 있는 형태의 데이터로 바꾸고 수치화 해주는 작업이 필요한데, 뒷 장에서 자세히 다루겠지만 토큰화(tokenization)와 임베딩(embedding) 등 다양한 사전작업이 필수적입니다.
인공지능은 활용 목적에 따라서도 이미지 처리(image processing), 로보틱 처리 자동화(Robotic Process automation, RPA), 자연어처리(NLP) 등 다양한 하위분야로 나눌 수 있습니다. 이 책에서 다루는 자연어처리(NLP)는 인간의 언어현상을 인공지능을 통해 구현해내는 인공지능의 한 분야로, 2장에서 살펴보았듯이 매우 불규칙적이고 모호하며 가변적인 인간 언어의 특성으로 인해 구현하기 매우 까다롭고 어려운 분야로도 잘 알려져 있습니다.
자연어처리는 큰 틀에서 자연어를 컴퓨터가 이해하고 구사할 수 있도록 하는 다양한 인공지능 기술의 집합이라고도 정의내릴 수 있습니다. 쉽게 말해 자연어처리는 컴퓨터가 문맥 파악 및 추론을 통해 인간의 언어를 더욱 잘 알아듣고, 인간처럼 자연스럽게 생성해낼 수 있도록 통계학(statistics)과 기계학습(machine learning)과 딥러닝(deep learning)과 같은 다양한 인공지능 기술을 적용하여 연구하는 분야인 것입니다.
자연어처리와 유사하며 자주 혼용되는 개념으로는 텍스트 마이닝(text mining)이라는 것이 있습니다. 텍스트 마이닝이란 텍스트 데이터를 분석하여 그 속에서 유의미한 패턴과 경향성을 찾아내는 다양한 분석 기법과 방법론을 말합니다. 텍스트 마이닝을 위한 과정에서 자연어처리가 활용되기도 하지만, 이 책에서 주로 다루게 될 자연어처리(NLP)와는 엄연히 다른 개념입니다.
인공지능은 데이터 학습 및 예측에 적용되는 인공지능 알고리즘의 종류에 따라 또다시 기계학습과 딥러닝 등으로 나눌 수 있습니다. 기계학습(machine learning, ML)은 주로 통계학과 컴퓨터 과학을 활용한 알고리즘을 지칭합니다. 반면 딥러닝(deep learning, DL)은 기계학습의 하위 개념으로 주로 인공신경망(Artificial Neural Network, ANN)을 활용한 심층망 학습을 사용하는 알고리즘들을 가리킵니다.
하지만 개발자들 사이에서 머신러닝이라는 말은 머신러닝(ML)과 딥러닝(DL) 모두를 포함한 개념으로 많이 쓰이기도 합니다. 좁은 의미에서 머신러닝은 회귀모델(regression)이나 랜덤포레스트(random forest)와 같은 통계학 기반의 알고리즘을 가리키지만, 넓은 의미에서는 순환신경망(RNN)이나 컨볼루션신경망(CNN)과 같은 딥러닝 알고리즘까지 포함하는 것입니다.
이 책에서 다루는 자연어처리 역시 많은 ML/DL 테크닉이 활용되는 분야이며 따라서 통계학과 머신러닝에 대한 기초적인 개념에 대한 이해가 필요합니다. 자연어처리에는 n-gram과 같은 통계학 이론에 기반한 알고리즘 뿐 아니라 RNN(Recurrent Neural Network)와 LSTM(Long Short Term Memory)과 같이 인공 신경망의 힘을 빌린 딥러닝 기반 언어모델 역시 많이 활용되며, 특히 최근에는 인터넷상의 대규모 텍스트 데이터를 사전학습(pre-trained)한 초거대언어모델(LLM) 에 대한 연구가 활발히 이루어지고 있습니다.
인공지능이 작동하는 방식은 인간이 개입하여 학습 데이터에 대한 정답을 직접 알려주고, 그것을 바탕으로 미지의 데이터에 대한 답을 찾게 하는 지도학습(supervised learning)과 알고리즘에게 선택 가능한 옵션들을 주고 그에 대한 보상을 통해 행동을 강화하는 방식인 강화학습(reinforcement learning) 그리고 인간이 개입하지 않고 수많은 데이터 속에서 알고리즘이 스스로 패턴을 찾아가게 하는 비지도학습(unsupervised learning)으로 나뉩니다.
자연어처리에도 인공지능의 대표적인 학습방식 세가지 모두 적용됩니다. 예를 들어 OpenAI의 ChatGPT에는 방대한 양의 데이터를 사전학습(pre-trained)시키는 지도학습 방식과 사용자의 피드백을 훈련에 반영하여 스스로 답변의 질을 개선하기 위한 일종의 강화학습(reinforcement learning from human feedback, RLHF) 방식이 모두 적용되어 보다 정교한 답변이 가능하도록 설계 되어있습니다. 반면에 2003년 개발된 토픽 모형(topic model)은 별도의 데이터 학습이 필요 없는 전형적인 비지도학습 방식으로 텍스트를 분류하는 모델입니다.