NL-083, CAiRE: An Empathetic Neural Chatbot (2020-AAAI demo)
■ Comment
- 사실상 논문의 모델은 특별한게 없으며 GPT을 가져와서 TransferTransfo와 같은 방법으로 학습을 시켰다는 것이다.
- 논문에서 약간 불분명한 부분이 있는데 유추하자면 다음과 같다.
- 1) GPT을 가져온다.
- 2) PersonaChat으로 학습한다.
- 3) ED 데이터세트로 학습한다.
- 근데 사실 1,2가 TransferTransfo 방법이기 때문에 내 예상으로는 이 논문 저자들이 직접학습한 것이 아니고 TransferTransfo 깃허브를 이용했을 것이다.
- 따라서 TransferTransfo 모델을 가져와서 ED 데이터세트로 학습했을 것이라는게 내 생각.
- 학습할 때는 multi obj가 있는데 많이들 사용하는 방법이다.
- response language modeling (일반 LM)
- response prediction (응답이 real vs fake)
- dialogue emotion detection (special token 역할)
- 데모 논문이라 그런지 아쉬운게 각각 방법들에 대한 ablation study가 없다.
- 즉 PersonaChat으로 pretrained 된 모델이 왜 GPT 모델보다 혹은 DialoGPT보다 진짜로 좋은지?
- 내 생각엔 굳이 다른 데이터인 PersonaChat을 활용할 필요가 적어보이는데..
- multi obj의 효과는 알고는 있으나 emotion detection의 효과가 정말로 있는지 실험적으로 궁금하다.
- 비교논문들은 ED 데이터세트 릴리즈한 논문에서 제공한 것들이다.
- ED 데이터세트로 현재는 많이 실험 된 논문이 없어서 읽은 것도 있지만
- 이 논문을 읽는 목적 중 하나였던 학습 때는 emotion을 제공하는가? 였는데
- test때는 label을 안주는 식으로 한다.
- 즉 가장 기본적인 평가방법은 self-play 모드보다는, speaker의 응답은 gold text로 나가고 listener의 응답을 생성하고
- 생성된 응답과 gold reference와 automatic evaluation을 하는 것이다.
- 미리 emotion label을 알면 좋지만, 이 논문처럼 미리 label 정보를 집어넣기 보다는, 중간에 SEP 토큰이 그 역할을 하는 것처럼 학습하는 것도 괜찮은 방법인 것 같긴 하다.
0. Abstract
- 이 논문에서, 우리는 end-to-end 공감적인 대화 에이전트 CAiRE를 설명한다.
- 우리의 시스템은 TransferTransfor의 학습 접근법을 적용하고, 이는 pre-trained LM을 multiple objectives으로 fine-tune하는 것이다.
- response language modeling
- response prediction
- dialogue emotion detection.
- 우리의 모델을 최근 제안된 empathetic-dialogues dataset (Rashkin et al., 2019)에서 평가한다.
- 우리의 실험은 CAiRE가 대화 emotion detection과 empathetic response generation에서 SoTA 성능을 보여준다.
1 Introduction
- 공감하는 챗봇은 대화 에이전트이고 이것은 사용자의 감정을 이해하고 적절하게 응답한다. 이는 사람과 같은 대화에 있어서 필수적인 스텝이다.
- 이러한 대화 시스템의 개발 스테이지는 일찍인 ELIZA, PARRY, ALICE와 같은 것이 있고 많은 노력이 hand-crafting(수작업)으로 룰을 이용한다.
- 최근에, 모듈화 된 시스템인 XiaoIce (Zhou et al., 2018)은 일반 사람의 대화의 평균보다 더 높은 세션 당 대화 전환수를 달성했다.
- 놀라운 XiaoIce 결과에도 불구하고, 이 시스템은 복잡한 구조로 설계되어 있다.
- 수백개의 독립적인 NLU, Response generation 모듈들의 컴포넌트들이 있고 그들의 각각 레이블된 학습데이터는 어마어마하게 많다.
- 모듈화된 대화 시스템과 비교하여, end-to-end 시스템은 모든 컴포턴트를 하나의 모델로 fully data-driven 방법이고 이것은 다른 모듈들과 representation을 공유함으로써 부족한 데이터의 약점을 완화시킨다.
- 인간은 자연스럽게 감정을 자연어로 표현하고 인식하여 사회적 유대감을 높이기 때문에 대화 시스템에 공감을 포함하는 것은 human-like 대화를 달성하는 데 필수적입니다.
- 실질적으로, 추가적인 objective function을 가지는 multi-task 학습 전략으로 대화에서 emotion label prediction을 최적화하는 것은 좀 더 emotion-evoking 반응을 생성할 수 있다.
- 그러나, data-driven end-to-end 공감적인 챗봇은 현재 두 개의 한계 때문에 고통받고 있다.
- 1) model capacity
- 2) 감정 인식 및 공감적 반응 생성 모두에 대한 데이터의 희소성 (Rashkin et al., 2019).
- 최근 대규모 사전 훈련 된 언어 모델 ((ELMo)Peters et al., 2018; Devlin et al., 2019)의 성공 덕분에 두 문제를 모두 완화 할 수 있습니다.
- 이 논문에서, 우리는 empathetic 대화 학습 시나리오에서 pre-trained LM, GPT을 가져다가 auxiliary 대화 감정 분류 objective로 fine-tuning한 TransferTransfo의 학습 접근법을 확장시킨다.
- 목표는 문법과 일관성있는 response을 생성할 뿐만 아니라, 대화 context에 따르는 공감적인 반응이다.
- 우리의 실험은 이러한 전략으로 학습된 모델이 기존의 ED 데이터세트에서 학습된 모델보다 PPL of response와 BLEU score에서 더 뛰어나다.
2 Related Work (번역)
- 감정과 감정 감지 (Felbo et al., 2017; Xu et al., 2018; Fan et al., 2018a, b)는 공감적인 챗봇을 만드는 데 없어서는 안될 필수 요소로 확인되었습니다 (Fung et al., 2016; Bertero et al., 2016 ; Winata et al., 2017; Shin et al., 2019).
- 최근 Zhou et al. (2017); Hu et al. (2017); Wang and Wan (2018)은 생성 된 응답의 감정과 감정을 제어하는 프레임 워크를 도입 한 반면 Zhou와 Wang (2018)은 새로운 Twitter 대화 데이터 세트를 도입하고 감정적 인 응답을 생성하기 위해 Twitter 데이터의 이모 지 레이블을 활용할 것을 제안했습니다.
- 게다가 Rashkin et al. (2019)는 특정 감정 라벨에 의해 유발 된 상황에 근거한 공감 대화 생성을위한 새로운 벤치 마크를 제안했습니다.
- Lin et al. (2019) Mixture Of Expert 프레임 워크를 사용하여 초기 기준을 개선했습니다 (Shazeer et al., 2017).
- 한편, 개인화 된 대화 에이전트 (Li et al., 2016; Zhang et al., 2018a; Madotto et al., 2019)는 대화를보다 일관되고 매력적으로 만들기 위해 제안되었습니다.
- 이전 연구(Peters et al., 2018; Radford et al., 2018; Devlin et al., 2019)에서는 대량의 데이터를 활용하여 언어 모델에서 상황에 맞는 특징을 학습하면 광범위한 작업에 대한 최신 모델을 만들 수 있다는 것을 보여주었다.
- 더 나아가 Radford et al. (2019); Yang et al. (2019)는 더 높은 용량의 모델을 배포하고 최신 결과를 개선했습니다.
- 이 논문에서는 사전 훈련 된 언어 모델을 기반으로 공감 챗봇을 구축하고 대화 감정 감지 및 공감 반응 생성에 대한 최첨단 결과를 달성합니다.
3 Methodology
3.1 Language Model Pre-training
- pre-trained 언어 모델 GPT을 여기서 사용한다.
- GPT는 BooksCorpus 데이터 세트에 대해 unsupervised로 학습되는 causal self-attention을 가지는 transformer decoder 모델이다.
- BooksCorpus 데이터 세트에는 다양한 장르의 7,000 개 이상의 고유 한 미발행 도서가 포함되어 있습니다.
- 이러한 대규모 연속 텍스트 말뭉치에 대한 사전 교육을 통해 모델은 long-range 대화 컨텍스트 정보를 캡처 할 수 있습니다.
3.2 Persona Dialogue Pre-training
- 기존의 공감 대화 데이터세트는(EMPATHETIC-DIALOGUES) 비교적 작아서 모델의 칫챗 토픽에 한계를 가지고 fine-tuning을 했었다.
- CAiRE의 칫챗 능력을 강화하기 위해, 우리는 먼저 PersonaChat에 대해 모델을 TransferTransfo의 transfer 학습 전략을 따라서 pre-train을 한다.
- 이 pre-training 과정은 CAiRE에게 persona을 부여하여 모델의 참여와 일관성을 향상시킨다.
3.3 Empathetic Dialogue Fine-tuning
- CAiRE의 공감을 최적화 하기 위해, 우리는 pre-trained 모델을 공감 대화 데이터세트 (ED)을 custom persona와 3개의 objectives로 fine-tune 한다.
- response language modeling
- response prediction
- dialogue emotion detection
- Empathetic Dialogue Dataset (번역)
- 자세한건 포스팅한 게시물로!
- Rashkin et al. (2019)는 특정 감정 라벨에 의해 촉발 된 감정 시나리오를 기반으로하는 25,000 개 오픈 도메인 일대일 대화의 새로운 공감 대화 데이터 세트를 소개한다.
- 데이터 세트는 32 개의 감정 라벨을 제공합니다. .
- 그 분포는 균등에 가깝습니다.
- 표 1은 훈련 세트의 예를 보여줍니다.
- speakers는 자신의 상황에 대해 이야기하고 listeners는 자신의 감정을 이해하고 그에 따라 대답하려고합니다.
- At training time, the emotional labels of the speakers are given, while we hide the label in test time to evaluate the empathy of our model.
- Fine-tuning Detail
- The whole fine-tuning schema for empathetic dialogues is illustrated in Figure 1.
- PersonaChat에 대한 pre-training 한 것을 최대한 활용하기 위해, 우리는 CAiRE의 persona을 커스터마이징을 한다.
- 예) "my name is caire", "i want to help humans to make a better word", “i am a good friend of humans”. 와 같이 persona을 준다.
- personachat 데이터로 먼저 학습한다는 것인가?
- TransferTransfo의 fine-tuning을 따라서, 우리는 custom persona, dialogue history, response (distractor)을 special separate tokens와 함께 concatenate을 하여 학습 가능한 positional embeddings, word embeddings, and dialogue state embeddings의 합으로 입력 소스를 표현한다.
- 즉 입력: [custom persona, history, response]
- 사용되는 embedding: positional, word, dialogue state
- Positional embeddings와 word embeddings은 transformer 입력에 필요하고 dialogues state embeddings은 CAiRE 계층적인 대화 구조를 모델링하고 peronsa sentences와 dislogue context와 response을 구별하는데 도움이 된다.
- Positiona, word embedding: transformer 입력에 필요
- dialogue state embedding: 대화 구조 및 문장을 구분 짓는데 필요
- 이 input representation은 causal attention transformer decoder에 들어가서 contextualized representation을 얻게 한다.
- 여기서, 우리는 마지막에 special token의 contextualized representation을 SEN으로, reply (distractor)의 special token을 EMO로 표기한다.
- 1) response prediction objective을 최적화 시키기 위해
- 각 학습 스텝에서, 우리는 gold response에 대해 하나의 distractor을 다른 대화에서 샘플링한다.
- 그리고나서, SEN 표현이 linear classifier을 통과하여 올바른 response을 분류하도록 cross-entropy loss
을 얻게 한다.
- 2) response LM objective을 최적화 시키기 위해
- 우리는 각 gold reply의 contextualized representation가 next reply tokens을 예측하도록 하고 우리는 LM loss을 cross-entropy
을 계산한다.
- 1,2)에서 dialogue history에 제한은 없는것인가?
- 즉 S,L,S,L,S.. 대화한다고 할 때, S->L & S,L,S->L & S,L,S,L,S->L 이렇게 예측하도록 다 학습을 하는 것인가?
- 3) CAiRE가 대화 파트너의 감정을 검출하기 위해, 우리는 대화 emotion detection objective을 training동안 추가한다.
- 우리는 대화의 current state의 요약으로 EMO으로 가져가서 linear projection layer을 통과시켜 32 emotions의 점수를 예측하게 한다.
- The cross-entropy is applied
for emotion classification loss
- 여기서 궁금한게, 그러면 테스트 때는 그냥 이 부분은 concat만 하고 따로 사용은 안하는 것인가?
- 딱히 논문에서 설명도 없고 그림 2를 보면 대화 생성에는 다른 먼가 없는거 같아보지만, 모델 평가할 때, emotion classifcation쪽에 사용되는 듯
- Our final fine-tuning loss function is the weighted sum of the aforementioned losses:
4 Experiment and Result
- We evaluate our model on the empathetic dialogue dataset against the following baselines:
- Pretrained
- 1.7 billion REDDIT conversations에 대해 full Transformer network architecture으로 학습된 모델
- Fine-Tuned
- ED 데이터세트로 pre-trained 모델을 fine-tune 한 것
- MULTITASK
- context을 기반으로 대화의 감정을 분류하도록 Transformer 인코더의 top에 linear layer을 추가하여 학습된 것
- EmoPrepend-1
- 인코더 입력에 top-1 predicted emotions을 prepend 한 모델
- ENSEM-DM
- Transformer encoder의 encoded representation과 pre-trained emotion classifier로부터 representation을 concat한다.
- 그리고 나서, concatenated representations이 Transformer decoder에 넣는다.
- 우리는 PPL, avg BLEU (BLEU1~4을 평균), emotion classification 정확도를 평가 메트릭으로 사용한다.
- 근데 보통 BLEU는 기하평균내지 않나?
- 결과는 Table 2에서 보여주며, CAiRE는 모든 베이스라인 모델보다 모든 mterics에서 성능이 좋고 공감적인 응답과 대화 감정 분류의 강한 능력을 보여준다.
5 CAiRE System Demostration
- 사실 이 부분은 demo 페이퍼로 제출한 것에 대해 설명이 추가적으로 있는 것이기 때문 스킵해도 될 듯
- 여러 사용자가 CAiRE online2과 비동기식으로 채팅 할 수있는 웹 기반 사용자 인터페이스를 구축합니다.
- CAiRE는 또한 사용자 피드백을 수집하고 응답 품질을 지속적으로 개선하고 모방 학습을 통해 바람직하지 않은 생성 행동 (예 : 비 윤리적 응답)을 폐기 할 수 있습니다.
5.1 User Interface
- 응답 생성 중 GPU 계산에 대한 수요가 높기 때문에 여러 사용자를 지원하기 위해 계산 비용을 여러 GPU에 잘 분산시켜야합니다.
- 시스템 충돌없이 GPU의 유용성을 극대화하기 위해 몇 가지 접근 방식을 채택합니다.
- 첫째, 각 GTX 1080Ti에 두 개의 독립적 인 프로세스를 설정했습니다.
- 여기서 가장 높은 GPU 유틸리티는 약 90 %이며 두 프로세스 모두 안정적으로 작동합니다.
- 둘째,로드 밸런싱 모듈을 사용하여 작업로드에 따라 유휴 프로세스에 요청을 분산합니다.
- 스트레스 테스트 중에 2 초마다 요청을 보내는 사용자를 시뮬레이션했으며 8 개의 GPU를 사용하여 50 개 이상의 동시 요청을 지원할 수있었습니다.
5.3 Active Learning of Ethical Values
- CAiRE는 ACL 2019 기조 강연“Loquentes Machinea : 대화 시스템의 기술, 응용 프로그램 및 윤리”에서 처음 발표되었으며 그 후 챗봇을 대중에게 공개했습니다.
- 일주일 만에 우리는 500 명 이상의 사용자로부터 트래픽을 받고 비 윤리적 인 대화에 대한 여러보고를 받았습니다.
- 이러한 피드백에 따르면 CAiRE는 부적절한 행동을 알리는 훈련 데이터가 부족하여 윤리적 가치를 느끼지 못합니다.
- 따라서 사용자가 윤리적으로 질문을 제기하면 CAiRE는 윤리적 함의를 고려하지 않고 응답 할 수 있습니다.
- 예를 들어 사용자가 "인간을 죽일 수 있습니까?"라고 물으면 CAiRE는 "예, 원합니다!"라고 응답 할 수 있습니다.
- 이 문제를 완화하기 위해 수집 된 사용자 수정 응답을 기반으로 imitation learning을 수행합니다.
- 우리는 이러한 접근 방식이 비 윤리적 대응을 크게 줄일 수 있음을 확인합니다.
- CAiRE가 더 많은 비 윤리적 인 대화와 수정 사항을 수집함에 따라 성능이 더욱 향상 될 수 있습니다.
- 내가 알고 있는 active learning이란
- 위와 같은 과정으로 학습된 모델에서 부족한 데이터를 찾아내서 그 데이터를 레이블링을 한다.
- 대표적으로 의료계에서 의사를 통해서 데이터를 모으는게 워낙 비싸다보니 이러한 방법으로 효율적으로 데이터 레이블링을 맡기는 것이다.
- 그러면 이미 수집된 데이터 통계에서 벗어나는 데이터들을 모으기에 용이하고 정확히 뭐가 부족한 데이터인지에 대한 방법론은 여러 가지가 있을 것이다.
- 여기서는 부족한 데이터 = 비윤리적 대화 로 생각하면 된다.
- 아무튼 이렇게 모은 데이터를 imitation learning으로 학습한다 하는데, 이 개념은 정확히 모르겠다.
- 그냥 생각하기로는 continual learning 아니면 아예 처음부터 다시 학습해야하는 거 아닌가? 싶은데...
6 Conclusion
- 이 논문에서 소개하는 CAiRE는 end-to-end 공감 챗봇이다.
- 우리의 시스템은 large-scale pre-trained LM을 다음과 같은 multitask로 fine-tune한다.
- response language modeling
- response prediction
- dialogue emotion detection.
- ED 데이터세트의 평가는 dialogue emotion 검출과 공감 반응 생성에 대해 SoTA을 보여준다.
- 우리는 우리의 모델로 web interface을 구축하여 다수의 사용자가 접근 가능하게 만들어놨다.
- 사용자 피드백을 더 수집하고 모델을 개선함으로써, 우리는 향후 CAIRE에 더욱 공감할 수 있게 할 수 있으며, 이는 end-to-end 대화 모델의 forward 단계가 될 수 있다.
Reference
댓글
댓글 쓰기