Transformers for Learning Dialogue Review

이번 글에서는 “Transformers to Learn Hierarchical Contexts in Multiparty Dialogue for Span-based Question Answering”을 리뷰합니다. Transformer 기반의 컨텍스트를 반영한 임베딩을 만드는 접근법들(BERT, RoBERTa, XLNet 등)은 QA의 SOTA를 갱신해왔습니다. 하지만 일반적인 도메인에서 학습된 모델들로 대화를 잘 표현하기는 어렵고, 주어진 대화에 대한 QA 테스크에서 저조한 성능을 보입니다. 이 원인으로 두 가지를 꼽을 수 있습니다. 1) 대화들은 구어체인 반면에 대부분의 모델들은 격식이 갖춰진 문어체로 학습되었습니다. 2) 한 명의 저자가 관련이 있는 토픽에 관해쓴 wiki나 뉴스 기사와 같은 글과 달리 대화는 다른 주제와 각자의 방식을 가진 여려명의 화자들의 발화로 구성됩니다. 따라서 단순히 합치는 방법(concat)을 통해 보다는 내부적으로 서로 연결되어있는 방식의 표현법이 필요합니다. 본 논문에서는 이를 해결하기 위해 멀티파티(여러 명의 화자) 대화에서 “컨텍스트를 더 잘 이해할 수 있는” 토큰과 발화의 계층적 임베딩을 학습하는 Transformer를 제안합니다.

8 min read

XLNet Review

지난 포스트에서 “Transformer-XL”에 대한 리뷰를 진행했었는데요. Language Modeling 테스크에서 장기 의존성 능력을 높이기 위해, Transformer의 제한된 컨텍스트 길이를 recurrence한 구조로 늘려주는 방법이였습니다. 이번 포스트에서는 해당 논문의 후속으로 제안된 “XLNet: Generalized Autoregressive Pretraining for Language Understanding”을 리뷰하려고 합니다. 많은 양의 코퍼스로 Language Modeling에 대한 Pre-training을 진행하고 특정 테스크로 Fine-tuning을 진행하는 방법은 BERT 이후로 NLP 문제를 풀기위한 정석과 같은 방법이 되었습니다. XLNet에서는 BERT와 같이 Masked Language Modeling을 objective로 하는 Autoencoder(AE) 방식과 GPT와 같이 Auto-Regressive(AR) Language Modeling을 objective로 하는 방식의 장점을 유지하면서 단점을 보완하는 새로운 학습 방식을 제안합니다. 또한 Transformer-XL의 recurrence 알고리즘도 함께 적용하여 BERT를 능가하는 성능을 달성합니다. 약 9개월 전에 XLNet 리뷰를 팀블로그에 작성 했는데, 최근에 논문이 업데이트 되어 다시 한 번 공부하면서 글을 작성합니다.

16 min read

Einsum 사용하기

Torch나 Tensorflow로 짜여진 코드들을 보다보면 einsum() 연산이 포함되어 있는 경우를 볼 수 있습니다. 아주 가끔 보이는 방법이라 보일때마다 해석하는 법을 찾아보고는 했는데, 이번에 살펴보았던 Transformer-XL, XL-Net 구현체(huggingface) 에서는 einsum연산이 자주 등장해서 사용법을 처음부터 정리해보려고 합니다. 이 연산에 대해 잘 설명되어있는 블로그글이 있어, 해당 내용을 많이 참조했습니다.

12 min read

Transformer-XL Review

이번 글에서는 ACL 2019에서 발표된 “Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context”를 리뷰하려고 합니다. 본 논문은 기존의 Transformer 구조를 이용한 고정된 길이(Fixed-Length) Language Model의 한계점을 지적하고 더 긴 의존성을 이용할 수 있는 새로운 방법을 제시합니다. 또한 다양한 NLU 테스크들에서 SOTA성능을 보이고 있는 XLNet과 동일한 저자들이 작성하였고, Transformer-XL의 많은 부분을 XLNet에서 이용하고 있습니다.

13 min read

Sounding Board Review

이전 글에서 Alexa Prize에 대해 간단하게 살펴봤는데, 이 글에서는 Socialbot challenge 2017의 우승작 Sounding Board – University of Washington’s Alexa Prize Submission을 리뷰해보려고 합니다. 현재 많은 챗봇들은 대화를 통해 특정 도메인의 문제(영화 추천/예매 봇 등)를 해결하기 위한 task-oriented 문제를 풀고 있습니다. 이 경우 대화의 범위(주제)가 좁혀짐으로써 비교적 잘 정의된 방법론들이 존재합니다. 이에 비해 open-domain 대화 시스템이란 “도메인이 열려있는”, 즉 주제에 제한이 없는 대화를 다루는 시스템이기 때문에 해당 접근법들로 풀기에는 여러 한계를 갖고 있습니다. Alexa prize는 소셜봇이 유저와 다양한 주제에 대해 대화를 진행하는 첼린지 이기 때문에 어느 정도 open-domain의 성격을 갖고 있습니다. 하지만 주제의 큰 영역들이 사전에 정해져 있고, 기존의 Alexa 시스템 자체가 특정 기능을 수행하는 목적을 갖고 있기 때문에, 완전히 open-domain 환경이라고는 볼 수 없습니다. 이에 따라 Sounding Board 팀은 task-oriented 문제로 해결하되 컨텐츠(정보)와 유저의 흥미를 집중적으로 고려하여 대답을 생성하는 접근법을 시도했습니다. 크게 Sounding Board 라는 소셜봇을 만들 때 고려된 디자인 철학과, 전체적인 구조와 상세 모듈들, 저자들의 분석에 대해 살펴봅니다.

19 min read

Alexa Prize 둘러보기

“사람과 기계가 상호작용하는 방식은 변곡점에 있고, 대화형 인공지능은 변화의 중심에 있다.” Alexa Prize Socialbot Grand Challenge는 매년 Amazon에서 대학(원)생을 대상으로 개최하는 socialbot을 만드는 챌린지입니다. 2017년부터 매년 진행되고 있으며, 현재 2019년 챌린지가 진행되고 있습니다. 이번 포스트에서는 대회가 어떻게 진행되고, 어떤 목표를 달성하고, 평가하는지 살펴보겠습니다.

4 min read

글또 4기 다짐글

“글 쓰는 또라이가 세상을 바꾼다!” 모임 이름이 너무나도 강렬해 자연스럽게 지원했고, 글또 4기에 참여하게 되었습니다. 평소에 글을 많이 써보진 않았지만, 많은 사람들과 협업을 진행하면서 글을 잘 쓰는 것에 관심이 생겼습니다. 이번 기회를 통해 제가 한층 더 성장할 수 있었으면 좋겠습니다. :)

2 min read

DialogueRNN Review

“Emotion Recognition in Conversation(ERC)”는 대화 내 발화들의 감정을 인식하는 문제입니다. 이 문제는 대화의 히스토리 혹은 쓰레드 형태의 소셜 미디어(유투브, 트위터, 페이스북 등)에서 의견 추출(Opinion mining) 등에서 응용가능성으로 인해, 최근에 많이 주목받고 있습니다. 본 포스트에서는 “화자”, “컨텍스트 발화”, “이전 발화의 감정”의 3가지 요소를 집중적으로 모델링하여 ERC문제를 풀고자 했던 “DialogueRNN: An Attentive RNN for Emotion Detection in Conversations”를 리뷰합니다.

9 min read