본문 바로가기
  • AI와 함께 세상을 아름답게
인공지능(AI)이란? - 기초 개념 및 이론

자연어처리(NLP; Natural Language Processing) - 딥러닝을 이용한 자연어처리 (4)

by neo-Lee 2023. 6. 3.

2. 머신러닝을 이용한 자연어처리

    앞서 설명한 바와 같이 자연어처리 기술은 수작업으로 문법이나 사전을 사전에 구성하는 (종래형) 방법에서 대규모 말뭉치(corpus)를 전제로 한  통계적 방법으로 발전했습니다. 그러나 대규모 데이터 처리에는 통계적 방법뿐만 아니라 머신러닝(machine learning), 특히 딥러닝(deep learniing)이 유용하게 사용되고 있습니다. 통계기반 기계번역과 인공신경망 기계번역은 딥러닝을 활용합니다. 사람은 학습 데이터를 수집하고 가공해서 컴퓨터에 던져주고, 컴퓨터는 입력된 학습 데이터를 바탕으로 스스로 공부합니다. 학습(learning)이 끝나면 번역 프로그램이 스스로 공부한 바를 바탕으로 새로운 문장을 보더라도 번역할 수 있는 능력을 키울 수 있습니다. 

<그림 1> wikipedia "Recurrent Neural Network"

2.1 딥러닝(machine learning)과 자연어처리

    딥러닝(deep learning)의 방법을 자연어처리에 적용할 경우 자연어로 표현된 데이터를 신경망에 입력하는 방법을 고민해야 합니다. 형태소 분석으로 얻은 개개의 형태소신경망에 입력하려면 어떤 방법이 되었든 자연어 표현을 수치로 표현하여 입력해야 합니다. 

1) 원-핫 인코딩(One-Hot Encoding)은 그 많은 기법 중에서 단어를 표현하는 가장 기본적인 표현 방법이며, 머신 러닝, 딥 러닝을 하기 위해서는 반드시 배워야 하는 표현 방법입니다. 원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식입니다. 이렇게 표현된 벡터를 원-핫 벡터(One-Hot vector)라고 합니다. One-Hot Vector형태소(단어)를 사전 개수만큼의 차원을 가지는 Vector로 표현하는 것입니다. 

 

    ***예를 들어 '봄에 꽃이 피다'라는 문장을 원-핫 벡터로 기술하면 다음과 같습니다.

 

    우선 형태소를 분석해 입력문에 포함된 단어를  아래와 같이 열거합니다. 형태소의 종류가 5종류이므로 5차원의 벡터를 준비합니다. 그리고 각 형태소에 대응하는 고유한 벡터 표현을 분배합니다.

  봄,               에 ,             꽃,           이,           피다        (*형태소 별로 분리 열거한 형태)

      ↓                ↓                ↓            ↓              ↓

(1 0 0 0 0) (0 1 0 0 0) (0 0 1 0 0) (0 0 0 1 0) (0 0 0 0 1)      (* 상기 형태소에 대응하는 one-hot vector)

    이처럼 하나의 형태소 표현에 형태소 수만큼의 벡터를 준비해야 하므로 규모가 큰 문장을 대상으로 하는 경우에는 벡터의 차원수가 수만 가지로 늘어나게 됩니다. 또한 이렇게 많은 데이터를 처리가 가능한 대규모 시스템이 필요해지는 단점이 있습니다.

    이런 단점을 보완하는 방법으로 Bag of Words라는 방법이 있습니다. Bag of Words에서는 원-핫 벡터를 그대로 적용하지 않고, 원-핫 벡터 방식을 이용하되, 하나의 벡터를 사용하는 문장에 포함된 형태소의 값을 차원별로 합산해서 일괄적으로 표현하는 방식을 쓰는 것입니다. 이 방법을 이용하면 어떤 문장에 포함된 형태소가 일괄적으로 벡터로 표현되므로 그 문장의 의미를 표현할 수 있다고 합니다.

 

2.2  Word2vec 방식

    워드투벡터(word2vec)란 단어의 맥락을 신경망으로 표현하는 방법으로, 단어의 의미, 문법 정보를 함축한 숫자값(*임베딩값)으로 변환하는 방법입니다. 워드투벡터(word2vec)는 유사한 단어끼리 임베딩값이 가까이 위치하게 하고, 또한 임베딩 간의 사칙연산이 가능하게 하기 위해 사용됩니다. 워드투벡터(word2vec) 에는 두 가지 모델이 있습니다. 하나는 CBOW(Continuous Bag of Words)라는 모델이고, 다른 하나는 Skip-Gram이라는 모델입니다. 

 (*자연어 처리에서 단어나 문장을 벡터로 표현하는 기법을 임베딩이라고 합니다. 임베딩은 단어나 문장의 의미와 관련된 정보를 보존하면서 수치화된 형태로 표현하는 것이 주요한 목표입니다)

 

1) CBOW

    CBOW는 어떤 형태소(단어)의 전후에 출현하는 형태소(단어)를 입력하고, 그 사이에 있는 형태소(단어)를 출력하는 3층 신경망입니다. 쉽게 말하자면 주변 단어를 이용하여 중심 단어를 예측하는 모델입니다. CBOW 신경망은 앞뒤의 형태소 사이에 해당하는 최적의 형태소를 학습합니다. 학습을 위한 학습 데이터세트를 작성하고 적정한 형태소(단어)가 출력되도록 CBOW의 네트워크를 학습시킵니다.

 

2) Skip-Gram

    Skip-Gram은 CBOW와 반대 개념의 모델입니다. 중심 단어를 이용하여 주변 단어를 예측하는 방식의 모델입니다. 어떤 형태소(중심단어)를 입력하여 그 전후에 출현하는 형태소(단어)를 출력하는 신경망을 학습시켜 구합니다. 

 

이와 같은 신경망 학습을 마치면 네트워크의 매개변수인 가중치를 찾아야 합니다. 이 가중치는 형태소를 수치로 나타낸  데이터 표현으로 간주됩니다. 즉, Word2vec 기법은 신경망 학습을 이용해 형태소에 관련된 정보를 벡터표현으로 꺼내는 것입니다. 이때 얻은 벡터 표현분산 표현(distributed representation)이라고 합니다.    

3) 분산 표현 방법(Distributed Representation)

    워드투벡터분산 표현(Distributed Representation) 방법 중 하나입니다. 분산 표현 방법이란 "비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다"라는 가정 하에 접근하는 방법으로 단어 임베딩값을 고정된 차원에서 연속된 실수로 표현하는 방법입니다. 예를 들어 "사과"라는 단어는 "빨갛다", "과일" 유사한 의미를 가지는 단어이므로 임베딩 값들은 고정된 차원에서 유사한 실수값을 가지게 됩니다. 즉 분산 표현 방법은 단어의 의미를 고정된 차원에 분산하여 표현하는 방법입니다. 

 

2023.06.02 - [인공지능(AI; Artificial Intelligence)] - 자연어처리(NLP; Natural Language Processing) - 통계적 처리 및 기계번역 (3)

728x90

댓글