우선 RNN의 입력과 출력에 따른 모델을 한번 살펴보자.
입력이 여러개이고 출력이 한개인 경우(Many to One), 텍스트 분류에 쓰인다고 한다. 즉, 이 텍스트가 뉴스 카테고리인지 연예 카테고리인지 자기계발인지 하는 텍스트가 속한 카테고리를 정해주는 것이라고 생각하시면 될 것 같다. 최종 출력만 필요하고 나머지 이전의 출력값은 다 버린다.
일대다(One to Many)의 모델의 경우에는 NLG와 Machine Translation이 있다. NLG는 Natural Language Generation 즉, 자연어 생성을 뜻한다. 예를 들어 '나는 멍멍이와 뛰고 싶다'라는 문장이 있을 때 '나는'이라는 단어를 입력하면 뒤에 '멍멍이와'라는 단어가 생성되고, 그 '멍멍이와'라는 출력이 다시 입력으로 들어가면 '뛰고'라는 단어가 생성되고. '뛰고'라는 단어가 또 입력으로 들어가면 '싶다'라는 단어가 생성되는 것을 말한다.
Machine Translation은 기계 번역이다. 기계 번역의 경우, 우리가 흔히 쓰는 구글 번역기. 네이버의 파파고 등을 떠올리면 쉽겠다. 내가 '나는 소년이다'라는 문장을 입력했을 경우, 영어로 번역을 원했을 때 출력이 'I am a boy'라는 결과로 나타나는 것을 Machine Translation의 한 예로 보면 되겠다.
다대다(Many to Many)의 경우 POS Tagging, MRC 등의 분야가 있다고 한다. POS Tagging의 경우에는 Part of Speech. 즉 한국어의 경우에는 형태소 단위로 분리하는 것이라고 보면 될 것 같다. 이 때도 문장이 들어가면 각각에 대한 출력이 나오게 된다. 자세한 건 POS Tagging을 검색해보시면 쉽게 이해하실 수 있을 것이다.
각각의 모델은 다음과 같다.
댓글