자연어 처리 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
94번째 줄: 94번째 줄:
  
 
===최신 자연어 처리===
 
===최신 자연어 처리===
; 머신러닝의 도입
+
; 기계학습의 도입
최근 딥러닝을 필두로 머신러닝 기술들이 눈부시게 발달함에 따라 자연어 처리 분야에서도 머신러닝 모델을 이용하여 애매성을 해소하고자 하는 연구들이 활발히 진행되고 있다. 머신러닝 또는 기계학습은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 머신러닝의 핵심은 표현과 일반화에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 즉, 머신러닝이란 학습 데이터라고 불리는 주어진 데이터의 특성을 잘 설명할 수 있으면서도 평가 데이터라고 불리는 새로운 데이터에 적응성이 높은 일종의 함수를 자동으로 찾아내는 것이라고 할 수 있다. 자연어 처리와 연관된 머신러닝 문제는 분류 문제(classification problem), 순차적 표지 부착 문제(sequence labeling problem), 그리고 정책 결정 문제(policy decision problem)로 나뉠 수 있다. 아래 표는 각 머신러닝 문제와 관련이 있는 자연어 처리 기술들을 보여준다.<ref name="김학수"></ref>
+
최근 딥러닝을 필두로 기계학습 기술들이 눈부시게 발달함에 따라 자연어 처리 분야에서도 기계학습 모델을 이용하여 애매성을 해소하고자 하는 연구들이 활발히 진행되고 있다. 기계학습 또는 머신러닝은 인공지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 기계학습의 핵심은 표현과 일반화에 있다. 표현이란 데이터의 평가이며, 일반화란 아직 알 수 없는 데이터에 대한 처리이다. 즉, 기계학습이란 학습 데이터라고 불리는 주어진 데이터의 특성을 잘 설명할 수 있으면서도 평가 데이터라고 불리는 새로운 데이터에 적응성이 높은 일종의 함수를 자동으로 찾아내는 것이라고 할 수 있다. 자연어 처리와 연관된 기계학습 문제는 분류 문제(classification problem), 순차적 표지 부착 문제(sequence labeling problem), 그리고 정책 결정 문제(policy decision problem)로 나뉠 수 있다. 아래 표는 각 기계학습 문제와 관련이 있는 자연어 처리 기술들을 보여준다.<ref name="김학수"></ref>
 
:{|class=wikitable width=800 style="background-color:#ffffee"
 
:{|class=wikitable width=800 style="background-color:#ffffee"
|+머신러닝 문제에 따른 자연어 처리 기술
+
|+기계학습 문제에 따른 자연어 처리 기술
!align=center style="background-color:#ffeecc"|머신러닝 문제
+
!align=center style="background-color:#ffeecc"|기계학습 문제
 
!align=center style="background-color:#ffeecc"|자연어 처리 기술
 
!align=center style="background-color:#ffeecc"|자연어 처리 기술
 
!align=center style="background-color:#ffeecc"|설명
 
!align=center style="background-color:#ffeecc"|설명
122번째 줄: 122번째 줄:
 
분류 문제가 적용된 예로는 스팸 메일 자동 필터링 시스템, 신문 기사 범주 자동 결정 시스템, 댓글 감정 분석 시스템 등이 있다. 자연어 처리 분야에서는 의존 구조 분석 시에 현재 어절의 지배소가 어느 것인지를 결정하는 것 즉, 후속 어절 각각에 대해 지배소 가능 여부를 결정하는 것에 적용될 수 있다. 순차적 표지 부착 문제는 시간 순서대로 입력되는 데이터 전체를 고려하면서 각 지점에 분류 모델을 적용하여 범주를 부착하는 것이다. 어절로 구성된 문장 전체에 품사를 부착하는 형태소 분석이나 개체명 경계를 찾고 범주를 부착하는 개체명 분석 등 자연어 처리의 많은 문제들이 순차적 표지 부착 문제에 해당한다. 정책 결정 문제는 대량의 데이터를 바탕으로 정해진 목적을 달성하기에 가장 적합한 정책인지 무엇인지를 결정하는 문제이다. 구글의 딥마인드(DeepMind)가 선보인 알파고와 같은 프로그램이 정책 결정 문제가 적용된 예라고 할 수 있다. 자연어 처리 분야에서는 대용량의 목적 지향 대화 말뭉치(Goal-Oriented Dialogue Corpus)를 바탕으로 해당 목적을 달성하기 위해서 현재 어떤 의도의 발화를 하는 것이 가장 좋은 정책인지를 결정하는 것에 적용될 수 있다.<ref name="김학수"></ref>
 
분류 문제가 적용된 예로는 스팸 메일 자동 필터링 시스템, 신문 기사 범주 자동 결정 시스템, 댓글 감정 분석 시스템 등이 있다. 자연어 처리 분야에서는 의존 구조 분석 시에 현재 어절의 지배소가 어느 것인지를 결정하는 것 즉, 후속 어절 각각에 대해 지배소 가능 여부를 결정하는 것에 적용될 수 있다. 순차적 표지 부착 문제는 시간 순서대로 입력되는 데이터 전체를 고려하면서 각 지점에 분류 모델을 적용하여 범주를 부착하는 것이다. 어절로 구성된 문장 전체에 품사를 부착하는 형태소 분석이나 개체명 경계를 찾고 범주를 부착하는 개체명 분석 등 자연어 처리의 많은 문제들이 순차적 표지 부착 문제에 해당한다. 정책 결정 문제는 대량의 데이터를 바탕으로 정해진 목적을 달성하기에 가장 적합한 정책인지 무엇인지를 결정하는 문제이다. 구글의 딥마인드(DeepMind)가 선보인 알파고와 같은 프로그램이 정책 결정 문제가 적용된 예라고 할 수 있다. 자연어 처리 분야에서는 대용량의 목적 지향 대화 말뭉치(Goal-Oriented Dialogue Corpus)를 바탕으로 해당 목적을 달성하기 위해서 현재 어떤 의도의 발화를 하는 것이 가장 좋은 정책인지를 결정하는 것에 적용될 수 있다.<ref name="김학수"></ref>
  
; 머신러닝 기반 자연어 처리 모델
+
; 기계학습 기반 자연어 처리 모델
머신러닝 기반의 형태소 분석, 개체명 인식, 의미역 결정 등은 식 (2)와 같이 순차적 표지 부착 문제로 변환하여 해결한다.
+
기계학습 기반의 형태소 분석, 개체명 인식, 의미역 결정 등은 식 (2)와 같이 순차적 표지 부착 문제로 변환하여 해결한다.
  
 
  식 (2) <math>NLP(S) = \mbox{arg}L_{1,n} \mbox{max}P(L_{1,n}|\mbox{seg}_{1,n})</math>
 
  식 (2) <math>NLP(S) = \mbox{arg}L_{1,n} \mbox{max}P(L_{1,n}|\mbox{seg}_{1,n})</math>
173번째 줄: 173번째 줄:
 
  식 (3) <math>NLP(S)=\mbox{arg}L_{1,n } \mbox{MAX } \prod_{i=1}^n P(L_{i}|L_{i-1})</math>
 
  식 (3) <math>NLP(S)=\mbox{arg}L_{1,n } \mbox{MAX } \prod_{i=1}^n P(L_{i}|L_{i-1})</math>
  
식 (3)과 같은 모델에서 성능을 좌우하는 것은 <math>Seg_{i}</math>를 어떻게 표현할 것인지(어떻게 추상화할 것인지)와 <math>L_{i}</math> 주변의 문맥을 어떻게 반영할 것인지로 요약할 수 있다. MEMM(Maximum Entropy Makov Model)과 같은 전통적 머신러닝 모델에서는 <math>Seg_{i}</math>를 효과적으로 추상화하기 위해서 언어 분석 전문가들이 정의한 자질들을 사용하였다. 예를 들어, 개체명 인식의 경우에 <math>Seg_{i}</math>의 전체나 일부가 개체명 사전에 포함되어 있는지 여부, <math>Seg_{i}</math>의 품사, <math>Seg_{i-1}</math>의 품사, <math>Seg_{i+1}</math>의 품사 등이 주요 자질로 사용되었다. 그러나 최근데 딥뉴럴넷(Deep Neural Network)에 대한 연구가 활발히 이루어지면서 대용량의 말뭉치에서 자동으로 계산된 Word2Vec을 이용하여 <math>Seg_{i}</math>를 벡터 형태로 추상화하거나 <math>Seg_{i}</math>를 음절 형태로 분리한 후 CNN(Convolutional Neural Network)을 통해 추상화하는 방법이 사용된다.
+
식 (3)과 같은 모델에서 성능을 좌우하는 것은 <math>Seg_{i}</math>를 어떻게 표현할 것인지(어떻게 추상화할 것인지)와 <math>L_{i}</math> 주변의 문맥을 어떻게 반영할 것인지로 요약할 수 있다. MEMM(Maximum Entropy Makov Model)과 같은 전통적 기계학습 모델에서는 <math>Seg_{i}</math>를 효과적으로 추상화하기 위해서 언어 분석 전문가들이 정의한 자질들을 사용하였다. 예를 들어, 개체명 인식의 경우에 <math>Seg_{i}</math>의 전체나 일부가 개체명 사전에 포함되어 있는지 여부, <math>Seg_{i}</math>의 품사, <math>Seg_{i-1}</math>의 품사, <math>Seg_{i+1}</math>의 품사 등이 주요 자질로 사용되었다. 그러나 최근데 딥뉴럴넷(Deep Neural Network)에 대한 연구가 활발히 이루어지면서 대용량의 말뭉치에서 자동으로 계산된 Word2Vec을 이용하여 <math>Seg_{i}</math>를 벡터 형태로 추상화하거나 <math>Seg_{i}</math>를 음절 형태로 분리한 후 CNN(Convolutional Neural Network)을 통해 추상화하는 방법이 사용된다.
  
식 (3)의 경우에 현재 표지의 왼쪽에 있는 표지만 문맥으로 고려되는 단방향성 문제가 존재한다. 이를 해결하고 효과적으로 <math>L_{i}</math> 주변 문맥을 반영하기 위해서 좌우 문맥을 모두 고려하는 CRFs의 모델이 제안되었으며, 최근에는 RNN(Recurrent Neural Network) 계열의 딥뉴럴넷과 CRFs가 결합된 모델들이 주로 사용한다. 좌우 문맥을 모두 고려하는 Bi-LSTM-CRF(Bidirectional Long Short-Term Memory with Conditioanl Random Fields)라는 신경망 모델도 있다. 머신러닝 기반의 의존 구조 분석은 두 어절 사이의 의존 여부와 구문 표지를 결정적으로 찾아가는 분류 문제로 변환하여 해결할 수 있다. 아래 표는 전이 기반 구문 분석 알고리즘에 따라 "나는 예쁜 꽃을 좋아한다."라는 문장의 의존 구조를 분석하는 과정을 보여준다.<ref name="김학수"></ref>
+
식 (3)의 경우에 현재 표지의 왼쪽에 있는 표지만 문맥으로 고려되는 단방향성 문제가 존재한다. 이를 해결하고 효과적으로 <math>L_{i}</math> 주변 문맥을 반영하기 위해서 좌우 문맥을 모두 고려하는 CRFs의 모델이 제안되었으며, 최근에는 RNN(Recurrent Neural Network) 계열의 딥뉴럴넷과 CRFs가 결합된 모델들이 주로 사용한다. 좌우 문맥을 모두 고려하는 Bi-LSTM-CRF(Bidirectional Long Short-Term Memory with Conditioanl Random Fields)라는 신경망 모델도 있다. 기계학습 기반의 의존 구조 분석은 두 어절 사이의 의존 여부와 구문 표지를 결정적으로 찾아가는 분류 문제로 변환하여 해결할 수 있다. 아래 표는 전이 기반 구문 분석 알고리즘에 따라 "나는 예쁜 꽃을 좋아한다."라는 문장의 의존 구조를 분석하는 과정을 보여준다.<ref name="김학수"></ref>
  
 
:{|class=wikitable width=600 style="background-color:#ffffee"
 
:{|class=wikitable width=600 style="background-color:#ffffee"
211번째 줄: 211번째 줄:
 
위 표에서 보듯이 전이 기반 한국어 의존 분석은 스택(후입 선출 형태의 자류 구조)과 큐(선입 선출 형태의 자료 구조)의 첫 어절을 비교하여 Shift  할 것인지 Reduce 할 것인지를 반복적으로 이진분류 하는 방식으로 이루어진다. Shift인 경우에 큐의 첫 어절을 스택으로 이동시키며, Reduce인 경우에 스택의 마지막 어절과 큐의 첫어절로 구성된 의존 구조 트리를 구성하고 스택의 마지막 어절을 제거한다. 이와 같은 전이 기반 방법은 두 어절 사이의 정보를 바탕으로 의존 여부를 결정하기 때문에 문장의 전체 구조를 반영할 수 없다는 단점이 있다. 이러한 문제를 해결하기 위해서 최근에는 모든 의존 관계 후보를 그래프 형태로 만들고 전체 후보 중에서 가장 높은 점수를 갖는 후보를 효과적으로 선택하기 위한 다양한 방법들이 활발히 연구되고 있다.
 
위 표에서 보듯이 전이 기반 한국어 의존 분석은 스택(후입 선출 형태의 자류 구조)과 큐(선입 선출 형태의 자료 구조)의 첫 어절을 비교하여 Shift  할 것인지 Reduce 할 것인지를 반복적으로 이진분류 하는 방식으로 이루어진다. Shift인 경우에 큐의 첫 어절을 스택으로 이동시키며, Reduce인 경우에 스택의 마지막 어절과 큐의 첫어절로 구성된 의존 구조 트리를 구성하고 스택의 마지막 어절을 제거한다. 이와 같은 전이 기반 방법은 두 어절 사이의 정보를 바탕으로 의존 여부를 결정하기 때문에 문장의 전체 구조를 반영할 수 없다는 단점이 있다. 이러한 문제를 해결하기 위해서 최근에는 모든 의존 관계 후보를 그래프 형태로 만들고 전체 후보 중에서 가장 높은 점수를 갖는 후보를 효과적으로 선택하기 위한 다양한 방법들이 활발히 연구되고 있다.
  
머신러닝 기반의 대화 상대 추적은 강화학습으로 대변되는 정책 결정 문제로 변환하여 해결한다. 대화 상태 추적에 적용된 대표적 정책 결정 모델은 POMDP(Partially Observable Markov Decision Process) 모델이다. POMDP 모델은 대용량의 대화 말뭉치로부터 강화학습을 통해 시스템의 대화 상태를 확률적으로 파악하고 다음 행동을 결정한다. 확률 기반 모델은 음성 인식 오류를 포함한 예기치 않은 사용자 입력에 대해서 부분적으로 관찰된 정보를 바탕으로 시스템의 의도를 결정할 수 있다는 장점이 있지만 학습을 위해서 매우 많은 담화 정보 부착 말뭉치를 필요로 한다는 문제를 안고 있다. 최근에는 딥뉴럴넷을 이용하여 다음 행동을 결정하는 NNMDP(Neural Network Markov Decision Process)와 같은 모델이 연구되고 있다.<ref name="김학수"></ref>
+
기계학습 기반의 대화 상대 추적은 강화학습으로 대변되는 정책 결정 문제로 변환하여 해결한다. 대화 상태 추적에 적용된 대표적 정책 결정 모델은 POMDP(Partially Observable Markov Decision Process) 모델이다. POMDP 모델은 대용량의 대화 말뭉치로부터 강화학습을 통해 시스템의 대화 상태를 확률적으로 파악하고 다음 행동을 결정한다. 확률 기반 모델은 음성 인식 오류를 포함한 예기치 않은 사용자 입력에 대해서 부분적으로 관찰된 정보를 바탕으로 시스템의 의도를 결정할 수 있다는 장점이 있지만 학습을 위해서 매우 많은 담화 정보 부착 말뭉치를 필요로 한다는 문제를 안고 있다. 최근에는 딥뉴럴넷을 이용하여 다음 행동을 결정하는 NNMDP(Neural Network Markov Decision Process)와 같은 모델이 연구되고 있다.<ref name="김학수"></ref>
  
 
== 알고리즘 ==
 
== 알고리즘 ==

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)