인간 수준의 자연어 처리

딥러닝 시대 이전

신경망이 강력한 머신러닝 도구 라기보다 수학적으로 호기심이었던 배우기 힘든 일이었던 이전에 놀랍게도 자연어 처리 (NLP) 에서 고전적인 데이터 마이닝 알고리즘의 많은 성공적인 응용 프로그램이있었습니다. 스팸 필터링이나 음성 태그 지정과 같은 문제는 오히려 쉽고 이해하기 쉬운 모델을 사용하여 해결할 수 있는 것으로 보입니다 .

그러나 모든 문제가 이런 식으로 해결 될 수 있는 것은 아닙니다. 단순한 모델은 아이러니하게 숙어 또는 문맥과 같은 언어적인 미묘함을 제대로 포착하지 못합니다. 전반적인 요약 (예 : bag-of-word )을 기반으로 한 알고리즘은 텍스트 데이터의 순차적 성격을 포착 할 만큼 강력하지 않은 반면, n-gram 은 일반적인 상황을 모델링하는 데 어려움을 겪었으며 차원성의 저주(curse of dimensionality)로 인해 심각하게 고통 받았습니다. HMM 기반 모델 조차도 Markovian 특성(memorylessness) 때문에 이러한 문제를 극복하는 데 어려움이 있었습니다. 물론 이러한 방법은 복잡한 NLP 작업을 처리 할 때도 사용되었지만 큰 성공을 거둔 것은 아닙니다.

첫 번째 혁신 – Word2Vec

신경망을 NLP에 적용하여 근본적으로 개선된 것은 의미론적으로 풍부한 단어 표현을 제공했습니다. 이전에는 가장 일반적인 표현이 소위 원-핫 인코딩(one-hot encoding) 이었습니다 . 각 단어는 하나의 0이 아닌 항목만 있는 고유한 바이너리 벡터로 변환됩니다. 이 접근 방식은 희박성(sparsity)으로 인해 심하게 고통을 받았으며 특정 단어의 의미를 전혀 활용하지 못했습니다.

 

대신, 몇 개의 인접 단어를보고, 중간 단어 하나를 제거하고 중간 단어 (skip-gram) 또는 다른 방법인 연속된 단어 모음 (Continuous Bag of Words, CBOW )으로 신경망을 예측하게 합니다. 물론 그러한 모델은 쓸모가 없지만, 부작용 으로 단어의 의미 구조를 보존하는 놀랍도록 강력한 벡터 표현을 생성합니다.

추가 개선 사항

새로운 강력한 Word2Vec 표현으로 여러 고전 알고리즘의 성능이 향상 되었지만 텍스트( 장문, 단문) 에서 순차적 종속성을 캡처 할 수 있는 솔루션이 필요했습니다 . 이 문제의 첫 번째 개념은 소위 바닐라 재귀 신경망 ( vanilla Recurrent Neural Networks) 이었습니다. 이들은 숨겨진 상태로 저장된 이전 단어에 대한 정보를 사용하면서 순차적으로 단어를 네트워크에 공급함으로써 데이터의 일시적인 특성을 십분 활용 합니다.

 

 

이 네트워크는 지역 종속성을 매우 잘 처리하지만 vanishing gradient로 인해 훈련하기가 어렵다는 것이 밝혀졌습니다. 이 문제를 해결하기 위해 LSTM (Long Short-Term Memory) 이라는 새로운 네트워크 토폴로지가 개발되었습니다. 메모리 셀(memory cell) 이라는 네트워크에 특수 장치를 도입하여 문제를 처리합니다 . 이 정교한 메커니즘을 통해 많은 매개 변수를 크게 늘리지 않고 더 긴 패턴을 찾을 수 있습니다.

많은 대중적인 아키텍처는 메모리 셀 업데이트 메커니즘의 지능적 단순화로 인해 필요한 매개 변수의 수를 크게 줄인 mLSTM 또는 GRU 와 같은 LSTM의 변형이 있습니다.

컴퓨터 비전에서 CNN (Convolutional Neural Networks)이 놀라울 정도로 성공한 이후, 그들의 사용이 NLP로 확장되는 것은 시간 문제였습니다. 오늘날 1D 컨볼루션은 시맨틱 세분화(semantic segmentation)빠른 기계 번역(machine translation) 및 재순환 네트워크를 능가 하는 sequence to sequence learning에 이르는 보다 쉬운 병렬화로 인해 한단계 더 빠르게 교육 할 수 있습니다.

이제 일반적인 NLP 문제를 해결해 보겠습니다.

인간 관찰자에게는 사소한 것이지만 컴퓨터에서 많은 문제를 야기하는 컴퓨터와 인간 언어 간의 상호 작용에 관한 다양한 작업이 있습니다. 이것은 아이러니하게 관용구와 같은 많은 언어적 뉘앙스에 의해 주로 발생합니다.

연구원이 다루기를 시도하는 NLP의 영역 (대략적으로 복잡한 순서대로) :

가장 흔하고 가장 쉬운 방법은 감정 분석(Sentiment Analysis) 입니다. 그것은 특정 화제 또는 일반적으로 화자/작가의 태도 또는 정서적 반응을 결정하는 것으로 이어집니다. 가능한 정서는 긍정적이고, 중립적이며 부정적 입니다. 여기에 당신이 사용하는 방법에 대한 좋은 기사를 찾을 수 있습니다 Deep CNN을 트위터에서 감정을 학습합니다. 또 다른 흥미로운 실험은 Deep Recurrent Net 이 우연히 정서를 배울 수 있음을 보여 줬습니다.

 

 

이전 사례의 일반적인 일반화는 문서 분류 (Document Classification)로 3가지 가능한 플래그 중 하나를 각 기사에 할당하는 대신 일반 분류 문제를 해결합니다. 알고리즘 비교(comparison of algorithm)는 딥러닝이 텍스트 분류에 적합하다고 할 수 있습니다.

이제 우리는 진정한 의미로 나아갑니다. 기계 번역(Machine Translation)은 오랫동안 심각한 도전이었습니다. 이 점은 이전의 점들과 완전히 다른 점임을 이해하는 것이 중요합니다. 이제 모델대신 단어 시퀀스를 예측해야합니다 . 여기에서 우리는 순차적인 데이터에 관해서는 믿을 수 없는 해결책이었으므로 딥러닝을 통해 문제가 무엇인지 볼 수 있습니다. 이에 블로그 게시물에서 자세한 내용을보실 수 있습니다. RNN이 번역을 해결하고 여기에 달성 방법에 대한 최신 결과를 확인할 수 있습니다.

이제 한단계 올려 봅니다. 기본적으로 모든 의미를 유지하면서 텍스트의 가장 중요한 부분만 추출하는자동 텍스트 요약(Text Summarization) 모델이 필요합니다. 이는 엔드- 투 – 엔드 솔루션 내부의 모듈로 소개 될 수있는 주의 메커니즘 (Acoustic Mechanism)에 의해 매우 깔끔하게 해결됩니다.

마지막으로, 인공 지능 과 유사한 질문 답변을 얻을 수 있습니다. 모델은 질문을 이해할 필요가 있을뿐만 아니라 관심있는 텍스트를 완전히 이해하고 대답을 산출하기 위해 정확한 상황을 알아야합니다. 솔루션에 대한 자세한 설명은 이 기사를 확인 하십시오.

 

 

딥러닝은 다양한 종류의 데이터 (예 : 텍스트 및 이미지)에 대한 벡터 표현을 제공 하므로 다양한 도메인을 활용하는 모델을 만들 수 있습니다. 이것이 연구자들이 Visual Question Answering을 생각해 내는 방법 입니다. 문제는 “사소한 것”입니다. 이미지에 관한 질문에 대답하면 됩니다. 그럼에도 불구하고 심층 모델은 인간의 감독없이 합리적인 결과를 먼저 산출합니다. 이러한 모델의 결과 및 설명은 이 백서에 있습니다.

원문 : https://sigmoidal.io/boosting-your-solutions-with-nlp/