강화학습을 이용해 챗봇을 구현할 시 고려해야 할 점 (2023.01.25일자)

2023. 7. 5. 20:08연구 프로젝트/강화학습 챗봇

※챗봇 용도: 부정적인 감정을 가진 사용자와의 대화를 통해, 사용자의 부정적인 감정을 해소해주는 것

 

1. 상태 공간을 어떻게 정의할 것인가

*논문 CHAI에서는 상태 공간에 (발화, 물품 설명, 가격, 행동 타입) 포함

*위 챗봇 구현의 목적: 사용자의 우울감을 해소하는 것(감정: 부정 -> 긍정 변화)

-상태 공간에 발화 감성도 추가

 

 

2. 보상을 어떻게 정의할 것인가

*보상을 수치적으로 나타낼 수 있는 정확한 기준이 필요

0123
"우울 기분", "체중 변화", "피로 및 활력 상실", "무가치함 및 죄책감"

(1) 각 우울함 영역마다의 문장 유사도

*각 우울증 영역마다 일반적으로 구별되는 특징 존재: 특정 단어를 자주 사용하거나 특정 문맥의 문장 사용

=> 해당 영역 내에서 일반적으로 쉽게 볼 수 있는 위와 같은 문장들과 사용자의 발화 간 문장 유사도를 계산함으로써, 사용자가 부정적인 감정 중에서도 어떤 세부적인 감정을 느끼는지 판단 가능할 것이라 추측

-> 문장 유사도가 높을수록 사용자의 발화가 부정적이라고 추측 가능 => 패널티 부여

 

(2) 사용자의 발화 길이

*우울감이 심할수록 발화 길이가 짧아지는 반면, 우울감이 해소될수록 발화 길이가 통상적으로 길어질 수 있음

-발화 길이가 길어질수록 우울감이 해소되고 있다고 판단 가능

=> 발화 길이(글자 수)가 길어지면 보상 부여

 

(3) 사용자의 발화에 대한 감성 점수

-턴마다 사용자의 감정 점수 계산

-감정 점수를 계산하는 일반적인 방법: 한국어 감성 사전을 이용해 토큰 별 감정 점수를 구하고 이를 모두 합함

-> 감정 점수가 높을수록 보상 부여

 

※보상 기준 지표를 동등하게 더할 것이 아니라 중요도를 따져서 가중합으로 전체 보상 계산

(ex) 중요도: 문장 유사도 > 감정 점수 > 발화 길이

-> 문장 유사도의 가중치를 크게, 발화 길이의 가중치를 가장 작게 해 가중합 계산

 

 

3. 무엇을 정확한 목표로 삼을 것인가

*사용자와 챗봇 간의 대화를 턴마다 잘라, 각 턴 내 사용자의 발화에 대한 감정 지수나 문맥 등을 파악

-이런 요소를 통해 각 턴마다 보상을 구함

-> 높은 보상 = 더 긍정적인 감정이 되도록 구현

 

 

4. 오프라인 강화학습 적용 시 어떤 데이터셋을 사용할 것인가

*멀티턴 대화 데이터셋 이용

 


2023년 1월 25일에 작성해두었던 강화학습 챗봇 보상 기준...