제가 오늘 소개할 논문은 learning knowledge bases with parameters for task-oriented dialogue system으로 emnlp2020에 소개된 논문입니다.
Introduction
대화 시스템을 구성하는 방식은 각 대화 모델을 모듈 처럼 결합하여 하나의 파이프라인을 형성하여 시스템을 구성하는 파이프라인 방식과 엔드 투 엔드 방식으로 인풋을 넣으면 한번에 생성까지 이어지는 종단형 방식이 있습니다.
각각의 문제점을 짚어보면 파이프라인 같은 경우는 반드시 적절한 DST를 예측하여 KB(DB)에 쿼리를 날려야 합니다. 또한 이를 기반으로 적절한 템플릿을 활용해 value를 채우는 형식으로 대화를 생성한다. 굉장히 복잡하고, multiple step이 필요합니다.(KB와의 직접적인 소통 과정을 포함)
END-TO-END 방식의 모델은 KB와 Dialogue history를 동시에 input으로 받고 이에 따라 적절한 답변을 생성하는 방식을 취하기도 합니다. (Gold KB, API+KB) 이러한 방식은 DST 라벨이 적게 달려도 되지만, 큰 DB적용에는 힘들다(MWOZ는 22K의 엔티티를 포함하고 있음) 그리고 평상적으로 종단형방식이 파이프라인 형식보다는 성능이 안 좋다는 문제가 있습니다.
위 두가지 문제를 해결하기 위해 모델 파라미터 자체에 모든 상식이나 지식을 담으려는 시도가 있었습니다. 대표적인 것이 T5입니다. 하지만 목적지향형 대화 시스템에서의 데이터는 이런 상식이나 일반 지식하고는 조금 다른 성격을 가집니다. KB (지식 베이스 즉 DB)의 내장된 엔티티들은 위키피디아나 뉴스 기사에는 등장하지 않으며(예를 들어, hotel address, postcode) 또한 동적인 변화를 계속해서 반영할 수 없다는 문제점을 가집니다. (예를 들어, weather info)
그래서 본 논문은 지식을 모델 파라미터에 내장할 수 있는 방식(Knowledge Embedded approach)을 제안합니다.
방식은 가장 먼저 “User Goal Query”를 정의하고 추출된 값을 활용하여 ke 대화를 생성합니다. 그리고 종단형 모델 파라미터에 knowledge가 임베드 될 수 있도록합니다. 총 다섯가지 데이터셋에 대하여 본 작업을 진행하였다고 합니다.
Metod
방식을 다시 살펴보자면 유저가 원하는 목적에 대하여 sql 형식으로 쿼리문이 만들어지고 이것이 지식 db로 쿼리가 들어가 해당하는 값들에 대한 테이블이 완성되고 각각의 컬럼 이름에 맞는 템플릿이 만들어지게 됩니다. 그리고 이에 해당 하는 각각의 값들이 새로운 대화 묶음 으로 만들어 지게 되는 것 입니다. 이 과정을 통해 모델 파라미터가 이 자체를 학습하게 되고 실제 테스트에서 비슷한 대화가 들어왔을 때 적절한 값을 생성해 낼 수 있는 것입니다.
예를 들어서 설명하면 from 레스토랑 도메인에서 slect 타입과 이름 그리고 이것에 따라 각 음식 종류와 레스토랑 이름이 추출되고 거기에 해당하는 질문, 대답 템플릿이 생성되어 각각의 값들이 들어가게 됩니다. 템플릿의 빈칸에 이탈리안...차이니즈 등등! 그리고 답변도 맞추어 각각 들어가게 됩니다.
- Notation
노테이션 입니다. 데이터셋은 각각의 유저 시스템 발화로 구성된 대화셋의 묶음을 의미 합니다. 여기서 KB(지식베이스)는 두 가지 종류로 구성됩니다. 하나는 테이블 형식, 하나는 그래프형식입니다. 먼저 테이블 형식은 오른쪽에 보이시는 것처럼 컬럼과 거기에 해당하는 값들의 나열된 형태로 되어있습니다.
그래프 형식의 kb는 노드 각각의 자체 값을 나타내는 매트릭스와 관계성을 포함하고 있는 인접 매트릭스의 구조로 나타내 집니다.
또한 네트워크 구조로 n개의 홉을 가집니다.
- User Goal Query
유저 골 쿼리를 알아보겠습니다.
하나의 대화 셋 D는 C와 R로 구성된 G즉 Goal로 볼 수 있습니다.
여기서의 c는 유저가 필요한 정보를 지정하는 제약조건 집합으로 예를 들어 다음과 같습니다.
R은 유저의 욕망에 대한 실질적인 조건으로 이름과 주소 폰 넘버 등이 있겠습니다. 즉 C는 유저가 지정하는 조건들 그리고 R은 시스템이 조건에 맞게 찾아줘야하는 값이라고 할 수 있겠습니다. C는 세부적인 속성에 대한 값이기 때문에 유저 골과 대화가 원투원으로 연결된다. 본 논문에서는 C의 VALUE 값이 바뀌면 이와 동등한 대화가 생성되데, 다른 지식을 활용하는 대화를 생성하는 것을 목적으로 한다고 할 수 있습니다.
그래서 여기는 쿼리 언어를 활용하여 특정 대화와 일치하는 모든 값들을 설명하는 방식을 “USER Goal Query”라고 정의하고 있습니다. 그리고 테이블 형식의 kb에서는 sql을 활용하여, 그래프 형식의 kb에서는 cypher 방식을 활용하여 쿼리를 수행합니다.
테이블 형식의 kb에서는 여러분들도 잘 아시는 sql형식을 쿼리를 수행합니다. 즉 K도메인에서 C의 조건을 충족하는 R 들을 뽑아낸다! 라고 생각하시면 됩니다.
그래프 형식 KB를 살펴보도록 하겠습니다. 그래프 형식에서는 인접행렬에서 C와 매치되는 관계된 노드를 뽑아내고 결과적으로 도출된 노드 값들을 모두 반환 합니다. 예를 들어 첫 User가 갱스 뉴욕 과 비슷한 영화를 추천해달라고 했을 때 시스템은 퀀텀 오브 솔레이스를 추천했는데 이는 같은 배우가 나오기 때문이라고 합니다. 매치 방식을 살펴 보면 Tim Pigott-smith 노드가 갱스 뉴욕과 퀀텀 오브 솔레이스가 각각 엑터스 인 엣지로 관계가 표현되어 있습니다.
그리고 이렇게 유저골쿼리가 완성되었을 때 KE 대화 셋을 새롭게 생성하는 과정이 진행됩니다.두가지 fuction이 적용 됩니다. 템플릿을 생성하는 ke-delex을 통해 유저 골 쿼리와 관련된 속성을 채울 수 있는 템플릿을 생성합니다.
이떄 각 엔티티별로 어떠한 속성이 필요한지에 대해 맵핑되어있는 B가 함께 사용됩니다. 이러한 과정을 통해 템플릿이 생성되고 쿼리를 통해 나온 테이블을 활용하여 KE-RELEX는 새로운 KE 대화들을 생성하게 됩니다. 따라서 생성된 새로운 대화 ke 대화 셋은 트레이닝 셋에 합쳐져 학습을 진행합니다.
아까 예시로 살펴보면 다음과 같습니다.
다음은 캐쥬얼 랭리지 모델에 대한 내역입니다. 생성모델은 트렌스포머 기반의 랭기지 모델을 활용하여 Dialogue history를 접두사 처럼 사용하고 오토 리그레시브 방식으로 생성을 함으로써 한단어씩 차례로 생성합니다. 확률의 체인룰을 활용하여 언어모델 분포를 펙토라이즈 하게 되는데 이때 학습과정에서 네가티브 로그 라이클리 후드를 최소하는 방식을 학습이 진행됩니다.
실험은 gpt2로 총 5가지 데이터셋에 대하여 오토매틱 평가지표와 휴먼 Evaluation을 포함하여 진행되었습니다. 결과를 살펴보기 전 각 데이터셋 구성을 살펴 보면 기본 대화 셋과 seq 길이는 그렇고 새롭게 생성된 KE 대화셋은 템플릿과 대화 수로 나뉘는데 mwoz를 살펴보면 527개의 템플릿이 생성되었고 58440개의 대화가 생성되었음을 알 수 있습니다.
결과는 멀티오즈만 살펴보도록 하겠습니다. 기본적으로 멀티오즈는 5가지 도메인으로 구성된 데이터셋 이지만 본 연구에서는 싱글도메인으로 구성된 데이터셋만 활용한 mwoz데이터셋을 활용하였습니다. ke-delex는 멀티오즈 데이터셋에서는 텍시를 제외하고 트레인, 관광지, 호텔, 식당 도메인에 한하여 다음과 같이 템플릿을 생성하였고, 릴렉스 모델은 이를 기반으로 다음과 같이 ke 대화를 생성하였습니다.
비교를 위한 베이스라인 모델로는 dff 와 damd를 제시하였고, 가능한 코드가 없어서 각각에 대해서는 점수가 없음/ dff 같은 경우는 대화의 아이디 값이 없어 인폼과 싹세스 점수가 없으나 저자가 세가지 도메인에 대해서는 점수를 제공하고 있기 때문에 (골드 케이비)에 대하여 따라서 그것을 활용하였다고 하고 있습니다.
따라서 결과적으로 GPT는 KE 대화셋과 학습 시켰을 때 기존 모듈형 DAMD 모델 만큼 좋은 성능을 보였다. BLEU 와 F1-Score를 함께 비교를 해봤을 떄 DFF 보다 좋은 정확도를 보였다.는 것입니다
위 그림을 기준으로 세부적인 분석을 해보겠습니다. 템플릿 수가 늘어날 수록 bleu와 f1-score가 향상됨을 보였습니다. 그리고 두가지 제한점을 가지고 있었는데 첫째로는 ke 대화를 생성할때 아래 보시는 예시처럼 약간의 노이즈를 포함할 수도 있다는 것 입니다. 많지는 않았지만 일부 이런 사례가 있다고 합니다.
그리고 템플릿이 많아지면서 성능은 좋아졌으나 파인터닝 시간이 길어졌는데 이는 추후에 메타러닝 방식을 적용해 보겠다 라고 이야기 하고 잇습니다.
결론적으로 아직 각각의 싱글도메인에 대해서 적용해 본 사례지만 추후 멀티 도메인으로 확장하려 하고 있으며 kb 자체를 모델 파라미터에 임베딩 시키는 방식을 제안하였습니다. 그리고 다양한 kb사이즈에 대하여 실험을 진행했을 때도 잘 작동함을 보였습니다. 그리고 기존 파이프 모델에 비해 성능이 떨어지던 엔드투엔드를 파이프라인 만큼 잘 작동한다! 라고 이야기 하고 있습니다.
원본 논문 링크 :
'AI Researcher가 될끄야! > 대화 시스템' 카테고리의 다른 글
[논문 리뷰] PLATO-2: Towards Building an Open-Domain Chatbot viaCurriculum Learning (0) | 2022.03.25 |
---|---|
[논문 리뷰] TOD-DA: Towards Boosting the Robustness of Task-oriented Dialogue Modeling on Spoken Conversations (0) | 2022.02.24 |
[논문 리뷰]심층 신경망 기반 대화 처리 기술 동향 (0) | 2022.02.16 |
Convlab2 - 대화 시스템 오픈 프레임워크를 소개합니다! (0) | 2022.02.11 |
댓글