brunch

매거진 My Experience

You can make anything
by writing

C.S.Lewis

by Lina L Sep 05. 2018

카카오 개발자 컨퍼런스 'if kakao' 후기 (2)

카카오 봇 플랫폼과 지식그래프, 음악추천 시스템


Session 2.  '카카오 봇 플랫폼 소개'


     이번 세션에서는 챗봇이나 카카오미니와 같은 대화형 인터랙션의 기반이 되는 봇 플랫폼에 대한 소개가 진행되었다. 올해 말 오픈 예정인 Kakao i Open Builder 서비스의 기능과 특징에 대한 설명도 이어졌다. 


카카오 i 플랫폼 구조와 Bot 작동방식


      카카오 i 플랫폼에서는 대화 인터랙션의 기본인 음성처리(ASR), 자연어이해(NLU), 대화설계(Bot Service)가 가능한 핵심 엔진을 공개하여, 이 엔진을 이용하여 코딩없이 누구나 봇을 기획하고 개발할 수 있다. 봇 디자이너는 Pattern, Entity, Skill, Output으로 구성된 블록들을 구성하고, 대화 봇은 사용자의 명령을 받아 엔진 기반으로 블록을 매칭하고 자연어로 답변을 생성하여 사용자에게 보내준다. 


이 때 Entity는 문장의 의미를 구성하는 성분 단위로, 해당 카테고리 안의 여러 단어들과 교체될 수 있으며, 성분 단위가 모여 Pattern이 만들어진다. Entity와 Pattern을 파악하면 GUI 메뉴구조처럼 여러 뎁스(depth)를 거치지 않고 바로 사용자 의도를 파악하여 답변을 생성할 수 있으므로 효과적이다. Skill의 경우 대화를 더 리치하게 만들 수 있도록 이미지, 영상, 카드, 버튼 등 다양한 형태로 변화시키는 것을 의미한다. 


Block 분류시 사용되는 NLU 엔진 구조


      이렇게 만들어진 블록을 사용자 명령에 따라 자유자재로 분류하여 적절한 답변을 생성해야 하는데, 이 때 패턴인식머신러닝(ML) 모델, 그리고 맥락(Context) 이해가 사용된다. 유저의 명령어에 대해 형태소 분석 등을 통해 특징을 추출(Feature Extraction)하여, 패턴과 머신러닝 기반 분류기를 사용하여 유사 블록을 찾아내고, 이를 사용자 컨텍스트에 따라 재배치하여 답변을 제공하는 것이다. 머신러닝 모델을 통해 기준 응답 정확도에 맞춰 자동적으로 적절한 응답이 학습되므로, 봇 대화의 정교화 수준은 계속 향상될 수 있다. 


외부서비스와의 통합구조와 발표 요약


      이렇게 만들어진 봇은 카카오톡뿐 아니라 외부서비스와의 통합도 가능하다. 위 그림과 같이 Text 기반, Voice 기반으로 모두 설계할 수 있고, IoT 서비스나 3rd Party와의 연결도 가능하다. 카카오 i 플랫폼을 기반으로 서비스가 무궁무진하게 확장될 수 있는 것이다. 끝으로, 카카오의 봇 플랫폼은 쉽게 챗봇을 개발할 수 있는 도구이자 챗봇을 똑똑하게 만드는 AI 기술이며, 카카오 서비스와의 유기적 연결을 통해 사용자경험을 향상시킬 수 있는 방법이라는 요약과 함께 발표는 마무리되었다. 



Session 3-1.  '지식그래프 : 카카오미니와 검색 적용 소개' 


     세션 3에서는 두개의 발표가 나누어 이루어졌다. 우선 '지식그래프' 세션의 경우 기존의 키워드 기반 검색과 달리 정보들 간의 '관계'를 기반으로 한 지식그래프를 검색 서비스에 어떤 식으로 적용되고 있는지에 관한 내용이었다. '지식그래프'는 아래 그림과 같이 도메인 구분 없이 의미 기반으로 연결되어 있는 정보 관계도를 의미한다. 카카오 지식그래프는 Fact, 관계, 위치/시간 기준으로 다양한 도메인에서의 컨텐츠들이 연결되어 존재하고 있으며, 스마트스피커 '카카오미니'에서는 지식그래프를 기반으로 인물, 영화, 방송, 정보 검색이 가능하다. 


지식그래프의 형태와 내용


     지식그래프의 장점은 정보들끼리 연결되어 있다는 것인데, 예를 들면 이효리의 남편이 누구인지 Fact기반 정답 검색에서 나아가 이효리 남편의 소속 밴드가 누구인지, 그 멤버의 데뷔연도가 몇년도인지 관계 기반으로 계속해서 확장되어 나갈 수 있다. 이렇게 정보의 연결적 추론이 가능하도록 하기 위해, Cruise QA를 통해 Object간 관계 검색 및 공통속성 검색이 이루어지고, Cruise QL을 통해 지식그래프 쿼리와 색인어가 조합되며, 마지막으로 Defiant(추론) 시스템을 통해 공통객체와 의미적 연결 검색 및 객체 분류가 진행된다.


카카오미니 정보검색 흐름도 및 예시


     카카오 지식그래프는 단순한 내부 정보검색 모델을 넘어 외부로 확장할 수 있는 미래를 그리고 있다. 외부 데이터와의 연결을 통해 풍부한 양질의 정보를 확보하고, 지식그래프를 광고나 서비스와 연결하여 서비스 이용 중에 적절한 정보를 제공받을 수 있도록 하고, 더불어 개인화를 통한 추천 시스템의 핵심적인 데이터로써 지식그래프가 사용될 수 있다. 



Session 3-2.  '눈으로 듣는 음악 추천 시스템'


     다음으로 진행된 음악 추천 시스템 세션에서는 멜론과 카카오미니에 적용된 Toros 음악 추천 시스템의 다양한 추천 모델을 다루었다. 특히 벡터로 모델링된 피쳐를 시각화하여 추천 모델 간의 결과 비교를 한 부분이 상당히 인상적이고 새로웠다. 


Song Vector 생성방식과 여러 추천모델


     우선 Song Vector 생성의 기본이 되는 데이터는 멜론의 스트리밍, 플레이리스트, 노래 음원/메타 데이터이다. 유저들의 Feedback 데이터는 CF(Collaboration Filter) 방식으로, 아이템의 Contents 정보는 CBF(Contents Based Filtering) 방식으로 모델링된다. 이때 기본 데이터와 모델링 방식의 조합 변화를 통해 여러 추천 모델을 생성할 수 있다. 이번 세션에서는 Streaming Data/User Playlist Data + CF의 대표 기술인 MF(Matrix Factorization)/Word2Vec 조합을 장르, 인기도, 발매년도 기준으로 하여 비교하였다. 


Feature Visualization. 3개 Song Vector 특징 비교


     Stream + W2V과 Stream + MF를 장르에 맵핑하여 비교했을 때, 위의 그림과 같이 W2V에서 장르의 군집화 정도가 더 뚜렷하게 나타나는 것을 확인할 수 있다. 반면 인기있는 노래 식별에 있어서는 MF가 좀더 명확했다. 이런 방식으로 Stream + W2V, Stream + MF, Playlist + W2V 추천 모델의 Song Vector를 비교하였고, 공통적으로 Top100노래는 Top100끼리 군집화되는 모습이 나타났다. 


     특정 노래에 대한 유사곡을 각각 추천 모델을 통해 찾았을 때, 스트리밍 순위, 발매년도 등 결과가 모두 상이하게 나타났던 부분이 놀라웠다. 카카오에서는 이러한 방식으로 다양한 추천 모델에 대한 테스트를 통해 최적의 추천 시스템을 만들어나갈 예정이라고 한다. 


추천 모델에 따라 달라지는 유사곡 리스트



나머지 내용은 마지막 글에서... (간단한 후기를 쓰려고 했으나 계속 길어지고 있다는..;;)

매거진의 이전글 카카오 개발자 컨퍼런스 'if kakao' 후기 (1)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari