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

[논문 리뷰] A Neural Conversational Model (ICML 2015)

by misconstructed 2020. 11. 13.
728x90

2015년 구글에서 제안한 Seq2seq 구조를 사용해서 dialogue generation을 구현하는 논문이다.

논문의 원본은 여기에서 볼 수 있다.


Conversational modeling은 NLP 에서 중요한 task 중 하나이다. 해당 분야에 대한 다양한 연구들이 있었지만, 아직까지는 특정한 domain에 한정적이거나, 규칙을 따르는 방식들이 대부분이다. 이번 논문에서는 sequence-to-sequence 모델을 기반으로, 대화 내의 과거 문장들을 기반으로 다음 문장(답변)을 예측하는 모델을 제안한다. 과거에 Conversational agent를 만들기 위해서는 다양하고 복잡한 subcomponent로 구성된 pipeline을 사용해야 했는데, 해당 모델의 장점은 end-to-end로 학습이 가능하다는 점과 수 많은 규칙들을 미리 정하지 않고도 준수한 성능을 제공한다는 점이다. Feature engineering이 많이 필요로 하지 않고, 특정한 domain에 대한 사전 지식이 별도로 필요하지 않다는 것도 장점이라고 할 수 있다. 

과거에도 neural network를 이용해서 sequence to sequence를 mapping하는 연구들이 있었다. 대부분 machine translation이나 parsing, image captioning 등의 분야에서 사용되고 있다. 과거의 vanilla RNN은 vanishing gradient 문제가 발생하기 때문에 LSTM을 사용하는 경우가 대부분이다. 

# 모델 구조

기본적인 seq2seq 구조를 사용한다. 입력 sequence를 순차적으로 받아서, 순차적으로 출력 결과를 만들어낸다. 학습 과정에서는 실제 정답이 제공되어 back-propagation을 통해 cross-entropy를 최대화하도록 한다. 예측된 결과를 바로 다음 입력으로 사용하는 "greedy" 방식이 있고, 몇 개의 후보를 골라서 가장 높은 확률을 제공하는 후보를 사용하는 beam search 방식도 있다. 

[그림-1]

[그림-1]에서 문장의 끝은 나타나는 <eos> 토큰은 thought vector 라고도 할 수 있는데, 해당 벡터는 전체 입력 문장 "ABC"의 모든 정보를 담고 있다고 볼 수 있다. 해당 모델 (seq2seq)의 가장 큰 장점은 매우 단순한 구조라는 것과 동일한 구조를 유지하면서 다양한 분야 (machine translation, question-answering, conversation 등) 에 적용할 수 있다는 것이다. 하지만 해당 구조를 dialogue generation 에 적용시킨 경우 문제가 발생할 수 있는데, 가장 큰 문제는 학습을 할 때 사용하는 objective function은 실제 시스템이 달성하고자하는 목표와는 관련이 없다는 것이다. (실제 시스템은 자연스러운 대화를 목표로하는데, 학습 때 사용하는 Objective function은 동일한 목표를 사용하지 않는다.) 일상 대화에서는 서로 정보를 주고 받는 것을 목표로 하는 반면에, 해당 학습 목표는 그저 다음 문장을 예측하는데 그친다는 문제가 있다. 또한, 일관성(consistency)과 기본 상식(general world knowledge) 등의 한계도 존재한다.

 

Dataset : 두 가지 데이터셋을 사용한다 : closed-domain IT helpdesk troubleshooting dataset, open-domain movie transcript dataset. IT helpdesk troubleshooting dataset의 경우, 각 대화는 400 단어 정도의 길이로 구성되어 있고, 학습 데이터셋은 30M (30,000,000) 개의 토큰, 그 중 3M 개는 validation에 사용되었다. 기본 데이터셋에서 이름과 숫자, url 등을 제거하고 사용했다. Open subtitles dataset은 XML 형식으로 된 영화 대화 데이터셋이다. 영화의 캐릭터가 나누는 대화로 구성되어 있고, 각 대화의 차례는 명확하게 구분되어 있지 않다. 62M 개의 학습 문장과 26M 개의 validation 문장으로 구성되어 있다. 상대적으로 큰 데이터지만 많은 noise가 추가되어 있고, 동일한 화자가 연속해서 말하는 경우가 많다.

 

Experiment : 실험은 가장 유명한 규칙 기반 (rule-based) 시스템과 비교를 진행했다. 

IT helpdesk troubleshooting experiment : 한 개의 LSTM층으로 구성했다. 1024 차원의 memory cell 로 구성했고, gradient clipping 을 이용한 SGD를 통해 학습을 진행했다. Perplexity는 8을 달정했다. (n-gram 방식의 경우 18을 달정했다.)

[예시-1]
[예시-2]
[예시-3]

OpenSubtitles experiment : 2개의 LSTM 층으로 구성했다. 4096 차원의 memory cell로 LSTM을 구성했고, Gradient clipping을 사용한 AdaGrad로 학습을 진행했다. 결과적으로 17의 perplexity를 제공했다. (5-gram 을 사용한 경우 28의 perplexity 제공) Bahdanau attention을 적용해봤지만 그렇게 큰 성능의 변화는 없었다. 

[예시-4]
[예시-5]
[예시-6]
[예시-7]
[예시-8]
[예시-9]

실험을 통해, 해당 모델이 사전 지식이 없는 상태에서도 상식들을 학습하고, common sense reasoning이 가능하다는 것을 알 수 있었다. 대부분의 질문들은 학습 데이터에 없었던 질문이었다. (학습 데이터셋에서 답을 그냥 찾아서 답변한 것이 아니라는 뜻) 단점도 존재했는데, 가끔씩 너무 짧고 의미없는 대답들을 제공한다는 것이다. 또 다른 큰 문제는, 모델이 하나의 일관성있는 personality를 보유하지 못한다는 것이다. 동일한 내용의 질문이지만 문장을 조금 바꿔서 질문 한다면 [예시-10]과 같이 완전히 다른 대답을 제공하게 된다. 

[예시-10]

Evaluation : 이번 논문에서 제안한 모델 (NCM) 과 규칙 기반 시스템인 Clever-bot (CB) 사이의 성능을 측정했다. 성능 평가는 모두 사람들이 직접 진행했고, 총 200개의 질문에 대한 대답 중 어떤 대답이 더 자연스러운지 선택하도록 했다. 총 4명이 평가를 진행했는데, 4명 중 3명이 동의하는 경우 정답으로 선택하기로 했다. NCM은 200개 중 97 개의 표를 받았고, CB는 60 개의 표만 받았다. 20표는 동점이 나왔고, 23표에 대해서는 사람들 사이에 의견이 갈리게 되었다. 다음 예시는 NCM과 CB의 답변 중 일부이다. 

[예시-11]

사람이 직접 하나씩 평가하는 것은 시간이 너무 오래 걸리고 비용이 많이 들기 때문에, 자동으로 평가할 수 있는 metric이 제안되어야 할 것이다. 


# 참고 논문

Neural machine translation by jointly learning to align and translate. : Bahdanau attention (리뷰)

Sequence to sequence learning with neural networks : Seq2seq (리뷰)

A neural probabilistic language model. : language modeling (리뷰)

Long short-term memory. : LSTM

On using very large target vocabulary for neural machine translation. : Byte Pair Encoding (BPE)

Recurrent continuous translation models. : machine translation 

Addressing the rare word problem in neural machine translation.

Neural responding machine for short-text conversation. : dialogue generation (1)

A neural network approach to context-sensitive generation of conversational responses. : dialogue generation (2)

 

 

728x90

댓글