자연어처리(NLP)-BERT

자연어처리(Natural Language Processing)분야는 인공지능기술중 RNN에 기반한 모델이 대부분이었다. 언어라는 것이 일련의 단어들로 이루어진다고 생각할 때 최고의 방법은 아니더라도 자연스러운 접근방법이라고 할 수 있겠다. 언어처리를 위해 문장을 단어 단위로 분해하는 tokenizing과정을 거치고 단어의 벡터화를 위한 embedding기술(Word2Vec, GloVe)을 이용하여 LSTM이나 GRU와 같은 RNN에 입력시켜 중간결과를 얻어내는 과정을 Encoder라고 하며, Encoder의 Output을 사용하여 최종출력을 얻어내는 과정을 Decoder라고 한다. Encoder-Decoder구조이다. 이와 같은 처리 구조를 사용하여 자언어처리를 학습시켜보니 여러 문제가 발견되었다. 우리가 단어를 선택할때 앞에서 사용한 단어나 문장기준으로만 선택하지 않는다는 점이다. 예를들어, 영어에서는 나중에 나올 명사를 위해 사용할 동사를 먼저 선택하는 경우도 있다. 이를 해결하기 위해 먼저 떠오르는 해결방안은 양방향(bi-directional) RNN 구조를 사용하는 것이고 그 방향으로 발전했다.

또한, 앞서 나온 모든 단어를 같은 비중으로 고려하여 RNN을 통해 output을 낸다는 것이 비합리적이라고 할 수 있다. 특히 translation에서는 앞서 나온 특정 단어는 큰 비중으로 다뤄야 할 필요가 있을것이다. 이분야에서 한번의 기술적 진보는 “Attention”을 이용한 context vector를 사용하여 의미적 상관관계를 고려한 출력을 얻는 방식으로 이루어 졌다. 이 방법은 특히 번역(translation)에 매우 좋은 결과를 낼것이라고 쉽게 추측할 수 있다.

그러나, 언어라는 것은 말하고자 하는 주제가 있고, 앞 문장과 뒷문장의 유연한 의미적 연결이 있고, 문법적 구조도 있어 매우 복잡한 분야라는 것이 분명하므로, 위와 같은 신경망구조로 모든것을 해결할 수는 없다. 우리가 문제를 해결할때 문제자체가 무엇인지 먼저 이해해야 해결방안을 찾아 낼수 있는것과 같이, 주어진 문장 자체를 충분히 이해해야 다음 작업(질문에 대한 답변, 번역등)을 할 수 있을 것이다. 이처럼 자연스러운 필요성에 의해 self-attention기술이 등장했다. Encoder-Decoder 구조에서 주어진 source와 target의 단어들을 먼저 attention을 통해 분석한후 처리하는 방안이다. 최근, 다시 한번 NLP분야에서 기술적 진보를 볼 수 있었는데, self-attention을 활용한 구글의 Transformer 기술이 그것이다. 무엇보다도 인상적인 것은 자연어처리에서 당연시 여기던 RNN구조를 사용하지 않는다는 점이다. 이것은 self-attention을 수행하기 위해 문장을 한꺼번에 처리하려니 RNN을 사용할 수 없었을테지만, 그것보다도 더 중요한 것은 신경망의 hidden unit의 갯수를 생각하거나 CNN구조를 생각할때 병렬로 많은 입력 데이터를 한꺼번에 처리할수 있는데, sequential정보를 전달하기 위해 RNN구조를 고집해야 하는지가 의문이라고 하겠다. 특히, 언어와 같이 문맥과 같이 의미적 연결을 고려할때 순차적 처리보다는 한꺼번에 처리하는 것이 문맥을 다루는데 훨씬 유리할것이라는 가정을 해볼 수 있다. 기존의 기술(여기서는 RNN)을 더욱 고도화 시켜도 더이상 획기적 진보가 없다고 생각될때는 이와 같이 근본부터 다른 접근을 시도하는 것이 좋은 방법이다. 물론, 좋은 결과를 얻는다는 보장은 없고 초기에는 훨씬 성과를 얻기에 힘든 작업일 것이다.

구글은 BERT(Bidirectional Encoder Representations from Transformers)라는 이름에서 알 수 있듯이 2017년도에 발표한 Transformer 구조를 사용하여 언어를 처리하는 새로운 논문을 발표했다. 아래는 논문의 링크이다.

https://arxiv.org/abs/1810.04805

BERT는 이전에 구글이 발표한 NLP 처리 모델(Attention is All You Need)의 Encoder구조를 사용한다. 구조는 위 그림과 같다. Word embedding에 추가로 positional encoding 정보를 추가해서 Transformer layer의 입력으로 사용한다. Positional encoding은 Transformer가 RNN구조를 포기함으로써 나타나는 부작용인 sequential 순서 정보를 보존하기 위한 방편으로 생각된다. 그런데 positional encoding vector는 학습 패러미터가 아니며, 단어 위치 index를 삼각함수에 도입하여 단어가 다른 단어와 어느정도 가까이 있는지를 표현하는 것이라고 한다. 가장 중요한 부분은 Nx로 표기한 Multi-head attention Encoder layer이다. Encoder layer에 있는 많은 수의 attention head가 실제로 문장에서 문맥을 파악하는 역할을 수행하는 영역이다. Multi-head attention(아래 그림)은 attention vector를 하나가 아닌 여러개 사용한다는 의미이다. Attention layer의 입력이 3가지 종류인데, 왼쪽 V(values)와 K(Keys)는 Encoder에서 오고 Q(Query)는 Decoder의 state를 의미한다. 아래 오른쪽 그림은 Scaled Dot-Product Attention의 구조이다. 이것은 self-attention 이론에서 나온 개념으로 수학적인 식으로 연산은 알겠지만 의미적 해석은 불분명하다. 본질의 이해를 수학식으로 표현하는 것은 쉽지만, 수식만 보고 본질을 이해하는 것은 어렵다. 자세히 살펴보면 Transformer의 Attention layer의 구조가 약간씩 다르다. Encoder의 Attention은 K,Q,V가 같은 값을 가지는 입력을 가지는 multi-head self-attention이고, Decoder는 target을 입력 받는 하단 layer에 masked multi-head attention이고, 그 위 layer는 Encoder output과 Decoder 1st sub-layer output을 입력으로 받고 있다. 이것만 원칙적으로 기존의 attention과 구조적으로 비슷한데, 기존의 attention mechanism에서는 decoder의 출력이 encoder의 출력에서 어느 부분에 중점을 둘것인지의 가중치를 매기도록 attention vector를 만들었다. 기존의 Attention/Context vector는 source의 모든 정보를 포함하기에는 부족하다는 관점에서 Transformer구조는 정보를 전달하는 양이나 정보의 범위, 정보의 전달 대상의 수를 볼때 압도적으로 많은 정보를 전달받고 처리한다는 것을 알 수 있다. 언어는 단어대 단어 단위로 의미 맥락을 가지지 않는다는 점이 Transformer 구조의 강점을 증명한다고 생각할 수 있다. 이것이 transformer 구조의 최대 장점이라고 생각된다. 모든것(Source 전체와 이미 생성된 target)을 다 보고난 후에 단어를 결정한다.

Decoder에는 Encoder에는 없는 Masked Multi-head Attention이라는 layer가 존재한다. Target 단어를 Encoder와 같은 방식으로 처리하되, 신경망 학습에 있어 다음 단어를 미리 알려줘 버리면 신경망 패러미터들은 Target 입력의 단어마다 다음단어만 Attention이 되도록 간단히 처리해 버릴것이다. RNN구조에서는 필요 없는 방법이지만 병렬처리를 하는 Transformer에서는 필요한 과정이다.

그러면, Attention구조는 이렇다고 하더라도 이 모델을 어떻게 training시켰는지가 중요하다. 논문에서 밝히기로는 2개의 일종의 supervised learning 학습방법(Masked Language Model과 Next Sentence Prediction)을 동시에 사용하여 training시켰다고 한다.

BERT는 새로운 이론이기 보다는 이미 개발된 Transformer 기술을 사용하여 실용적 관점에서 수행된 프로젝트이다. 이미지분류분야에서 사용한적이 있는 Transfer Learning기법에 착안하여 자연어처리에서도 큰 데이터베이스를 통해 사전에 학습된 신경망을 사용하여 후속 목적에 맞은 후처리 training을 통해 모델을 완성하는 방식의 접근 방법을 자연어처리에 적용하였다. 무엇보다 반가운 점은 구글이 BERT를 이용하여 학습시켜놓은 모델을 공개해주었다는 점이다. BERT 구조(12-layer/24-layer transformer)를 보면, 개인이 보유하기 어려운 컴퓨팅파워와 자연어처리 인공지능을 위해 공개된 corpus(말뭉치)를 이용하여 학습시켜 놓은 모델을 구글과 같은 회사가 자발적으로 제공해 주지 않으면 개인에게는 그림의 떡이 될 수 밖에 없다는 것을 알 수 있다. 인공지능 분야의 개방성은 그 만큼 위력적이다.

BERT를 사용하기 위해서는 앞서 언급한 바와 같이 pre-training된 모델을 이용하여, 사용 목적에 맞는 데이터를 이용하여 fine-tuning하는 단계를 거쳐서 사용하게 된다. 다행히도 fine-tuning단계는 개인 컴퓨터의 GPU를 사용해도 그 과정이 오래 걸리지 않는다.

성능 테스트

BERT를 사용해보는 테스트는 여러 Corpus중에서 Q&A 자료를 이용한 시도다. 마이크로소프트의 SQUAD는 문장을 주고 문장의 내용에서 질문에 대한 답이 있는 일종의 지도학습 말뭉치 데이터이다. 개인적으로 우리나라에는 어느 정도의 말뭉치자료가 있는지 조사해 보았는데, 국립국어원에 자료가 있기는 하지만 인공지능 연구에 사용할 수 있도록 지도학습 형태로 정리된 자료는 찾지 못했다. 기사를 보니 우리나라도 이 분야의 연구를 위해 과제를 수행한다고 한다. 자연어 처리에 관한 연구실도 있고 이 분야에서의 연구자들이 몇가지 좋은 code를 공개해 놓았다. 특히 영어보다는 어려운 tokenization에 대한 기술도 흥미롭다. 사용해 보니 자연어 처리 연구를 위한 기본적 도구는 갖추어져 있다고 생각된다.

SQUAD는 이미 주어진 데이터베이스이므로 새로운 데이터로 테스트해보고자 고민하였다. SQUAD와 가장 비슷한 자료는 쉽게 찾아 볼 수 있다. 가장 대표적인 것은 우리나라에서 치른 영어시험문제이다. 영어 시험문제라면 얼마든지 데이터를 찾아 볼 수 있다. 문제는 이 시험을 BERT가 사용하는 json 자료구조로 제공해 주어야 한다는 점이다. 사실, json이 xml을 대신 할 자료구조로 다양한 분야에 데이터만을 주고 받을 때 유용하다는 점을 이번에 알았다. 웹에서 구한 중학교 영어시험문제(2017년 국가수준 학업성취도 평가, 중학교3학년)중에 2개의 제시문(31번, 서답형4번)과 고등학교 영어시험문제(2018년 국가수준 학업성취도 평가, 고등학교2학년)중에 1개의 제시문(20번 제시문)을 무작위로 고르고 총 7개의 질문을 만들어서 json 구조의 파일을 만들어서 SQUAD를 이용한 fine-tuning한 모델을 이용해서 시험해 보았다. 아래는 각각의 문장과 질문들이다. 참고로 질문은 시험문제의 질문은 아니며, 제시문을 보고 만든 질문이다.

Art experts say that the greatest artists of the Renaissance were Leonardo, Michelangelo, and Raphael. Raphael was the youngest of the three. His father was a painter, and he taught Raphael how to draw and paint. The boy was a natural artist and learned quickly. By the time he was a teenager, Raphael was so talented that people began to call him a master. Raphael was influenced by the works of Leonardo and Michelangelo. During his short life, he produced many incredible paintings. But at the height of his fame, Raphael caught a fever. He died in Rome on his thirty-seventh birthday.

Q1. Who is the youngest artist?

Q2. Who taught Raphael how to draw and paint?

Q3. What Raphael died of?

If you have ever thought your dog could understand what you are saying, you may have been right. Researchers in Hungary have investigated the brain activity of dogs. The research reports that dogs can understand the words we speak and the tone of our speech much as humans do. For the study, dogs were exposed to recordings of the voices of their trainers, who spoke to them with a range of words and tone in both praising and neutral ways. The positive words spoken in a positive tone prompted the strongest activity in the dogs’ brains.

Q4. Which country scientists have studied the brain activity of dog?

Q5. In which way trainers spoke to dogs?

In many situations students underestimate how long it will take them to prepare for an exam properly. It is hard to pack an entire semester’s worth of studying into one night. But even if you had enough time, it is still less effective to do all of your preparation in one last-minute study session than to spread it out over a longer period. When you study the material in one sitting, you end up associating all of that material with one context. The sights and sounds and smells and emotions that you are experiencing during that study session all become part of your memory for that knowledge. Unless you are in that same situation again, it will be difficult to recall what you have learned.

Q6. What students underestimate in many situations?

Q7. What has the same meaning of “in one last-minute study session”?

Q8. What is the title?

아래는 2019학년도 수능 영어 22번 문제의 지문이다.

22. 다음 글의 요지로 가장 적절한 것은?

With the industrial society evolving into an information-based society, the concept of information as a product, a commodity with its own value, has emerged. As a consequence, those people, organizations, and countries that possess the highest-quality information are likely to prosper economically, socially, and politically. Investigations into the economics of information encompass a variety of categories including the costs of information and information services; the effects of information on decision making; the savings from effective information acquisition; the effects of information on productivity; and the effects of specific agencies (such as corporate, technical, or medical libraries) on the productivity of organizations. Obviously many of these areas overlap, but it is clear that information has taken on a life of its own outside the medium in which it is contained. Information has become a recognized entity to be measured, evaluated, and priced.

  1. 정보화된 사회일수록 개인 정보 보호가 필요하다.
  2. 정보의 효율적 교환은 조직의 생산성을 향상시킨다.
  3. 정보 처리의 단순화는 신속한 의사 결정에 도움이 된다.
  4. 정보 처리의 단순화는 신속한 의사 결정에 도움이 된다.
  5. 정보 기반 사회에서는 정보를 전달하는 방식이 중요하다.

Q9. What is the point of this article?

아래는 BERT 모델이 위 질문에 차례로 답한 결과이다. 1번부터 5번까지는 기본적 능력을 시험해보려 만든 질문이고 중학교시험문제 지문이 비교적 간단해서인지 모두 정답을 맞추었다. 6~8번은 고등학교 시험문제 지문으로 단어 의미나 문장을 이해해야 답할수 있는 문제이다. 정답이거나 정답에 가까운 답을 내놓았다. 여기까지의 결과에 힘입어 난이도를 올려보기 위해 수능시험문제에 도전해 보았다. 글의 요지가 정보자체의 다양한 가치에 관한 글이므로 4번이 정답이다. 글의 첫부분은 정보의 다양한 유용성을 이야기 하지만, 종국에는 정보 자체의 가치를 의미하는 글로 마무리 짖는다. 마지막 9번문제에 대한 BERT의 답을 보자. 이 답은 오답의 지문과 더 닮지 않았는가? 우선 오답의 지문과 비슷한 내용을 냈다는 것도 기대 이상의 답이라고 생각한다. 출제자가 그나마 답으로 고르도록 유도한 내용이기 때문이다.

  • Q1 : Raphael
  • Q2 : His father
  • Q3 : a fever
  • Q4 : Hungary
  • Q5 : praising and neutral
  • Q6 : How long it will take them to prepare for an exam properly
  • Q7 : you end up associating all of that material with one context
  • Q8 : studying
  • Q9 : the costs of information and information services; the effects of information on decision making; the savings from effective information acquisition

이 테스트 결과를 보고 내가 얻은 결론은 BERT가 source에서 query와 관련된 내용을 Transformer 의 attention을 통해 정확히 찾아내기는 하지만, 글을 읽고 글속에 담긴 글쓴이의 의도까지는 파악하지 못한다는 것을 알 수 있다. 만약 마지막 수능문제마저도 맞췄다면 나 자신도 엄청 놀랐을 것이다. 하지만 이것도 대단한 진보이고, 특성으로 볼때 translation 분야에서는 높은 성능을 보일것이다.

광고

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중