[Pytorch 로 Question Generation 구현해보기] Learning to Ask : Neural Question Generation for Reading Comprehension
Pytorch는 Define-by-Run 방식으로 유연한 딥러닝 프레임워크를 제공하여, 많은 이들의 사랑을 받고 있다. 이번 글에서는 Torch와 TensorFlow 로는 구현되어 있으나, 아직 Pytorch 로 구현되 있지 않은 Du et al.,( 2017, ACL ) <https://arxiv.org/pdf/1705.00106.pdf> 을 구현해보고자 한다. Du et al.,( 2017 ).Learning to Ask : Neural Question Generation for Reading Comprehension Du et al.,( 2017 ) 은 문장 또는 문단을 인풋으로 받아 자연스러운 질문을 생성하는 Question Generation ( QG ) 모델을 만드는 것을 목표로 한다. QG 모델은 이전까지 룰베이스 Mitkov and HA ( 2003 ) ; Rus et al.( 2010 ) 로 접근한 문제이다. 입력 문장을 문법에 맞춰서 재배치한 후, 미리 사람이 작성한 질문 형식에 대입하는 규칙기반의 시스템이다. Du et al.,( 2017 ) 은 처음으로 Question Generation ( QG ) 모델에 시퀀스 투 시퀀스를 적용하고, 문법 기반이 아닌 의미 기반의 질문 생성 모델을 연구한 데에 의의가 있다. 문장에서 질문을 생성하는 예제 QG 모델이 처음 등장하게 된 배경은 챗봇에 필요한 데이터셋을 수집하는 작업에 어려움이 있었기 때문이다. 현재까지의 모든 QA 챗봇들은 사람이 직접 입력한 질문과 답변을 통해 개발이 되었다. 이러한 과정은 비용이 많이 드는 작업이다. 하지만, 만약 문서로부터 질문과 답변을 자동으로 추출할 수 있다면, 서비스의 유저 가이드 문서 등으로부터 바로 QA 챗봇을 만드는데 기여를 할 수 있게 된다. 챗봇 QA 데이터셋 Task는 문서로부터 질문을 생성하는 QG 모델과 질문이 주어졌을 때 문서로부터 답변을 얻는 QA 모델로 나눌 수 있다.