Continual Learning Dialogue System

HyojinKo·2022년 6월 29일
0

기존의 머신러닝은 격리된(isolated) 단일 작업 학습의 방식이다. 하지만 이 방법은 적용시에 새롭거나 예상치 못한 것이 없고, 고립된 학습이다보니 지식 축적이나 이전이 불가능하다. 또한 배포 후에 모델이 수정되지 않아 학습이나 적응을 하지 못한다. 따라서 모델을 배포한 이후 학습을 수행하거나 모델 적용 중에 학습을 수행하여 이러한 문제들을 해결할 수 있다.
특히 챗봇의 경우 인간과 직접 상호작용을 하기 때문에 채팅 중에 새로운 지식과 언어 표현들을 학습하여야한다. 따라서 챗봇은 엔지니어의 오프라인 학습에만 의존해서는 안된다.

평생/연속 학습이란?

순서가 있는 작업 T1,T2,...,TNT_1, T_2,...,T_N을 점진적으로 학습하여 새로운 작업인 TN+1T_{N+1}을 배우는 것이 목표이다. 하지만 결과에 치명적일 정도의 망각이 없어야하며, 지식 이전을 활용한다. 이때 각 작업 TN+1T_{N+1}과 학습 데이터 DN+1D_{N+1}은 사용자로부터 부여 받았다고 가정한다.

Continual learning with learning after deployment

[Liu. Learning on the Job:Online Lifelog and Continual Learning.AAAI-2020]

위 그림은 배포 후 Continual learning을 통한 학습을 하는 과정을 그림으로 나타낸 것이다. 그림에서의 주황색 선으로 표시되어있다. 여기서 확인할 수 있듯이, 배포 후 사용자, 환경과 상호작용을 어플리케이션에서 수행하고 여기서 얻어진 정보를 task manager, 학습데이터, KB에 전달하여 continual learning을 진행한다.

continual learning엔 몇가지 특징이 있다.

  1. 망각이 없는 지속적인 incremental learning
  2. KB 지식 축적(Long-term memory)
  3. 작업 전반에 걸친 지식 이전/채택
  4. 배포 후 학습(축적된 지식과 인간/환경과의 상호작용을 사용한 자가감독)
    (1) 학습할 새로운 작업 파악(tasks not given)
    (2) 실제 학습 데이터 습득(training data not given)
    (3) 점진적인 작업 학습(one-shot or few-shot)
    위 과정은 인간의 지식의 70%가 on-the-job 학습을 통해 얻어진 것이라 추정한다.

대화 중에 새로운 지식을 학습함으로써,
1. 기초 언어 표현 학습
2. 사실 지식 학습
3. 대화 능력 학습
을 할 수 있다는 장점이 있다.

Continual learning to ground new language expression

Siri, Alexa와 같은 NLI(Natural Language Interfaces) assistant들을 Task-oriented chatbots이라한다. 이들은 사용자가 기본 응용 프로그램에서 실행할 일부 작업에 mapping할 NL(Natural Language)명령을 실행할 수 있다.

기존엔 이러한 챗봇들을 end-to-end 딥러닝 모델을 학습하거나 semantic parsing -> logical forms -> 수행할수있는 동작으로 번역하는 방식으로 구축하였다. 하지만 NL2NL(Natrural Language to Natural Language) 매칭 방식에 기반한 CML(Command Matching and Learning)을 통해 API 기반 어플리케이션에 자동적으로 NLI를 생성할 수 있다.

개발자는 시드명령 집합 SiS_i만 작성하여 새로운 NLI를 생성하거나 기존 NLI에 새로운 기술을 추가할 수 있다. CML이 사용자로부터 새로운 시드 명령 집합을 지속적으로 학습하게 할 수 있는 대화형 학습 매커니즘이다.

CML은 다음의 3가지 요소들로 구성되어있다.

  1. SC(Seed Command) specification
    개발자가 그들 API 각각에 대한 SC 집합을 지정할 수 있도록 한다.
    단어 단위로 NL 명령어 관리
    ex) AddBlock(X1), Remove(X1), Move(X1, X2)

  2. Command grounding module(CGM)
    명령 C를 적절한 SC에 접지
    (1) Rephraser, Tagger
    : 사용자 명령어 C가 주어졌을때, R은 C를 다시 표현하고, 다시 표현된 C의 각 단어나 구에
    argument가 아닌 O나 action SC의 가능한 argument 타입 중 하나로 태그를 지정한다
    (2) SC Matcher(M)
    : 다시 표현되고 태그가 지정된 명령어 C와 SC의 집합 T가 주어지면 Matcher M은 T의 각 요소
    t에 대해 얼마나 일치하는지에 대한 점수 f(t, C)를 계산하고 최상위 점수를 반환한다.
    이 작업은 비지도 매칭 모델을 사용한다.


    ["Working of CGM on a user command for Blocks-World", NeuCAIR @ ICLR-2021, May7, 2021]

  1. Interactive learner
    최종 사용자와 상호작용하여 API의 새로운 SC 및 paraphrases 학습
    만약 CML이 사용자의 명령어 C를 이해하지 못하면 CML은 상호 대화를 통해 사용자의 명령어 C로부터
    새로운 SC를 학습한다.
    이것은 또한 시간이 지남에따라 repheaser R을 개선하기 위해 C에서 새로운 paraphrased
    argument value를 학습한다.

Continual learning of factual knowledge

: CILK: Continuous and Interactive Learning of Knowledge for dialogue systems

대화 중에 새로운 지식을 지속적으로 배우고 추론할 수 있다.
대화 중 학습은

  • 사용자 발화에서 직접적으로 지식 추출
  • 사용자에게 질문하고 올바른 답변을 기대
  • agent가 사용자가 원하는 답변을 하지 못할때, 사용자에게 몇가지 supporting facts를 묻고 답 유추
    등의 방법을 통해 진행된다.

지식 학습은

  • 습득한 사실 저장(Tripl의 형식으로)
  • 사실 습득을 위한 사용자와 상호 작용
  • 사용자의 쿼리에 답변하여 새로운 지식 추론
    의 세가지 요소로 구성된다.
    이때 추정(Assumption)은 핵심 양방향 지식 학습 framework 개발에 집중한다. 또한 사용자가 좋은 의도를 가지고 있고, 모든 질문에 대한 답을 할 수 는 없다 가정하고 추정을 진행한다.

사용자가 Wh-question을 질문할때 CILK는 미궁으로 남아있는 쿼리에 답변이나 거절을 하고, 답변하는데 도움이 되는 몇가지 지식들을 학습하거나 습득한다.

쿼리는 KB에 알려진 Closed-world query와 KB에 알려지지 않은 Open-world query로 구분된다.

profile
재밌나?

0개의 댓글