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

빛의 과거

새해를 맞이하자마자 작년의 목표와 기대에는 없던 일이 일어났다. 오랜만에 뵌 분께 은희경 작가님의 "빛의 과거"라는 책을 선물받은 것이다. 그 동안 읽었던 텍스트라고는 오직 논문이었기에 선물받자마자 들었던 생각은 "아, 내가 과연 책을 읽을 수 있을까?" 였다.

그 와중에 작가님의 성함이 눈에 띄었다. 은희경 작가님... 왜 이렇게 익숙한 이름인가 했더니 개인적으로 존경하고 흠모하는 언니로부터 추천받았던 작가님이었다는 것이 떠올랐다. 단지 이 작은 이유만으로 오랜만에 접하는 소설의 벽이 낮아지는 느낌이었다.

이 책을 읽을 운명이었던 것인지, 마침 다음 날은 주말이었고 미용실에 오랜만에 가기 위해 예약을 잡아두었다. 자리에 앉자마자 책을 펼쳐들었다. 그리고 단숨에 그 소설의 세계에 몰입하게 되었다.

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

수학으로 이해하는 양자컴퓨터의 기초

최근에 있었던 구글의 양자 우월성 (Quantum Supremacy) 달성은 전세계적으로 큰 화제였다. 물 들어올 때 노 저으라고 하지 않았던가, 이 때가 아니면 또 언제 양자컴퓨터에 대해 공부할까 싶어서 텍스트와 동영상을 넘나들며 관련 지식을 습득해보았다.

Read More

Naver News Comment Analysis (3)

TL;DR

어뷰저는 존재한다. 하지만 그들을 완전히 통제하고 제거하는 것은 불가능하다. 그렇다면 어뷰저를 막는 것에 집중하지 말고, 어뷰징은 내버려두되 그 효과를 랭킹 시스템을 바꾸어 완화시키는 방법은 어떨까?

네이버 뉴스 플랫폼에서는 순공감과 공감비율을 통해 공감이 많은 의견을 상위에 랭크시키고 있다. 각각의 알고리즘이 가진 결함도 문제지만, 과연 정치적 의견의 장에서 공감이 많은 의견만이 우리가 듣고 보아야 할 의견일까? 특히나 어뷰징이 있는 상황에서 공감수가 많은 의견은 더욱 획일화된 주장을 펼칠 수 밖에 없으며 대중은 편향된 의견만 접하게 되어 무의식적으로 다양한 사고에 대한 가능성을 차단받는다.

그래서 이번 글에서는 다양한 의견이 상위에 랭크될 수 있는 sorting algorithm들을 제안한다. reddit과 yelp 등에서 사용하고 있는 알고리즘을 비롯하여, 논쟁적인 댓글이 상위에 위치할 수 있는 알고리즘, 그리고 비공감이 많은 댓글에 더 높은 점수를 부여하는 알고리즘 3가지를 소개한다.

Read More
노르웨이에서의 나홀로 여행: 피오르드, 브라운 치즈

노르웨이에서의 나홀로 여행: 피오르드, 브라운 치즈

북유럽은 오로라를 보고 싶어서 겨울에 갈 곳으로 내심 정해두고 있었는데, 그럼에도 불구하고 한 여름에 노르웨이를 행선지로 정했던 까닭은 피오르드(Fjord) 였다. 웅장한 자연을 보길 좋아하는 편인데다가 (오로라만 봐도 알 수 있다) 덥고 습한 여름에서, 그리고 틀에 박힌듯한 답답한 삶에서 잠시 벗어나고 싶었다.

Read More

Naver News Comment Analysis (2)

NOTICE: 앞으로 소개될 내용은 NAVER와 무관하며, 오히려 NAVER 뉴스가 정치적인 편향성을 가지고 있지 않은 중립적인 플랫폼이라고 생각하기 때문에 분석을 하게 되었음을 알립니다.

TL;DR

2015년 12월부터 2018년 5월까지의 데이터로 소위 말하는 어뷰저의 존재를 확인해보았다. 여기서 말하는 어뷰저의 criteria는 다음과 같다.

  1. 타인의 생각에 영향을 미칠 수 있도록 작성한 댓글이 top 10 내에 한 번 이상 들었어야 한다. 실제 어뷰저였어도 top 댓글이 아니어서 타인에게 영향을 미치지 못했다면 어뷰저라고 불릴 자격(?)이 없다.
  2. 발생하기 어려운 패턴을 보여야 한다.

이 기준에 따라 분석한 결과, 총 386번 댓글을 남겼고 그 중에서 369번(95.6%) top 10 내에 들었던 유저와 총 289번 댓글을 남기고 269번(93.1%) top 10 내에 들었던 유저를 의심해보게 되었다.

Read More