이상한 연구실

[A Short Survey Of NAVER AI NLP] 초기의 네이버 클로바 NLP 논문 읽기! (1) 2017년

Hanwool Albert 2022. 6. 3. 21:08

안녕하세요 알버트의 이상한 연구소 블로그를 운영하는 이한울(알버트)이라고 합니다.

 

http://www.aitimes.com/news/articleView.html?idxno=143912

네이버는 2022년 현재 이견없이 대한민국 최고이자 아시아 탑클래스의 AI 연구실적을 보여주고 있습니다.

 

CVPR, ICLR, EMNLP뿐만 아니라 NAACL에서도 많은 논문들이 채택되고 있죠!

 

NLP를 공부하는 저도 항상 네이버의 뛰어난 연구성과를 보며 '나는 언제쯤 저런 연구들을 해볼 수 있을까?' 하는 생각들을 품었습니다.

 

그러던 도중, '과연 네이버의 AI는 어떻게 성장해왔을까?' 라는 의문이 들어

 

과거의 네이버 AI 논문들을 한번 다 읽어볼까? 라는 무식한 방법을 생각해냈습니다.

 

그리고 읽으며 포스트를 쓰기 시작했습니다.

 

[A Short Survey Of NAVER AI NLP]

 

네이버 클로바에서 출판한 논문들을 시간순서대로 읽어보고 간단한 요약과 소감을 적어보고자 합니다.

 

네이버 클로바가 어떤 NLP 연구를 해왔는지, 어떻게 NLP 연구가 성장해왔는지 잘 파악할 수 있도록 쉽게 작성해보겠습니다.

 

참고로 전 비전공자에 부트캠프와 인터넷 강의를 전전하며 학습해왔기 때문에 전문성이 많이 떨어집니다.

 

혹시 틀린 내용이나 잘못 해석한 부분이 있으면 댓글로 남겨주세요! 반영해서 수정하도록 하겠습니다.

 


01. 논문을 찾아서

 

네이버 클로바가 출판한 모든 논문을 한곳에 볼 수 있는 곳이 어디에 있을까 고민을 많이 하였습니다.

 

그래서 네이버 클로바 페이지를 살펴보던 중 Publications라는 부분을 발견하였습니다.

 

https://clova.ai/en/research/publications.html

이곳에는 2015년부터 2019년까지의 네이버 클로바의 논문들이 전부 나열되어 있었습니다!

 

(2020년부터는 없습니다. 왜 그런지 궁금하네요, 혹시 연구 실적이 너무 많아서일까요?)

 

저는 항상 그렇듯, 무식하게 이곳의 모든 논문을 다운받았습니다.

 

그리고 하나하나 읽어보기 시작했습니다.

 

2015년과 2016년도 논문도 중간에 종종 나타났지만, 2017년부터 논문의 양이 급격히 증가하였기 때문에 2017년도 논문부터 리뷰를 하기로 했습니다.

 

02. 논문 리뷰

 

01. Distance LSTM-CNN with Layer Normalization을 이용한 음차 표기 대역 쌍 판별

이창수, 천주룡, 김주근, 김태일, 강인호

 

제 29회 한글 및 한국어 정보처리 학술대회 논문집(2017년)

 

간단요약

 

 Youtube-유튜브, Starbucks-스타벅스 등 다양한 웹 문서에서는 동일한 발음을 가지는 외국어 표기와 한국어 표기를 혼용하여 사용되는데, 만약 음차표기가 제대로 반영이 되지 않을 경우 유의미한 검색 결과가 다수 나타나지 않을 수 있습니다. 

 이와 관련해서는 주로 '음차 표기 모델'(Transliteration Model), '음차 표기 대역 쌍 추출'(Transliteration Pairs Extraction) 방법을 자주 활용해왔다고 합니다.

 

- 음차 표기 모델이란 외국어 표기(Starbucks)를 받으면, 이것을 자국어 표현으로 생성(스타벅스, 스타박스) 하는 모델입니다.

- 음차 표기 대역 쌍 추출이란 외국어 표기(Starbucks)를 받으면, 쌍 후보(스타벅스, 스탑웍스, 미니스탑, 등)에서 대응되는 표현을 자동 추출해주는 방법입니다.

 

 하지만 이 논문에서는 음차 표기 대역 쌍 판별(Transliteration Pairs Verification)을 활용하였다고 합니다. 이는 위의 쌍 추출 방법처럼 후보군을 두고, 정확한 음차 관계인지를 판별하는 방법이라고 합니다. 이는 난도가 높은 음차 표기 대역 쌍에서 특히 높은 성과를 보여준다고 합니다.

 

 본 논문에서는 Distance LSTM-CNN with Layer Normalization 모델을 효과적인 음차 표기 대역 쌍 판별 모델로 제시합니다.

 

구조

 구조는 꽤 복잡하게 생겼죠!  맨 아래층과 중간을 보면, Bi-LSTM을 활용하여 기울기 소실(Gradient Vanishing)을 해결하도록 하였고, 그 위에 거리벡터 연산을 위한 빼기(Subtraction), 곱하기(Muliply) 연산이 적용되도록 배치하였습니다. 즉, 음차 후보가 형태적, 의미적으로 가까운지 보고자 하는 구조입니다.

 그 위는 CNN이 나타나있습니다. 입력값의 주위 정보를 Conv Layer를 통해 추출하고, Pooling Layer를 통해 중요한 부분만을 추출하는 것입니다. 본 연구에서는 이런 CNN이 인접한 음차 조합 자질을 생성하고, 중요 음차 자질만을 추상화하는 기능을 할 것으로 기대했습니다.

 중간 중간 포함된 Layer Normalization은 수렴 속도를 크게 향상해서 epoch 수를 60 -> 21로 줄일 수 있게 해주었다고 합니다. 

 이 방법론은 기존의 변형된 KODEX를 훨씬 뛰어넘는 높은 성능을 보여주었다고 합니다.

 

소감

 

 검색 엔진에는 매우 뛰어난 기술이 들어간다는 것은 예전부터 알고는 있었지만, 이렇게 직접적으로 연결이 되는 논문을 보게 되니 참 신기했습니다. 그리고 만약 요즘 거의 대부분 모델에 사용되는 Transformer모델과 비교를 해본다면(여기서는 Seq2Seq with Attention과 비교해서 높은 성과를 얻었거든요!) 과연 어땠을지도 궁금했습니다.

 

 

 

02. 오타에 강건한 자모 조합 임베딩 기반 한국어 품사 태깅

서대룡, 정유진, 강인호

 

제 29회 한글 및 한국어 정보처리 학술대회 논문집(2017년)

 

간단요약

 

 POS tagging 논문은 처음 읽었네요! 지식이 부족해서 자세히 요약 못해드리는 점 죄송합니다.

 이 논문은 한글 자모 조합 임베딩을 이용해서 오타 및 개체명을 다양하게 표기하는 방식에도 강건한 품사 태깅 시스템을 구축하고자 한 논문입니다. bi-LSTM-CRFs 모델을 구축하여, 각 음절을 초정, 중성, 종성의 자모로 분할한 후 각각의 임베딩 값을 조합하여 음절 임베딩 값을 구성합니다. 그리고 그 음절 임데빙을 바탕으로 품사 태그와 조합된 태깅을 수행하게 됩니다.

 

구조

 Bi-LSTM-CRFs 모델의 구조는 위와 같습니다. 문장 전체를 대상으로 음절마다의 임베딩 값을 계산하여 bidirectional LSTM의 입력으로 넣으면, forward&backward 양방향으로 출력 값 계산이 이루어집니다. 최종적으로 태그 사이의 전이 확률값을 구하고 태그를 결정하게 됩니다. 

 LSTM을 활용한건 당연히 기울기 소실을 방지하게 위해서이며, 이 논문에서는 시퀀스 길이가 100까지 문제가 없었다고 합니다. 그리고 1번 논문과 마찬가지로 Layer Normalization을 이용해서 covariate shift의 문제를 해결할 수 있었다고 합니다.

 성능은 pretrained word2vec을 이용한 방식, 랜덤 초기화 word2vec을 이용한 방식과 비교하였으며, 일반적인 정확률은 큰 차이가 없으나 오타가 빈번한 환경에서는 word2vec보다 높은 정확도를 보여주었습니다. 

 

소감

 

 SNS 데이터를 바탕으로 분석을 진행하다보면 다양한 오타로 인해 임베딩 값이 잘못 나타나는 결과를 종종 보았습니다. 그런 부분에서 꽤 재밌있는 논문이었던 것 같습니다. 요즘 Transformer기반 모델들이 input sequence가 512, 1024까지 나오고 있는데, 본 논문에서는 sequence length를 100까지 고려한 것을 보면서 짧은 시간동안 참 많은 기술적 진화가 있었구나 라는 생각이 들었습니다.

 

 

 

03. 심층적 의미 매칭을 이용한 cQA 시스템 질문 검색

김선훈, 장헌석, 강인호

 

제 29회 한글 및 한국어 정보처리 학술대회 논문집(2017년)

 

간단요약

 

 네이버 지식 in같은 cQA 시스템에는 하루에도 수십 수백 수천 수만개의 질문이 올라오지만, 아쉽게도 답변이 모두 달리지는 않습니다. 이 논문에서는 기존의 저장된 질문-답변 DB에서 유사한 질문을 찾아, 그에 대당하는 답변을 연결해줌으로써 답변 받지 못한 질문들을 줄이고자 하였습니다.

 단순히 키워드를 통해서는 의미적 유사성을 파악할 수 없기 때문에 이 논문에서는 semi-training word embedding과 CNN을 활용하였습니다. 이 방식으로 질문의 의미를 벡터 공간에 투영하고, 벡터 유사도를 활용함으로써 유사한 질문을 db에서 찾아낼 수 있도록 한 것입니다.

 데이터는 같은 질문내용 쌍에 대해서 positive sample로 설정하고, 다른 질문내용 쌍에 대해서는 negative sample로 설정하였습니다. 그리고 300차원의 pretrained Glove와 CNN을 이용하여 SWECNN 의미 매칭 모델을 구현하였습니다.

 

구조

 위 그림에 나타난 구조를 보면 시맨틱 매칭 모델이 어떻게 학습되었는지 쉽게 알 수 있습니다. 질문의 word vector weight를 공유하는 CNN의 입력으로 하여, 각 질문의 semantic vector를 추출합니다. 그리고 positive에 대해서는 similarity를 높게, negative에 대해서는 similarity를 낮게 하도록 학습하였습니다.

 이렇게 학습된 모델은 기존에 가장 많이 활용되던 BM25모델보다 높은 성능을 기록했습니다.

 

소감

 

 평소 Semantic Vector에 대해 관심이 많았어서 꽤 재밌게 읽었습니다. 많은 Fin-NLP 논문들이 BERT, RoBERTa 기반 SBERT로 이런 Semantic Similarity를 비교하고 있는데, 과연 네이버 지식IN은 현재 어떤 모델을 사용할지 궁금해졌습니다.

 

 

04. Deep Neural Networks for News Recommendations

Keunchan Park, Jisoo Lee, Jaeho Choi

 

CIKM (2017년)

 

 

간단요약

 

 뉴스 추천 시스템은 크게 세가지 부분에서 어려움이 있습니다. 

 - 뉴스 기사가 너무 많다.

 단순히 많을 뿐만 아니라, 같은 내용의 기사들도 다른 언론사에서 자주 다룹니다.

 - 다른 도메인에 비해 신속성(Recency, 최신이라고 번역해야할까요?)이 중요하다.

 뉴스는 시간이 흐를수록 가치가 떨어집니다.

 - 뉴스는 아주 다양한 토픽을 다루며, 사람들은 자기 관심(선호) 분야가 아닌 기사는 잘 읽지 않는다.

 

네이버에서는 이런 세가지 어려움을 극복하기 위하여 세가지의 모델을 접합한 새로운 추천 시스템을 제안했습니다.

프로세스는 아래와 같습니다.

(1) Session-based RNN이 유저의 current session을 바탕으로 관심분야에 적합한 최신 기사를 추출합니다

(2) History-based RNN이 유저의 과거 데이터를 바탕으로 단기적 선호도에 따른 최신 기사를 추출합니다

(3) 마지막으로, 유저의 장기적 선호도와 후보 범주 사이의 유사성을 통합하여, RNN에서 추출된 기사를 Rerank합니다.

+만약 후보 범주가 사용하기 어려운 경우엔 CNN 분류기를 통해 후보 범주를 산출합니다.

 

소감

 

 네이버에서 사용중인 다양한 추천시스템들이 어떻게 돌아가는지 궁금했었는데, 그 일부라도 조금 엿볼수 있던 것 같아서 재밌었습니다. 저는 추천시스템에 대해서는 아는바가 없었기 때문에, 원래 추천시스템에 이렇게 다양한 역할을 하는 모델이 들어가는 건지 아니면 이 논문이 특별하게 그랬던건지 조금 궁금하네요. 

 

 

05. Building a Better Bitext for Structurally Different Languages Through Self-training

Jungyeul Park, Loic Dugast, Jeen-Pyo Hong, Chang-Uk Shin, Jeong-Won Cha

 

Workshop on Curation and Applications of Parallel and Comparable Corpora in IJCNLP (2017년)

 

간단요약

 해당 논문은 pivot language와 self-training을 통해 병렬 말뭉치 구성(construction of parallel corpora)을 부트스트랩하는 방법론을 소개한 논문이었습니다. Pivot Language를 통해 기존의 모델로 하여금 기존의 alignment를 부트스트랩하며, Self- training procedure을 통해 더욱 나은 alignment를 가능하게 했다고 합니다. 
 보다 더 자세히 보자면, 해당 논문은 크게 4가지를 제시합니다.

(1) Pivot Language를 활용해서 두 언어를 서로 다른 writing system에 따라 정렬합니다.

(2) 더 나은 병렬 말뭉치 구성을 위한 Self-training method를 제안합니다.

(3) 한국어를 위한 기본 전처리 스키마를 제공하여 통계적 기계번역의 성능을 향상시킵니다.

(4) 정렬된 병렬 말뭉치(aligned parallel corpora)위한 몇가지 실험을 제안합니다.

 

*해당 논문은 이해를 하지 못한 부분이 많아 차후에 내용을 추가하도록 하겠습니다

 

소감

 저를 포함한 많은 학생들은 자연어 처리 모델에 대한 논문을 자주 읽습니다. 그러다보니 실무나 프로젝트에서 가장 중요한데이터 전처리, 말뭉치 등에 대해서는 학습이 덜 되어 있는 경우가 많은 것 같습니다.(아니면 저만 그랬을지도...ㅎㅎ) 이번 기회를 통해 이런 귀중한 지식을 얻을 수 있어서 좋았습니다.

 

 

 

 

03. 논문 리뷰 소감

처음에 전부 다운받아 쭉 보았을 땐 양이 정말 많다고 생각했는데 NLP만 뽑고 나니 다섯개밖에 없었네요. 웅장하게 시작한거에 비해 초라한 것 같아 살짝 부끄럽습니다. 그래도 2018, 2019, 2020년도 논문들을 다음 포스트에선 리뷰할 거니까요!

 

Automatic DJ Mix generation using hightlight detection, Highrisk prediction from electornic medical records via deep attention network, 등 NLP 논문은 아니었지만 내용적으로 재밌었던 다른 17년도 논문들도 많았습니다.

이들도 전부 논문 리뷰를 적어보고 싶었지만 안그래도 부족한 제 전문성의 밑천이 더 드러나버릴까봐 적지 못했습니다.

지금 저는 금융 데이터사이언티스트로서 첫 걸음을 내딛고 있는 중인데, 항상 업계 높이 있는 전문가들을 보며

 

'난 언제 저렇게 될 수 있을까....' 이런 생각을 자주 했었습니다.

 

그런 일종의 무력감(?)을 조금이나마 해소하고자 이번 포스트를 작성하게 되었는데

 

현재 최고의 위치에 있는 네이버도 그 자리에 오기까지 오기까지 부단한 노력과 성장통이 있었을 거라는 것이 느껴졌습니다.

 

저 역시 항상 성장을 멈춰서는 안되겠다는 생각이 드네요.

 

다음 포스트는 2018년의 네이버 NLP 논문을 리뷰해보도록 하겠습니다.

매 연도마다 논문 양이 급격히 늘어나서 쉽진 않을 것 같다는 생각이 드네요!