
Persona를 유지하면서 대화를 이어나갈 수 있는, persona-based neural conversational model에 대해서 다룬다.
논문의 원본은 여기에서 볼 수 있다.
기존의 seq2seq 모델과 유사하지만, decoder에서 한 사람의 persona를 나타내는 speaker embedding 과 addressee embedding 을 함께 입력으로 사용한다. 그러므로 이전 hidden state, 이전 timestep의 예상 결과, 그리고 speaker embedding 이 한 timestep의 입력으로 제공된다. Speaker embedding을 사용함으로서 비슷한 persona 를 보유하는 사람은 가까이에 위치하게 되는데, 이러한 방식은 학습 과정에서 배우지 않은 질문들에 대해서도 근처 다른 speaker embedding을 통해 유추해서 대답하고 일관성 있는 대답을 제공해줄 수 있다.
Open-domain conversation model 에 대한 다양한 연구들이 진행되어 왔다. 기존 open-domain conversation model 의 가장 큰 문제점은 너무 일반적인(더 이상 대화를 이끌어 나갈 수 없는) 대답을 제공한다는 것과 일관적인 persona(대화를 할 때 한 사람이 보유하고 있는 성격/특정 등)를 보유하지 못한다는 것이 있다. [표-1]을 보면, 같은 질문을 다른 말로 하는 경우, 일관적이지 못한 답변을 제공한다는 것을 확인할 수 있다.

이번 논문에서는 conversation model 이 persona를 꾸준하게 유지해서 사람과 비슷한 대화를 이끌어나갈 수 있는 방법을 제안한다. 기존의 연구들에서도 persona를 임베딩으로 나타내서 사용하는 방법들이 제시되었었다. 이번 논문에서도 동일하게 persona를 임베딩으로 사용하는 두 모델 SPEAKER MODEL(단일 화자)과 SPEAKER-ADDRESSEE MODEL(두 명의 화자) 을 제안한다. Speaker Model은 대답을 제공하는 speaker의 persona를 벡터로 나타낸다. Speaker-Addressee Model은 speaker 뿐만 아니라, 대화를 하는 상대(addressee)의 persona도 함께 벡터로 나타내서 사용한다.
# Sequence-to-Sequence Model
Seq2seq 모델을 입력 X={x1,x2,...,xnX} 을 LSTM에 제공해서 input gate (it), memory gate (ft), output gate (ot) 을 계산하게 된다. et 는 각 text에 대한 벡터를 나타내고, ht 는 시간 t 에서의 hidden state를 나타낸다. ht 는 et 와 ht−1 을 이용해서 계산하게 된다. ([식-1] 참고) σ 는 sigmoid 함수를 의미한다.

Seq2seq은 결과적으로 출력 Y={y1,y2,...,ynY} 을 예측한다. 한 출력 yt 는 이전 모든 출력 y1,..,yt−1 과 입력 x1,...,xnX 를 기반으로 구해지고, softmax 함수를 통해 확률로 제공된다. 결과로 생성되는 문장을 특수한 토큰인 EOS 가 나타나면 종료하게 된다. Greedy 방식으로 결과를 예측할 수도 있고, beam search 를 이용해서 다양한 후보들 중 제일 좋은 결과를 사용할 수도 있다.

# Speaker Model, Speaker-Addressee Model
입력으로 제공되는 Message M={m1,m2,...,mI} 라고 표현하고, R 은 M 에 대한 응답으로 R={r1,r2,...,rJ,EOS} 로 표현한다. 여기에서 J 는 response 의 길이를 의미한다. rt 는 word token을 의미하고, 한 word token 은 하나의 word embedding et 로 매핑된다.

Speaker Model : speaker 정보에 대한 모델링만 수행한다. (이름, 성별, 개인적인 정보 등) 이러한 정보들은 대화를 할 때 사용되는 내용과 대화하는 방식 등에 영향을 끼치게 된다. Speaker i 는 본인에게 해단되는 representation vi 를 보유하게 된다. Seq2seq 모델(자세한 내용은 여기 참고)을 생각했을 때, 입력 S는 encoder의 마지막 hidden state에 의해서 hS 라는 representation을 생성하게 된다. Decoder에서는 이전 hidden state, 이전 time step에서 예측한 결과 est , 그리고 speaker embedding vi 를 한번에 입력으로 제공한다. 이렇게 하면 speaker representation vi 는 전체 대화에서 동일하게 참조된다. vi 는 word prediction error를 기반으로 back-propagation에 의해 학습된다. Speaker representation을 사용하는 큰 장점 중 하나는 질문에 대한 답을 유추할 수 있다는 것이다. 질문에 대한 답을 학습 과정에서 명확하게 학습하지 못했어도, speaker representation 공간에서 가까이 위치하는 다른 speaker representation을 참고해서 답을 제공할 수 있다는 것이다. 이러한 방식을 조금 더 generalization 이 가능하게 한다.

Speaker-Addressee Model : Speaker Model의 확장으로, speaker와 addressee 사이의 대화 패턴을 학습하게 된다. 대화 상대에 따라서 대화하는 방식이 달라질 수 있기 때문에, 대화하려는 상대에 대한 정보도 학습하게 된다. 대화에 참여하는 두 사람 i,j 에 대해서 동일하게 vi,vj 라는 representation을 생성한다. 이렇게 생성한 representation을 [식-4]와 같이 하나의 representation Vi,j 로 생성하고, 이후에는 Speaker Model 과 동일한 과정으로 연산을 진행한다. ([식-5]) Speaker-Addressee Model 을 학습할 때 가장 어려운 점은, 다양한 사람들이 포함된 대화로 구성된 데이터셋을 구하기 힘들다는 점이다.



# Decoding, Reranking
Decoder에서는 beam size B = 200 으로 해서 decoding 을 수행했다. 각 time step 마다 B∗B 개의 가능한 다음 단어들을 후보로 유지하고, 그 중 EOS가 나타난 문장들을 N-best list 에 추가시킨다. 나머지 문장들에 대해서는 top-B 만 유지해서 동일한 과정을 다음 time step에서 수행한다. N-best list 에서는 reranking을 수행하는데, 이 과정에서 일반적인 대답 ("I don't know" 와 같이 대화를 멈추게 하는 대답 등) Reranking을 length penalty와 target이 주어졌을 때 source 에 대한 log likelihood를 [식-6] 과 같이 사용했다.

p(R|M,v) 는 message 와 speaker id (v) 가 주어졌을 때 response 의 확률을 의미한다. γ 는 penalty weight 를 의미한다.
# Dataset
Twitter Persona Dataset : Twitter FireHose 에서 가져온 데이터 중 한 사람이 3회 이상 지속된 대화를 총 60번 이상 (60번의 대화, 각 대화는 최소 3번 문장을 주고받음) 한 경우만 골라서 사용했다. 이렇게해서 총 74,003 명의 사용자를 추려냈고, 24,725,711 개의 대화를 구할 수 있었다.
Twitter Sordoni Dataset : Sordoni 의 논문 (리뷰는 여기 참고) 에서 사용하는 데이터셋을 Twitter Sordoni Dataset 이라고 부흔다. 해당 데이터셋은 한 개의 message 에 대해서 평균적으로 10개의 reference를 제공한다는 점에서 Twitter Presona Dataset (reference 1개 제공) 과는 다른다. 그러므로 서로 다른 데이터셋에 대해서 BLEU 점수를 비교할 수 없다. (reference 가 10개인 경우 BLEU 점수가 훨씬 좋게 나온다.)
Television Series Transcripts : Speaker-Addressee Model 의 학습에 사용된다. Friends와 Big Bang Theory 의 대본을 사용했다. 총 13명의 주인공에 대해서 69,565 개의 대화를 추출했다. 데이터셋의 크기가 상대적으로 적기 때문에 기존의 seq2seq을 OpenSubtitles 데이터셋에 대해서 학습하고 transfer learning을 통해서 추가 학습을 진행했다.
모델 구성은 다음과 같다.
- 4-layer LSTM, 1000-dim hidden cell
- batch size = 128
- learning rate = 1.0
- parameters = uniform distribution [-0.1, 0.1]
- gradient clipping : threshold = 5
- Vocab size = 50,000
- dropout = 0.2
- 14 epoch (1 month on Tesla K40 GPU)
# 실험
모델의 성능을 평가하기 위해서 BLEU 점수(사람의 평가와 유사한 결과를 제공)와 perplexity를 사용했다. A diversity-promoting objective function for neural conversation models. 에서 제안한 모델을 baseline으로 삼았다. (Twitter Sordoni Dataset으로 학습했다.) [표-2] 은 Twitter Sordoni Dataset에 대해서 성능 평가 결과이다. Baseline 보다 성능이 조금 더 좋게 나왔는데, 이것은 학습할 때 더 큰 데이터셋을 사용한 것과 dropout을 적용한 것, 모델의 "conversationalist" 한 특징에 의한 것이라고 분석한다.

Twitter Persona Dataset에 대한 실험 결과는 [표-3], [표-4] 과 같다. Perplexity와 BLEU score 모두에 대해서 성능이 향상한 것을 확인할 수 있다. 또한, MLE (maximum likelihood) 가 MMI (mutual information) 보다 더 좋은 성능을 제공한다는 것을 알 수 있다.


TV series dataset에 대한 성능 평가는 [표-5], [표-6] 와 같다. Speaker-Addressee Model과 Speaker Model 사이에 큰 차이가 없어보이는데, 이것은 Speaker-Addressee Model 을 너무 작은 데이터셋으로 학습했기 때문이라고 판단했다.


[표-7]은 Speaker Model 에서 뽑은 예시이다. 동일한 질문에 대해서도 speaker의 persona가 다르다면 다른 대답을 제공한다는 것을 확인할 수 있다. [표-8]은 Speaker Model에서 생성된 예시 중, persona를 일정하게 유지하는 예시(user1)과 일정하게 유지하지 못하는 예시 (user2)를 나타낸다. User2의 경우, 같은 의미의 질문을 다른 단어들로 물어봤을 때, 일관적이지 않은 답변을 제공한다는 것을 할 수 있다.


[표-9]은 Speaker-Addressee Model 에서 생성된 예시이다. Speaker는 물론, Addressee 가 다른 사람으로 바뀌면 다른 답변이 생성된다는 것을 알 수 있다. 또한, addressee를 직접 언급하는 답변들이 매우 자주 나타난다는 것을 알 수 있다.

# 참고 논문
- Data-driven response generation in social media. : conversation system (1)
- A neural network approach to context-sensitive generation of conversational responses. : conversation system (2) (baseline) (리뷰)
- A neural conversational model. : conversation system (3) (리뷰)
- A diversity-promoting objective function for neural conversation models. : conversation system (4)
- Neural responding machine for short-text conversation. : conversation generation neural model
- Sequence to sequence learning with neural networks. : seq2seq (리뷰)
- Semantically conditioned LSTM-based natural language generation for spoken dialogue systems. : LSTM을 이용한 conversation system
- Neural machine translation by jointly learning to align and translate. : seq2seq with attention (리뷰)
Addressing the rare word problem in neural machine translation. : neural language model - Building end-to-end dialogue systems using generative hierarchical neural network models : end-to-end conversation system
- Attention with intention for a neural network conversation model. : intention network 를 적용
- Minimum error rate training in statistical machine translation. : MERT
- BLEU: a method for automatic evaluation of machine translation. : BLEU (리뷰)
댓글