Deep Reinforcement Learning for Dialogue Generation

2023. 7. 17. 03:21연구 프로젝트/논문 정리

3. Reinforcement Learning for Open-Domain Dialogue

*Optimizing method: Policy gradient method

1) Action

: Dialogue utterance to generate

 

2) State

: Previous two dialogue turns

-LSTM 모델 이용해 concatenation + 벡터 변환

 

3) Policy

: LSTM encoder-decoder의 파라미터

 

4) Reward

(1) Ease of Answering

*챗봇이 반환하는 질문에 대해 대답하기 쉬운지 측정

-"I don't know"와 같은 dull response를 반환할 확률을 이용해 계산

-S: list of dull responses consisting 8 turns

-NS: cardinality of S

-Ns: the number of tokens in the dull response s

-pseq2seq: likelihood output by Seq2Seq models (learned based on the MLE objective)

(+) target S의 길이로 scaling

 

(2) Information Flow

*지속적인 대화 및 반복되는 응답을 피하기 위해 각 agent가 매 턴마다 얼마만큼 새로운 정보(발화)를 반환하는가

-encoder for two consecutive turns

-hpi, hpi+1: pi, pi+1 연속된 두 대화 턴을 입력으로 한 인코더 값

 

(3) Semantic Coherence

*reward는 높게 책정되나 맥락에 맞지 않거나 문법에 맞지 않는 답변을 반환하는 상황을 막고 답변의 정확성 향상

-mutual information between action and previous turns

-pseq2sq(a | qi, pi): 이전 발화 [pi, qi]가 주어졌을 때 답변 a가 반환될 확률

-pbackwardseq2se2(qi | a): 답변 a가 주어졌을 때 qi가 반환될 backward 확률

 

(4) 최종 reward

1 + λ2 + λ3 = 1이 되도록 설정

(해당 논문에서는 0.25, 0.25, 0.5로 설정)

 

 

4. 위 논문에서 구현한 챗봇 학습 과정


해당 논문에서 공유하는 코드를 내 챗봇 구현할 때 참고 코드로 사용함

다만 2016년에 쓰인 논문이기 때문에 Seq2Seq2 모델을 사용했다는 점을 고려하여, 이 부분은 GPT2 모델로 바꾸는 등의 수정이 필요할 듯