- AI Dev - 인공지능 개발자 모임
- 정보공유
- 챗봇 딥러닝
https://s3.amazonaws.com/dex-microsites-prod/alexaprize/2018/papers/Gunrock.pdf
2018년 Amazon Prize 대회에서 1등한 팀의 논문입니다. 영화, 동물, 스포츠, 게임, 음악 등 여러 주제에 대해서 잡담을 나누는 소셜봇을 만들었습니다. 지금까지 오픈 도메인 대화에 대한 연구가 많이 이루어졌는데, 최근에는 Seq2Seq로 직접 문장을 생성하는 방식이 큰 주목을 받았습니다. 하지만 일관되게 화제를 유지하거나 먼저 질문하는 등 대화를 이끄는 능력이 부족했습니다. 이를 해결하기 위해 딥러닝과 룰베이스의 하이브리드 방법을 적용하였다고 합니다.
문장에서 엔터티를 추출하고 어떤 의미인지 인텐트를 파악하는 것은 LSTM이나 CNN 같은 학습으로 구현합니다. 하지만 대화의 흐름을 관리하고 문장을 생성하는건 직접 규칙에 따라 동작하도록 프로그램으로 되어 있습니다.
우선 제일 먼저 인터넷에서 정보를 크롤링하여 지식그래프로 저장합니다. 그리고 질문을 하면 문장에서 핵심이 되는 단어들을 인식합니다. 특정 주제를 물어보는지, 이전 대화와 이어지는 말인지, 아니면 다른 화제로 전환을 하는지 의도를 파악합니다. 그 다음 영화, 동물, 스포츠 같은 카테고리로 분류하고 각각 별도로 구현된 토픽 처리 모듈을 실행합니다. 템플릿으로 미리 답변 문장을 만들고 빈칸에 들어가는 내용을 지식그래프에서 찾아 채웁니다.
실험 결과를 보면 영화와 책, 동물에 대한 이야기가 가장 인기가 있습니다. 그리고 유저가 말한 내용을 인정하고 확인하는 말이 상당히 중요하다고 합니다. 다음과 같이 질문에 대한 답변을 하기 전에 먼저 맞장구를 치는 것이 대화에 몰입하는데 도움이 됩니다.
챗봇 : "가장 좋아하는 영화배우가 누구야?"
유저 : "톰 행크스"
챗봇 : "아, 그래. 너가 왜 좋아하는지 알겠다. 탁월한 선택인데. 하지만 난 레오나르도 디카프리오가 매력적인 것 같아."
요즘 딥러닝에서도 자연어처리 분야가 많이 발전하고 있습니다. 하지만 화제에 따라 대화를 유지하는 것은 아직까지 학습으로 구현하기가 어렵습니다. 당분간은 이렇게 규칙 기반과 혼합하는 방식이 효과적으로 쓰일 것이라 생각됩니다.