NLP + Pytorch/1강 - intro to Deep Learning & NLP

1-3강 - 자연어 처리 최근 trend

intelligentcm 2020. 3. 2. 18:48

1. 딥러닝이 접목된 현재까지의 흐름

0) 기존에는 n-gram 기반 언어 모델을 이용했습니다.

1) RNN 활용

1> 2010년부터 RNN을 활용해서 언어 모델을 시도했습니다.

2> 결국 기존 n-gram 방식과 RNN의 결합을 통해 더 나은 성능을 가져왔습니다.

3> 단점: speech recognition과 machine translation 분야에 쓰이기에는 연산량이 너무 많았습니다.

 

2) word2vec (토마스 미코로프, 2013, 구글)

1> 간단한 구조의 Neural Network를 사용해서 단어들을 latent space로 성공적으로 투사시킴

2> 이를 통해 고차원의 공간상의 단어가 어떻게 latent space에 배치되는지 알 수 있습니다.

3> 시각화 사이트: http://projector.tensorflow.org/

 

비슷한 의미의 단어일수록

저차원의 latent space에서 가깝게 위치합니다.

 

시각화를 통해 딥러닝을 활용하여 NLP의 문제를 해결할 때

네트워크 내부는 어떤 식으로 동작하는 지에 대한 인사이트를 얻을 수 있습니다.

 

3) CNN을 이용한 NLP

이전까지만 해도 text는 sequential한 data이기 때문에 RNN이 NLP에 적합하다는 통념이 있었습니다.

1> 하지만 2014년 CNN만을 활용하여 기존의 text classification의 성능을 향상시켰습니다.

2> 이 방법은 embedding vector와 결합하여 성능을 더 극대화할 수 있었습니다. 

4) 이외의 다른 기법들

1> 형태소 분석

2> sentence parsing (문장 파싱)

3> named entity recognition (개체명 인식)

4> semantic role labeling (의미역 결정)

5> 하지만 딥러닝의 등장으로 추후 end-to-end 모델을 만드는 방향으로 연구가 진행되어 1~4는 큰 파란을 일으키지는 못했습니다.

 

 

2. Natural Language generation (자연어 생성)

1) 'seq2seq -> attention -> machine translation에서의 큰 성과' 순으로 발전했습니다.

2) 또한 위의 기법들 덕분에 주어진 정보에 기반해서 자유롭게 문장을 생성(자연어 생성)할 수 있게 되었습니다.

 

 

3. 메모리를 활용한 심화 연구

attention이 성공을 거두자 연속적으로 정보를 읽고 쓰는 기법에 대한 관심이 커졌습니다.

1) neural turing machine (NTM)

1> 특정 주소에서만 정보를 읽는 방법을 떠나 여러 주소에서 연속적으로 정보를 읽고 쓰는 방법 제시

2) differential neural computer (DNC)

3) memory augmeted neural network (MANN)

1> 신경망을 통해 메모리를 활용하는 기법

2> 이 기법을 통해 최종적으로는 우리가 원하는 정보를 신경망을 통해 저장하고 필요할 때 잘 조합하여 쓰는 Q&A와 같은 문제에 효율적으로 대응할 수 있습니다.

 

4. 강화학습의 자연어 처리 분야에 대한 성공적인 적용

VAE나 GAN이 computer vision에서 잘 사용되고 있으나 NLP는 그럴 필요가 없습니다. 

이미 언어 모델 자체가 문장에 대한 생성 모델 학습이기 때문입니다.

1) 다른 어려움 직면: loss function과 objective function과의 괴리

1> 딥러닝에서 사용하는 loss function과 실제 기계번역을 위한 objective function과의 괴리

(computer vision은 기존 mse의 한계를 극복하기 위해 GAN을 도입)

2) seqGAN

1> NLG분야에서도 강화학습을 활용하여 seqGAN과 같이 GAN을 구현하는 방법이 제시되었습니다.

2> 강화학습의 policy gradient 방식을 NLG에 성공적으로 적용

3> 이를 통해 computer vision에서 GAN과 유사한 학습을 NLP에서도 가능해졌습니다.

4> 강화학습을 사용하여 실제 자연어 생성에서의 objective function으로부터 reward를 받게 되면서 점차 실제 사람이 사용하는 듯한 문장을 생성하는 능력이 향상