AI 엔지니어가 말하는 인공지능의 역사, 그리고 챗봇
2016년 딥마인드의 ‘알파고’와 이세돌의 승부 이후 인공지능은 꾸준히 대중의 관심 내에 존재해 왔다. 하지만 널리 알려진 것에 비해 일반인들이 이해하기에 어려운 분야이기도 했다.
2018년 현재 인공지능 기술은 어디까지 발전했을까. 챗봇은 어떻게 동작하고 있는 걸까. 이러한 궁금증을 다소 해소해주는 자리가 구글 캠퍼스 서울에 마련됐다.
23일 캠퍼스 토크 행사서 AI 스타트업 ‘스켈터랩스’의 이충식 엔지니어가 대화형 인공지능 기술의 발전과 접목, 챗봇 시장의 변화를 설명했다. 이하 강연 내용 정리.
엘리자와 50년이 지난 현재의 인공지능
1960년대, ‘엘리자(ELIZA)’라는 챗봇이 세상에 처음 나왔다. 엘리자는 ‘나는 엘리자야. 어떤 주제에 대해 말하고 싶니?’, ‘무슨 문제가 있는 지 얘기해봐’라며 대화를 이어간다. 대화의 흐름을 보면 그때 만들어 졌다는 게 믿기지 않을 정도다. 50년이 지난 현재 대중은 애플의 시리를 보며 챗봇이 많이 발전했음을 느낀다. 동시에 사람을 응대하는 서비스는 모두 봇으로 바꿀 수 있겠다고 생각한다. 그러나 시리는 그 정도로 완벽하지는 않다. ‘can you call me an ambulance?’를 보고 단순히 (당신의 이름을) 앰뷸런스로 불러드릴게요’ 라고 응답하는 수준이다. 시리 또한 패턴으로 구현돼있는 챗봇은데, 위 사례는 엔지니어가 예상한 패턴에서 벗어나 있기 때문이다.
아이가 말을 배우는 과정은 인공지능의 학습과정과 같다
아이가 말하는 과정을 보자. 부모는 ‘엄마’ ‘아빠’라는 말을 반복한다. 아이는 단어가 들릴 때 앞에 무엇이 보이는 지를 기억한다. 즉 시각 정보와 청각 정보를 연상하는 것이다. 패턴화를 하는 순간이다.아이는 이외 단어를 습득하는 동안 패턴화를 한다. 감각으로 들어오는 모든 정보를 모아 발전시킨다. 성인이 외국어를 배우는 과정도 이와 같다. 외국어를 계속 보고 듣다 보면 중복 사용되는 단어가 익숙해진다. 배우는 언어의 단어/문장을 보며 분류하고, 거기서 모르는 것만 분류해 익숙해질때까지 패턴을 익히는 것이다. 인공지능은 인간의 지능을 기계가 흉내 내도록 하겠다는 것이다. 연구자들은 인간의 패턴 인식 능력을 기계에 어떻게 하면 대입할 수 있을 지를 연구한다.
연상과 패턴을 활용한 기계 번역부터 뉴럴 네트워크까지
기계 번역도 여기에 기인한다. 사전에 나오는 단어를 미리 연결해 말이 되는걸 찾게 하는 게 기본 원리다. 이것도 연상과 패턴이 활용된다. 이를 ‘딥러닝’이라고 한다.
구글번역을 예로 들어보자. 구글번역은 처음에 컴퓨터에 다른 언어 텍스트 두 개를 주고 패턴을 익히게 했다. 이후 두 문단에서 공통으로 추출되는 단어가 나올 확률을 학습시키고 매핑 작업을 거쳤다. 이렇게 발전시키는 동안 자동완성 기능이 만들어졌다. 꾸준히 검색되는 단어의 경우 앞 몇 글자만 써도 어떤 단어를 검색할 지 알 수 있도록 학습돼 가능한 일이었다.
그러다 5년 전부터 뉴럴 네트워크(인간의 뇌 기능을 모방한 네트워크)가 급부상했다. 머신러닝 연구의 깊이가 깊어질수록 기계를 훈련시키고 조절하는 데 어려움을 겪었기 때문이었다. 특히 숫자는 무한히 늘어날 수 있다. 이를 모두 모델링하면 컴퓨터가 담아내질 못하기에 변환해야 한다. 제대로 처리를 해주지 않으면 정확한 명령수행이 되지 않는다. 뉴럴 네트워크에서는 앞에 인코더를 달아둔다. 문장이 들어오면 어떤 표현으로 이를 압축한다. 그 다음 디코더에 던지면 이를 다른 나라 말로 풀어내도록 훈련을 시킬 수 있다. 그 결과 현재 ‘2016년 당시 미국 대통령의 딸이 누구냐’는 질문에 기계는 정확히 답을 할 수 있게 되었다. 구글은 이를 위해 자사 서비스 이용자의 쿼리를 토대로 패턴을 만들었다. 패턴이 반복될수록 검색 결과는 점차 정확해졌다.
뉴럴 네트워크를 활용한 워드임베딩이 챗봇으로 확장
워드임베딩이란 게 있다. ‘문장 간의 유사도 분석을 위해 단어 간 의미 연관성을 거리 단위로 표현하는 것’이다. 3차원으로 나눠 보면 개와 고양이는 가까운 거리에 있다. 그에 비해 자동차와 개와 고양이간 거리는 멀 거다. 사물과 동물 등 아예 개념이 다른 존재이기 때문이다. 서로 다른 개념 간 거리는 넓히고 비슷한 건 모아 그래프를 만든 것, 이를 워드임베딩이라 한다. 여기엔 뉴럴 네트워크가 이용된다.
워드임베딩은 같은 단어끼리 서로 다로 뜻을 가질 수 있는데, 이 때는 같다는 것만으로 거리가 벌어지진 않는다. 그게 가능하다면 단어뿐 아니라 문장과 문서도 압축할 수 있다는 가정을 할 수 있다. 여기서 챗봇이 나오게 된다.
챗봇은 정해진 응답 규칙을 바탕으로 메신저를 통해 사용자와 대화할 수 있도록 구현된 시스템이다. 원리는 이렇다. ‘서울의 날씨가 어때?’라고 물으면 챗봇은 각 문장을 나눠 패턴을 파악한다. 이후 사용자가 어떤 의도로 질문하는지 파악한다. 이 때 엔지니어가 A 물음엔 B로 대답하라고 미리 등록을 해두면 자연어로 대답하게 되는 것이다.
한국어는 단어에서 품사와 조사를 떼어내지 않으면 의미를 알기 어렵다. 이럴 땐 데이터를 봐야 한다. 그러면 패턴이 보인다. 특정 품사가 나온 뒤 나올 확률이 높은 패턴을 파악한다. 이를 모델링해 확률로 묶어낸다. 그 결과 98%의 정확도를 보인다.
보다 많은 데이터를 보유한 기업이 AI 대결에서 승리
데이터가 많을수록 기술을 고도화하기 유리하다. 검색과 답변 기능이 비약적으로 발전한 것처럼, 공개 가능한 범위의 채팅 데이터가 많아질수록 챗봇도 발전할 수 있다. 패턴과 모델링을 거쳐 정교한 대화가 가능한 감정적인 챗봇을 만들 수 있는 것이다.
챗봇 운영 모델을 만들 때 규모에 비해 데이터가 많지 않거나 보유한 데이터가 모두 다른 목적을 포함하는 경우가 있다. 이 경우엔 인풋과 아웃풋을 가지고 훈련하며 극복해나갈 수 있다. 혹은 언어전환을 통해 이뤄낼 수 있다.
중요한 건 특정한 언어를 통해 발전하지 않아야 한다는 거다. 글로벌 기업은 특정 기준에 함몰되지 않도록 개발한 뒤 개별 필요 요소를 포함한다. 국내 기업은 국내 언어로 표준화해 만드는 경향이 있다. 그렇게 되면 시장이 너무 작은 데다 만약 다른 언어로 전환하려고 할 때 많은 노력이 들기에 유의해야 한다.
성장이 점쳐지는 챗봇 시장, 고객과 엔지니어간 이해를 좁혀야
AI에는 집단 간 인식 차이가 있다. 일반 대중과 엔지니어가 생각하는 AI 발전 단계가 다른 것이다. 이 차이를 좁히지 않으면 유효한 비즈니스를 만들어내기 어렵다. 사업 관계자는 기술에 대한 이해를, 엔지니어는 고객을 생각하며 만들어야 한다.
1966년 개발된 챗봇 엘리자(Eliza) 사진=Afflictor.com
참고1) 세계적 기업의 인공지능 연구 개발 정도
엔지니어가 패턴 마이닝을 빨리 수행할 수 있도록 하는 게 관건이고 일반인도 작업을 할 수 있어야 한다. 전문가가 아니면 이 작업을 어려워 했다. 그래서 기업은 누구라도 쉽게 작업할 수 있도록 한 툴을 개발하기 시작했다. 구글과 아마존, 페이스북에선 일반인도 샘플 문장을 입력한 뒤 다음에 올 행동을 수행할 수 있도록 하는 매핑 툴을 만들고 있다.
참고2) 스타트업이 가져야 하는 데이터 축적 전략
많은 기업이 데이터를 모으기 위해 혈안이다. 다만 아무리 큰 기업이라도 고객의 채팅 데이터를 함부로 보거나 가공할 수 없다. 이 작업을 하는 순간 자칫 고객으로부터 신뢰를 잃을 수도 있기 때문이다. 그래서 현재 각 기업이 보유한 데이터가 적다는 건 공통사항이다. 저마다의 방식으로 데이터를 모으는 데 노력 중이다.
그렇다면 스타트업은 어떻게 데이터를 모아야 할까.
어떤 쿼리가 무엇으로 클릭됐다는 건 볼 수 있다. 그것만으로도 데이터를 모으는 데 큰 힘이 된다. 이를 프로세스화 하면 챗봇 내 대화 데이터는 쌓인다. 사용자가 쓴 데이터의 의도를 유추하며 데이터를 모으는 전략을 펼칠 수 있다.