DOI QR코드

DOI QR Code

A Development of Optimal Travel Course Recommendation System based on Altered TSP and Elasticsearch Algorithm

변형된 TSP 및 엘라스틱서치 알고리즘 기반의 최적 여행지 코스 추천 시스템 개발

  • Kim, Jun-Yeong (Dept. of Multimedia Engineering, Sunchon National University) ;
  • Jo, Kyeong-Ho (Dept. of Multimedia Engineering, Sunchon National University) ;
  • Park, Jun (Dept. of Multimedia Engineering, Sunchon National University) ;
  • Jung, Se-Hoon (School of Connection(Bigdata Convergence), Youngsan University) ;
  • Sim, Chun-Bo (Dept. of Multimedia Engineering, Sunchon National University)
  • Received : 2019.07.23
  • Accepted : 2019.08.14
  • Published : 2019.09.30

Abstract

As the quality and level of life rise, many people are doing search for various pieces of information about tourism. In addition, users prefer the search methods reflecting individual opinions such as SNS and blogs to the official websites of tourist destination. Many of previous studies focused on a recommendation system for tourist courses based on the GPS information and past travel records of users, but such a system was not capable of recommending the latest tourist trends. This study thus set out to collect and analyze the latest SNS data to recommend tourist destination of high interest among users. It also aimed to propose an altered TSP algorithm to recommend the optimal routes to the recommended destination within an area and a system to recommend the optimal tourist courses by applying the Elasticsearch engine. The altered TSP algorithm proposed in the study used the location information of users instead of Dijkstra's algorithm technique used in previous studies to select a certain tourist destination and allowed users to check the recommended courses for the entire tourist destination within an area, thus offering more diverse tourist destination recommendations than previous studies.

Keywords

1. 서론

디지털 기술의 발전과 스마트폰 등 모바일 기기 및 SNS(Social Network Service)가 보편화 되면서 관광 정보 서비스 형태도 IT와 네트워크와 연결되는 스마트 관광 시대가 되었다.‘2016년 지역 관광 소비동향’에 따르면 한국인 68%는 관광 관련 정보 검색 시 ‘모바일’을 가장 보편적으로 사용하며, 관광 관련 콘텐츠를 가장 많이 확인하는 채널은 SNS(61%), 블로그(34%) 순으로 확인됐다.SNS를 통한 관광 정보제공은 이용자에게 가치와 혜택을 주고 있음을 보여주고 있다. 기존 관광 정보 제공 서비스에 SNS와 블로그에 올라오는 관광 정보를 이용하여 서비스하면 사용자에게 다양한 정보를 제공할 수 있는 장점을 가지고 있다. 하지만 관광지에 대한 정보를 검색하다보면 생각보다 훨씬 더 많은 시간이 소요될 때가 있다. 그 이유는 자신이 원하는 정보의 수준과 각종 사이트에서 제공되는 정보의 수준이 다르기 때문이다[1]. 최근 언어분석 기술 및 텍스트 마이닝 기술의 발전과 함께 다양한 영상 콘텐츠에 포함되어 있는 유익한 정보들을 분석하여 구조화시킬 수 있게 되었다[2-4]. 이는 SNS에 있는 여러 게시글로부터 관광정보를 추출하여 구조화시키고, 사용자의 요구에 맞춰 관광 정보를 제공할 수 있음을 의미한다. 또한, 최근 주요 관광 추세를 분석할 수 있어, 사용자에게최신 정보를 제공해 줄 수도 있다. 관광 일정 추천시스템과 관련된 기존 연구는 크게 POI(Point Of Interest)를 바탕으로 한 자동화된 관광 일정 추천 시스템과 기계학습을 바탕으로 과거 관광 기록에 기반한 관광 일정 추천 시스템으로 구분된다.POI의 경우 GPS 정보를 수집하여 이동패턴을 추출하고, 이를 바탕으로 이동패턴이 유사한 사용자에게 추천해주는 방식의 연구들이 있고, 기계학습의 경우 시공간 정보를 지닌 사진 데이터를 수집해 관광 경로를 파악하고, 시간과 장소에 대한 확률 모델을 설정해 사용자 선호도를 고려한 관광 경로를 추천 또는 사용자들이 선호하는 시간대를 고려하여 관광 경로를 추천해주는 연구 등이 있다. 최적화된 경로를 찾는 방법 중 하나로 TSP(Traveling Salesman Problem)가 있다. TSP는 주어진 N개의 포인트를 단 한 번씩만 거쳐출발지로 돌아오는 경로에서 가장 적은 비용이 소요되는 경로를 찾는 문제이다[5]. 네트워크 최적화, 공정처리 순서 결정 문제 등 광범위한 문제에 TSP를 사용하여 최적화 문제를 해결할 수 있다[6].

그러나 기존 연구들은 GPS 정보 혹은 사용자의 과거 기록을 이용하여 관광지를 추천해주기 때문에 최근 많은 사람들이 방문하고 있는 관광지를 추천해주지 못하는 경우가 있다. 최근 관광 추세는 포털 사이트나 SNS에 많이 올라오고 있다. 이를 이용한 최근 관광 추세에 맞는 관광지를 추천할 필요가 있다.

이에 본 논문에서는 최근 관광 추세에 맞는 관광지와 관광 코스를 추천해주기 위하여 공공데이터 포털에있는 데이터들과 SNS에 올라오는 관광지들에 대한 게시물들에 대한 자동 크롤링 모듈을 이용하여 관광지 포인트에 대한 전처리 리스트를 처리한다. SNS 데이터를 수집 및 분석하여 관광지를 추천하고 한 지역 내 추천된 관광지들에 대한 최적 경로를 추천해주기 위하여 변형된 TSP 알고리즘과 Elastic search엔진을 이용하여 사용자의 위치 정보를 기준으로 해당 지역의 모든 관광지를 출발점으로 한 최적의 관광코스를 추천하는 시스템을 제안한다. 본 논문의 구성은 다음과 같다.2장에서는 기존에 연구들을 살펴보고, 3장에서는 SNS 데이터를 이용한 관광지 및 관광코스 추천 시스템에 대한 설계,4장에서는 추천 시스템에 대한 구현한다. 마지막으로 5장에서는 결론을 맺는다.

2. 관련 연구

2.1 관광 및 관광 관련 모바일 서비스

현재 국내 관광 정보를 제공하는 서비스는 ‘대한민국 구석구석’,‘VISITKOREA’,‘스마트 투어 가이드’,‘전국 관광지도 앱’,‘기차 관광 NO.1’,‘코나’ 등 다양한 서비스들이 있다. 대부분의 관광 정보 서비스들은 한국관광공사에서 제공하는 Tour API3.0이나 지자체에서 제공하는 관광 정보들을 이관광지에 대한 정보를 제공한다. ‘대한민국 구석구석’, ‘VISITKOREA’와 ‘스마트투어 가이드’는 한국관광공사에서 제공하는 서비스이다.‘대한민국 구석구석’은 국내 최대 관광 정보 어플리케이션으로 약 3만여 건의 관광 정보 서비스를 제공하며, 관광태그 기능, 지역별 로컬 관광 정보 제공, 관광 코스 설계 기능, 즐겨찾기(관광 스크랩) 기능, 네비게이션/지도/길안내 서비스, 관광 정보 SNS 공유, 마이페이지 등 다양한 기능을 지원한다.‘VISITKOREA’의 경우 외국인 관광객들에게 관광 정보 제공을 위해 개발한 서비스로 관광지에 대한 정보를 영어로 제공하며 구글 맵을 통해서 길찾기 기능, 관광 코스 안내 기능을 지원한다.‘스마트투어 가이드’는 대한민국 대표 관광지의 역사와 문화에 관한 이야기를 오디오로 들려주는 오디오 가이드 서비스 기능을 지원한다. 이 외에도 자치단체별로 제작하여 배포하는 관광지도 이미지를 한 곳에서 볼수 있는 기능을 지원하여 손쉽게 관광지도 및 관광정보를 찾아볼 수 있게 단순화한 ‘전국 관광지도 앱’,국내 기차 관광과 관광열차, 테마파크 상품을 손쉽게 검색하고 예약할 수 있는 ‘기차 관광 NO.1’과 네이버에서 개발한 인공지능 기반 관광 정보 서비스 어플리케이션인 ‘코나’등이 있다. 코나는 CNN과 LSTM을 통해서 사용자가 다녀온 경험으로 작성된 문서를 분석해 사용자에게 알맞은 관광 테마 및 정보를 자동으로 찾아내 제공한다.

2.2 관광 추천 시스템

관광 일정 추천 시스템은 대부분 지역별로 유명한 관광지에 대해 선호도가 높고 많은 장소를 방문하기를 원한다는 가정을 바탕으로 최대한 많은 관광명소를 방문하는 짧은 경로를 추천하는 것을 목표로 한다[1,5,6]. 이러한 관광 일정 추천 방법은 크게 POI를 기반으로 한 그래프 모델 기반의 시스템[7-9]과 기계학습을 바탕으로 과거 관광 기록에 기반한 시스템[10-11]으로 구분된다.POI를 기반으로 한 시스템은 사용자의 GPS 정보를 이용하여 이동패턴을 추출하고[7], 이를 바탕으로 이동패턴이 비슷한 사용자의 관광 일정을 추천해준다.[7]의 연구는 사용자의 GPS 정보를 수집하고 이동패턴을 추출하여 관광 일정을 추천해주는 서비스에 대하여 연구했다.[8]의 연구는 장소별로 사용자가 선호하는 시간대를 고려하여 실시간으로 관광 경로를 추천해주는 시스템을 연구하였다. [9]의 연구는 POI에 대한 그래프 모델을 기반으로 관광 일정을 추천하여 사용자의 만족도를 높일 수 있는 시스템에 대해 연구하였다. 기계학습을 이용한 시스템은 사용자의 선호도, 시간, 관광 경비 등다중 제약 조건을 기반으로 사용자의 선호도를 고려하여 관광 일정을 추천해준다[10-11].[10]의 연구는 기계학습을 이용해 데이터를 수집하고 선호도, 시간제약, 등 다중 제약 조건을 기반으로 입력한 제약 조건에 최적화된 관광 일정을 설계하는 시스템을 연구하였다. [11]의 연구는 위키피디아 태그 정보를 기반으로 시멘틱 벡터를 생성하고, 이를 기반으로 사용자의 기록을 수집해 선호도 벡터를 구성한다. 각 POI에 대한 사용자의 선호도를 바탕으로 사용자 만족도가 높은 일정을 추천하는 시스템을 연구하였다. 아래는 6가지의 연구는 본 연구와 유사한 POI 및 기계학습을 결합한 관광 일정 추천에 대한 연구이며, 본 연구와의 비교평가를 위해 다음과 같이 제시하였다.

[12]의 연구에서는 사용자가 관광을 위한 다양한 관광 지점을 결정하고, 해당 관광 코스들을 이동하는데 걸리는 시간을 측정하는 연구이다. 해당 연구에서는 최단 거리의 코스를 생성하는 알고리즘을 제안하였다. 최단 거리 측정을 위해 출발점과 도착점을 동일한 지점으로 고정하고, 관광지 코스를 이동할 수 있는 여러 가지 시나리오 중에서 휴리스틱 기법을 통해 가중치 값을 시간적으로 적용하였다. 관광 추천코스는 경로가 가장 적게 걸리는 코스를 찾는 알고리즘이다. 또한ExchangeHeuristic한 기법을 적용하여 코스 가중치에 대한 최적화 계수를 변화시켜 여러 가지 코스가 생성될 수도 있도록 하였다.[13]의 연구에서는 SNS를 기반으로 관광계획을 생성하는 시스템을 제안하였다. 제안된 시스템은 SNS상의 관광객혹은 리뷰어들이 작성한 POI의 관련 정보 등을 수집하고, 수집된 POI 정보들과 시스템 사용자의 관광스타일 및 예측 가능한 관광객의 흥미,SNS상에 나타난 관광객의 프로필 등을 기반으로 관광객이 흥미에 맞는 내용들을 선별하여 추천코스로 제시하는 시스템이다. [14]의 연구에서는 사용자 및 전문가 평점에 기반하여 관광계획을 자동으로 생성하고 관광에 앞서 효율적인 스토리텔링 관광을 체험할 수 있는 시스템 제안하였다. 제안된 시스템은 안드로이드 기반으로 사용자가 관광 데이터를 입력하면 관광 데이터 필터링, 정렬, 관광 계획 생성 알고리즘 활용하여 관광 추천코스를 출력해주며, VR(Virtual Reality)기반의 파노라마 영상을 통해 관광지에 대한 가상 환경을 제공하는 시스템이다.[15]의 연구에서는 온톨로지 기반의 개인의 선호도에 따라 관광지를 추천해주는 시스템을 제안하였다. 온톨로지 구축을 위하여 사용자 개인의 선호도를 파악하기 위해 사용자의 프로파일, 어플리케이션 내의 검색 정보, 웹 검색 정보와 페이스북 정보 등을 활용하였다.[16]의 연구에서는 소셜 미디어상에서 개인 정보를 바탕으로 관광 경로 추천 알고리즘을 POI 가지치기 단계와 관광 경로 생성 단계로 구분하여 시스템을 제안하였다.POI 가지치기 단계에서는 POI 전체 데이터로부터 사용자에게 추천할 경로를 생성하는데 필요한 POI만을 남기고 가지치기를 수행하여, 관광 경로 생성 단계에서는 POI 가지치기 단계를 통해 도출된 POI 사용자 관심도, 비용, 시간, 이벤트 등을 고려하여 후보 경로 및 추천 경호를 생성하였다.[17]의 연구에서는 관광지추천 알고리즘에서 체류 시간에 가중치를 두어 일정을 추천해주는 시스템 제안하였다. 제안하는 시스템은 위치 기반 서비스와 Top-k 알고리즘, 임계 알고리즘을 활용하여 관광 일정을 최적화하였다.

3. 최적의 여행지 코스 추천 시스템

본 논문에서는 기존 연구의 단점으로 지적된 주관적인 요소만 반영된 추천 시스템과 달리 객관적인 요소와 주관적인 요소가 모두 반영된 여행지 코스추천 시스템을 제안한다. 이를 위해 한국관광공사에서 제공하는 관광 데이터와 SNS 올라오는 관광 게시물들을 활용한다. 관광지들을 소개하고 특정 지역을 관광하고자 할 때 다른 관광자들이 자주 방문하는 관광지들을 자동으로 선택하도록 최단 경로 알고리즘을 사용하여 최적의 관광 코스를 생성 후 사용자에게 추천해 주도록 시스템을 설계한다. 다음은 제안하는 시스템의 전체 구성도이다[18].

본 논문에서는 크게 2가지의 연구 방법을 기준으로 시스템을 설계한다. 객관적인 요소인 위치 정보를 통해 최적의 코스 추천이 진행되도록 변형된 TSP 알고리즘 연구하였으며, 주관적인 요소인 SNS 데이터 분석을 위하여 Elasticsearch 검색 엔진을 활용한 연구를 진행한다. 그리고 시스템의 재활용성을 위하여 설계 방법론은 CBD(Component Based Develop-ment) 방법론을 기준으로 모든 설계 산출물을 정의한다. 제안 시스템은 공공데이터 포털에 있는 데이터들과 SNS에 올라오는 관광지들에 대한 게시물들에 대한 자동 크롤링 모듈을 이용하여 관광지 포인트에 대한 전처리 리스트를 처리한다.SNS 데이터를 수집 및 분석하여 관광지를 추천하고 한 지역 내 추천된 관광지들에 대한 최적 경로를 추천해 주기 위하여 변형된 TSP 알고리즘과 Elasticsearch 검색 엔진을 이용하여 사용자 주변 지역에 대한 최적의 관광 코스를 추천하는 기능을 포함한다. 이를 위해 한국관광공사의 관광 데이터와 SNS 관광 게시물을 이용한 관광지 추천 시스템과 TSP 알고리즘을 이용한 최적 관광코스 추천 시스템, 관광 웹 페이지로 나눈다. 추천시스템에 의해 생성된 관광지와 관광 코스 및 관광데이터를 Elasticsearch 검색 엔진을 이용하여 사용자들에게 웹 페이지를 통해 제공해준다.

MTMDCW_2019_v22n9_1108_f0001.png 이미지

Fig. 1. Structure Diagram of Proposed System.

3.1 관광지 데이터 전처리 모듈

본 논문에서 제안하는 관광지 데이터 전처리 모듈은 Fig.2와 같다.SNS 데이터를 이용하기 전에 한국관광공사에서 제공하는 관광 데이터를 가져와 데이터베이스에 저장한다. 저장한 데이터 중 관광지명에 대한 항목들을 가져와 관광지명을 기준으로 SNS에서 비정형 데이터를 수집한다.SNS 데이터 수집 방법으로는 Instagram의 게시물을 직접 SNS를 이용하여 수집한다. 그 후 수집된 데이터 중 게시글 수,게시글 제목, 사진, 게시글의 내용, 게시 날짜를 시스템 DB로 가져온다. 사용자들이 방문한 관광지를 추천해주기 위해 관광지에 대한 전체 게시물 수와 최근올라온 게시물 수를 이용하여 추천한다.

3.2 최적의 관광 코스 추천 알고리즘 설계

한국관광공사의 데이터와 SNS 데이터를 사용하여 관광하고자 하는 지역의 관광지에 대해 추천도를 계산하는 알고리즘은 아래 식과 같다. 계산된 추천코스는 Top-k 알고리즘을 통해 상위 5개의 관광지를 선택하여 관광 추천코스로 최종 결정된다. 코스를 생성하기 전 출발지와 관광지들의 위치 좌표값을 가져와 저장한다. 다음 위치 좌표값을 이용하여 좌표값들사이의 거리를 계산하여 저장한다. 거리 계산은 Haversine 공식[19]을 이용한다. 지점 1의 좌표 (x1,y1), 지점 2의 좌표 (x2,y2), 두 점 사이의 거리 d,구의 반경을 r이라 할 때 다음과 같이 계산한다.

 \(\operatorname{hav}(\Theta)=\operatorname{hav}(x 2-x 1)+\cos (x 1) \cos (x 2) h a v(y 2-y 1)\)      (1)

 \(\operatorname{hav}(\Theta)=\sin ^{2}\left(\frac{\Theta}{2}\right)=\frac{1-\cos (\Theta)}{2}\)      (2)

\(d=\operatorname{rarchav}(h)=2 \operatorname{rarcsin}(\sqrt{h})\)       (3)

\(\begin{aligned} d &=2 r \arcsin (\sqrt{\operatorname{hav}(x 2-x 1)+\cos (x 1)(\cos (x 2) \operatorname{hav}(y 2-y 1)}) \\ &=2 r \arcsin (\sqrt{\sin ^{2}\left(\frac{x 2-x 1}{2}\right)+\cos (x 1) \cos (x 2) \sin ^{2}\left(\frac{y 2-y 1}{2}\right)} \end{aligned}\)       (4)

식(1)은 hav(Θ)는 두 지점의 위도와 경도를 사용하여 두 지점 사이의 중심각을 구하는 식이다. 식 (2)의 hav(Θ)는 주어진 각의 versedsine(버스트 사인, 1-cos(Θ ))의 절반을 뜻한다. 다음 식(3)부터 hav(Θ )는 h라 표기한다. 거리 d를 풀려면 식(3)과 같이 지구의 반경 r에 대하여 inversehaversine을 적용하여 계산한다. 식(4)는 식(1)을 식(3)에 적용하여 정리한 식이다. 최종적으로 두 지점의 위경도 값을 이용하여 거리 d를 구할 수 있다. 계산된 거리값들과 최적화된 관광경로를 생성하기 위한 TSP 알고리즘을 이용하여 관광 코스를 생성한다.Algorithm1은 본 연구에 적용한 수정된 TSP 알고리즘 슈도코드이다.

변형된 TSP 알고리즘은 리스트에 있는 모든 관광지를 출발점으로 설정하여 출발점에서 모든 관광지를 방문하는 코스를 최단 거리로 계산 및 측정하고 그 결과를 생성한다. 기존 연구에서 활용되는 다익스트라 알고리즘[20]은 특정 출발점이 존재하고 그 지점을 기준으로 최단 경로를 찾는 방식이다. 그러나 본 연구에서 관광지 리스트에 있는 관광지들을 모두 방문할 때까지 현재 위치에서의 각 관광지의 거리를 계산하여 최단 거리를 다음 관광지로 설정하여 반복한다. 기존 TSP 알고리즘과 다르게 본 연구에서는 모든 관광지를 출발점으로 하여 앞의 과정을 반복하여 관광 경로들을 생성한다. 생성한 관광 경로들을총 거리를 이용하여 정렬한 후 상위의 경로들을 사용자에게 추천한다.Fig.3은 TSP 알고리즘의 거리 측정 흐름도이다.4개의 지점에서 각 지점의 거리가 각각 10,20,30,40,40,40일 때 먼저 임의의 한 점을 시작점으로 설정한다. 그 후 시작점과 연결된 지점 중 가장 가까운 지점을 선택한다.B 지점을 시작점으로 하여 B 지점과 가장 거리가 가까운 C 지점이 선택된다. 그 후 B 지점과 C 지점을 방문했으므로 C 지점에서 방문했던 지점들을 제외한 나머지 지점 중 가까운 지점인 D를 선택하여 이동한다. 다시 방문했던지점들을 제외한 나머지 지점 중 가장 가까운 지점으로 이동을 반복한다. 모든 지점을 방문하게 되면 다시 시작점으로 되돌아오게 되고 시작점으로부터 출발하여 모든 지점을 방문하는 최적 코스를 완성하게 된다.

MTMDCW_2019_v22n9_1108_f0002.png 이미지

Fig. 2. Recommend Travel Destination using SNS Data.

Algorithm 1. Modified TSP Algorithm pseudo code

MTMDCW_2019_v22n9_1108_t0003.png 이미지

MTMDCW_2019_v22n9_1108_f0003.png 이미지

Fig. 3. Flow Diagram of TSP Algorithm.

3.3 관광지 추천 웹 시스템 설계

Fig.4는 관광지 추천 시퀀스 다이어그램이다. 사용자가 메인 GUI에 접근을 할 때 관광지 추천 시스템에 requestRecommendTour( ) 메소드로 추천 관광지를 요청한 후, 추천 시스템이 request Tour Data( ), send Tour Data ( ) 메소드로 DB에서 데이터를 불러온다. 불러온 데이터의 정보의 조회수, 최근 조회수 등을 이용하여 추천도를 계산한 후 추천 관광지를 DB에 저장하고 사용자에게 관광지를 선택하여 메인 GUI에 출력한다.

MTMDCW_2019_v22n9_1108_f0004.png 이미지

Fig. 4. Main Page Recommend Tour Sequence Diagram.

Fig.5는 관광 코스 추천 시퀀스 다이어그램이다. 사용자가 메인 GUI에 접근할 때 관광 추천 시스템에 request Recommend Tour Course (adress) 메소드로현재 지역의 추천 관광 코스를 요청한다. 관광 추천시스템에서는 데이터베이스에서 관광지에 대한 정보를 호출하고 calcRecommendTourData() 메소드를 이용하여 추천도를 계산한 후 관광지 목록을 수신한다. 그리고 추천받은 관광지 중 상위 관광지들을 선택하기 위해 calcDistance() 메소드를 이용하여 거리를 계산한다.calcTourCourse() 메소드에서 상위관광지들과 계산된 거리값은 변형된 TSP 알고리즘을 적용하여 관광 코스를 생성하여 사용자에게 추천한다.

MTMDCW_2019_v22n9_1108_f0005.png 이미지

Fig. 5. Tour Course Recommend Sequence Diagram.

Fig.6은 관광지 검색 시퀀스 다이어그램이다. 사용자가 관광지를 검색하고자 할 때 request Category () 메소드를 이용하여 DB에서 카테고리 리스트를 호출한 후 출력된 리스트의 카테고리를 직접 선택한다.

searchCategoryTourList() 메소드를 이용하여 선택한 카테고리에 해당하는 관광지들을 Elastic search검색 엔진을 이용하여 검색 키워드를 분석한다. 사용자가 관광지를 선택하면 requestTourInfo() 메소드를 호출한 후 DB에서 관련 관광 데이터를 가져와 사용자 UI에 출력한다.

MTMDCW_2019_v22n9_1108_f0006.png 이미지

Fig. 6. Search Tour Sequence Diagram.

Fig.7은 주변 관광지 검색 시퀀스 다이어그램이다. 사용자가 주변 관광지에 대한 정보를 검색하고자 할 때 requestGPSInfo() 메소드를 이용한다. 해당 메소드는 GPS 정보를 요청해서 사용자의 GPS 정보를 호출하는 기능을 포함한다.GPS 정보 호출 후 search Near Tour() 메소드로 관광지들의 GPS 정보와 사용자의 GPS 정보를 Elasticsearch 및 변형된 TSP 알고리즘을 적용하여 관광지와의 거리를 측정한다. 사용자와 일정 거리 이하인 관광지들의 정보를 가져와 사용자에게 제공한다.

MTMDCW_2019_v22n9_1108_f0007.png 이미지

Fig. 7. Search Peripheral Tour Sequence Diagram.

Fig.8은 관광지 리뷰 시퀀스 다이어그램이다. 관광 정보 GUI에서 관광 리뷰 GUI에 접근할 때request Tour Review List() 메소드를 호출하고 DB에서 관광 리뷰 리스트를 전달받아 사용자에게 출력한다. 사용자는 wirte Review(), update Review(), dele-te Review() 메소드들을 이용하여 관광지에 대한 이미지, 후기 등을 작성, 수정, 삭제할 수 있다.

MTMDCW_2019_v22n9_1108_f0008.png 이미지

Fig. 8. Tour Review Sequence Diagram.

Fig.9는 관광 추천 웹 GUI의 설계 클래스 다이어그램이다. 사용자가 회원 가입 후 로그인하여 카테고리 및 키워드를 이용한 관광지 검색,GPS 정보를 이용한 주변 관광지 검색, 관광 코스 추천과 게시판을 통해 관광지와 관련된 정보를 주고받을 수 있도록 한다.

MTMDCW_2019_v22n9_1108_f0009.png 이미지

Fig. 9. Recommend Tour Web Page Class Diagram.

Fig.10은 본 연구에서 제안하는 관광 경로 추천시스템의 데이터베이스 스키마이다.DBMS는 MySQL을 활용하였고, 총 7개의 테이블(TOUR, TOUR_REVIEW, TOUR_COURSE, SNS_DATA, MEMBER, BOARD, ANSWER_BOARD)이 있다. MEMBER테이블은 회원의 정보를,TOUR 테이블은 관광지에 대한 정보를 가진다.TOUR_REVIEW와 BOARD, ANSWER_BOARD는 각각 리뷰 게시판, 자유게시판과 댓글에 대한 정보를 가진 테이블이다. SNS_DATA 테이블은 SNS에서 크롤링하는 데이터를 저장하는 테이블로 올라온 게시글의 작성자, 내용, 업로드 날짜, 이미지를 저장한다.TOUR_COURSE 테이블은 관광 코스 추천 시스템으로 생성된 관광 코스를 저장한다.

MTMDCW_2019_v22n9_1108_f0010.png 이미지

Fig. 10. Recommend Tour System DB Schema.

MTMDCW_2019_v22n9_1108_f0011.png 이미지

Fig. 11. Korea Tourism Organization Travel Data.

4. 구현 및 성능평가

4.1 시스템 구현

4.1.1 데이터 크롤링 모듈

한국관광공사에서 제공하는 데이터들은 OpenAPI로 URL 형식 혹은 엑셀 형식으로 데이터를 제공하는 데이터를 활용하였다. 제공되는 데이터는 7만여건의 다국어 관광 정보를 포함하고 있으며, 각 관광지에 대해 주소, 전화번호, 좌표, 개요 등의 공통적인 정보뿐만 아니라 각 관광 타입에 따라 휴무일, 안내 정보 등의 고유정보를 제공한다. 텍스트 데이터뿐만 아니라 비정형 데이터인 이미지 정보까지 제공한다. 이 외에도 지역 기반 관광 정보, 위치기반 관광 정보, 무장애 관광 정보, 생태 관광 정보 등 다양한 정보를 활용할 수 있다.Fig.11은 본 연구에서 활용한 전남 순천지역에 해당하는 관광지들의 데이터이며, 해당 정보를 전처리 후 시스템 데이터베이스에 저장하여 활용한다.

SNS 데이터 크롤링 모듈의 크롤러는 Selenium Web driver를 이용하여 관광 정보를 수집하였다. 데이터 크롤링 모듈의 타켓 SNS는 Instagram으로 지정하였으며, 데이터 크롤링을 위한 수집 기간은 2019년 4월 26일부터 30일까지 수집하였다. 데이터 수집을 위한 크롤링 키워드는 관광지명으로 지정하여 데이터를 크롤링하였다. 먼저 OpenAPI를 통해 가져온데이터 중 관광지명을 데이터베이스에서 가져와 활용한다. 관광지명을 기준으로 Instagram에 검색하여 전체 게시물 수, 공개된 게시물의 게시자, 게시글제목, 사진, 내용과 날짜를 수집하여 데이터베이스에 저장한다.

MTMDCW_2019_v22n9_1108_f0012.png 이미지

Fig. 12. Recommend Travel Result Screen.

Table 1. Number of Posts for Attractions (2019.04.26.~04.30.)

MTMDCW_2019_v22n9_1108_t0001.png 이미지

4.1.2 관광지 및 관광지 코스 추천 시스템 구현

관광지 및 관광지 코스 추천 시스템을 구현하기 위해 크롤링한 데이터를 이용한다. 크롤링한 데이터중 관광지에 대한 전체 게시글 수와 각 게시글의 게시 날짜를 활용하여 관광지 및 관광 코스를 추천한다. Table 1은 전체 게시글 수와 최근 일주일의 게시글 수를 도식화한 것이다.

관광지 추천은 크롤링한 SNS 데이터를 활용하여 전체 게시글 수의 순위와 최근 게시글 수의 빈도를 이용하여 사용자에게 관광지를 추천한다. 관광지 추천 시스템을 이용하여 추천도를 계산하고 추천도 순서로 사용자에게 제공된다. 메인 GUI에서 슬라이드 형태로 가장 추천도가 높은 상위 5가지를 보여주고 전체 게시글을 검색할 때 정렬의 기준으로 사용된다. Fig. 13의 메인 GUI 관광지 추천 화면과 같이 순천만국가정원, 순천만 습지, 순천드라마세트장, 낙안읍성, 선암사의 순서로 관광지들이 사용자에게 추천된다.

Fig.13은 관광 추천코스 화면이다. 관광 코스 추천은 해당 지역의 관광지 중 추천도가 높은 관광지를 선택하고 최적의 관광 코스를 생성하여 추천한다. 먼저 관광지 추천과 동일하게 크롤링한 데이터들을 이용하여 빈도를 비교한다. 빈도를 비교하여 높은 관광지들을 선택한다. 그리고 선택한 관광지간의 거리를 측정하여 거리 행렬을 만든 후 변형된 TSP 알고리즘을 이용하여 출발지에서 출발하여 모든 관광지들을순회하고 다시 돌아오는 최적의 코스를 생성하여 사용자들에게 추천해준다.

MTMDCW_2019_v22n9_1108_f0013.png 이미지

Fig. 13. Recommend Travel Course Result Screen.

Fig.14는 관광지 소개 화면이다. 관광지 소개 화면은 키워드 검색, 주변 관광지 검색, 지역 여행지검색, 메인 GUI의 슬라이드의 관광지, 관광 코스에서 관광지에서 관광지를 선택했을 때 관광지들의 상세정보를 보여준다. 관광지에 대한 상세 정보를 조회할때 관광지에 대한 대표 이미지, 주소, 문의 및 안내,쉬는 날, 주차 시설, 체험 안내, 개요에 대한 정보를 제공한다. 그리고 크롤링하여 가져온 SNS 데이터 중 이미지와 해시태그 일부를 사용자에게 보여준다. 이외에도 관광지 리뷰 열람, 작성, 수정, 삭제를 할 수 있도록 하였다.

MTMDCW_2019_v22n9_1108_f0014.png 이미지

Fig. 14. Introduce Travel Screen.

4.2 기존 시스템과 비교

Table2는 기존 관광지 추천 시스템과 본 연구에서 제안하는 시스템을 정성적으로 평가한 비교표이다. [13-16]의 연구에서는 본 연구에서 제안하는 시스템 내부에서 관광 정보 검색 기능이 포함되지 않았으며, [13-17]의 연구에서 제안하지 않은 변형된 TSP 알고리즘을 본 연구에서는 적용하여 시스템을 제안하였다. 제안한 변형된 TSP 알고리즘은 기존 연구에서 활용하는 다익스트라 알고리즘 기법이 아닌 사용자의 위치 정보를 기준으로 특정 관광지를 선택하지 않고 해당 지역의 전체 관광지에 대한 추천코스의 결과를 확인할 수 있어 기존 연구에 비교하여 더 다양한 관광지 추천 결과를 확인할 수 있었다. 특히, POI 기반 시스템[13,16], 사용자 평점기반 시스템[14], 사용자 체류 시간기반 시스템[17]은 객관적인 요소를 활용하지 못하고 관광자 및 사용자의 주관적인 요소만 반영되었지만, 본 연구에서 제안하는 시스템은 객관적인 요소인 사용자의 위치 정보와 주관적인 요소인 SNS 데이터 분석을 기반으로 최적의 관광코스를 설계하여 기존 연구와 차별화된 결과를 도출하였다. 그리고 관련 연구에서 제시한 현재 활용되는 시스템인 ‘관광지도’, ‘VISIT KOREA’, ‘방방콕콕’,‘우리 어디가?’와 비교하여 SNS 데이터를 활용하고 변형된 TSP 알고리즘을 활용한 측면에서 더 우수한 결과를 확인하였다.

Table 2. Compare with Existing Systems

MTMDCW_2019_v22n9_1108_t0002.png 이미지

5. 결론

디지털 기술의 발전과 스마트폰 등 모바일 기기 보급이 확대되고 SNS 사용률이 증가하고 있다. 사람들이 SNS를 통해 다양한 게시글을 올린다. 이 중에서 관광과 관련된 게시글 또한 올라오고 있다. 본 연구에서는 이렇게 SNS에 올라오는 관광과 관련된 게시글을 이용한다. 사람들이 방문하고 있는 관광지를 추천하여 관광을 계획하고 있는 사용자에게 의사결정을 할 수 있도록 도움을 주고 특정 지역 내에 추천관광지들을 최적의 코스로 관광할 수 있는 시스템을본 연구에서 제안하였다. 이를 위해 본 연구에서는 한국관광공사에서 제공하는 관광지들의 정보를 활용하고 SNS 정보를 수집하여 제공함으로써 기존 관광 정보 시스템보다 다양한 정보를 제공할 수 있었다. 그리고 사람들이 현재 관광 정보 사이트나 모바일 앱보다는 SNS를 통해 관광 정보를 검색하는 단점이 존재하지만 본 연구는 SNS 정보 자체적으로 수집하여 관련 키워드를 분석 및 제공함으로써 관광 정보검색 소모 시간을 줄일 수 있었다. 본 연구에서는 위치 좌표를 이용하여 거리를 관광지 간의 거리로 측정하였다. 하지만 이 거리는 직선거리를 측정한 것이기 때문에 대중교통, 차량 등을 이용하여 이동하는 거리나 소모 시간과 맞지 않는 문제점이 존재하였다.

향후 연구에서는 이동 수단에 따른 이동 거리와소모 시간 등을 고려한 연구가 수반되어야 할 것이다. 그리고 변형된 TSP 알고리즘은 방문지가 늘어날수록 최적 코스를 생성하는데, 소모되는 시간이 길어지기 때문에 이와 관련된 연구가 추후 필요하다.

References

  1. J. Suh and W. Kim, "Investigating Relationship between Decision Making of Tourists and Social Media: A Content Analysis Approach," Journal of Korea Tourism Sciences, Vol 36, No. 10, pp 125-148, 2012.
  2. S.H. Kim, J.U. Kim, H.J. Kim, and D.G. Park, "A Tour Information System on Smart Phone using Location Based Service," Journal of Korea Multimedia Society, Vol. 15, No. 5, pp. 677-691, 2012. https://doi.org/10.9717/kmms.2012.15.5.677
  3. S.H. Jung, S.M. Park, and C.B. Sim, "A Novel of Mobile Commerce and Information Notice System for Local Festival Content Activation based on Location Information," Journal of Korea Multimedia Society, Vol. 18, No. 6, pp. 780-197, 2015. https://doi.org/10.9717/kmms.2015.18.6.780
  4. S.K. Kown and S.H. Jo, "Community-based Travel Information System Using Augmented Reality," Journal of Korea Multimedia Society, Vol. 18, No. 2, pp. 97-105, 2015. https://doi.org/10.9717/kmms.2015.18.2.097
  5. S. Lin and B.W. Kernighan, "An Effective Heuristic Algorithm for the Traveling-salesman Problem," Operations Research, Vol. 21, No. 2, pp. 498-516, 1973. https://doi.org/10.1287/opre.21.2.498
  6. M.R. Garey and D.S. Johson, Computers and Intractability; A Guide to the Theory of NP-Completeness, W.H. Freeman, San Francisco, 1979.
  7. H. Yoon, Y. Zheng, X. Xie, and W. Woo, "Smart Itinerary Recommendation based on Usergenerated GPS Trajectories," Proceeding of Ubiquitous-44-Intelligence and Computing, pp. 19-34, 2010.
  8. H.P. Hsieh, C.T. Li, and S.D. Lin, "Exploiting Large-scale Check-in Data to Recommend Timesensitive Routes," Proceeding of the ACM Special Interest Group on Knowledge Discovery and Data Mining International Workshop on Urban Computing, pp. 55-62, 2012.
  9. G. Chen, S. Wu, J. Zhou, and A.K.H. Tung, "Automatic Itinerary Planning for Traveling Services," IEEE Transactions on Knowledge and Data Engineering, Vol. 26, No. 3, pp. 514-527, 2014. https://doi.org/10.1109/TKDE.2013.46
  10. E. Lu, C.Y. Chen, and V.S. Tseng, "Personalized Trip Recommendation with Multiple Constraints by Mining User Check-in Behaviors," Proceeding of the 20th International Conference on Advances in Geographic Information Systems, pp. 209-218, 2012.
  11. I. Brilhante, J.A. Macedo, F.M. Nardi, R. Pergo, and C. Renso, "Where Shall We Go Today?: Planning Touristic Tours with Tripbuilder," Proceeding of the 22nd ACM International Conference on Information and Knowledge Management, pp. 757-762, 2013.
  12. H. Katagiri, T. Uno, K. Kato, H. Tsuda, and H. Tsubaki, "An Interactive Multiobjective Programming Approach to Tour Route Planning Problems," Proceeding of IEEE 6th International Workshop on Computational Intelligence and Applications, pp. 167-171, 2013.
  13. L. Ahmedi, K. Rrmoku, and K. Sylejmani, "Tourist Tour Planning Supported by Social Network Analysis," Proceeding of the International Conference on Social Informatics, pp. 295-303, 2012.
  14. H.K. Jung, S.M. Lim, and S.M. Hong, "Study on Algorithm to Generate Trip Plans with Prior Experience based on Users' Ratings," Korea Information Processing Society Transactions Software and Data Engineering, Vol. 3, No. 12, pp. 537-546, 2014.
  15. Y.J. Park, K.G. Song, J.W. Whang, and B.M. Chang, "A System for Personalized Tour Recommendation based on Ontology," Journal of the Korea Contents Association, Vol. 15, No. 9, pp. 1-10, 2015. https://doi.org/10.5392/JKCA.2015.15.09.001
  16. P. Aniruddha, J.T. Lim, K.S. Bok, and J.S. Yoo, "Personalized Travel Path Recommendation Scheme on Social Media," Journal of the Korea Contents Association, Vol. 19, No. 2, pp. 284-295, 2019. https://doi.org/10.5392/jkca.2019.19.02.284
  17. S.H. Park and S. Park, "Personalized Itinerary Recommendation System based on Stay Time," Korean Institute of Information Scientists and Engineers Transactions on Computing Practices, Vol. 22, No. 2, pp. 38-43, 2016.
  18. J.Y. Kim, G.H. Jo, K.H. Jo, J.S. Park, J.C. Kim, S.H. Jung, et al., "A Novel on Tourism Theme Analysis Using Elasticsearch and Tour API 3.0," Proceeding of the Fall Conference of the Korea Multimedia Society, pp. 883, 2018.
  19. R.W. Sinnott, "Virtues of the Haversine," Sky and Telescope, Vol. 68, No. 2, pp. 158, 1984.
  20. E.W. Dijkstra, "A Note on Two Problems in Connexion with Graphs," Numerische Mathematik, Vol. 1, Issue 1, pp. 269-271, 1959. https://doi.org/10.1007/BF01386390