Knoweldge Graphs[Prolog]
지식의 필요성
챗봇은 인공지능의 대표적 응용 분야 중 하나입니다.
많은 카드사, 쇼핑 서비스 등이 챗봇 서비스를 운영하고 있으며
빅스비와 시리, 알렉사 또한 음성 인터페이스를 덧붙인 챗봇의 일종입니다.
머신러닝에 기반한 자연어 처리 기술이 발전함에 따라,
챗봇은 상대의 말을 더 잘 이해하고, 더 사람같은 답변을 내놓게 되었습니다.
하지만 머신러닝만을 이용한 챗봇 기술에는 치명적인 약점이 있는데,
다음과 같은 질문에 제대로 답변하지 못합니다.
- 내가 지난주에 새로 산 신발 있잖아, 뭔지 기억하지?
- (아이돌 그룹 A의 멤버 한명이 어제 탈퇴함) A그룹의 멤버 몇명이야?
1번은, 상대가 했던 말을 기억하지 못한다는 것 입니다.
몇 개의 state를 저장하여, 몇 턴의 대화를 이어가는 것은 가능하지만
상대방이 했던 말을 기억하여 정보로 저장해 두고
이를 필요할 때 기억해 내서 대화에 이용하는 것은
머신러닝만 의존한 챗봇에서는 구현이 어렵습니다.
2번은, 챗봇이 알고 있던 정보가 바뀌는 경우입니다.
우리는 A그룹 멤버의 탈퇴라는 정보를, 뉴스 기사 또는 친구에게 듣는 방식을 통해 획득합니다.
그리고 이를 머리 어딘가에 저장해 두고, 필요할 때 기억해 내서 대화에 이용합니다.
2와 같은 질문에 대해, 우리의 답변은 정보의 업데이트 전/후에 다를 것 입니다.
하지만 몇달 치의 대화 데이터를 머신 러닝으로 학습한 챗봇은,
이런 작은 정보의 업데이트에 정확하게 대응하여 개선되기 어렵습니다.
머신러닝은 Black box이기 때문에,
학습된 파라미터 중 어떤 것을 어떻게 업데이트할지 특정하는 것이 어렵기 때문입니다.
지능의 형태와 지식
-
어릴 때 수학 학원에서, 풀이과정을 적도록 배웠습니다.
오답노트를 만들며 내 풀이과정에 무엇이 문제였는지와, 옳은 풀이를 함께 적었습니다.
이렇게 수학 문제 풀이에는 풀이 과정이 있습니다. -
하지만 우리가 아기 얼굴과 노인 얼굴을 구분하는 경우를 생각해 봅시다.
물론 “주름이 적고, 피부가 탄략적이고 이목구비가 작고 둥글둥글하면 아기다”
라는 기준을 만들 수는 있습니다.
하지만 이를 설명할 줄 모르는 유치원생도 어른과 아기를 구분할 줄 압니다.
마찬가지로 우리는 제대로 된 한글 문법을 중학교에나 가야 배우지만,
5살 아기도 완성된 문장으로 말을 곧잘 합니다.
아기가 걷는 법을 배울 때에도
직접 몸으로 움직여 보고 넘어져 봐야 자세가 잡혀, 올바로 걷게 됩니다.
보통 1번 영역의 지능을 사용할 때는 우리가 “생각”을 하지만,
2번 영억에서는 “생각”의 과정 없이 몸이 반응합니다.
눈에 보이는 사람이 아기인지 노인인지, 완성된 문장으로 말을 하는것,
걷는 방법에 대해 매 순간에 깊은 생각의 과정을 거치는 사람이 있을까요?
1번의 수학 문제의 경우,
배웠던 수학 공식에 대한 지식을 바탕으로 연역적 추론을 하여 답을 냅니다.
지식은 인류가 오랜 시간 쌓아온 것이고,
이런 쌓아놓은 지식을 전달받아 올바로 이해해야, 논리 추론이 가능해집니다.
2번과 같은 경우, 수많은 경험을 통해 학습합니다
엄마 아빠의 대화를 듣는 경험, 많은 사람들의 얼굴을 듣는 경험, 걸어보는 경험을 통해서 배웁니다.
보통 2번과 같은 분야에서 머신러닝이 좋은 성능을 보여줍니다
반면 1번의 경우 인공지능에게 정리된 형태의 지식의 전달이 필수적입니다
앞서 챗봇의 약점 중 2번의 경우도 역시
지식의 전달을 받아야 자연스러운 답변이 가능합니다.
1번의 경우는 획득한 정보를 지식형태로 저장하고,
이러한 지식을 검색할 검색 인터페이스가 필요합니다.
물론 검색, 추론 결과를 바탕으로 사람의 언어로 바꿔주는 과정에서는 머신 러닝이 사용됩니다.
때문에 논리 규칙 기반 추론과 지식 베이스, 머신 러닝은
각자의 영역에서 우리 지능 구성의 각 부분을 담당하고,
어떤 하나가 이전의 기술을 완전히 밀어내는 것이 아닌,
Intelligent Agent를 구성하는 데 있어 협력해야 한다고 생각합니다.
(대표적인 사례롤 현재 뜨고 있는 Neuro-Symbolic AI가 있습니다)
이 중 지식 베이스를 그래프 형태로 표현한 것이 Knowledge Graph이고,
인간이 구성한 논리 규칙을 지식에 적용하여 새로운 결과를 추론하는 것이 Reasoning,
그리고 Graph Neural Network (on Knowledge Graph) 를 지식 그래프에 적용하면,
지식에 대한 관찰과 학습을 바탕으로 경험에 기반한 결과를 이끌어낼 수 있습니다.