PyTorch로 배우는 자연어 처리
우리와 함께 말하는 감자를 탈출하자!
강돈혁(도녁)
국민대학교 소프트웨어학과
박성민(레드)
중앙대학교 소프트웨어학과
한준희(준희)
이화여자대학교 전기전자공학부
교재 소개
「파이토치로 배우는 자연어 처리」 - 한빛미디어
이 책은 자연어 처리 와 딥러닝 알고리즘 학습에 필요한 지식들을 다룹니다. 또한 파이토치를 사용하여 자연어 처리 과정에서 겪을 수 있는 다양한 문제들과 여러 방식의 텍스트를 표현해내는 애플리케이션을 구축하는 방법을 설명해줍니다.
2장 - 자연어 처리를 위한 기본 언어 개념
2장에서는 전통적인 자연어 처리(Natural Language Processing)의 개념과 방법론에 대해 둘러봅니다. 정확히는 자연어 처리 분야로 발전하기 전의 분야인 전산 언어학 속 개념을 간략하게 알아볼 것입니다. 음성 인식, 번역, 감정 분석, 질의 응답 등을 개발하는 자연어 처리 분야와 다르게, 전산 언어학은 컴퓨터가 활용할 수 있도록 언어의 특징을 이해하는 분야입니다. 전산 언어학의 개념들은 자연어 처리의 기초지식으로 활용되기 때문에, 전산 언어학의 개념들을 알면 자연어 처리를 더욱 쉽게 이해할 수 있습니다.
5장 - 단어 임베딩과 CBOW
자연어 처리 분야에서는 언어를 밀집 벡터로 표현되는 이산적인 형태의 데이터로 변환하는 것이 매우 중요합니다. ‘임베딩 - Embedding’이라는 용어는 이산 타입의 데이터와 벡터 공간의 점을 매핑하는 것을 의미합니다. 즉, 단어 임베딩이란 N차원의 벡터 공간에 단어를 적절한 위치에 배치하는 것을 의미합니다. 이때, 더 적은 차원의 벡터 공간에 더 많은 단어 데이터를 담을수록 연산이 효율적으로 수행할 수 있습니다.
이번 장에서는 단어 임베딩과 관련된 벡터 표현, 단어 임베딩 방법, 임베딩 벡터의 최적화, 단어 임베딩을 문장이나 문서와 연결하는 방법에 대해 공부합니다!
6장 - 자연어 처리를 위한 시퀀스 모델링 - 초급
이미지나 붓꽃 정보와 같은 숫자 데이터를 사용할 때는, 앞뒤 데이터간의 연관성이 없기 때문에 각각의 데이터를 따로 처리하는게 가능했습니다. 그러나, 언어, 음성 등의 데이터에서는 각 데이터들이 앞뒤 데이터와 깊은 관련이 있어 별개의 데이터로써 처리할 수 없습니다. 아래 예시를 통해 주어에 따라 같은 의미의 동사라도 다른 형태를 보이며, 동사 데이터가 앞 주어 데이터에 큰 의존도를 보이고 있음을 확인할 수 있습니다.
친구가 밥을 먹는다.
아버지가 밥을 드신다.
할아버지가 진지를 잡수신다.
Plain Text
복사
이러한 의존도는 문장에서 단어 사이의 거리가 멀어지더라도 유지되어집니다.
진지를 잡수신다며 놀고있던 나에게 갑작스레 마당 청소를 부탁하신 할머니가 지금 주무신다.
Plain Text
복사
이렇게 언어처럼 순서에 대한 의존도를 보이는 데이터를 순차 데이터(Sequence Data)라고 하며, 언어를 이해하기 위해서는 반드시 시퀀스를 이해해야 합니다. 딥러닝에서 이러한 시퀀스에 대한 모델링은 상태 정보 혹은 은닉상태 (Hidden State)를 유지하는 것과 연관되어 있습니다. 일반적으로 시퀀스에 대한 모든 정보를 시퀀스 표현(Sequence Representation)이라 부르는 하나의 벡터에 담아 분류와 예측 등의 다양한 task에 활용합니다.
이번 장에서는 가장 기본적인 신경망 시퀀스 모델로, RNN이라는 이름으로 더욱 친숙한 순환 신경망 모델(Recurrent Neural Network)에 대해 소개하며 언어 데이터를 처리하는 모델과 분류 예제를 공부합니다. 이후 7장에서 시퀀스 모델을 통해 시퀀스를 생성하는 방법에 대해 다룰 예정입니다.
7장 - 자연어 처리를 위한 시퀀스 모델링 - 중급
앞서 공부한 6장에서 소개한 엘만 RNN을 시퀀스 예측 작업에 사용할 수는 있지만, 실제로 글이 멀리 떨어진 경우 의존성을 잘 감지하지 못하기 때문에 잘 동작하지 않습니다. 따라서, 이번 장에서는 게이트 네트워크라는 새로운 RNN 구조를 공부하며 이러한 단점을 극복하는 방법에 대해 알아보겠습니다.
8장 - 자연어 처리를 위한 시퀀스 모델링 - 고급
이번 장에서는 기본적인 RNN 모델의 메커니즘을 변형하여 예측 성능을 끌어올린 다양한 모델에 대해 알아봅니다. 특히 자연어처리 외의 여러 분야에서도 좋은 성능을 보이며 다양하게 적용되고있는 트랜스포머 모델의 어텐션 메커니즘에 대해서도 이번 장에서 알아보겠습니다.