Open-domain conversational system을 만들기 위한 다양한 노력들이 있었다. 대표적인 방법으로는 machine translation 을 사용해서, 다음 제공될 대화 내용을 "번역(translate)" 해서 사용자에 제공하는 방식이 있다. 하지만 이러한 방식은 문맥으로 고려하는(context sentitive) 대답을 제공하지 못한다는 단점이 있다. 문맥을 고려하기 위해서는 이전 대화 내용들을 참고해서 문맥에 맞는 응답을 생성해야 한다. 이번 논문에서는 단어들의 임베딩을 이용해서 문장의 문법과 의미를 압축해서 나타내는 방식을 사용한 context sensitive response generation에 대해서 다룬다. 이번 논문에서는 2개의 Recurrent Neural Network Language Model(RLM)을 사용한 context-sensitive response-generation model을 제안한다. 해당 모델은 과거 대화의 정보들을 hidden representation으로 생성하고 RLM을 이용해서 유의미한 대답을 생성하게 된다. 이번 논문에서 제안하는 모델들의 구조는 end-to-end로 학습이 가능하고, 사람이 직접 개입하지 않아도 된다는 장점이 있다.
이번 논문은 Ritter et al. (Data-driven response generation in social media) 을 기반으로 하고 있다. 과거의 dialogue system의 경우, dialogue management와 reponse generation 으로 구성되었다면, 이번에 제안하는 모델은 두 기능을 하나로 합쳐서 수행할 수 있다. 또한 사람의 개입 없이 end-to-end로 학습이 가능하다는 장점이 있다. Continuous representation을 사용함으로서, 파라미터의 수가 매우 커지지 않으면서 한 임베딩으로 전체의 문맥을 표현할 수 있게 된다. 추가적으로 이번 논문은 Recurrent Neural Network Language Model (RLM) 의 확장이라고 볼 수 있다. 이번 논문에서는 continuous RLM을 사용해서 과거 대화 내용을 기반으로 다음 대답을 생성하게 된다. 기존의 모델과 다른점은 context vector가 conditional RLM과 함께 학습된다는 것이다. 우선, RLM에 대해서 먼저 알아보자.
# Recurrent Language Model
Recurrent neural network based language model. 이라는 논문에서 다루는 Recurrent Neural Network Language Model (RLM) 에 대해서 이야기해보자. RLM은 입력으로 제공된 문장 $ s = s_1 + ... + s_T $ 에 대해서 다음과 같이 문장의 확률을 구한다.
해당 모델은 총 3개의 weight matrix를 사용한다. $ \theta_{RNN} = <W_{in}, W_{out}, W_{hh}> $ 전체 vocabulary 의 크기가 $ V $ 인 경우, input matrix $ W_{in} $ 은 $ R^{V*K} $ 의 크기를 가지고 있으며, $ K $ 크기의 임베딩을 생성한다. Recurrent matrix $ W_{hh} $ 는 과거의 기록을 계속 유지하는 역할을 수행하는데, $ R^{K*K} $ 의 크기를 갖는다. Recurrent matrix는 임베딩을 입력으로 받아서 hidden state $ h_t $ 를 결과로 제공한다. 마지막으로 hidden matrix는 hidden state $ h_t $ 를 output $ o_t $ 로 생성하므로 $ R^{K*V} $ 의 크기를 갖는다. Hidden state를 생성하는 과정과, output을 생성하는 과정은 [식-2]와 같다. $ h_t $ 를 생성하기 위해서는 sigmoid 함수를 사용하고, $ h_0 = 0 $ 으로 지정한다.
결과로 나온 $ o_t $ 를 기반으로 다음 단어를 예측하게 되는데, 다음 단어는 [식-3]과 같이 softmax 를 이용해서 구하게 된다.
RLM은 궁극적으로 negative log-likelihood를 최소화하는 방향으로 학습을 하게 되는데, negative log-likelihood는 다음과 같이 구할 수 있다.
# Context-Sensitive Model
이번 논문에서는 3개의 linguistic entity 들을 다룬다.
- $ c $ : context, 과거에 이루어진 대화들을 의미한다.
- $ m $ : message
- $ r $ : response, 모델은 message를 입력으로 받으면 response를 출력으로 제공한다.
모델을 최종적으로 context, message와 과거의 response들을 알고 있을 때, 다음 response를 생성하는 확률을 계산하게 된다. 이번 논문에서는 3개의 모델을 제안한다.
RLMT : 모든 $ c, m, r $ 을 연결해서 하나의 문잘 $ s $ 로 생성한다. RLM은 이렇게 생성한 $ s $ 에 대해서 L(s)를 최소화하는 방향으로 학습을 진행하게 된다. 해당 모델을 이미 알고있는 $ c, m $ 이 담고 있는 내용을 압축한 hidden state를 생성하게 된다. 이러한 방식의 문제는 $ s $ 의 길이가 매우 길어질 수 있다는 것이다.
Dynamic-Context Generative Model 1 (DCGM-1) : 해당 뫃델에서는 context와 message가 고정된 길이의 벡터로 인코딩된다. 이후, context와 message를 각각 하나의 문장이라고 생각하고 하나의 bag-of-words represenatation인 $ b_{cm} $ 을 생성한다. 이렇게 생성된 임베딩을 multilayered non-linear forward architecture의 입력으로 제공되어 고정된 길이의 representation을 생성한다. 학습 과정에서는 negative log-probability를 최소화시키는 방향으로 학습된다. 파라미터는 기존의 RLM과 동일하지만 ($ W_{in}, W_{hh}, W_{out} $), 새로운 파라미터인 $ \{W^l_f\}^L_{l=1} $ 가 추가된다. 해당 파라미터는 feed-forward architecture의 각 층을 구성한다. 최초 입력으로 들어온 $ b_{cm} $ 에 대해서 $ W^1_f $ 와 연산을 통해서 고정된 길이의 벡터인 $ k_1 $ 을 생성하고, feed-forward layer를 지날 때마다 새로운 벡턴 $ k_l $ 을 생성한다. 해당 과정은 [식-6]에서 볼 수 있다. Decoder에서는 [식-7]과 같은 연산을 수행하게 된다. Context representation은 decoding 과정에서 동일하게 유지된다. 이러한 방식은 encoder로 하여금 response를 생성할 때 가장 도움이 되는 representation을 생성하도록 학습하게 하고, decoding 과정에서 decoder가 context information을 까먹지 않도록 도와준다.
Dynamic-Context Generative Model 2 (DCGM-2) : DCGM-1은 $ c, m $을 구분하지 않고 하나의 벡터로 생성하기 때문에 $ c $ 와 $ m $ 사이의 관계를 무시하는 현상이 발생할 수 있다. 그렇기 때문에, DCGM-2에서는 각각 $ c, m $ 에 대해서 서로 다른 bag-of-words representation인 $ b_c, b_m $ 을 생성하게 된다. 두 representation이 각각 $ W^l_f $ 와의 연산을 통해 구한 벡터를 연결해서 $ k_1 $ 벡터를 구하게 되고, 해당 벡터는 DCGM-1 과 동일한 과정을 통해 연산을 수행하게 된다. 연산 과정은 [식-8]로 나타낼 수 있다.
# 실험
데이터셋을 구성하는 데이터 중, context 를 나타내는 $ c $ 는 하나의 문장으로 제한했다. 데이터셋은 $ T = (c_T, m_T, r_T) $ 로 구성된다. (총 3개의 문장, triples 라고 표현) Twitter FireHose 데이터셋에서 context와 response가 동일한 사람으로부터 작성된 경우만 골라서 사용했다. 또한, noise를 최소화하기 위해서 전체 corpus에서 동일한 bigram이 최소 3번 이상 나타난 경우만 데이터로 사용했다. 추가적으로 33K의 triples 를 사람들이 직접 평가해서(5점 만점) 4점 이상이 나온 4232 triples를 각각 tuning set 2118개, test set 2114 개로 분리해서 사용했다.
Automatic evaluation은 BLEU와 METEOR를 사용했다. Automatic evaluation을 사용하는데 문제가 되는 점은, response로 나올 수 있는 문장들이 다양할 수 있다는 것이다. 기존에 데이터를 생성한 방식은 유일한 답변만 존재했는데, 이런 문제를 해결하기 위해서 IR 방식을 사용했다. IR을 이용해서 올바른 답변으로 사용될 수 있는 다양한 답변들을 구축할 수 있었다. Multi-reference extraction을 통해서 다양하고, 수용 가능한 답변들을 더 생성해 냈다. 기존의 triple $ T = (c_T, m_T, r_T ) $ 가 있다고 했을 때, 기존의 context/message 인 $ c_T, m_T $ 의 문맥에 맞게 사용할 수 있는 새로운 $ r_{T'} $ 을 찾아내야 한다. 우선, IR 을 통해서 15개의 후보 답변들을 찾아낸다. IR system에서 유사한 답변을 찾아내는 방법은, 기존의 $ c_T, m_T $ 와 유사한 $ c_{T'}, m_{T'} $ 의 response인 $ r_{T'} $ 를 후보로 선택한다. 후보 triple 의 점수는 [식-9] 와 같이 구할 수 있다. 이러한 방식으로 구한 후보들은 다양하고 납득 가능한 답변들로 구성이 된다. 이렇게 구성된 15개의 후보는 사람들에 의해서 직접 평가를 받는데, 5점 만점 중 4점 이상을 받은 후보만 유지하도록 했다. 최종적으로 3.58 개의 후보만 평균적으로 남게 되었다.
Response generation model은 다음과 같은 feature set 들로 구성된다.
- MT : Moses와 유사한 phrase-based MT decoder로 구성된다. Forward/backward maximum likelihood "translation" probability, word/phrase penalty, linear distortion 등 Moses와 동일한 부분들이 많다.
- IR : triple 들의 index로 구성된 IR feature를 사용한다. $ T $ 에 대해서 후보 답변인 $ r_{T'} $ 를 고르게 된다.
- CMM : MT 와 IR은 문맥을 고려하지 않는다. 문맥을 고려하기 위해서 context and message matches (CMM) 을 사용한다. ( $ c, m, r $ 사이의 exact match) 총 8개의 feature를 정의한다 : $ c $ 와 $ r $ 사이의 1~4-gram match (4개) + $ m $ 과 $ r $ 사이의 1~4-gram match (4개) 이러한 exact match 는 response에서 문맥 정보를 반영하는데 도움을 준다.
모델 학습 디테일은 다음과 같다.
- 4M의 triple data로 학습을 진행했다.
- 가장 많이 사용된 50K 의 vocabulary만 사용했다.
- Noise-Contrastive Estimation (NCE) loss 와, Adagrad를 사용했다.
- batch size = 100, learning rate = 0.1
- clip gradient [-10, 10]
- 모든 파라미터는 normal distribution N(0, 0.01) 을 따르도록 지정했다.
- RLM의 hidden layer 는 512-dim, context encoder의 각 층은 512, 256, 512-dim 으로 구성되어 있다.
Response에 대해서 rescoring을 진행한다. 제안된 모델 (RLMT, DCGM-1, DCGM-2) 의 성능을 평가할 때, IR과 MT 방식을 사용해서 나온 결과 중 가장 좋은 n 개의 결과만 사용해서 성능을 평가한다.
# 결과
# 참고 논문
- Data-driven response generation in social media. : 이번 논문의 기반이 되는 논문
- Recurrent neural network based language model. : Recurrent Neural Network Language Model (RLM)
- Context Dependent Recurrent Neural Network Language Model.
- Joint language and translation modeling with recurrent neural networks.
- A neural probabilistic language model.
- Fast and robust neural network joint models for statistical machine translation.
- BLEU: a method for automatic evaluation of machine translation. : BLEU (리뷰)
- METEOR: An automatic metric for MT evaluation with improved correlation with human judgments. : METEOR
- Moses: Open Source Toolkit for Statistical Machine Translation. : Moses
- Noise-contrastive estimation: A new estimation principle for unnormalized statistical models. : Noise-Contrastive Estimation (NCE) loss
- Adaptive subgradient methods for online learning and stochastic optimization. : Adagrad
댓글