Analyzing Mobile Application Usage: Generating Log Files from Mobile Screen R...
Learning from dialogue after deployment feed yourself, chatbot
1. Learning from Dialogue after
Deployment: Feed Yourself, Chatbot!
+ Association for Computational Linguistics 2019
-Braden Hancock, Antoine Bordes, Pierre-Emmanuel Mazaré Jason Weston
/ 박상아
2. Introduction
- 챗봇 대화를 human-like하게 만들려면 대량의 지도 학습이 필요함
그러나 기존의 크라우드소싱 & 대화 스크랩 등의 방식은, 비용이 많이 들고 실제 배포 환경과 다르다는 한계
- 인간이 대화 능력을 학습하는 방식처럼, 태스크마다 달라지는 대화를 그때그때 유동적으로 학습하는 것이 이상적임
이를 위해서는 챗봇이 ‘배포 이후에(도)’ 대화를 학습해야 함
- 배포 이후 챗봇이 대화를 학습하는 방법? … 대화 중에 사용자에게 즉각적인 피드백 받기
대화를 정량적으로 평가하거나 슬롯을 채우는 방식보다는, 자연어만을 이용해 피드백을 받을 수 있음
Deploy 이후 사용자와의 대화에서, 새로운 examples들을 스스로 추출해 self-feeding하는 챗봇을 제안
(1) 사용자의 대화에 대한 만족도를 측정하고 (2) 그것을 바탕으로 대화를 학습해 나가는 방식
사용자가 만족하면: 사용자의 응답을 new examples로 학습함
사용자가 불만족하면: 적절한 발화에 대한 피드백을 요청한 후, 해당 피드백을 new examples로 학습함
3. Introduction
(1) 사용자의 대화에 대한 만족도를 측정하고 (2) 그것을 바탕으로 대화를 학습해 나가는 방식
사용자가 만족하면: 사용자의 응답을 new examples로 학습함
사용자가 불만족하면: 적절한 발화에 대한 피드백을 요청한 후, 해당 피드백을 new examples로 학습함
- 따라서, 태스크의 종류는 크게 [1] Dialogue [2] Satisfaction [3] Feedback
- 이를 통해 챗봇이 축적하게 될 정답 셋: 실수를 방지할 dialogue 데이터 & 실수를 직접 해결하는 feedback 데이터
- 이러한 학습을 지칭하는 용어: ‘Lifelong learning’, ‘never-ending learning’, ‘active learning’, ‘predictive learning’
4. Method
- self-feeding chatbot의 Lifecycle은 위와 같음
- 태스크의 종류는 크게 [1] Dialogue [2] Satisfaction [3] Feedback
- 시기는 크게 배포 이전과 배포 이후로 나누어 볼 수 있음
5. Method
- 배포 이전 단계에서 필요한 것은,
(1 - Dialogue) “이런 context에서는 이런 발화를 내뱉어야겠구나”를 학습해야 함
(2 - Satisfaction) “이런 context에서는 사용자가 00만큼 만족하는구나”를 학습해야 함
- 1을 위해 Human-Human대화 데이터(HH Dialogue)를 학습시킴 (Zhang et al.(2018)의 PERSONA CHAT 데이터)
- 2를 위해 챗봇 발화에 대한 명시적인 만족도(1~5)를 크라우드소싱으로 받아 학습시킴
6. Method
- 배포 이후 단계에서 필요한 것은, 모델을 통해
(1 - Dialogue) “이 context에서 어떤 발화를 내보내야 가장 좋을까?” 예측 (y hat)
(2 - Satisfaction) “이 사용자는 지금 context에 얼마나 만족할까?” 예측 (s hat)
- 사용자 만족도(s hat)가 역치(t)를 넘으면 타겟 발화(y hat)를 출력
역치를 넘지 못하면 피드백을 요청하는 질문(q)을 출력 “Oops! Sorry. What should I have said instead?”
7. Method
- 배포 이후 단계에서 필요한 것은, 모델을 통해
(1 - Dialogue) context에 대한 사용자의 만족도가 높은 경우에 해당 Dialogue를 트레이닝
(3 - Feedback) context에 대한 사용자의 만족도가 낮은 경우에 Feedback을 받아 트레이닝
- 그외 자세한 Model and Settings 내용은 페이퍼 참고 …
8. Result & Discussion
- 피드백의 형태: 대화에 그대로 사용 가능한 것(Verbatim)부터, 정답에 대한 설명(Suggestion, Instructions, Options)까지 다양
9. Result & Discussion
- HH Dialogue 데이터 수가 어떻든 간에, Deploy 이후 얻은 데이터를 활용할 때 챗봇의 성능(정확도)가 향상됨
- Deploy로 얻은 두 종류의 데이터를 모두 이용하면 가장 높은 성능을 보임
- Feedback 데이터가 HB Dialogue 데이터보다 성능을 높이는 데에 효과적인데,
후자는 암묵적 만족인 반면, 전자는 실수에 대한 적극적 개선이기 때문이라고 추측됨
10. Result & Discussion
- 또한 ‘신선한’ 피드백이 베네핏을 가져오는 경향:
40k Feedback을 한꺼번에 수집, 학습 VS 20k Feedback 먼저 받아서 선학습, 20k Feedback 나중에 받아 후학습
후자에서 모델의 개선이 유의미하게 이루어졌음
- 개선의 정도는 Feedback 데이터가 HB Dialogue 데이터보다 높았음