The Design and Implementation of XiaoIce, an Empathetic Social Chatbot (arXiv 2018)

- 16 mins

Abstract

1. Introduction

2. Design Principle

2.1 IQ + EQ + Personality

2.2 Social Chatbot Metric: CPS

2.3 Social Chat as Hierarchical Decision-Making

3. System Architecture

figure1

4. Implementation of Conversation Engine

4.1 Dialogue Manager

  1. Global State Tracker: 현재 대화의 상태 $s$ 를 트레킹하는 역할
    • working memory를 통해 관리함
    • 세션의 시작에는 memory를 비운 상태, 대화 진행에 따라 각 턴 별로 유저의 발화와 XiaoIce의 대답을 memory에 저장해나감. 이때 text에서 Empathetic Computing Module(Section 4.2에서 소개)이 추출한 entity와 empathy label도 함께 저장함
    • working memory에 있는 정보는 dialogue state vector $s$ 로 인코딩됨
  2. Dialogue Policy: policy 함수 $\pi$ 를 기반으로 현재 대화 상태 $s$ 에서 취할 액션 $a$ 를 정함
    • Section 2.3에서도 설명한 것처럼 XiaoIce는 heirarchical policy를 사용하고 있음
      • Top-level policy: 각 턴에서 Core Chat과 Skill을 dialogue state에 따라 선택하므로서 전체적인 대화를 관리
      • Set of Low-level policies: 각 스킬 별로 policy가 있음
    • XiaoIce는 유저의 피드백을 기반으로 trial-and-error process를 다음과 같이 반복적으로 돔
      • if 유저의 인풋 == text
        • Core Chat가 처리
        • Topic Manager (Section 4.1.3에서 소개)은 1) 새로운 토픽으로 전환할지 혹은 2) 유저의 흥미가 감지되었을 때 General Chat에서 특정 Domain Chat으로 전환할지를 결정하므로서 Core Chat을 관리함 (뒤에 소개하겠지만, Core Chat은 General Chat과 Domain Chat으로 구성)
      • else if 유저의 인풋 == image or video
        • Image Commenting Skill이 처리
      • Skills of Task Completion, Deep Engagement, and Content Creation
        • 특정 유저 인풋과 대화 문맥에서 작동함
        • 예를 들어,
          • 음식 사진이 들어오면 Food Recognition과 Recommendation Skill이 활성화됨
          • 매우 부정적인 감정(sentiments)가 감지되면 Comforting Skill이 활성화됨
          • “XiaoIce, what is the weather today”와 같은 특수한 명령이 들어오면 Weather Skill이 활성화됨
          • 만약에 여러 Skill이 동시에 발동될 경우, confidence score, pre-defined priority, session context를 기반으로 여러 개 중에서 선택함
          • 스무스한 대화 진행을 위해서 잦은 Skill의 전환은 피함. 새로운 Skill이 활성화될 때까지 현재 Skill을 계속 돌림
  3. Topic Manage:

4.2 Empathetic Computing

4.3 Core Chat

figure6

4.4 Dialogue Skills

5. XiaoIce in the Wild

figure19

6. Conclusions

Joohong Lee

Joohong Lee

Machine Learning Researcher

rss facebook twitter github youtube mail spotify instagram linkedin google pinterest medium