brunch

You can make anything
by writing

C.S.Lewis

by 히말 Jun 17. 2021

64차원 공간에 사는 단어들

[책을 읽고] 조던 엘렌버그, <틀리지 않는 법> (2)

음? 64차원?


이 책에서 가장 인상적인 내용은 단연 제13장과 제15장에 나온다. 제13장은 사영 기하학, 제15장은 다차원 벡터에 관한 내용이다. 우연찮게도 나는 요즘 머신러닝 관련 책들을 읽고 있는데, 거의 모든 머신러닝 알고리즘이 다차원 벡터를 사용한다. 그래서 해당 부분을 읽으면서 더욱 즐거웠다.


머신러닝 라이브러리에 word2vec이라는 게 있다. 단어를 다차원 벡터로 전환해 주는 것이다. 말하자면 64차원 공간에서 그 단어의 자리를 찾아주는 것이다. (단어 하나하나마다 64개의 특징이 있다고 가정하는 것이다. 물론 그 특징들이 뭔지는 컴퓨터도 모른다.) 이렇게 단어들에게 제자리를 찾아주고 나면, 아주 재미있는 일을 할 수 있다. 예컨대 '왕 - 남자 + 여자'라는 식의 답은 뭘까? 여왕이다. 


사람에게는 직관적이지만 컴퓨터에게는 거의 불가능한 추론이었다. 단어를 다차원 공간 벡터로 변환하면 이런 계산이 가능해진다. (그렇다고 그렇게 쉽게 되지는 않는다. 나는 구텐베르그 프로젝트에 올라와 있는 98,552 문장의 말꾸러미(corpus)를 이용해서 워드 벡터를 만들어 보았는데, '아저씨 - 남자 + 여자'라는 식을 계산하게 하면 '아내'라는 동문서답을 내놓는다. 더 규모가 큰 말꾸러미를 사용하면 좀 나아질 것이다.)


벡터는 화살표와 같다. 다차원 어휘 공간에서 어떤 단어의 벡터는 원점에서 그 단어 방향으로 그은 화살표다. 연관성이 꽤 있는 두 단어에 대해 벡터를 그리면, 아무래도 비슷한 방향으로 화살표가 그어진다. 좀 더 수학적으로 말하자면, 두 벡터 사이에 예각이 성립한다. 더 정확하게 말하면, 두 단어 벡터의 상관관계는 두 벡터의 코사인 값으로 정해진다.


5000개의 단어 벡터를 tSNE로 2차원 평면에 투사한 그림


상관관계가 추이적이지 않은 아주 직관적인 이유


다차원 벡터를 현실 문제에 적용해보자. 어떤 미국 사람이 부유한 카운티, 예컨대 샌터클라라 카운티에 살고 있다면 그는 아무래도 부유할 가능성이 높다. 부유한 카운티에서는 일반적으로 민주당에 표가 몰리는 경향이 있다. 


아리스토텔레스의 목소리가 들린다. A면 B고, B면 C라면 당연히 A에서 C로 화살표를 그을 수 있는 것 아닌가. (이것을 추이성이라 한다. <호랑이형님>의 추이와는 상관없다.) 부자는 부유한 카운티에 살고, 부유한 카운티는 민주당을 뽑으니 부자는 민주당에 투표해야 한다. 그런데 저자에 따르면 현실은 그렇지 않다고 한다.


그렇다. 비밀은 상관관계가 철저하지 않은 데 있다. 부자라고 다 부유한 카운티에 사는 것이 아니며, 부유한 카운티에서도 민주당을 찍지 않는 사람들이 존재한다. 그런데 이걸 다차원 벡터로 설명하면 훨씬 근사하게, 그리고 이해하기 쉽게 설명이 가능하다.


부유한 카운티에 사는 것과 부자인 것은 서로 예각을 이루는 벡터다. 부유한 카운티에 사는 것과 민주당을 찍는 것도 서로 예각인 벡터다. 그러나 이 두 쌍이 서로 예각이라고 해서, 가운데 한 단계를 건너 뛴 쌍, 즉 부자인 것과 민주당을 찍는 것이 서로 예각을 이룰 이유는 없다. 예컨대 앞의 두 쌍이 70도를 이루고, 뒤의 두 쌍이 60도를 이룬다면 각각의 쌍은 예각을 이루어 양의 상관관계를 가지지만, 둘을 합친 것은 130도이니 둔각이다. 즉, 오히려 음의 상관관계를 가진다.


아래 그림을 보자. 내가 만든 5000단어짜리 워드벡터, 즉 위의 가오리처럼 생긴 그림의 일부를 확대한 것이다. 원점에서 단어쪽으로 선을 그은 것이 워드벡터다. danish와 warlike, warlike와 faint는 서로 예각을 이룬다. 즉 이들 단어쌍은 서로 양의 상관관계다. 그러나 danish와 faint는 둔각을 이루고 있다. (그러니까 덴마크 사람들은 호전적이고, 호전적인 사람들은 기절하는 경향이 있지만, 덴마크 사람들은 오히려 기절을 잘 안 한다!)



상관관계는 추이적이지 않다. 오히려 혈연관계와 더 비슷하다. 나는 아들과 혈연관계이고, 아들은 내 아내와 혈연관계이지만, 아내와 나는 혈연관계가 아니다. (577쪽)


특히 언론 기사가 이런 사실을 무시하고 얼토당토않은 주장을 하는 경우가 많다. 예컨대 커피가 심장에 좋고 심장이 튼튼한 사람들은 당뇨병에 덜 걸린다고 하자. 이 두 가지의 상관관계가 사실이라 하더라도, 커피를 마시면 당뇨병에 덜 걸린다는 주장은 성립하지 않는다. 상관관계는 추이적이지 않기 때문이다. 앞의 두 벡터 쌍이 서로 예각을 이룬다고 해도, 첫 번째와 세 번째 명제는 서로 둔각을 이룰 수도 있다.

이전 03화 논리적으로 생각하기만 해도 수학이다
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari