본문 바로가기
대학원 이야기/논문 리뷰

[논문 리뷰] the second conversational intelligence challenge (convai2) (NIPS 2018)

by misconstructed 2020. 12. 21.
728x90

ConvAI2 NeurIPS competitions의 결과를 설명하고, 결과들을 분석한 내용이다.

최종 결과에서 2등을 한 huggingface팀의 대화 모델에 대한 논문은 여기에서 읽어볼 수 있다. (TransferTransfo)

원본은 여기에서 확인할 수 있다.


이번 논문은 ConvAI2 NeurIPS competition의 setting과 결과에 대해서 이야기한다. 이번 대회를 통해서 현재까지 사전학습된 Transformer 모델의 성능이 가장 좋다는 것을 확인 할 수 있었고, multi-turn conversation을 더 잘 수행하기 위해서는(repetition, consistency, balance of dialogue 등) perplexity와 같은 metric이 아닌, 다른 metirc이 필요하다는 것도 알 수 있었다. 

The Conversational Intelligence Challenge 는 open-domain conversation에 대해서 high quality dialogue agent를 만드는 것을 목표로 한다. 이 대회를 통해서 사람들이 대화에 조금 더 적극적으로 참여할 수 있고, 다양한 chit-chat model들을 비교할 수 있는 evaluation tool로서의 역할을 수행하게 된다. 이번 대회는 두 번째 ConvAI Challange로, 2017년에 첫 번째 대회가 있었다. 저번 대회와의 차이점은 task를 더 발전시켰고, 평가하는 과정에도 변화가 생겼다. 이번에는 PERSONA-CHAT이라는 데이터셋을 제공해서 해당 데이터셋에 대해서 학습 및 평가를 진행한다. 다른 추가적인 데이터셋을 이용해서 학습할 수 있지만, 공개된 데이터셋이거나, 추후에 공개하는 데이터셋만 사용이 가능하다. 

[그림-1]

PERSONA-CHAT 데이터셋에 대해서 간단하게 알아보면, 두 사람이 대화를 나누는 데이터셋이다. ([그림-1] 참고) 기존의 대화 데이터셋과의 차이점은 두 사람의 대화 내용과 함께 각 사람의 특징/성격(persona) 들이 몇 개의 문장으로 정의되어 있다. 대화에 참여한 두 사람은 서로 질문하고 대답하면서 서로에 대해서 알아가는 과정을 거치게 된다. 이러한 과정에서 대화에 참여한 각 사람은 자신의 persona를 대화하는 동안 꾸준하게 유지해야 한다. 이러한 데이터셋으로 학습하게 되면, 해당 모델은 조금 더 consistent하고 engaging한 응답을 생성해낼 수 있다. 총 1155개의 서로 다른 persona 가 정의되어 있고, 각 persona는 최대 5개의 문장으로 구성되어 있다. Validation 데이터에는 한 번도 학습하지 않은 100개의 persona가 포함되어 있다. 가끔 명시된 persona를 그대로 사용하거나 word overlap 을 기반으로 응답을 생성하는 경우가 발생가히 때문에, 추가적으로 기존의 문장을 다른 말로 rewrite해서 구축한 데이터셋도 추가했다. 데이터셋에 대한 수치는 [표-1]과 같다. 

[표-1]

참가자들의 모델들은 3가지 방식에 따라서 평가되었다. 평가 기준은 다음과 같다.

  • automatic evaluation metric : perplexity(generative 모델에 대해서만), F1-score, Hits@1/20(정답 1개와 정답이 아닌 19개의 보기 중 정답을 찾아내기, retrieval 모델에 대해서만)
  • Amazon Mechanical Turk에 의한 평가 : 사람이 해당 모델과 대화했을 때 얼마나 재밌게 했는지, 해당 모델이 persona를 얼마나 잘 나타냈는지를 평가
  • 즉석에서 지원한 지원자들에 의한 평가

Hugging-face 팀이 automatic evaluation metric에 대해서 가장 좋은 결과를 제공했다. 하지만, 최종 우승은 Lost in Conversation 팀이 가져갔다. 최종 결과에서도 Hugging face 팀이 2등을 차지한 것으로 보아, 실제 사람이 평가한 기준과 automatic evaluation metric에는 어느정도 상관관계가 있다는 것을 알 수 있다. 

Baseline : <Personalizing dialogue agents: I have a dog, do you have pets too? > 논문에서 제안한 모델들을 baseline으로 지정해서 비교 대상으로 사용한다.

  • retrieval-based Key-Value Memory Network
  • LSTM-based attentive Seq2seq model
  • LSTM-based language model

# 결과

총 23팀이 참여했다. 모든 팀은 automated evaluation metric (perplexity, F1, Hits@1) 에 대해서 평가를 진행했고, 가장 좋은 성능이 나온 7팀이 다음 라운드로 진출을 했다. Automated evaluation metric의 결과는 [표-2]와 같다. 

[표-2]

이러한 결과를 기반으로 몇 가지 실험을 진행했다. 첫 번째로 word overlap을 방지하기 위해 만든 revised persona 에 대한 평가 결과다. ([그림-2] 참고) 기존의 데이터의 결과와 비교했을 때, 성능이 조금씩은 떨어진 것을 확인할 수 있다. 

[그림-2]

두 번째로는 last utterance distractor를 사용한 실험이다. 응답을 생성하기 전에 마지막으로 받은 상대방의 문장을 Hits@1 을 평가할 때의 보기에 추가했다. 가끔 모델들이 상대방의 말을 그대로 따라서 말하는 경우가 발생하기 때문에 이러한 실험을 진행하게 되었다. 실험 결과는 [그림-3]과 같다.  몇 모델들의 성능이 현저하게 떨어지는 것을 확인할 수 있었다. 

[그림-3]

마지막으로 가장 재미있는 실험인데, 가장 자주 나타나는 단어들을 조합해서 만든 문장 "i am you to do and you is like" 을 모든 응답에 동일하게 사용하면, 가장 성능이 좋았던 hugging face 모델보다 좋은 성능이 나온다는 것이다. 이것으로 미루어 보아, word overlap 만으로 성능을 평가하는덴 무리가 있다고 판단할 수 있다. 

이제 Human evaluation에 대해서 이야기해보겠다. 앞에서 Automated evaluation metric에 의해 평가된 23개의 모델 중 가장 좋은 성능을 낸 7개의 모델이 human evaluation을 하게 된다. Human evalution도 크게 두 분류의 사람들로부터 받게 되는데, 첫 번째로는 현장에 있던 사람들 중 지원자들이고, 두 번째로는 Mechanical Turk에 의한 평가이다. 

Wild evaluation : 현장에서 많은 지원자들을 받아서 다양한 모델들의 성능을 평가하기로 했지만, 제대로된 평가가 이루어지지 않았다. 그렇기에 현장에서 즉석으로 모집한 지원자들에 대한 평가는 모두 결과에 반영하지 않기로 했다.

[그림-4]

Mechanical Turk evaluation : Mechanical Turk에 의한 human evaluation의 결과, Lost in Conversation 팀이 최종 우승을 할 수 있었다. Mechanical Turk는 실제 모델과 대화를 나눴고, 모델과의 대화가 얼마나 흥미로웠는지/할만했는지 를 기준으로 1~4 사이의 점수를 부여했다. 또한, mechanical turk가 모델에게 부여한 persona를 맞출 수 있는지도 판단했다. (모델이 자신에게 부여된 persona를 얼마나 잘 대화에 녹여냈는지를 확인했다.) 실제 mechanical turk가 사용한 평가 UI는 [그림-4]와 같고, engagingness에 대한 실험 결과는 [그림-5]와 같다. 

[그림-5]

스스로 포기한 1개 팀을 제외한 총 6개 팀의 결과를 숫자로 보면 [표-3]과 같다. Lost in Conversation 팀이 일등, Hugging face 팀이 2등에 위치한 것을 확인할 수 있고, 처음에 우리가 정의한 baseline과 실제 사람의 수치도 확인할 수 있다.

[표-3]

# 기타 분석

[표-4]

응답의 길이 : 대화를 할 때, 모델이 생성한 응답의 길이와 사람이 생성한 응답의 길이를 모두 기록했다. 더 높은 점수를 받은 모델들은 사용자로부터 더 긴 응답을 유도할 수 있었고, 이것은 사람이 대화에 조금 더 적극적으로 참여하도록 (engaging 하도록) 대화를 이끌어갔다는 것을 의미한다. 하지만, 이 수치도 모델이 생성한 응답을 사람이 반복해서 말하는 것 때문에 조금은 오차가 있는 통계라고 볼 수 있다. 상위 6개모델들이 생성한 응답의 평균 단어 수는 [표-4]에서 확인할 수 있다. 

[표-5]

Rare words : 흔하게 사용하지 않는 단어들 (rare words) 을 응답에 사용하는 것은 조금 더 흥미롭고 engaging한 응답을 생성했다고 볼 수 있고, 이것은 실제로 높은 평가 점수를 받는 것을 확인할 수 있었다. 실제로 사람의 응답을 보면, 모델들보다 훨씬 많은 rare word 를 사용한다는 것을 확인할 수 있다. 

[표-6]

단어와 문구를 반복적으로 사용하는 문제 : 실제 사람의 경우, 자신이 한 말을 거의 반복해서 말하지 않는다는 것을 확인할 수 있었다. Uniqueness를 기준으로 평가한다면, 가장 이상적인 경우 100%가 나와야 한다. 실제 사람의 경우는 99% 정도 나오는 것을 확인할 수 있었고, hugging face 모델의 경우 97%, Lost in Conversation 모델의 경우 86% 가 나온것을 확인할 수 있었다. 자신이 한 말을 계속해서 반복하면 상대방으로 하여금 대화에 더 이상 참여하고 싶지 않게 할 수 있다. 상위 6개 모델에 대한 이러한 통계는 [표-6]에서 확인할 수 있다.

[표-7]

Blind evaluation : Hugging face의 모델이 automatic evaluation 에서는 가장 좋은 성능을 제공했는데, human evaluation에서는 Lost in Conversation 모델이 가장 좋은 평가를 받았기에, 두 모델에 대해서 blind evaluation을 진행했다. 실험 결과는 [그림-6]과 같고, blind evaluation 결과도 동일하게 Lost in Conversation 모델이 더 좋게 평가 받았다. 

[그림-6]

Asking Questions: Huggingface 모델의 단점 중 하나가 "질문을 너무 많이 한다." 였다. 이러한 피드백을 기반으로 실험을 진행헀는데, 질문을 시작하는 단어들(who, what, when, where, why, how) 로 시작하는 몬장과 물음표(?)로 시작하는 문장의 수 구했다. 실험 결과는 [표-8]과 같다. 확실히 hugging face 모델이 질문들 더 많이 한다는 것을 확인할 수 있었다. 질문을 너무 많이 하게 되면, 대화가 계속 끊어진다는 느낌을 받기 쉽고, 이러한 상황은 이전의 대화 내용과 전혀 상관없는 질문을 할 때 더욱 심해진다. 그렇기에, 응답을 생성할 때에는 question-answering과 question-asking 사이의 균형이 매우 중요하다는 것을 확인할 수 있었다. 

[표-8]

참여 모델 : 참여한 모델들의 발표자료는 여기에서 확인할 수 있고, 최종 우승한 팀의 코드는 여기에서 확인할 수 있다. 참여한 팀들의 간단한 정보는 [표-8]과 같다.


# 관련 논문

Personalizing dialogue agents: I have a dog, do you have pets too? : PERSONA-CHAT dataset (리뷰)

Generative deep neural networks for dialogue: A short review. 

A neural conversational model. : end-to-end neural conversation model (리뷰)

A persona-based neural conversation model. : dialouge generation with consistent persona (리뷰)

A diversity-promoting objective function for neural conversation models. : 다양한 응답을 생성하기 위한 방법

Parlai: A dialog research software platform. : ParlAI

How NOT to evaluate your dialogue system: An empirical study of unsupervised evaluation metrics for dialogue response generation. : 기존의 autmoated metric 들과 human evaluation 과의 관계 (리뷰)

A new architecture for multi-turn response selection in retrieval-based chatbots.

Retrieve and refine: Improved sequence generation models for dialogue. : retreival models

Bert: Pretraining of deep bidirectional transformers for language understanding. : BERT (리뷰)

Dialogue natural language inference. : dialogue 를 위한 NLI

728x90

댓글