본 기술은 대화 시나리오를 SNS에서 자동으로 수집함으로써, 수집된 시나리오를 기반으로 대화를 전개하기 위한 추론기반 능동적 데이터 수집 기술에 관한 것이다. 본 기술은 트위터에서 특정 주제에 대한 게시글 전체를 크롤링해서, 필터링 후, 머신러닝 알고리즘으로 질문과 답변으로 분류하고, 이 질문과 답변 리스트로부터 시나리오를 정제하여, 시나리오를 의미벡터 형태로 구축한다. 본 기술에 의해서 특정 영역에 의존하지 않는 다양한 분야의 시나리오가 수집되며, 이 시나리오를 바탕으로 사용자 시변적인 요구에 맞는 현재 트랜드가 반영된 대화가 진행되어 스스로 생각하는 AI기술에 한 발자국 더 접근하게 해 준다.

 

1.  

 

인간은 오래 사귄 친구와 커피숍에 앉아서 이런 저런 이야기를 주고 받으며 인생을 이야기하듯이, AI와도 그렇게 하기를 원한다. 그래서, 대화하는 AI는 최근 많은 연구개발이 진행되고 있지만 기술적 난이도가 높아서, 인간의 기대에 부응하지 못하고 있는 실정이다.

 

2. 관련연구

 

최근 금융업 분야에 온톨로지를 이용한 시나리오 모델링 기법이 연구되고 있다.[1] 그러나, 괄목할만한 접근법은 아직 요원한 형편이다.

 

3. 능동적 데이터 수집

 

인간이 AI와 다양한 주제에 대해서 대화를 나누기 위해서 모든 경우의 대화 시나리오를 수작업으로 구축하는 것은 현실적으로 불가능하다.

 

따라서, 본 연구에서는 소셜네트워크(SNS)에서 다양한 사람들이 다양한 주제에 대해서 토론한 게시글로부터 대화 시나리오를 자동으로 수집, 정제, 가공하여, AI가 사람처럼 여러 주제에 대해서 끊임 없이 대화를 전개해 나가는 것을 목표로 한다.

 

먼저, SNS에서 게시글을 파싱하기 위해서는 위키피디아에서 추출한 어휘를 이용해서 검색을 수행하고, 검색된 URL의 최상위 게시물과 그 게시물로 파생되는 모든 하위 게시물을 추출한다. 그 후, 수집된 문장을 기계학습을 통해서 의미벡터로 표현하고, 질문과 답변을 분류해서 의미태깅한다.

< 전체 시스템 구조 >

하나의 대화시나리오는 질문과 답변의 쌍이 연속 출현해야 한다. 따라서 중복되거나 불필요한 질문, 답변은 제거해서 <질문1-답변1-질문2-답변2…질문n-답변n>의 형태로 추출한다. 아래 그림은 트위터 게시글에서 시나리오추출의 예시이며, 하나의 주제에 대한 토론에서 [시나리오1, 시나리오2]의 형태로, 모두 2개의 시나리오를 추출할 수 있음을 알 수 있다.

 

< 트위터 게시글의 시나리오 표현 예시 >

대화시나리오의 질문/답변 분류는 규칙기반과 머신러닝 방법을 결합한 하이브리드 방법을 사용한다. 대화시나리오의 질문/답변 문장은 각각 의미벡터로 표현되며, 하나 이상의 의미단어가 각각의 질문, 답변 문장을 대표한다.

 

아래 그림은 트위터에서 수집된 약 19,000 Set 대화 시나리오에서 토론에 참여한 화자 숫자별 대화깊이(turn)을 분석하여 도시한 그래프이다.

 

화자 2명이 1turn(45%)대화를 가장 많이 진행(1turn은 질문-답변 1)하였고, 그 다음으로 2turn대화(16%), 화자 3명이 3turn(7%), 4turn(5%), 5turn(3%) 대화 순으로 진행하는 것으로 분석되었다.

 

, 트위터에서는 화자 2명이 간소한 1~2turn대화를 가장 많이 하고, 화자 3명이 모였을 때, 3턴 이상 대화를 심도있게 하며, 화자 4명일 때는 화자 3명일 때와 비교해서 11% 수준으로 대화빈도가 급속히 감소하는 것을 알 수 있다.

< 수집된 약  19,000Set  시나리오에서 ,  화자별 대화  Depth(turn)>

대화시나리오는 질문 답변의 시퀀스로 표시되며, 하나의 질문이나 답변은 하나 이상의 의미단어 조합으로 구성되며, 동시에, 하나의 벡터값으로 표현되면서, 하나의 대화의도를 함의한다.

 

, 대화시나리오를 구성하는 질문과 답변문장은 300차원 이상의 다차원 벡터로 표시된다. 위키피디아 문서를 이용해서 30만개 이상의 주요단어(의미단어)의 의미벡터를 추출하며, 하나 이상의 의미단어 조합으로 의미벡터 네트워크를 형성하게 된다.

 

사용자의 질문이 입력되면, DNN알고리즘에 의해 대화의도가 분류되며, 해당 대화의도와 유사한 시나리오상의 질문을 의미벡터 네트워크상에서 최단거리로 계산하여, 시나리오에 따라 연속대화를 전개하게 된다.

아래 그림은 전체시나리오 대비 유효시나리오를 분석한 그림이다. 1500개 시나리오 중에 4개 시나리오가 유효하며, 2턴은 6, 3턴은 3, 4턴은 4, 5턴은 4개로 총 2,500개 시나리오 중에 21개의 시나리오가 유효하여, 0.8% 정도만 고도의 텍스트 정제 없이 시나리오를 그대로 사용할 수 있는 것으로 분석되었다.

 

< 전체 시나리오대비 유효 시나리오 개수 >

 

4. 결론

 

본 연구를 통해서 유효시나리오 값을 높이기 위해서는 고도의 텍스트 정제가 필수적임을 알 수 있었다. 다음 연구에는 비정상 한글 오류 수정 등 자동 텍스트 정제 방법을 고안하여 유효시나리오를 획기적으로 늘리는 방법에 대해서 연구할 예정이다.

 

다양한 경로로 수집된 시나리오는 다양한 의견을 포함하고 있다. 앞으로 고도의 텍스트 정제 기술을 개발하여 영역 제한 없이 다양한 주제에 대해서 최신 트랜드가 반영되어 끊김 없이 연속적인 대화를 제공할 수 있는 목표를 달성하고자 한다.

 

인공지능 음성, 언어, 영상 분석/처리 전문기업  bory.io/

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기