Deep learning 기반 T map POI 추천 기술개발 사례

안녕하세요. Image Processing팀의 김상훈입니다. Deep learning 기반 T map POI 추천 기술개발 사례는 5월 @tech판교 오픈세미나에서 발표했는데요, 딥러닝&T map 관련 주제라 그런지 질문도 많이 하시고 관심을 가져 주셨습니다. 참여해 주신 분들께 감사의 말씀을 드립니다. ^^ 부제는 딥러닝 여행지 추천으로 해 보았습니다.

제안배경

여행을 간다는 것은 설레기도 하지만, 한편으로는 고민되고 귀찮기도 합니다.어디로 갈 것인지를 정하고 좋은 여행지를 선정하는 것은, 아시겠지만 상당한 노력을 필요로 하거든요.

그래서 자동으로 내게 맞는 여행지 추천을 해 주는, 딥러닝 기반 여행지 추천기술을 소개해 드리려고 합니다. 딥러닝 여행지 추천은 요즘 나날이 관심이 커지는 딥러닝 기술로 만든 추천 방법입니다.

마치 유튜브에서 내가 지금까지 본 동영상으로, 내게 맞춤 동영상을 보여주는 것처럼 고객이 지금까지 방문했던 장소들을 분석해서, 고객에게 맞춤 장소를 추천해 주는 것이라 볼 수 있습니다.

.

자, 그럼 딥러닝 방법으로 어떻게 여행지를 추천할 수 있는지 그 방법을 설명 드리겠습니다. 처음 접하시는 분들께는 어려울 수 있어서 최대한 쉽고 간결하게 설명하도록 노력했습니다. ^^

딥러닝 여행지 추천 방법

딥러닝으로 여행지를 추천하는 방법은 DBN 추천 시스템을 사용하여 고객이 방문했던 장소들을 분석해 고객에게 맞춤장소를 추천하는 것을 의미합니다.

고객에게 맞춤 장소를 추천해 주는 과정은 비교적 간단합니다. 고객이 방문했던 장소들로 input을 만들고, 이것을 DBN 추천 시스템의 입력으로 주면 바로 추천 값인 output을 얻을 수 있습니다. 그리고 값이 큰 node 위주로 추천을 해주면 맞춤 장소 추천이 됩니다.

1) input 만들기
input에서 한 node(동그라미)는 지도 상의 한 장소(POI)에 대응합니다. 즉, “node = 장소”죠. 따라서 고객이 방문했던 node를 모두 1로 표시하면 input data를 만들 수 있습니다.

2) input을 DBN 추천 시스템에 입력하여 output 얻기
만든 input을 DBN 추천 시스템에 입력 시키면 곧바로 추천 값인 output을 얻을 수 있습니다.

3) output을 크기 순으로 정렬하기
output 내의 각 노드들은 0~1 사이의 값을 가지는데요, 고객이 node(장소)에 갈 확률을 나타냅니다. 큰 값일 수록 추천하기 좋은 장소입니다. 따라서 값의 크기 순으로 node를 정렬합니다.

4) 상위 순위의 node(장소) 위주로 추천하기
신기하게도 정렬된 추천 장소들 중, 보통 상위 3등 내에  실제로 고객이 갔던 장소가 존재합니다. 따라서 상위 순위의 장소들이 고객에게 추천해주기 딱 좋은 ‘맞춤 장소’들인 것이죠.


*DBN(Deep Belief Network) 추천 시스템이란?

많이 사용되는 Deep learning 구조 중에 하나인 DBN 모델을 가지고 구성한 시스템이 바로 DBN 추천 시스템입니다. 시스템은 input과 output으로 구성됩니다. 그런데, 주황색 박스로 표시된 것이 DBN 모델인데 하나로는 input 단 밖에 구성할 수가 없습니다. 따라서 DBN 모델을 복제하여 주황색 박스 우측의 output 단을 추가로 구성한 것이 DBN 추천 시스템입니다.

(정확히 이야기 하면, 마치 DBN 모델을 복제하여 output 단을 구성한 것처럼 보이게끔 복원 기술을 활용한 것입니다.^^ 자세한 내용은 하단 강의 자료를 참고해 주세요.)

*DBN 추천 시스템은 어떻게 여행지 추천이 가능할까?

사실, DBN 추천 시스템은 내부에 패턴들이 있는 것으로 추측됩니다. 주어진 학습 데이터로 학습을 하여 데이터를 잘 나타내는 패턴들을 만들어 내는 것이죠.

패턴들을 보유한 DBN 추천 시스템은 input과 가장 유사한 패턴(아래 그림에서 녹색줄)을 찾고, 그 패턴을 output으로 주는 것으로 추천이 가능해집니다. 아래 그림의 output 처럼 해수욕장에 자주 가는 고객에게 대천 해수욕장을 추천해 줄 수 있는 것이죠.

결국 이러한 DBN 추천 시스템은 학습 데이터에 따라서 추천 항목이 결정된다고도 볼 수 있습니다. 패턴을 학습 데이터로부터 만들어 내기 때문이죠. 그래서 T map data를 학습 데이터로 사용하면 여행지 추천이 가능해지는 것입니다.

 

.

더 자세한 설명 내용은 아래@tech 판교 오픈세미나에서 발표한 소개 동영상을 참고해 주시고요, 지금부터는 고객에게 제공할 수 있는 추천 결과 두 가지를 알아 보도록 하겠습니다. ^^

딥러닝 여행지 추천이 고객에게 제공할 수 있는 것 두 가지

1. 맞춤 장소 추천(여행지 추천)

고객이 지금까지 방문했던 장소들로, 맞춤 장소를 추천 받는 것이 가능합니다. 예를 들면 지금까지 휴양림 위주로 여행가신 분이 있다면, 새로운 휴양림 장소를 추천 받을 수 있는 것이죠.

이러한 추천 결과는 상당히 신빙성이 있습니다. 내가 좋아하는 곳 위주의 장소가 추천되고, 더불어 추천된 장소는 실제로 사람들이 많이 간 장소기 때문이죠. 그리고 사용된 딥러닝 추천 알고리즘은 성능평가에서도 우수성을 보이고 있답니다.

위의 예시 외에도 골프장, 축구장을 방문했던 고객에게 맞춤 골프장, 축구장을 추천한 결과도 아래의 소개 자료에서 확인하실 수 있습니다.

2. 나와 취미가 비슷한 집단이 방문했던 장소의 제안

집단 분석을 통해 새로이 가볼 만한 장소를 고객에게 제안할 수도 있어요. 예를 들면 휴양림을 자주 간 사람들이 많이 간 장소들을 보여주는 것이죠. ^^

여기서 하나, 흥미로운 것은 빅데이터 내에는 집단을 특정할 수 있는 어떠한 명시적인 정보도 없지만, 딥러닝을 통해서 집단 분석이 가능하다는 점입니다. 집단 분석 방법은 아래의 소개 자료에서 보실 수 있습니다.

아래는 휴양림 집단이 많이 간 장소를 분석한 결과로, 고객에게 제안하는 새로운 장소들입니다.

위의 장소 중 일부의 전경입니다.

휴양림을 자주 간 사람들은 천장호출렁다리, 함허동천야영장, 속리산, 속삭이는자작나무 등을 자주 가는 것으로 분석이 되었습니다.

신기하게 휴양림과 비슷한 느낌의 장소들로 분석이 되네요.

마치며

이렇게 여행지를 추천 해준다면, 여행지 선정에 고민하는 고객에게 상당히 유용할 것 같습니다.

추천 받은 장소들로 여행지 코스의 뼈대를 잡고, 이후 자신의 입맛에 맞도록 조금씩만 수정하면 좋은 여행 코스를 쉽게 만들 수 있겠지요.

참고로 이 블로그의 내용은 딥러닝 추천 시스템이 잘 동작하는 것을 보인 하나의 예시입니다. 데이터가 어떤 종류든지 상관 없습니다. 이 글을 통해 추천과 집단 분석이 필요한 서비스를 구상하고 계신 분들께 도움이 되면 좋겠습니다. 🙂

발표자료와 동영상입니다

감사합니다!

김상훈 Image Processing팀

SK플래닛 Image Processing팀의 김상훈입니다.
Deep Learning 관련 과제의 연구 및 개발을 주 업무로 하고 있습니다.

공유하기