완벽한 언어는 없고, 사람의 개입이 없는 완벽한 AI도 없다
아래 짤을 보시면 어떻게 생각되시나요?
진짜 상사분께서는 부하직원의 마음을 알아준 것일까요? 아니면 너 일하기 싫냐고 물어보면서 은근히 혼을 내는 상황일까요? 여러분들의 의견은 어떠신가요? ㅎㅎ
이처럼 사람의 언어를 해석하고 이해하는 것은 상당히 미묘하고 어렵습니다. 같은 단어라도 상황이나 맥락에 따라서 사람들끼리도 해석이 갈리기 때문입니다. 어린 시절부터 언어를 배워서 사용하고 있지만, 한평생 어려운 것이 의사소통이기도 합니다.
자연어 처리는 사람이 사용하는 언어를 컴퓨터가 이해할 수 있는 방식으로 가공해서, 그 결과물을 이용하는 분야인데요. 자연어 처리 과정에서는 컴퓨터의 성능도 중요하지만, 사람의 개입이 필요한 분야이며 기계적인 방법으로는 한계가 있기 마련입니다. 그리고 그 이유는 언어 그 자체가 복잡계의 산물이며, 사람의 삶을 반영하기 때문입니다.
왜 자언어 처리가 어려운 이유를 언어 자체의 관점에서 한번 살펴보려고 하는데요. 결론부터 말씀드리면 완벽한 사람, 완벽한 언어가 없기 때문입니다. 자연어 처리를 비롯한 AI 및 데이터 분석의 분야는 그래서 결국 사람의 주관적 개입이 큰 영향을 미치게 됩니다. 인공지능이 아니라 인간지능이라고 할까요?
첫 이유는 다소 쌩뚱맞고 어려워 보일 수 있는데요. 철학적인 관점에서 애초에 세상 자체가 그렇게 생겨먹었기 때문입니다. 괜히 철학자들이 수천년 묵은 논제로 말씨름하는 것이 아닐 겁니다.
우리 모두는 각자 신체의 감각을 이용해 저마다 세상을 인식하고 있으며, 다른 사람이 어떻게 세상을 인지하는지는 알 수 없습니다. 사람마다 감각기관과 그것을 해석하는 뇌의 차이가 있기 때문인데요. 어디 사람뿐일까요. 박쥐는 초음파를 보내 사물에 반사되는 것을 감지하여 세상을 인지합니다. 인간은 박쥐가 보는 세상이 어떨지 알지 못할 뿐더러 상상하기도 어려울 겁니다.
언어도 마찬가지일텐데요. 맨 위 짤방처럼 나는 A라고 생각하는 뜻이 누군가에겐 B로 받아들여지고 있을 수 있습니다. 공통적으로 기본 교육을 받았으며 같은 국가 내에 있어도 그렇습니다. 각자 쌓아온 경험이나 어울리는 집단이 다르면 언어를 사용하는 습관이나 해석 방식이 달라질 수 있습니다. 각자가 바라보는 세상이 다르기에, 그 간극을 메워주는 소통 방식이 언어이지만, 각자가 바라보는 언어마저도 다른 셈입니다.
위는 세종대왕이 훈민정음을 반포하며 작성한 서문입니다. 여기에 '어엿비'라는 단어가 등장하는데요. 국립국어원에 따르면 '어엿브다'는 불쌍하다라는 뜻으로 중세에 쓰이다가, 근대에 와서는 '불쌍하다'와 '예쁘다'라는 두 가지 뜻으로 쓰이다가 오늘날에 와서 '아름답다'라는 뜻으로 사용되기 시작했다고 밝힙니다.
모두가 아시겠지만 이처럼 쓰던 단어의 뜻이 바뀌는 것을 언어의 역사성으로 부릅니다. 언어는 사람이 사용하는 것이기 때문에, 사람들이 어떻게 사용하느냐에 따라서 특정 단어의 뜻이 바뀌기도 하고, 전반적인 언어의 구조가 달라지기 마련입니다.
이는 언어의 사회성과 연결되는데요. 언어의 사회성은 언어는 사회적 규범이며 약속이라는 뜻입니다. 그런데 사회적 규범과 약속은 사회 구성원의 여론이 바뀌면 함께 바뀌기 마련입니다. 또한 같은 국가 내에서도 수많은 다양한 작은 사회에가 있기 때문에, 세부적인 언어 규약은 달라지기 마련일텐데요. 일반 대중들이 법률 용어나 의학 언어를 해석하기 어려운 이유는 법률가와 의사 사회의 언어 규약이 대중적인 언어와는 다르기 때문일 것입니다.
이러한 특성을 대중과학자 리처드 도킨스는 '밈'이라는 용어로 설명하였습니다. 생물이 진화하는 과정에서 유전자를 복제하면서 변이가 생기고, 각자 다른 환경에 적응함으로써 다양한 모습을 보이듯, 언어나 문화적 특성도 유사한 과정을 겪는다는 것입니다.
사람들이 상호작용하면서 쓰는 언어는 사는 지역, 사용하는 사람들의 집단 등에 따라서 변주가 계속됩니다. 같은 한국에 살더라도 지역에 따라 사투리를 쓰는 사람들이 있는 이유입니다. 또한 한편으로는, 현재의 영어처럼 어떤 언어는 사회적으로 영향력이 크기 마련입니다. 이는 프로그래밍 언어도 마찬가지일텐데요. 프로그래밍 언어가 새로 생기고 계속 변화하는 과정 내에서 상대적인 영향력이 더 큰 언어가 있기 마련일겁니다. 그리고 그것은 시대에 따라서 변해갈 것입니다.
이처럼 언어 자체가 가변적인 것이기에, '완벽한 언어'라는 것은 있을 수 없습니다. 그렇기 때문에 사람의 언어를 완벽하게 구사하는 기계도 있기 어려울 것입니다. 이에 더해 사람의 뇌와 신체는 너무 복잡하고, 언어는 그 복잡한 신체의 산물이기 때문에, 컴퓨터로 사람의 특성을 일부만 구현하는 것은 어렵습니다.
사회에 AI라는 충격을 주었던 알파고의 예시를 들어보겠습니다. 바둑에 수를 두는 모든 경우의 수는 10의 768승으로, 우주에 존재하는 모든 원자의 수보다 많다고 하죠. 현존하는 컴퓨터로 이를 계산하는 것은 당연히 불가능합니다. 그래서 알파고의 경우 이 모든 경우의 수를 학습하는 것이 아닌, 기존의 기보를 바탕으로 학습하여 '승리 확률이 높은 수'를 계산하도록 설계되었습니다.
수가 너무 크긴 하지만, 어쨌든 모든 경우의 수가 존재하는 바둑의 경우에도 이처럼 사람의 손을 탄 기보를 학습할 수 밖에 없는데요. 심지어 언어는 정답이 없이 계속 변하고, 사회마다 해석하는 방식이 다릅니다. 그러니 언어를 학습하는 자연어 처리의 경우에는 어떤 학습 데이터를 이용하는지가 매우 중요합니다. 잘 작동하는 AI를 만들기 위해서는 일일이 사람이 노가다를 해줘야하는 부분도 존재합니다. 마치 어린 아이에게 말을 가르치는 느낌이라고 할까요? 그래서 자연어 처리의 과정을 보면, 아이에게 말을 가르치는 것과 매우 유사하다는 느낌을 받기도 합니다.
그럼에도 생물학, 금융 등 특정 분야의 언어 데이터를 잘 학습시키면, 그 분야에서 그럭저럭 잘 작동하는 AI를 만들 수 있겠습니다. 챗봇이 그 예시가 될 수 있을텐데요. 특정 기업이 고객 상담 과정에서 자주 등장하는 언어를 컴퓨터에 학습시키면, 꽤 그럴듯하게 작동하는 결과를 얻을 수 있을 것입니다.
그렇지만 정말 사람처럼 말하고 반응하는 자연어 처리 결과를 얻기 위해서는 어려운 점이 많습니다. '사람처럼'이라고 할 때 '사람'에 대한 생각이 사회마다 역사마다 분야마다 다르기 때문일 겁니다.
결국 완벽한 언어가 존재하지 않고, 가변적인 것이기 때문에 완벽한 자연어 처리가 존재하기 어려운 것이며, 이 때문에 사람의 개입에 많이 의존하게 된다는 것을 참고하시면, 이 기술이 만능이 아니라는 것을 느끼실 것이며 좋은 참고 사항이 될 것입니다.