|
[미래&과학]
|
[권오성의 세상을 바꾼 데이터]
주목 받는 자연어 데이터 처리 기술 워드투벡
인간의 말을 배운 기계가 부리는 인간의 말 장난
살짝 기이하고 의외로 철학적인 결과 모음
|
[미래&과학]
|
현대 빅데이터와 인공지능 기술이 가장 활짝 꽃을 피우고 있는 두 분야로 시각과 언어가 꼽힌다. 심층신경망 기술은 컴퓨터의 시각 인지와 언어 이해에 획기적인 발전을 가져왔다.
인간의 언어를 기계가 처리하는 방법에 대한 연구 분야를 ‘자연어 처리’라고 한다. 기계 학습의 발전으로 자연어 처리 분야에도 다양한 처리 기술이 생겨났다. 주목받는 기술 가운데 하나가 ‘워드투벡’(word2vec)이다.
워드투벡은 구글의 토머스 미콜로프(Tomas Mikolov)가 이끄는 연구팀이 개발한 알고리즘이다. 이름에 나타난 그대로 단어(word)를 벡터(vector)로 변환하는 방식으로 작동한다. 즉, 인간의 말을 기계가 이해하고 다루기 쉬운 벡터로 바꿔주는 것이다. 벡터란 벡터 공간상의 방향과 크기를 갖는 한 요소를 말하는데, 익숙한 예를 들자면 힘이 어떤 방향으로 얼마나 세게 작용하는지를 3차원 공간상에 벡터로 나타낼 수 있다.
워드투벡은 단어를 이런 벡터로 변환하는데, 단어의 벡터 공간은 우리가 상상하기 어려운 수백 차원까지 갖는다. 말을 이런 벡터로 표현하면 좋은 점 가운데 하나는 기계가 무슨 말이 어디에 어떻게 쓰이는지 맥락을 이해할 수 있다는 것이다(또는 이해하는 것처럼 보이게 작동한다).
사람 말을 알아들을 수 있다니 얼마나 유용하고 기특한가. 그런데 기계가 사람의 말을 이해하는 방식은 그 나름의 방식이라 우리와 좀 다르다. 이런 차이가 종종 재밌는 결과를 내놓기도 한다.
그레이스에이버리(graceavery)라는 온라인 이름을 쓰는 한 아이오에스(iOS) 개발자가 지난달 자신의 블로그에
워드투벡 기계가 이해하는 인간의 말에 대한 재미있는 예를 올려 화제가 되었다. ‘기계의 유머’라 해도 좋을 정도로 워드투벡 엔진은 인간의 말에 대한 신선한 해석을 제법 내놓았다.
내용을 살펴보기 전에 간단한 사례와 공식을 하나 먼저 언급할 필요가 있다. 워드투벡이 인간 말의 맥락을 이해한다는 것을 보여주는 대표적 사례가 이런 것이다. ’프랑스 : 파리 = 대한민국 : ??’라는 질문이 있다고 해보자. 우리는 쉽게 “서울”이라 답하겠지만 1+1=2 같이 주어진 공식대로 해석하는 기계에 이런 맥락을 이해한 답을 기대하긴 쉽지 않다. 그런데 방대한 문서로 언어를 학습하고 난 워드투벡 기계는 굳이 공식이 없더라도 저 질문에 대한 답을 유추할 수 있게 된다. ‘프랑스 : 파리’에서 ‘대한민국 : 서울’을 유추하는 게 워드투벡의 능력이다. 이는 ‘프랑스 + 파리 - 대한민국 = 서울’이라는 다른 방식으로 표현되기도 한다.
그레이스에이버리가 사용한 워드투벡의 학습 교재는 ‘구글 뉴스’가 공개한 300차원 벡터로 변환된 300만개 단어로서, 영어가 대상이다. 그래서 영어를 모국어로 두지 않는 사람도 흥미로울 법한 결과만 추렸다. 이제 준비는 되었다. 약간 기이하고, 약간 철학적이기도 한 기계의 인간 언어 이해 방식을 한번 살펴보자.
돼지(pig)는 꿀꿀(oink). 개(dog)는? 멍멍(barks)
고양이(cat)는 야옹(miaowing).
pig : oink = cat : miaowing
소(cow)는 음매(moos).
쥐(mouse)는 찍찍? 아니다, 클릭!
pig : oink = mouse : keypress
그럼 큰까마귀(raven)는? “두 번 다시 없다”.
에드가 앨런 포의 이야기 시 <레이븐>(raven)에 나오는 내용이다.
pig : oink = raven : nevermore
입(mouth)은 중얼(mumble)
pig : oink = mouth : mumble
손(hands)은 짝짝(clap).
pig : oink = hands : clap
그럼 그녀(she)는? “안녕 자기야”
pig : oink = she : Hi sweetie
남자(he)는? “알았다”
pig : oink = he : duly noted
여자 형제는 “다다”,
‘브라더’는 “와섭”한다.
pig : oink = bro : wassup
좀 심오한 것도 있다. 돼지가 꿀꿀하듯, 문학은 “구강성”(orality)을 뱉는다. 구강성이란 입 주변 부위와 관련된 정신적 관심, 기제, 성향 등을 포괄적으로 지칭하는 말로서, 문자가 거의 쓰이지 않는 사회에서 생각과 표현, 의식 구조 등을 일컫기도 한다.
pig : oink = literature : orality
영화는 내레이션(narration)을 멍멍하고
pig : oink = film : narration
그림은 감상의 탄성(appreciative oohs)을 야옹한다.
pig : oink = drawing : appreciative oohs
도널드 트럼프는 “넌 해고야”(YOU’RE FIRED)라고 짖고(트럼프가 대통령이 되기 전 리얼리티 프로그램에서 자주 써서 유행한 말)
pig : oink = Donald Trump : YOU’RE FIRED
아인슈타인은 특수상대성 이론을 외쳤다.
pig : oink = Einstein : E = mc2
사물의 쓰임을 보면 어떨까? 연필(pencil)로 스케치(sketching)한다면, 손(hands)은 대표적으로 무엇을 한다고 컴퓨터는 이해할까?
pencil : sketching = mouth(입) : spreading(퍼트리기)
pencil : sketching = hands(손) : embracing(껴안기)
pencil : sketching = fingers(손가락) : mimicking(흉내 내기)
pencil : sketching = human(인간) : interrelating(상호 관계를 갖기)
pencil : sketching = beliefs(신념) : espousing(신봉하기)
pencil : sketching = thoughts(생각) : discussing(토론하기)
pencil : sketching = wisdom(지혜) : waxing eloquently(웅변적으로 길게 이야기하기)
pencil : sketching = existence(존재) : inhabiting(거주하기)
pencil : sketching = suffering(고통) : recovering(회복하기. 역시 심오하다.)
좋고(good) 나쁨(bad)의 반대말도 단어 속에서 찾아보자. 삶이 좋은 것이라면 따분하게 존재하는 것은 삶의 나쁜 형태다.
good : bad = life(삶) : humdrum existence(따분한 존재)
good : bad = glass(유리) : slashing Leonardo DiCaprio(리어나도 디캐프리오 베기, 응?)
과거에 한 전직 모델이 파티장에서 깨진 유리로 리어나도 디캐프리오 얼굴을 벤 적이 있다고 한다.
good : bad = anvil(모루) : guillotine blade(단두대 칼날)
good : bad = nanobots(나노로봇) : gray goo(회색 점액, 나노로봇이 잘못 발전해서 지구 상의 모든 사물을 나노 단위로 분해하는 상상의 종말론.)
good : bad = philosophy(철학) : ideology(이데올로기)
good : bad = beliefs(믿음) : prejudices(편견)
good : bad = humanistic ideals(인본주의적 이상) : Orwellian Newspeak(오웰의 신어)
오웰의 신어는 디스토피아에 대한 고전 조지 오웰의 <1984>에 나오는 가상의 언어로, 당에서 생각을 억압하기 때문에 다른 언어와 달리 낱말의 숫자가 점점 줄어드는 게 특징이다.
워드투벡은 이렇게 대응 관계뿐 아니라 그냥 두 단어를 더 했을 때(두 벡터를 더했을 때) 가장 유사한 단어(벡터)가 무엇인지도 계산해 준다. 물고기(fish)와 음악(music)을 더하면 무엇이 될까?
bass는 성악의 남자 파트 또는 악기, 베이스란 뜻도 있고, 낚시감으로 유명한 물고기 배스란 뜻도 있다.
물론 빼기도 가능하다. 성경(Bible)에서 신(God)을 빼면 무엇이 될까? 케이스브리프(Casebriefs)가 된다. 케이스브리프란 법대에서 공부를 위해 각종 사례를 요약·응축한 문서를 말한다.
crucifix(십자가) - God(신) = candlestick holder(촛대 받침)
life(인생) - God(신) = career(커리어)
death(죽음) - God(신) = disappearance(사라짐)
church(교회) - God(신) = Masonic lodge(프리메이슨 회합소)
belief(믿음) - God(신) = assumption(가정)
gospel(성가) - God(신) = jazz(재즈)
angels(천사) - God(신) = venture capitalists(벤처 투자자)
이 밖에도 수많은 예가 있다. 그레이스에이버리의
블로그에 가면 나머지를 확인할 수 있다. 물론 그도 훨씬 많은 재밌는 사례 가운데 일부만 찾았을 것이다.
몇몇 예를 보면 알 수 있지만, 사실 기계가 이해한 인간의 말이란 결국 인간 생각의 재현에 불과하다. 이 사례 여러 곳에서도 영어를 쓰는 언중의 사고 방식이 그대로 드러난 것을 알 수 있다. 선생이 인간의 텍스트이니 그럴 수밖에 없다.
그럼 한글은 어떨까? 한글의 경우 워드투벡으로 방대한 문서를 처리해서 이와 비슷한 실험을 한 예는 아직 못 보았다. 하지만 워드투벡 외에도 인간의 말을 처리하는 기계적 방법은 매우 다양하다. 다음에는 한글 뉴스를 상대로 다른 방식의 자연어 처리 실험을 해 본 결과 몇 가지를 소개해 드리겠다.
* 7월9일 10:40 = <레이븐> 에드가 앨런 포우의 시에 대한 내용 업데이트.
권오성 기자 sage5th@hani.co.kr
광고
기사공유하기