how_does_ai_translator_understand_language_1

(특별연재) 인공지능 자동번역은 언어를 사람처럼 이해하는 건가요? _ 1

Posted by

 

이미 많은 분이 Google Translate파파고와 같은 번역기를 사용해 보았을 겁니다. 100여 개가 넘는 언어를 순식간에 번역할 수 있죠. 웹에서뿐만 아니라 스마트워치와 같은 모바일 기기에서도 손쉽게 사용할 수 있습니다. Google Translate에 사용된 기술을 Machine Translation(기계 번역 또는 자동 번역)이라고 부릅니다. 자동 번역기 덕분에 우리는 세계 여러 나라 사람들과 언어 소통의 장벽을 손쉽게 극복할 수 있게 되었습니다.

 

 

초등학생도 다 알고 있는 Google Translate를 소개하려는 것은 아니고요. Machine Translation이 어떻게 언어를 이해하고 동작하는지 여러분과 살펴보려고 합니다.

불과 몇 년 사이에 Machine Translation 기술이 비약적인 발전을 이루었습니다. 2016년 9월 Google은 Deep Learning 방식으로 개발한 완전히 새로운 자동 번역기를 발표하고, Google 블로그에 아래와 같은 글을 올렸습니다.

Google’s AI translation system is approaching human-level accuracy (인간 번역 수준에 근접한 Google의 인공지능 번역기)

 

위 그래프에서 “PBMT”는 예전 방식의 자동번역이고, “GNMT”가 새롭게 발표한 자동번역 기술입니다. 바로 이날을 기점으로 자동 번역 기술의 역사는 새롭게 시작됩니다. 흔히, 번역이 맘에 들지 않을 때 “Google 번역 같아요”라고 핀잔을 주곤 했었죠. 이젠 그렇게 말할 수 없습니다.  현재 Google 번역 수준을 한 번 보겠습니다.

 

어떤가요? 거의 완벽하지 않나요? 2016년 9월 이전에는 “Google 번역 같아요”가 핀잔이었지만 지금은 칭찬이 될 수도 있습니다. 이러한 혁신적인 자동 번역은 어떻게 만들어졌을까요? 바로 이 궁금증에 대해 알아보겠습니다.

 

자동 번역 기술의 시작

컴퓨터가 어떻게 언어를 번역하는 걸까요? 가장 간단한 방식은 문장의 각 단어를 번역할 언어로 치환하는 것입니다. 영어를 한국어로 단어 단위로 순서대로 번역하면 이렇게 되겠죠.

 

관사와 전치사는 지면 관계상 하나로 묶었습니다. 이렇게 번역하기 위해선 단어 사전만 있으면 되니 무척 간단합니다. 그러나, 언어 문법과 어순이 완전히 무시되어 번역이 엉망입니다.

해당 언어의 규칙을 알고리즘으로 만들어 적용하면 더 나은 결과를 만들 수 있습니다. 예를 들어, 우리말 어순에 맞게 동사를 맨 뒤로 이동시키면 이런 모습이 되겠네요.

이제 여기에 조사를 추가하고 문법과 각종 구문을 언어 규칙으로 만들어서 추가하면 어떤 문장이라도 번역할 수 있겠죠? 이런 방식을 “규칙 기반 자동 번역(Rule-based MT)”이라고 합니다.

이런 식으로 컴퓨터 자동 번역기를 만들었던 것이 최초의 방식이었습니다. 언어 공학 박사들이 복잡한 규칙을 만들고 그러한 규칙을 프로그램으로 하나씩 코딩했었죠. 냉전 시기에 소련의 통신을 엿듣고 번역하려고 세계적인 언어 공학자들이 수년간 번역 시스템을 만들기도 했습니다.

그러나, 이 방식은 초등학교 교과서 같이 쉽고 간단한 문장만 번역할 수 있었고 정작 일상에서 필요한 문서들은 제대로 번역하지 못했습니다.

그렇습니다. 우리가 사용하는 언어는 정형화된 규칙을 항상 따르지는 않죠. 언어는 수많은 예외가 있고, 지역과 문화에 따라 변화무쌍하게 달라집니다. 시대에 세대에 따라 규칙은 계속 바뀝니다.

 

 

더 나은 번역, 통계적으로 접근

규칙 기반 자동 번역 시스템의 실패 후 시작된 새로운 시도는 문법 대신 확률과 통계 기반 모델을 만드는 것이었습니다.

통계 기반 번역 시스템을 구축하려면 엄청난 양의 학습 데이터가 필요하며, 학습 데이터는 언어쌍으로 있어야 합니다. 이러한 언어 쌍 데이터를 전문 용어로 “병렬 코퍼스(parallel corpora)”라고 합니다. 17세기에 이집트 상형문자를 판독하기 위해 과학자들이 로제타스톤을 사용했던 것처럼 병렬 코퍼스를 사용해서 언어 번역을 어떻게 해야 할지 컴퓨터 프로그램으로 추론할 수 있습니다.

학습 데이터를 구하는 것이 관건인데, 유럽의회로부터 21개 언어로 된 번역 데이터를 손쉽게 구할 수 있었습니다. 유럽의뢰는 모든 의사 진행 자료를 21개 언어로 번역해서 보관하고 있었습니다. 이 자료는 누구나 접근할 수 있습니다.

 

 

확률적 접근법

통계 기반 번역 시스템의 가장 근본적인 차이는 한 가지 동일한 번역을 도출하지 않고 수천 가지 가능한 번역을 만든 다음 각각 정확도 순위를 매깁니다. 정확도 순위는 학습 데이터와 비교한 근사치를 기준으로 판단합니다. 어떻게 동작하는 것인지 좀 더 자세히 살펴보겠습니다.

 

1 단계: 문장을 작은 단위로 쪼개기

쉽게 번역할 수 있는 작은 단위로 쪼갭니다.

 

2 단계: 조각별로 적용할 수 있는 모든 번역 찾기

조각별로 학습 데이터를 뒤져서 기존 번역을 모두 찾습니다. 사전을 찾는 것이 아니라 실제 사람이 번역했던 데이터를 찾는 것입니다. 즉, 각기 다른 문맥에 사용되었던 다양한 표현을 가져올 수 있죠.

여러 표현 중 학습 데이터에 사용되었던 빈도가 높은 순으로 순위를 매깁니다.

 

3 단계: 조합 가능한 모든 번역을 나열하고 가장 근접한 번역 찾기

이번에는 각 조각을 모아서 조합 가능한 모든 번역을 만듭니다. 위 2단계에 나열한 번역을 모두 조합해 보면 672가지 번역을 만들 수 있죠. 어순, 조사, 어미 등 문법적 요소까지 정리된 것을 전제로 몇 가지 나열해 보겠습니다.

 

나는 / 6시에 / 약속을 / 갖고 있다

나는 / 6시에 / 약속이 / 있다

나는 / 6시에 / 약속을 / 소유한다

나는 / 6시에 / 약속을 / 먹다

 

이렇게 나열한 뒤에는 가장 “인간다운” 번역을 찾아야 하는데, 이를 위해 각 조합 문장을 다시 책이나 뉴스 기사 등 학습 데이터에 실제 사용되었던 수백만 개의 문장과 비교해서 가장 유사한 (높은 확률) 형태를 보이는 조합을 찾습니다.

 

 

통계 기반 자동 번역, 새로운 지평 그러나 한계점 드러남

학습 데이터가 충분하다면 통계 기반 번역 시스템은 규칙 기반보다 훨씬 뛰어난 결과를 보여줍니다. 2000년 초반 Google Translate의 탄생 배경이기도 하며, 자동 번역 시스템이 비로소 대중에게 많이 알려지게 되었습니다.

자동 번역 품질이 분명히 향상되었으나 개발과 유지가 매우 복잡하고 힘들었습니다. 새로운 언어쌍을 개발할 때마다 언어전문가가 필요했고 여러 단계를 거쳐야 하는 번역 프로세스를 계속 뜯어고쳐야 했습니다.

이러한 복잡성으로 인해 편법(?)이 자행됩니다. 예를 들어, 조지아어(Georgian)에서 텔루구어(Telugu)로 번역해야 한다면, 내부적으로 영어(English)로 먼저 번역한 후 영어에서 텔루구어로 번역하는 방식을 선택할 수밖에 없습니다. 왜냐하면 조지아어에서 텔루그어로 번역된 학습 데이터를 충분히 확보하기 어렵고, 이 둘 언어의 언어 공학 연구도 쉽지 않기 때문입니다.

언어학 박사 공학 박사 없이 컴퓨터가 이런 복잡성을 모두 해결해 줄 수 있다면 어떨까요?
다음 편에 이 내용을 살펴보겠습니다.

-이어서-

 

 

 

 

 

 

 

Click here > WiseTranslate.net ▼

 

WiseTranslate

 

 

댓글 남기기