With Little Power Comes Great Responsibility

요즘 등장하는 NLP model 페이퍼들은 주로 GLUE 벤치마크에 성능을 report 하면서 아주 미세한 성능 개선을 근거로 "우리 방법론은 효과적이었다!"를 주장하고 있다. 과연 이 결과가 실제로 그 모델이 더 나은 모델임을 주장할 수 있을만큼 근거가 탄탄할까?

이번에 소개하는 논문에서는 NLP research에서 모델의 성능 개선을 주장하는 실험 결과에 대해 그 결과가 "정말 유의미한 모델의 성능 개선을 보장할 수 있는가?"에 대해 분석한다. 더불어, 분석 결과를 통해 발견된 문제점을 개선할 수 있는 간단한 overview 까지 제안하고 있다.

Read More

Don't Stop Pretraining: Adapt Language Models to Domains and Tasks

다양한 출처의 데이터로 학습한 pretrained model이 NLP task에서 좋은 성능을 보여주고 있다. 하지만 아직 주어진 labeled data 의 크기나 target domain의 코퍼스와 사전학습 코퍼스의 유사도가 특정 task의 결과에 얼마나 영향을 미치는지에 대해 알려진 바가 없다. 또한 RoBERTa와 같은 LM이 정말 다양한 task에 generalize될만큼의 다양한 source로 학습되었는지도 확실하지 않다. 이 논문에서는 pretrained model을 풀고자 하는 특정 task의 domain에 tailor시켜서 추가로 학습시키면 더 좋은 성능을 보일 수 있을까? 라는 질문에 대한 답을 하고 있다.

Read More

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer (a.k.a. T5)

최근 NLP task에서 좋은 성능을 보이는 모델은 대량의 monolingual corpus를 통해 unsupervised pre-training을 한 LM을 task에 맞게 supervised fine-tuning을 하는 transfer learning에 기반하고 있다. 같은 transfer learning framework 안에서도 다양한 모델이 존재한다. 우리가 아는 모델만 하더라도 BERT, GPT, ELMO 등이 있고, GLUE benchmark에 대해서 테스트한 점수가 있다.

하지만 과연 점수가 더 높다고 더 좋은 모델이라고 할 수 있을까? 우리가 모델이라고 부르는 것 안에는 학습 방식 외에도 학습에 사용한 데이터셋, optimizer, 모델의 크기 등 많은 내용이 함축되어 있다. 그래서 각 모델의 아이디어 중 과연 **“어떤 특징이 좋은 모델 성능을 내는데에 도움이 되었을까?”**라고 묻는다면 쉽게 대답하기 어렵다.

이 논문에서 소개하는 Text-to-Text Transfer Transformer (T5) 는 그 답을 찾기 위해 고안한 framework이다.

Read More

How multilingual is Multilingual BERT?

“How multilingual is Multilingual BERT?”[1] 는 ACL 2019 에 억셉된 논문으로, Telmo Pires 가 Google AI Residency 프로그램 중에 작성하였다. Unbabel 에서 Autumatic Post-Editing (APE) 쪽 연구를 진행했었던 연구자였고, 그래서 multilingual BERT에 대해 분석한 논문을 쓴 것이 아닐까?

Read More
한국어 악성댓글 탐지를 위한 댓글 코퍼스 구축기

한국어 악성댓글 탐지를 위한 댓글 코퍼스 구축기

약 4-5개월동안 사이드로 진행했던 혐오 댓글 프로젝트[1]가 성공적으로 마무리되었다. 같은 문제의식을 가진 사람들과 시작해서 각자 하고싶었던 내용을 조율하고, 혐오 댓글이 무엇인가에 대해 깊게 고민해보는 과정들이 쉽진 않았지만 의미있는 활동이라는 생각이 들었다. 또한, 사이드로 진행된 프로젝트임에도 불구하고 원동력이 사라지지 않고 꾸준히 일이 진행되었던 것은 모두 구성원들의 상호보완적인 역량 덕분이 아니었을까 싶다.

사실 이 글을 쓰게 된 계기는 논문에는 쓰지 못했던 데이터에 대한 이야기를 하고 싶어서였다. 주어진 4장에 많은 내용을 담으려다보니 정작 작업하면서 고려했던 세부사항이나 어려웠던 점, 지나고나니 아쉬웠던 부분들에 대해 적진 못했기 때문이다. 아마 데이터셋을 활용하려고 생각하는 사람들에게도 좋은 팁이 되지 않을까?

Read More
Attention in NLP

Attention in NLP

You can’t cram the meaning of a whole %&!# sentence into a single &!#* vector!

Raymond Mooney

Attention은 single vector에 한 문장의 의미를 완벽하게 담을 수 없기 때문에 필요한 순간에, 필요한 정보를 사용하기 위한 방법이다. 기본적으로 query vector와 key vector의 조합으로 attention weight가 계산된다. 여기서 "조합"의 방법에는 크게 두가지가 있다. 하나는 Additive Attention으로 query vector와 key vector에 feed-forward network를 적용한 것이고, 다른 하나는 Dot-Product Attention으로 문자그대로 query vector와 key vector의 dot-product를 이용한 것이다. 이번 글에서는 각 Attention 방법들과 이들의 장단점을 소개하려고 한다.

Read More
Positional Encoding in NLP

Positional Encoding in NLP

Positional encoding 혹은 position encoding은 모델 구조에서 자연스럽게 sequential information을 얻지 못하는 경우에 대해 정보를 강제하는 방식이다. 보통 sequential data를 Recurrent Neural Network (RNN) 외의 다른 모델로 다루고 싶을 때 많이 사용된다. 이번 글에서는 Convolutional Neural Network (CNN), End-to-End Memory Network (MemN2N), Transformer에서 sentence embedding을 위해 사용된 positional encoding에 대해 소개하려고 한다.

Read More
General Language Understanding Evaluation (GLUE) benchmark

General Language Understanding Evaluation (GLUE) benchmark

General Language Understanding Evaluation benchmark, 줄여서 GLUE benchmark 라고 불리는 이 데이터셋은 NLP 분야에서 Language Model 검증을 위해 사용된다. ICLR 2019와 BlackboxNLP workshop 2018에 모두 publish 되었으며, 전자는 설명이 상세하고 후자는 요약되어 있다. 이 글은 가장 최근(2019.2.22)에 업데이트된 arXiv에 있는 논문을 기반으로 작성되었다.

Read More

Machine Learning Yearning 요약: Ch.13~19

목적에 맞는 Dev와 Test set을 구축했다면, 이제 모델이 얼마나 잘하고 있는지, 못한다면 그 이유는 무엇인지에 대한 분석을 할 수 있다. 그래서 이번에 다룰 주제는 Basic Error Analysis이다.

Ch.13: Build your first system quickly, then iterate

Ch.14: Error analysis: Look at dev set examples to evaluate ideas

Ch.15: Evaluating multiple ideas in parallel during error analysis

Ch.16: Cleaning up mislabeled dev and test set examples

Ch.17: If you have a large dev set, split it into two subsets, only one of which you look at

Ch.18: How big should the Eyeball and Blackbox dev sets be?

Ch.19: Takeaways: Basic error analysis

Read More

Machine Learning Yearning 요약: Ch.5~12

이번에 요약할 Chapter 5~12 의 소제목은 Setting up development and test sets 이고, 아래와 같은 제목으로 구성되어 있다.

Ch.5: Your development and test sets

Ch.6: Your dev and test sets should come from the same distribution

Ch.7: How large do the dev/test sets need to be?

Ch.8: Establish a sinlge-number evaluation metric for your team to optimize

Ch.9: Optimizing and satisficing metrics

Ch.10: Having a dev set and metric speeds up iterations

Ch.11: When to change dev/test sets and metrics

Ch.12: Takeaways: Setting up development and test sets

Read More