구글식 차세대 언어처리 - 검색으로 환원하라.

 

Symbolic AI도 아니고, 구조적/확률적 AI도 답이 아니라고 생각합니다.

 

차세대 언어처리는 모두 '데이타 기반 검색'으로 모든 문제를 풀어내야 하지 않을까 싶습니다. 특정 목적에 맞게 1차 가공된, 무지막지하게 많은 대량의 데이타를 두고, 그중에서 원하는 패턴을 '검색'함으로써 해당 문제를 풀어내는 식으로 문제를 바꾸는 것이 요즘 세상에 맞는 방법이라고 생각합니다.

 

그런 방식으로 문제가 거의 '풀려버린' 영역이 하나 이미 존재합니다. 바로 '음성생성'(Text-To-Speech)분야입니다. 생성의 문제를 풀기 위해서 각종 수학적/구조적 모델도 만들고 했지만, 결국 메모리 용량이 늘어나자, 대량의 음성 데이타를 '거대한 메모리 공간에 로딩해 놓고' 메모리 내에서 적절한 음성 데이타를 검색해서 조합하는 방식으로 문제가 풀렸죠. 요즘에는 거의 기계음과 사람음을 구분하기 힘들 정도로 정교해졌으니까, 문제가 풀렸다고 할 수 있겠죠. 생성 문제는 워낙 쉬운(?) 문제라서 몇 기가 바이트 수준의 메모리로 충분히 풀수 있는 것이겠죠. 요즘에 보면 몇 기가 메모리가 껌이지만, 옛날에는 하드디스크 용량이 200MB이면 어마어마하게 크다고 느꼈던 시절이 있었습니다.

 

미래에 우리 5살난 아들놈이 대학 다닐 때 쯤이면, 아마도 개인 PC 메모리가 몇십 테라 바이트 단위가 되어 있을 것입니다. 디스크 공간은 뭐... 적어도 페타 바이트 단위로 계산하고 있지 않을까요? 세계인의 희망, 삼성전자가 열심히 뛰고 있으니까, 그런 여유 공간은 무난히 확보될 것으로 보입니다.

 

"1 페타 바이트 디스크 공간과 1 테라바이트 메모리 공간을 줄 테니까, 니가 언어공학 문제를 새롭게 모델링해 봐... 어떡할래?" 이런 문제가 21세기에 적합한 문제가 되겠죠.

 

예전에는 메모리 자체가 워낙 귀해서 문제를 이런 식으로 풀기가 힘들었지만... 요즘에는 메모리와 샘플 데이타를 무한히 공급받을 수 있는 시대이니까... 다른 어려운 문제들도 이렇게 도전해 볼 수 있을 것이라고 생각합니다.

 

그 중에 하나가 '기계 번역'이 되지 않을까 싶습니다. 예전에는 기계 번역 문제를 풀기 위해서, 소스 언어를 형태소/구문/문장/문단 수준에서 이해를 하고 이해된 결과를 다시 타겟 언어로 생성해 내는 과정을 거치는 식으로 문제를 풀려고 했었죠. 이런 식으로 풀려면 반드시 '이해'라는 과정을 거칠 필요가 있습니다.

 

하지만 '이해과정이 완전히 생략된 기계번역'이 가능할 것으로 보입니다. 기계가 영어를 우리말로 번역을 해 내기는 하지만, 그 의미를 이해하고 있지는 않은 것이죠. 그야말로 기계적으로 번역만 하는 것입니다. '이해도 하지 않은 번역'이 번역으로서 가치가 있을까요? 아마 충분히 가치가 있을 것입니다.

 

이해를 기반으로 하는 번역이 아니라, '경험을 기반으로 하는 번역'이 될 테니까요.

 

오늘 우리 아이에게 'bedaurinde/베다우린데/'(애석하게도)라는 에스페란토 단어를 처음 들려 줬습니다. 하지만 그 단어가 어떤 뜻인지 아이에게 가르쳐 주지는 않았습니다. 사실 아이에게 그 의미를 정확하게 가르쳐 줄 방법도 없습니다. 다섯살 짜리 아이가 그 단어의 의미를 어른이 이해하듯이 이해했을 것이라고 생각하지는 않습니다. 하지만 그 단어를 들은 아이는 그 단어와 상황을 적절하게 기억해 뒀다가 필요한 순간에 적절하게 꺼내서(검색해서) 활용할 것으로 믿습니다.

 

대량의 병렬 텍스트(영어-우리말, 우리말-영어)를 확보하고 있다면, 새로 번역해야 할 문장과 가장 유사한 콘텍스트를 가진 구문 패턴을 부분부분 발췌(검색)해서 얼기설기 조합해 냄으로써 훌륭한 번역 결과를 얻을 수 있을 것으로 보입니다. 저도 번역하기 곤란할 때, 구글 검색을 통해서 자연스런 표현을 찾아내곤 합니다.

 

다만... 이게 현재 우리가 가진 기술적인 방법만으로 이 문제를 풀려면, 병렬 텍스트의 양이 좀 많을 필요가 있습니다. 좀 심하게 많을 필요가 있겠죠. 상상을 초월할 만큼 많이 필요할 지도 모릅니다. 예를 들어 ... 10조 또는 100조개의 병렬어구 정도라고 할 수 있겠죠... 메모리 용량으로 치자면, 100TB ~ 1PB 정도 되지 않을까 싶습니다.

 

현실적으로 지금 당장 특정 연구실 내에서 이런 대용량 데이타를 구축하고 핸들링하는 것이 무리가 있겠지만... 지구상에서 그것을 할 수 있는 회사가 이미 존재합니다. 바로 구글이죠. 구글은 검색을 위해서 수십만대의 컴퓨터를 동원한다고 알려져 있습니다. 페타바이트 단위의 데이타가 구글에서는 이미 껌이죠.

 

구글에 있는 연구원들은 그런 대용량 병렬 데이타를 만들려는 시도도 여러번 하고, 그것을 공개하기도 하는 것으로 봐서... 아마도, 조만간 제법 품질좋은 기계 번역을 무료로 얻을 수 있지 않을까 싶습니다.

 

하지만 잊지 말아야 할 것은, 기계가 아무리 그럴싸하게 번역을 해 낸다손 치더라도, 절대로 기계가 그 문장들을 '이해하고 있지 않다'는 사실입니다. 왜냐하면 아직까지 인간은 '이해한다'가 뭘 의미하는지 그 개념조차 정확하게 정의하지 못하고 있는 실정이기 때문입니다. 그에 반해서 '번역한다'가 얼마나 명확한 개념인가 생각해 보면 알 수 있습니다.

 

틀림없이 '번역'은 매우 쉬운 것이고, '이해'는 매우 어려운 것이라고 생각합니다. 따라서 이해하지 않고 번역하는 좀 바보스럽지만 매우 번역을 잘하는 기계가 나오는 것이 별로 이상한 현상은 아니라는 것이죠.

 

우리 아들놈 역시 그런 상태입니다. 2개의 언어를 무리없이 활용하는 것처럼 보이지만, 막상 그 언어를 아들놈이 '이해하고 있을까?'라고 생각해 보면... 글쎄요... 설사 이해를 한다손 치더라도, 제가 생각하는 '이해'와는 전혀 다른, 매우 매우 조잡한 구조(단순 패턴 매칭)를 가진 것임에 틀림없습니다. 아들놈이 주어/동사/목적어 같은 문법을 알겠습니까? 아니 그런 것의 존재에 대해서 어렴풋한 짐작이라도 하고 있을까요? 전혀 아니죠. 그냥 얘기할 때 보면, 더러더러 앵무새가 따라 하는 것과 큰 차이가 없어 보일 때가 더 많습니다.

 

반복적 경험에서 얻어낸 단순 매칭(검색) 메카니즘이 있지 않을까 싶습니다.

 

그런 면에서 구글에게 기대를 걸어 봅시다. 조만간 기계 번역이 풀리는 날이 오기를...

 

다시 한번 21세기의 언어공학 연구실에 있는 모든 연구원/대학원생들에게 질문합니다.

"1 페타 바이트 디스크 공간과 1 테라바이트 메모리 공간을 줄 테니까, 니가 언어공학 문제를 새롭게 모델링해 봐... 어떡할래?"

 

--上善若水

 

링크: http://multilingual.tistory.com/   http://blog.naver.com/effortless

 

스폰서링크: http://www.mobigen.com/   http://product.mobigen.com/  (웹메일, 스팸메일, 대량메일 솔루션)