🥳 200만 유저의 친구 ‘이루다’ 기술로 AI 캐릭터를 자유롭게 만들어보세요 ‘핑퐁 스튜디오’ 보러가기

Tech

핑퐁팀 ML 세미나, 그 네번째

핑퐁 ML 리서치 사이언티스트들의 시즌 4 세미나 자료

구상준 백영민 김준성 이주홍 장성보 정다운 | 2020년 03월 16일 | #Machine_Learning

새해가 밝은 지 얼마 되지도 않았는데 벌써 2020년도 1/6이나 지나갔습니다. 그 짧은 시간에도 수많은 좋은 논문들이 발표되었습니다. 우리의 불쌍한 핑퐁팀 ML 사이언티스트들은 이에 뒤처지지 않게 늘 공부하고 또 공부합니다. 우리의 슬로건 “Make AI Social (Again)”을 달성하기 위해서요.

그 노력의 산물 중 하나인 저희 사이언티스트들의 시즌 4 세미나 발표자료를 갈무리하여 올립니다. 본 세미나는 2020년 1월, 2월 동안 매주 진행되었으며, 네 번째 시즌은 지난 시즌과 마찬가지로 주제의 제한 없이 자유롭게 시작되었습니다. 역시 자유 주제로 시작되었지만 아무래도 관심사가 비슷한 만큼 논문들의 주제가 비슷한데, 전반적으로 “Embedding”, “Transformer” 등의 키워드가 돋보였습니다. 그만큼 모두 사람의 말을 기계가 이해할 수 있는 형태로 기술하는 것에 대해서 관심을 쏟고 있는지를 엿볼 수 있었습니다.

Reformer: The Efficient Transformer (구상준)

Reformer는 지난 1월 구글에서 발표한 구조입니다. 기존의 Transformer 구조는 데이터 열의 길이가 조금만 길어져도 모델 크기가 그 제곱에 비례해서 커지는 문제가 있었는데, Reformer는 Locality-Sensitive Hashing을 사용해서 이 문제의 복잡도를 크게 낮추었습니다. 보다 구체적으로 논문이 기여하는 부분은 세 가지로 요약됩니다.

Reformer는 혁신적인 구조이며, 임베딩을 LSA로 찾는 기법은 적용할 가치가 충분하다고 판단합니다. 그러나 Approximation 기법 특성상 정확한 가중치를 반영하지 못하는 점, 그것 때문에 범용적으로 사용할 수 없는 점은 이 구조의 단점입니다. (오히려 반드시 대용량으로 구성되어야하는 이미지 데이터 등에서 더 유용하게 사용할 수 있을 것입니다.)

Multi-Scale Self-Attention for Text Classification (백영민)

Transformer 및 그 파생 구조들은 문장 내의 모든 단어쌍의 관계를 반영하는 구조입니다. 이런 구조들은 문장의 의미를 더 깊게 학습시킬 수 있다는 장점이 있지만, 반대로 이런 학습을 뒷받침할 만큼 데이터가 크지 않으면 성능이 하락하는 단점도 있습니다. 본 논문에서는 이 문제를 완화하기 위해서 Multi-Scale Multi-Head Attention 구조를 제안합니다. 이 구조에서 각 Head들은 서로 다른 범위의 Attention을 다룹니다. 즉, 먼 단어쌍의 관계와 가까운 단어쌍의 관계를 다르게 간주합니다. 이를 통해 상대적으로 작은 데이터셋에서도 LSTM 등의 RNN 구조에 성능이 뒤떨어지지 않은 검출 모듈을 만들 수 있었습니다.

전반적으로 Classification, Sequence Labeling, Natural Language Inference에서 좋은 성능을 보였습니다. 용량이 작은 데이터셋에서 효과적으로 사용할 수 있을 것이라고 생각합니다. 다만 long-range dependency를 잘 나타낼 수 있는 것을 보인 거울 실험 (Mirroring Experiment)에 대해서는 저자들이 전개한 논리가 잘 이해가 되지 않았는데, 이 부분이 사족 같아서 약간 아쉬웠습니다.

Text Style Transfer Overview (김준성)

본 발표자료에서는 문장의 스타일을 바꿔 쓰는 문제를 잠재 공간에서의 문제로 풀어보는 논문들에 대해서 다룹니다. 논문들을 살펴보면 접근 방식을 크게 두 가지 방법으로 가져가는 것을 확인할 수 있습니다.

Text Style Transfer 문제는 물론 흥미로운 주제입니다. 하지만 현재는 Yelp 등의 데이터셋에서 긍정과 부정을 바꾸는 정도에 그치고 있습니다. 겸양 표현, 사투리 등이 심하게 나타나는 한국어에서 우리가 원하는 형태로 모듈을 구현하기 위해서는 문제의 정의가 보다 명확히 될 필요가, 그리고 그에 대한 연구가 더 많이 진행되어야할 필요가 있어보입니다.

Pre-training Tasks for Embedding-based Large-scale Retrieval (이주홍)

Question Answering 문제를 푸는 것은 다음 두 문제로 구성됩니다: (1) 방대한 문서 집합에서 문제와 관련된 문서를 찾기 (2) 찾은 문서 안에서 원하는 답을 생성/선택하기 지금까지 Transformer 파생 구조를 활용하여 (2)의 성능을 높이는 연구는 많이 진행되었습니다. 하지만 여전히 (1)을 풀기 위해서 우리는 TF-IDF나 Okapi BM25 등의 기법들을 사용하고 있습니다. 본 논문에서는 쿼리와 문서 사이의 Attention을 활용한 Retrieval 모델을 구성함으로써 (1)을 풀고자 합니다. 아울러 기존의 Transformer 구조들과 다르게 Cross Attention을 사용하지 않고, 쿼리와 문서를 서로 다른 인코더를 통해 사상한 다음 잠재 공간상에서 이 둘간의 상호작용을 고려하는 방법을 사용했습니다. (Bi-encoder) 이 과정에서 기존의 Transformer와 다르게 쿼리와 문서의 상관관계를 녹여낸 Loss 함수들을 고안하고, 이 함수들을 이용해 인코더를 Pretrain 시켰습니다.

논문에서는 본 구조를 활용하여 Pretrain 시킨 Retrieval 모델이 BM25나 TF-IDF보다 훨씬 좋은 성능을 보여주었습니다. 다만 이 성능을 기록하기 위해서는 Pre-training이 필수 불가결하다고 판단합니다. 실제로 본 논문의 방식으로 Pre-train하지 않은 모델은 낮은 성능을 보여주었습니다. 어떤 방식으로 다른 유형의 Encoder에서 본 논문의 직관을 활용할 수 있을지는 우리에게 주어진 하나의 과제라 하겠습니다.

Symmetrical Synthesis for Deep Metric Learning (장성보)

Metric Learning에서 가장 중요한 문제는 Hard Negative를 찾는 것입니다. 즉, 어려운 오답을 만들어 내는 것이죠. 본 논문은 네이버에서 AAAI에 발표한 논문으로 Metric Learning에서 Hard Negative를 생성하는 새 방법을 제안하였습니다. 논문의 핵심은 각 정답들에 대해서 크기를 보존하면서 대칭 이동을 시행하면 상당히 경쟁력 있는 오답을 생성할 수 있다는 것입니다. 논문에서는 만들어낸 오답이 실제 데이터셋에 있는 데이터들의 경계면에 위치하는 것을 확인할 수 있었습니다.

실제로 단순한 대수적인 계산으로 Hard Negative를 만들어낼 수 있는 것은 고무적입니다. 만약 이 방법을 인코딩에 적용할 수 있다면, 위의 문제들을 더 잘 풀 수 있는 범용적인 방법을 얻는 것이니까요. 다만 자연어는 이미지와 다르게 원 데이터의 Saliency가 더 부각되는 경향이 있기 때문에 이를 적용하려면 상당한 고찰이 있어야한다고 판단합니다.

Poly-encoders: Transformer Architectures and Pre-training Strategies for Fast and Accurate Multi-sentence Scoring (정다운)

위의 Retrieval 논문에서도 서술하였듯이, 쿼리에 대한 응답을 찾는 문제를 Cross-Attention으로 풀기 어렵습니다. Transfomer의 Inference 시간은 상당한 수준이기 때문입니다. 그렇지만 Cross-Attention Encoder가 Bi-Attention Encoder보다 성능이 높은 것도 사실입니다. 본 논문에서는 코드 벡터를 정의하여 길이 n의 컨텍스트 벡터를 길이 m (n>m)의 벡터로 변환하고, 변환된 컨텍스트 벡터와 응답의 임베딩 벡터 간의 Attention을 둠으로써 Bi-Encoder보다 성능은 좋으면서 Cross-Encoder보다 빠른 구조를 제안하였습니다.

이 논문에서 돋보이는 점은 실험 설정과 설정의 변화에 따른 성능의 변화 추이를 세세하게 기술하였다는 것입니다. 실제로 이 논문의 결과를 참조해서 Retrieval 모델의 성능을 향상시킬 수 있었습니다. 저희는 다만 치밀한 실험 설정에 비해 구조가 약간 Naive하다는 느낌을 받았습니다. 문맥 정보를 더 잘 반영함으로써 성능을 높일 수 있을 것이라고 생각합니다.

마치며

지금까지 2020년에 진행되었던 머신러닝 세미나 자료를 공유해보았습니다. 논문들을 보면서 느낀 것은 머신러닝, 특히 자연어처리의 세계는 매일 하루가 다르게 발전하고 있다는 생각이었습니다. 저번 달에 나온 기법을 오늘 나온 기법이 이기는 일은 아주 익숙하게 볼 수 있는 모습입니다.

이런 머신러닝의 급류에 표류하지 않도록 핑퐁의 엔지니어들과 리서치 사이언티스트들은 부단히 노력하고 있으며, 더 노력하고자 합니다. 앞으로도 그 노력의 결실을 더 유용한 자료와 더 알찬 분석을 통해 공유할 수 있었으면 합니다. 감사합니다.

스캐터랩이 직접 전해주는
AI에 관한 소식을 받아보세요

능력있는 현업 개발자, 기획자, 디자이너가
지금 스캐터랩에서 하고 있는 일, 세상에 벌어지고 있는 흥미로운 일들을 알려드립니다.