NL-070, Adversarial Learning for Neural Dialogue Generation (2017-EMNLP)
■ Comment
- 이전 방법인 NL-068은 두 개의 agents을 생각하여 seq2seq의 학습 방법을 MLE에 강화학습을 결합시켜 학습시킨 방법이었다.
- 강화학습을 오랜만에 봐서 많이 까먹어서 팡요랩 강의 일부분을 다시 봤다.
- NLP에만 집중하신 다른 분들도 강화학습 개념은 NLP에서 맨날 쓰지 않기 때문에 금방 세부적인 것은 잊어버리기 때문에 복습차원에서 스터기 ㄱㄱ!
- 이 논문은 MLE에 추가적으로 GAN처럼 adversarial training을 접목시킨 것이다.
- 그림 1의 알고리즘 도식도를 보면 전체적인 개념이 이해가 된다.
- reward만 가지고 학습하면, 한 번 잘못 학습되면 빠져나오기가 힘들어서 teacher-forcing을 같이 사용한다.
- 따라서 negative samples은 reward을 이용하고 positive samples은 MLE을 이용해서 학습하는 것처럼 보인다.
- Adversarial evaluation은 새로 보는 개념이라 세부적인 내용은 잘못 이해했을 수도 있지만, evaluator가 완벽하다는 가정하에 새로운 metric을 제시한 것이다.
- 또한 이 논문의 future work에서 하는 말이, "adversarial training 전략이 생성 시퀀스와 ref target 시퀀스 분포들 사이에 큰 discrepancy가 있은 tasks일수록 더욱 큰 장점이라고 추측한다고" 하는데 이것에 대한 연구가 이루어져 있는게 궁금하다.
- 직관적으로는 분포 차이가 커야 adversarial이 잘 작동하니까 그럴 수 있을 것 같다.
- style transfer 생성 연구를 생각해보면, 일부 논문에서 latent representation 부분에 adversarial을 걸어 버리는데 target과 생성의 분포차이가 크지 않기 때문에 잘안되나 싶기도 하다.
0 Abstract
- 이 논문에서는 튜링테스트에서 직관을 얻어 오픈 도메인 대화 생성에서 adversarial training을 사용을 제시한다.
- 시스템은 사람이 생성한 dialogue utterances와 구별이 안가도록하는 sequences을 생성하도록 학습이 된다.
- 우리는 이 task을 두 개의 시스템을 조인트 학습하는 강화학습문제로 다루고 생성 모델이 sequences을 응답하도록 생성한다.
- 그리고 discriminator은 튜링 테스트의 human evaluator와 유사하고 human-generated dialogues와 machine-generated ones 사이를 구별한다.
- discriminator의 출력들은 생성 모델의 rewards로 사용이 되고 시스템에게 human dialogues와 닯은 대화를 생성하도록 push한다.
- adversarial training에 추가적으로 우리는 (많은 가능성있는 함정들을 피하면서) dialogue evaluation metric로 상대방을 속이는 adversarial evaluation을 위한 모델을 소개한다(?).
- 여러 개의 metrics에 대한 실험결과는 adversarial evaluation을 포함하고 adversarially 학습 시스템이 기존의 baseline들보다 더 높은 퀄리티 응답을 만들어 내는 것을 입증한다.
1 Introduction
- Open domain 대화 생성은 dialogue history가 주어졌을 때 의미있고 관련있는 dialogue 응답을 생성하는 것에 초점을 맞춘다.
- 이전의 시스템들은, 예를들면 phrase-based 번역 시스템 혹은 end-to-end 뉴럴시스템들은 maximum likelihood estimation (MLE) objective을 사용하여 dialogue history가 주어지면 다음의 dialogue utternace을 예측함으로써 목표에 근사하게 된다.
- 이러한 성공에도 불구하고 이렇게 지나치게 단순한 학습 objective는 다음과 같은 문제를 야기한다.
- responses are dull(뻔한것), generic(일반적인것), repetitive(반복적인것), and short-sighted(너무 근시안적인것).
- 이러한 문제들의 솔루션은 몇 가지 펀더멘탈한 질문에 답을 할 수 있어야 한다.
- what are the crucial aspects that characterize an ideal conversation,
- how can we quantitatively measure them
- how can we incorporate them into a machine learning system?
- 예를 들어, Li는 3가지 ideal dialogue 속성들을 수동으로 정의한다.
- ease of answering, informativeness and coherence
- 그리고 강화학습 프레임워크로 모델을 학습시켜 높은 reward을 가지는 응답을 생성한다.
- Yu는 keyword retreival condifence을 리워드로 사용한다.
- 그러나 이는 수동으로 정의된 reward function이 모든 중요한 측면을 포함할 수는 없고 이것은 suboptimal(차석책)의 utternaces 생성을 야기할 수는 있다.
- 좋은 dialogue 모델은 사람의 대화를 구별할 수 없는 말을 생성해야 한다.
- 이러한 목표는 Turing 테스트의 아이디어와 유사한 training objective을 닮도록 제안한다.
- 우리는 CV에서의 adversarial training의 아이디어를 빌려왔고 이것은 두 개의 모델을 조인트하게 학습한다.
- generator(뉴럴 seq2seq)은 dialogue sequence의 생성의 확률을 정의한 것이고
- discriminator은 dialgues가 human-generated or machine-generated인지 레이블링을 하는 것
- 우리는 machine-generated utterances의 퀄리티가 사람이 생성한것으로 discriminator을 속이는 능력 측정을 통해 이 태스크를 RL 문제로 간주한다.
- discriminator의 출력은 generator한테 reward로 사용되며, generate utterances가 human-generated dialogues의 대화와 구별할 수 없도록 push한다.
- Turing 테스트의 아이디어는 human-generated ones와 machine-generated text을 구별하도록 evaluator을 고영하는 것이고 이것은 학습 뿐만 아니라 testing에도 쓰일 수 있다.
- 그 이름이 여기서는 adversarial evaluation으로 한다.
- adversarial training은 많이 봤어도 evaluation은 처음보는 것 같은데...?
- Adversarial evaluation은 Bowman(2016)에 처음으로 적용되서 문장 생성 퀄리티를 평가
- 이 논문에서 우리는 potential pitfalls of adversarial evaluations을 피하고 평가를 신뢰할 수 있도록 필요한 조치를 논의한다.
- 실험 결과는 우리의 접근 방식이 MLE 목적 함수를 사용하여 훈련된 standard SEQ2SEQ 모델보다 더욱 interactive, intersting, non-repetitive인 반응을 생성함을 보여줍니다.
2 Related Work (번역)
- Dialogue generation
- 대화에 대한 응답 생성은 소스-타겟 변환 문제로 볼 수 있습니다.
- Ritter et al. (2011)는 생성 문제를 기계 번역 문제로 프레임 화합니다.
- 소 도니 (Sordoni) 등. (2015)는 Ritter 등의 시스템을 개선하여 사전 컨텍스트를 통합 한 신경 모델로 구문 MT 기반 대화 시스템의 출력을 재조정합니다.
- SEQ2SEQ 모델의 최근 진보는 엔코더를 적용하여 메시지를 의미를 나타내는 분산 벡터에 매핑 한 다음 벡터로부터 응답을 생성하는 종단 간 대화 시스템을 구축하려는 여러 노력에 영감을 주었다.
- 우리의 연구는 인코더-디코더 모델을 RL 훈련에 적용하여 Li(NL-068)의 확장으로 볼 수 있지만보다 일반적인 RL 보상으로 볼 수 있습니다.
- Li(NL-068)는 policy gradient methods을 사용하여 두 가지 가상 에이전트 간의 대화를 시뮬레이션하여 정보 성, 일관성 및 응답 용이성의 세 가지 유용한 대화 속성을 표시하는 시퀀스를 보상합니다.
- 우리의 연구는 또한 SEQ2SEQ와 강화 학습 패러다임을 통합하려는 최근의 노력과도 관련이 있으며, 두 가지 장점을 모두 활용합니다 (Wen et al., 2016).
- 예를 들어, Su et al은 강화 학습과 실제 사용자의 작업에 대한 신경 생성을 결합합니다.
- Asghar는 인간 사용자를 사용하여 엔드-투-엔드 RL 대화 모델을 학습합니다.
- 대화 품질은 일반적으로 기계 번역에 사용되는 BLEU 및 METEOR 점수와 같은 word-overlap 메트릭을 사용하여 평가됩니다.
- 최근 일부 연구는 인간화 예측 및 다음 발화 분류와 같이보다 유연하고 신뢰할 수있는 평가 지표를 살펴보기 시작했습니다.
- Adversarial networks
- 생식 적대 네트워크의 아이디어는 컴퓨터 비전에서 큰 성공을 거두었 다 (Radford et al., 2015; Chen et al., 2016a; Salimans et al., 2016).
- 훈련은 차별 모델을 속이는 결과물을 생성하도록 생성 모델을 훈련시키는 게임으로 공식화된다.
- 이 기술은 이미지 생성에 성공적으로 적용되었습니다.
- 그러나 우리가 아는 한,이 아이디어는 NLP에서 비슷한 성공을 거두지 못했습니다.
- 이는 비전과 달리 텍스트 생성이 불연속 적이므로 판별 기에서 출력 된 오류가 발생기로 역 전파되기가 어렵기 때문입니다.
- 최근 몇 가지 연구가이 문제를 해결하기 시작했다
- Lamb et al. (2016) propose providing the discriminator with the intermediate hidden vectors of the generator rather than its sequence outputs.
- Such a strategy makes the system differentiable and achieves promising results in tasks like character-level language modeling and handwriting generation.
- (SeqGAN) Yu et al. (2016a) use policy gradient reinforcement learning to backpropagate the error from the discriminator, showing improvement in multiple generation tasks such as poem generation, speech language generation and music generation.
- Chen은 시퀀스 생성 이외에도 적대적 훈련 아이디어를 정서 분석에 적용하고 Zhang은 아이디어를 도메인 적응 작업에 적용합니다.
- 우리의 작업은 강화 학습의 행동 문제로 시퀀스 생성을 공식화하는 최근 작업과는 거리가 멀다.
- Ranzato는 경쟁력있는 기계 번역 결과를 얻기 위해 정책 기울기를 사용하여 SEQ2SEQ 모델에서 RNN 디코더를 훈련시킵니다.
- Bahdanau는 기계 번역을 위해 행위자 비평가 RL 모델을 훈련시켜이 단계를 한 단계 더 발전시킵니다.
- Also related is recent work (Shen et al., 2016; Wiseman and Rush, 2016) to address the issues of exposure bias and loss evaluation mismatch in neural translation.
3 Adversarial Training for Dialogue Generation
- 이 섹션에서는 우리는 adversarial RL 모델의 구성을 자세히 설명한다.
- 문제는 다음과 같다.
- dialogue utteracnes가 (일련적)sequence인 dialogue history x가 주어졌을 때 모델은 response y을 생성하고 싶어한다.
- y = {y1, y2, ..., yT}
- 우리는 문장 생성 과정을 policy을 따르는 일련의 actions으로 간주한다.
- 여기서 policy는 encoder-decoder RNN으로 정의된 것이다.
3.1 Adversarial REINFORCE
- adversarial REINFORCE 알고리즘은 두 개의 요소로 구성된다.
- a generative model G
- a discriminative model D
- Generative model
- 생성모델 G는 policy을 정의하는데, 이는 dialogue history x가 주어질 때, response y을 생성하는 것이다.
- 이것은 SEQ2SEQ 모델과 비슷하며, SEQ2SEQ는 RNN을 사용하여 source 입력을 vector representation으로 매핑하고나서 softmax 함수를 사용하여 target에서 각 token을 생성하는 확률을 계산한다.
- Discriminative model
- Discriminative 모델 D는 이진 분류기고 입력으로 dialogue utterances {x, y}을 입력으로 받고 입력이 human or machines 어디에서 생성된 것인지에 대한 레이블링을 출력한다.
- 입력 대화는 hierarchical encoder을 사용하여 vector reprsentation으로 인코딩되고 2-class softamx function에 태워서 입력 대화 에피소트가 기계나(
) 사람이(
) 생성한 것인지에 대해 확률을 받는다.
- Policy Gradient Training
- 시스템의 키아이디어는 generator가 utteracnes가 사람으로이 생성했는지 구별을 못하게 하도록 생성하게 장려하는 것이다.
- 우리는 policy gradient 방법을 사용하여 이러한 목표를 달성하고 현재 utterances가 사람이 생성했는지에 대한 discriminator의
을 reward로 사용을 한다.
- 이것으로 생성 utterances의 기대 리워드 값을 최대화하는 REINFORCE 알고리즘을 사용한다.
- dialogue history x가 주어졌을 때, bot은 dialogue utteracne y을 policy로부터 샘플링하여 생성한다.
- 생성된 utterance y와 입력 x을 concat하여 discriminator에 태운다.
- 식 (1)의 gradient가 likelihood ratio trick을 사용하여 다음처럼 근사화 된다.
- π는 생성된 response의 확률을 의미한다.
- b({x, y}) denotes the baseline value to reduce the variance of the estimate while keeping it unbiased.
- 이 부분은 강화학습에서 등장하는 부분인데 action에 따른 q값의 분산을 줄이기 위해 bias을 빼줘서 상대적인 것을 배우려는 방법이 있다.
- 여기서 state는 x고 action은 y에 대응이 되는 것 같다. 근데 원래 baseline은 state function이어야 되는데 여기서는 b가 Q function 처럼 (s,a)에 대한 함수이다.
- 이래도 되는 것인가 싶은데 아래 영어 글을 보자.
- 모르시는 분은 팡요랩이라는 유튜브에 나오는 설명을 참고! 논문의 footnote에서는 다음과 같이 써있다.
- Like Ranzato et al. (2016), we train another neural network model (the critic) to estimate the value (or future reward) of current state (i.e., the dialogue history) under the current policy π.
- The critic network takes as input the dialogue history, transforms it to a vector representation using a hierarchical network and maps the representation to a scalar.
- The network is optimized based on the mean squared loss between the estimated reward and the real reward.
- 즉 critic에 해당하는 뉴럴 네트워크를 학습하여 baseline을 구축하는데, 이것은 current state에 해당하는 함수가 맞는 듯한데 왜 저렇게 표기가 되었는지 생각해보면
- critic 모델은 평가된 reward와 real reward가 같도록 MSE loss을 적용해서 학습이 된다.
- 즉 이런 순서로 예측된다.
- 1) (x,y_human)이 discriminator에 들어가서 1(=real reward)이 되도록 MSE 손실함수로 모델을 학습한다.
- 물론 이 때 negative samples은 generator가 만들어낸 것으로 (x,y_machine) = 0이 되도록 학습이된다.
- discriminator와 generator와 vanilla REINFORCEMENT 방법대로 학습하게 되고 이 discriminator은 critic 모델이 되는 것이다.
- 2) policy gradient으로 학습할 때, x와 y가 주어지는데 이 때 학습된 critic으로 나온 출력을 baseline을 쓰는 것이다.
- 그렇다면 critic과 위의 Q가 무엇이 다른가? 싶은데 critic은 vanilla REINFORCEMENT 함수로 미리 학습한 것이고 이를 이용하여 actor-critic 학습 방법을 가져가겠다는 뜻.
- discriminator은 동시에 human-generated dialogue은 dialogue history x을 포함하는 positive 샘플로, machine-generated dialogue는 negative 샘플로 업데이트를 한다.
3.2 Reward for Every Generation Step (REGS)
- REINFORCE 알고리즘은 reward가 오직 하나의 샘플로만 근사화되고 식 (2)에서 샘플과(예. [Q+({x, y}) − b({x, y})]) 관련된 reward가 생성되는 sequence의 모든 actions에 (the generation of each token) 대해 사용되는 단점이 있다.
- 예를 들어, 입력 히스토리가 "what’s your name"이고 human-generated 반응이 "I am John"이고 machine-generated 반응이 "I don’t know"이다.
- vanilla REINFORCE 모델은 똑같은 negative reward을 모든 tokens에 준다는 것이다.
- 사람의 생성 반응, I, don’t, know에서의 모든 tokens에
- 반면에 학습에서 적당한 credit 할당은 reward을 분리하여 줄 수 있는 것이다.
- 아마도 "I"와 "dont"와 "know"에 해당하는 토큰들에 중립적인 reward을 줄 수 있다.
- We call this reward for every generation step, abbreviated REGS.
- 즉 token별로 reward을 다르게 주고 싶다는 의미인 듯..?
- intermediate steps 혹은 partially decoded sequences에 대한 reward 는 따라서 필요하다.
- 운이 나쁘게도, discriminator은 fully generated sequences에 대한 scores을 할당하게 학습이 되고 partially decoded ones에 대해서는 학습하지 않는다.
- 우리는 두 가지 전략으로 intermediate step rewards을 계산한다.
- (1) using Monte Carlo (MC) search
- (2) training a discriminator that is able to assign rewards to partially decoded sequences.
- (1) Monte Carlo search
- partially decoded
가 주어지고, 모델은 decoding이 끝날 때까지 distribution으로부터 tokens 샘플링을 유지한다.
- 이러한 과정을 N번(여기서는 5로 세팅) 반복하고 N개의 generated 시퀀스는 common prefix
을 공유한다.
- 이러한 N개의 sequences는 discriminator로 들어가고 average score가
의 reward로 사용이 된다.
- 이것은 SeqGAN과 비슷한 전략이다.
- MC의 단점은 각 시퀀스의 각 prefix에 대해 샘플링 프로세스를 반복해야하므로 시간이 많이 소요된다는 것이다.
- 설명이 깔끔하군!
- (2) train discriminator
- 우리는 직접적으로 discriminator이 fully와 partially decoded sequences에 대해 reward을 할당할 수 있도록 학습한다.
- 우리는 생성된 partial 시퀀스를
와
로 나누고
을 postivie,
을 negative 샘플로 사용한다.
- 이 전략의 문제는 시퀀스에서 너무 빠른 액션은 discriminator을 위한 많은 학습 예제에서 공유한다. (예를 들어,
은 모든 partially 생성 시퀀스에 포함이 된다.)
- 이것은 오버피팅을 유발한다. (즉
가 있으면 모두 positive로 학습되는 오버피팅)
- 이러한 문제를 피하기 위해, 우리는 알파고에서 학습 value network을 학습할 때와 유사하게, Y의 subsequences을 각각 모으고 랜덤하게
와
에서 하나의 예제를 샘플링하여 positive, negative 예제로 discriminator을 업데이트한다.
- Monte Carlo search model와 비교해서 이 전략은 매우 중요하게 시간 효율적이지만, partially decoded sequences가 학습데이터에 추가됨으로써 discriminaotr의 정확도가 떨어지는 약점을 가지고 있다.
- 훈련 시간이 문제가되지 않을 때 MC 모델의(1번 방법) 성능이 더 우수하다는 것을 알았습니다.
- 각 partially-generated sequence
에 대해 discriminator은 classification score
을 준다.
- 우리는 basline
을 비슷한 vanillia REINFORCEMENT 모델을 사용하여 계산한다.
- generator를 업데이트하기 위해 다음과 같은 gradient 가 생성됩니다.
- Comparing (3) with (2), we can see that the values for rewards and baselines are different among generated tokens in the same response.
- Teacher Forcing
- 부분적으로, 우리는 generative 모델을 식 (1)만 사용해서 학습하는 것이 vanilla Reinforce와 REGS에 대해 불안정한 학습을 야기하며, 몇 시간 학습하고 나면 모델의 PPL이 엄청 올라간다는 것을 알아냈다. (even when the generator is initialized using a pretrained SEQ2SEQ model)
- 이러한 발생의 이유는 generative model이 discriminator으로 부터 받은 reward을 통하여 gold-standard target 시퀀스에 대해 간접적으로 노출이되며 이 reward는 generator의 생성된 시퀀스를 promote 혹은 discourage하도록 사용이 된다.
- 즉 여기서의 식3은 MSE처럼 직접 token을 예측하도록 하는 것이 아니고 discriminator의 reward와 policy을 이용한 token prediction을 곱해서 사용한다.
- 이러한 훈련 전략은 깨지기 쉽다.
- 한번 generator가 some training batches에서 (우연히) 악화가 되고 dsicriminator가 연속적으로 generator로부터 받은 시퀀스를 좋게 인식하지 못한다면, generator은 즉시 상실된다.
- 즉 한 번 어쩌다가 generator가 안좋아지면, 그 즉시 get lost 된다.
- discriminator로부터 나온 reward을 기반으로 생성된 시퀀스는 나쁜 것은 알 수 있지만, 어떤 시퀀스가 좋고 어떻게 좋은 시퀀스를 생성하도록 push할 수 있는지는 모른다.(임의의 샘플링으로 좋은 반응을 생성할 가능성은 아주 적습니다 due to the vast size of the space of possible sequences)
- 어떤 시퀀스가 좋은 것일까?
- 리워드 시그널이 손실되면 학습 과정은 중지된다.
- 이러한 이슈를 줄이고 generator에게 직접적으로 gold-standard targets에 접근하게 하기 위해, 우리는 human generated responses을 fedding을 해서 generator가 모델 업데이트를 하게끔 한다.
- discriminator을 위한 가장 직설적인 방법은 자동적으로 human generated responses에게 1의 reward (혹은 다른 positive values)을 주고 generator는 이 reward을 사용해서 human generated examples을 업데이트하게 한다.
- This can be seen as having a teacher intervene with the generator some fraction of the time and force it to generate the true responses, an approach that is similar to the professor-forcing algorithm of Lamb et al. (2016).
- 면밀히 살펴보면이 수정된 것은 SEQ2SEQ 모델의 표준 트레이닝과 동일하며, 최종 트레이닝은 adversarial objective와 MLE objective를 사용하여 SEQ2SEQ 모델을 교대로 업데이트합니다.
- professor-forcing 모델을 훈련 데이터 세트에서 벗어나기 시작하면 generator를 조절하는 regularizer로 생각할 수 있습니다.
- 위에서 말한 generator가 어긋날 때, regularizer 역할로 MLE objective가 작동한다는 것
- 우리는 또한 다른 해결방법을 제안하는데 이는 discriminator가 그들의 모델을 사용하여 처음으로 human generated example에 reward을 할당하고 만약 이 reward가 baseline value보다 큰 경우에만, generator가 스스로 이 reward을 가지고 학습된다.
- 이러한 전략은 모델 업데이트에 대해 다른 weights가 다른 human generated 예시로부터 (generator가 생성한 다른 reward values의 형태인) 할당된다.
- 그리고 human generated examples은 언제나 non-negative weights와 연관된다.
- 총 정리하면 위의 알고리즘대로 학습한다 like GAN..
- G-steps에서 reward을 사용한 식 (3)으로의 학습은 negative sample에 대해서만 진행하는 것으로 보인다.
- positive sample은 teacher-forcing으로 진행하겠다는 것처럼 보인다.
- 이렇게 하는 이유는, reward으로만 학습을 하면, 간접적인 학습 방법이 되어서 gold-target을 보지 못해서 실제로 PPL이 엄청 커진다고 한다.
- 따라서 teacher-forcing을 넣어서 이 문제를 해결하려고 한 것이다.
- (또한 위에서 말한의미가 이 부분인가?) 그래서 postivie sample은 언제나 non-negative weights와 연관된다고 한 것..?
3.3 Training Details (번역)
- 우리는 먼저 대화 이력이 주어진 표적 서열을 예측함으로써 생성 모델을 사전 훈련시킵니다.
- OpenSubtitles 데이터 세트에 대한주의 메커니즘을 사용하여 SEQ2SEQ 모델을 학습했습니다.
- 우리는 기울기 클리핑, 미니 배치 및 학습 속도 감소와 같은 Sutskever가 권장하는 프로토콜을 따랐습니다.
- 우리는 또한 차별자를 사전 훈련시킵니다.
- 부정적인 예를 생성하기 위해 we decode part of the training data.
- Half of the negative examples are generated using beam-search with mutual information reranking as described in Li et al. (2016a), and the other half is generated from sampling.
- 데이터 처리, 모델 교육 및 디코딩을 위해 (both the proposed adversarial training model and the standard SEQ2SEQ models) 다음을 포함하여 응답 품질을 향상시키는 몇 가지 전략을 사용합니다.
- (1) 응답 길이가 임계 값보다 짧은 교육 예제를 제거합니다 (5로 설정). 이는 일반적인 응답 품질을 크게 향상시킵니다.
- (2) 모든 예제에 대해 동일한 학습 속도를 사용하는 대신 응답 내 토큰의 평균 tf-idf 점수를 고려하는 가중치 학습 속도를 사용합니다. 이러한 전략은 둔하고 일반적인 발언의 영향을 줄입니다.
- (3) Penalizing intra-sibling ranking when doing beam search decoding to promote N-best list diversity as described in Li et al. (2016c).
- (4) Penalizing word types (중지 단어 제외). 이러한 전략은 no와 같은 반복적 인 반응의 속도를 크게 줄입니다. no. no. no. no. 또는 I don’t like oranges but i like oranges 등 모순적인 반응이 있습니다.
4 Adversarial Evaluation
- 여기서는 adversarial evaluation에 대한 전략을 얘기한다.
- 제시된 adversarial training and adversarial evaluation는 분리된 과정이다.
- 그들은 parameters을 공유하지 않고 서로 independent하다.
- adversarial evaluation의 아이디어는 Bowman et al. (2016)에서 처음으로 제안되었고 이것은 discriminant function으로 generated와 true 문장들을 구분짓게 학습을 하는 것이다.
- 이것은 모델의 sentence generation 능력을 측정하는 것이다.
- 이 아이디어는 context of dialogue generation에서 사전에 Kannan and Vinyals (2016) 에서 연구되었다.
- Adversarial evaluation은 또한 Turing test의 아이디어와 닮았고 사람인지 기계가 생성한지를 판별하는 human evaluator을 요구한다.
- 그러나 이것은 사람에게 부탁하기에 time-consuming하고 비싸기 때문에 모델에게 얘기해서 판단을 맡긴다.
- 우리는 대신에 machine evluator가 human dialogues와 machine dialogues을 구별하게 학습하고 우리는 생성된 응답의 general quality의 측정치를 사용한다.
- Adversarial evaluation은 training과 testing 모두 연관되어 있다.
- training에서는 evalutor가 기계생성(negative), 사람생성(positive)의 label dialogues으로 학습이 된다.
- test에서는 학습된 evalutor가 heldout 데이터세트에 대해 평가한다.
- 만약 사람이 생성한 doalogues와 기계가 생성한 것과 구별이 안간다면 model은 50%의 정확도를 내뱉는 것이다.
- 아마도 입력은 (x,y)가 들어가는 식일듯?
4.1 Adversarial Success
- Adversarial Success (AdverSuc)는 모델이 평가자를 속일 수있는 인스턴스의 일부로 정의합니다.
- AdverSuc는 1과 평가자가 달성 한 정확도의 차이입니다.
- 대화 생성 모델에 대한 AdverSuc 값이 높을수록 좋습니다.
4.2 Testing the Evaluator’s Ability (번역)
- 적대적 평가 방법의 한 가지주의 할 점은 모델에 따라 다르다는 것입니다.
- 우리는 튜링 테스트에서 인간 평가자를 자동 평가기로 근사하고 평가자가 완벽하다고 가정합니다.
- 판별 자의 낮은 정확도는 생성 된 응답이 인간과 구별 할 수 없음을 의미하는 것으로 해석하기 때문에 높은 응답 품질을 나타내야합니다.
- 불행히도, 낮은 판별 정확도로 이어질 수있는 또 다른 요소가 있습니다
- a poor discriminative model
- 항상 임의의 레이블을 제공하거나 항상 동일한 레이블을 제공하는 판별자를 고려하십시오.
- 이러한 평가자는 항상 AdverSuc 값이 0.5입니다.
- Bowman et al. (2016)은 unigram features and neural features을 사용하여 두 개의 다른 판별 기 모델을 별도로 제안합니다.
- 어떤 기능 세트가 더 안정적인지 말하기는 어렵습니다.
- 개발 세트에 맞는 모델이 반드시 우수하기 때문에 보류 된 개발 세트에서 모델을 테스트하는 표준 전략은이 경우에 적합하지 않습니다.
- 이 문제를 해결하기 위해 자동 평가 기의 기능을 테스트하기 위해 수동으로 개발 한 몇 가지 상황을 설정하는 것이 좋습니다.
- 이것은 튜링 테스트에서 인간 평가자의 능력을 테스트하기 위해 시험을 설정하는 것과 유사합니다.
- 우리는 AdverSuc 값뿐만 아니라 평가자가 수동으로 디자인 한 테스트 사례에서 얻은 점수를 보고 하여보고 된 AdverSuc를 얼마나 신뢰할 수 있는지 나타냅니다.
- 우리는 완벽한 평가자가 어떻게 행동해야 하는지를 미리 알고있는 시나리오를 개발 한 다음 차별적 모델의 AdverSuc를 금 표준 AdverSuc와 비교합니다.
- 우리가 설계하는 시나리오는 다음과 같습니다.
- We use human-generated dialogues as both positive examples and negative examples.
- A perfect evaluator should give an AdverSuc of 0.5 (accuracy 50%), which is the gold-standard result.
- We use machine-generated dialogues as both positive examples and negative examples.
- A perfect evaluator should give an AdverSuc of 0.5 (accuracy 50%).
- We use original human-generated dialogues as positive examples and dialogues consisting of random utterances as negative examples.
- A perfect evaluator should give an AdverSuc of 0 (accuracy 100%).
- We use original human-generated dialogues as positive examples and dialogues with responses replaced by the utterances immediately following the true responses.
- A perfect evaluation should give an AdverSuc of 0 (accuracy 100%).
- The evaluator reliability error (ERE) is the average deviation of an evaluator’s adversarial error from the gold-standard error in the above tasks,
- 오류가 작을수록 평가자가 더 신뢰할 수 있습니다.
- 즉, 기계가 생성한 데이터를 negative로 학습하는 것은 말이 안된다. (왜냐하면, 이것은 indepedent하게 수행이 되어야하므로)
- 따라서 positive samples밖에 실제론 없지만, 위와 같이 시나리오 4가지를 설정할 수가 있다.
- 위의 4가지 시나리오는 evaluator가 완벽하다는 가정을 담을 수 있다.
- 앞에 2개는, 사람이 생성한 샘플들을 positive, negative 둘 다 사용하는 것. 즉 모델이 실제로는 아무것도 배우지 않는 것이다.
- 뒤에 2개는, 사람이 생성한 샘플들은 positive으로 하고 negative로 랜덤하게 샘플링 하거나 replaced된 것으로 사용한다.
- 위의 시나리오들로 점수를 매겨서 이것들의 average deviation으로 ERE을 정의한다.
4.3 Machine-vs-Random Accuracy
- ERE는 사람이 생성 한 대화로 구성된 시나리오를 사용하여 평가자의 기능 또는 하이퍼 파라미터 선택을 평가합니다.
- Unfortunately, no machine-generated responses are involved in the ERE metric.
- 위의 방법인 ERE는 기계가 생성한 반응을 실제로 반영하지 않는 metric이다.
- 다음 예는, 이 전략으로 인한 심각한 약점을 보여줍니다.
- 입력이 greedy 혹은 beam search 모델들로 decode된다면, 대부분 generation 시스템은 adversarial success가 10%보다 작게 성공한다.
- evaluator 정확도가 90%라는 것
- 그러나 decoding시 sampling을 통한다면, adversarial success은 40%으로 껑충 뛴다.
- 여기서 sampling은 generator가 다른 dialgue history가 주어졌을 때 생성된 sequences들 중에서 샘플링 한다는 것 같음.
- Ref중에 다음의 글이 있음
- sampling을 통하여 decoded된 시퀀스를 살펴보면, 다른 이야기를 말한다.
- 샘플링으로부터 얻은 responses들은 때때로 일관성 없고 연관성 없고 심지어 문법도 틀린다.
- 우리는 따라서 추가적인 검사를 한다.
- 기계가 생성한 것과 랜덤 샘플링한 response한 것을 구분하는 정확도를 리포트한다. (=machine vs random)
- 이것은 Shao에서 말하는 N-choose-1 metric과 닮았다.
- 높은 정확도는 생성된 응답이 사람의 response에서 랜덤하게 샘플링한지를 구별한다는 것이며, 이것은 generative 모델이 단순하게 랜덤성으로부터 generator을 속이지 않는다는 것이다.
- Sec 5에서 보여준 것처럼, 샘플링 결과는 높은 AdverSuc 값을 보여주나, machine-random accuracy는 낮다.
- N-choose-1
- In the N-choose-1 metric, given a prompt, we ask the model to choose the correct response from N candidates, where one is the ground truth and the other N − 1 are random responses from the same data set.
- We then calculate the N-choose-1 accuracy as the proportion of trials that the top selection is the true response.
- The prompts used for evaluation are selected randomly from the same data set.
- This metric isn’t necessarily correlated well with the true response quality, but provides a useful first diagnostic for faster experimental iteration.
- 즉, ERE 측정 방법은 실제로 machine이 생성한 샘플들을 사용하지 못한다는 점이 있다.
- 그리고 실제로 모델이 greedy 혹은 BS을 사용하지 않고 샘플링한 response의 결과를 가져왔을 때, AdverSuc가 높게 나온다 (Table 3)
- 즉 AdverSuc만 본다면, 샘플링 기법이 좋다는 것이다.
- 하지만 실제로는 아닐테니, 이것을 방지하기 위해 machine-vs-random을 구분짓는 metric을 제시한 것이다.
- 논문에서 table 3에 있는 adversuc와 machine-vs-random 측정에 대해 자세히 안써있는 듯한 느낌이..
5 Experimental Results
5.1 Adversarial Evaluation
- Baselines we consider include standard SEQ2SEQ models using greedy decoding (MLEgreedy), beam-search (MLE+BS) and sampling, as well as the mutual information reranking model of Li et al. (2016a) with two algorithmic variations:
- (1) MMI+p(t|s), in which a large N-best list is first generated using a pre-trained SEQ2SEQ model and then reranked by the backward probability p(s|t) and
- (2) MMI−p(t), in which language model probability is penalized during decoding.
- Table2의 실험결과에서 Hierarchical Neural 모델로 Table 3의 실험결과를 얻는다.
- Hierarchical Neural가 end-to-end라 선택했다고 함
- 이해한바로 추측하자면, 일단 실험 결과에서 말하길 evalautor 모델은 Hierarchical Neural을 사용한다.
- Table 3의 AdverSuc는 table2의 ERE을 측정할 때 4가지 시나리오 중 하나의 점수인 것 같다.
- 아마도 3 or 4번째 시나리오일 듯 싶다.
- 하지만 이렇게 AdverSuc의 스코어만 믿기에는 무리수가 있으니.. (Sampling 결과를 보면) machine-vs-random도 측정한다.
- machine-vs-random은 N-choose-1와 비슷한데, N개의 classification 문제이다.
- 즉 N개의 후보중 1나만 real이고 나머지는 같은 데이터세트에서 뽑은 fake이다. (N이 몇 인지는 안써있음, 위의 다른 문단에서 MC 샘플링에서 N=5라고 하는데 같은 N은 아닐텐데?)
- 예시로 MLE-Greedy 모델로 생각해보자.
- machine-vs-random 분류 모델을(=evaluator) 학습할 때는, 학습데이터에서 실제 ground-truth가 positive 샘플이고 다른 dialogue history에 해당하는 responses들이 negative 샘플로 사용되여 학습을 한다. (5개 후보중 postive 샘플을 찾는 분류 문제)
- test할 때는 greedy모델이 생성한 것과 다른 history에 생성한 결과들 중 샘플링한 reponse들을 분류기로 구분짓는 다는 것이다.
- 즉 학습한 evaluator에 원하는 것은 이전 history들을 반영한 문장인지 아닌지를 판단해달라는 것이다.
- 따라서 학습된 evaluator가 완벽하다는 가정하에 점수가 높으면 history을 제대로 반영했다고 판단하는 것 같다.
- 그럼 이렇게 함으로써 얻을 수 있는 것은?
- 샘플링 방법이 Table 3에서 ADverSuc 점수가 높다.
- 그러나 이것이 sampling decoding이 제일 좋다고 말할 수가 없는데 machine-vs-random 점수가 낮기 때문이다.
- This means that sampled responses based on SEQ2SEQ models are not only hard for an evaluator to distinguish from real human responses, but also from randomly sampled responses.
- SEQ2SEQ 모델을 기반으로 샘플링된 response가 evaluator가 실제 사람의 response으로부터 구별짓기 어려울 뿐 아니라 랜덤 샘플된 response으로부터 구별짓기 어렵다.
- A similar, though much less extreme, effect is observed for MMI−p(t), which has an AdverSuc value slightly higher than Adver-Reinforce, but a significantly lower machine-vs-random score.
- By comparing different baselines, we find that MMI+p(t|s) is better than MLE-greedy, which is in turn better than MLE+BS.
- This result is in line with human-evaluation results from Li et al. (2016a).
5.2 Human Evaluation
6 Conclusion and Future Work
- 이 논문에서는, Turing test으로부터 직관을 활용하여, 우리는 adversarial training을 response generation에 사용을 제시한다.
- 우리는 강화학습 프레임워크에 있는 모델을 제시하고 사람이 생성한 대화인지 구분못하게 하는 생성된 response 시퀀스로부터 받은 시그널로부터 generator을 학습한다.
- 우리는 adversarial 학습 전략으로부터 여러 개의 metrics을 성능 향상시키는 것에 대해 관찰한다.
- adversarial 학습 모델은 이론적으로 NLP에서 다양한 생성에 대해 장점이 있다.
- 불행히도, 같은 학습 패러다임으로 번역에 적용한 이전의 실험들에서 우리는 성능 향상을 관찰할 수 없었다.
- 이는 adversarial training 전략이 생성 시퀀스와 ref target 시퀀스 분포들 사이에 큰 discrepancy가 있은 tasks일수록 더욱 큰 장점이라고 추측한다.
- 즉, adversarial 접근 방식은 targets 의 엔트로피가 높은 작업에 더 유리합니다.
- 이 관계를 더 탐구하는 것은 우리의 미래 작업의 초점입니다.
Reference
댓글
댓글 쓰기