TripBeats는 당신의 취향과 선호도에 맞춰 완벽한 여행지를 추천하고, 그 여행지에 어울리는 음악을 함께 제안하는 개인 맞춤형 사운드 트립 큐레이션 서비스입니다. TripBeats는 AI 기반의 고도화된 분석을 통해 유저의 세분화된 취향을 반영한 여행루트를 제안합니다. 이를 통해 단순한 관광을 넘어서, 진정으로 마음에 드는 나만의 여행루트를 발견하고, 매 순간이 음악과 어우러지는 잊지 못할 여행을 선사하고자 합니다.
연세대학교 빅데이터학회 YBIGTA 24th Conference Team ‘TripBeats’
- 23기: 강민정(DS), 김소민(DA), 양진성(DA), 김지수(DA)
- 24기: 이윤이(DA), 이상헌(DE)
프로젝트 지속기간: 2024.04~2024.10.(예정)
- 초개인화 시대의 도래: 혼자 여행을 즐기는 '혼행족'의 증가.
- 스카이스캐너 설문 조사에 따르면 18세 이상 여행자의 40%가 혼자 여행을 계획 중.
- 1인 여행객을 위한 서비스 부족: 안전 염려와 계획 수립의 어려움이 주요 불편 사항으로 꼽힘.
- 여행에서 음악의 중요성: MZ세대의 성향을 반영하여 여행과 음악을 결합한 서비스의 가능성 확인.
- 여행지 추천 데이터:
- AI HUB 국내 여행로그 데이터(수도권)
- POI 데이터 수집 및 GPT를 활용한 해시태그 생성
- 음악 추천 데이터:
- 멜론 선정 파워 DJ의 플레이리스트에서 약 9천 곡 수집
- Spotify API를 통해 음원에 대한 Audio Features 수집
- GPT를 활용한 음악 해시태그 생성
- 유저 기반 여행지 추천:
- 데이터 활용: 유저별 여행 기록 (선호 여행 타입, 성별, 연령대 등) 및 AI HUB 설문 항목 데이터 활용.
- 예측 변수 설정: 만족도, 재방문 점수, 추천 점수를 합한 값을 ‘TOTAL_SCORE’로 설정하여 예측.
- 회귀 문제 설정: 성별, 나이, 여행 스타일 등을 입력 변수로 사용하여 회귀 모델 구성.
- 알고리즘 선택: 성능 비교 후 Gradient Boosting Algorithms(GBR) 사용.
- 장소 유사도 기반 여행지 추천:
- 데이터 활용: 유저별 선호 여행지, 장소 설명 데이터 및 리뷰 데이터.
- 벡터화 및 유사도 계산: doc2vec을 활용하여 설명 및 리뷰 데이터를 벡터화하고 코사인 유사도 계산.
- 네트워크 분석: 유저 선호 여행지 설명 및 리뷰 데이터를 임베딩한 네트워크를 구성하여 중심성(coreness) 5개를 추출.
- 추천 모델: 유저가 선호한 여행지의 설명과 리뷰 유사도를 기준으로 여행지 추천.
- GPT를 통한 필터링:
- 자유 서술형 입력: 유저가 여행 추천 목록에 포함하고 싶은 장소와 제외하고 싶은 장소를 자유 서술형으로 입력.
- 필터링: 입력받은 데이터를 기반으로 필터링하여 더 개인 맞춤화된 추천 제공.
- 여행지 코스 추천:
- 알고리즘 사용: 유전 알고리즘과 Greedy Algorithm을 사용하여 여행지 코스 추천.
- 기준 및 제한 조건: 여행지 간 거리, 장소 및 유저 유사도, 카테고리 다양성, 여행지 개수, 소요 시간 등을 고려한 Fitness Function 구성.
- 성능 최적화: 더 빠른 속도를 위해 Greedy Algorithm 적용.
- 여행지에 어울리는 음악 추천:
- 해시태그 기반 유사도 측정: 여행지 관련 해시태그 임베딩 값과 음악 관련 해시태그 임베딩 값의 코사인 유사도 측정. (음악 별로 표준화된 코사인 유사도를 기반으로 특정 여행지와 가장 유사한 음악을 추천하는 알고리즘.)
- 사용한 embedding 모델: gte-large-en-v1.5, multilingual-e5-large-instruct 등 다양한 모델 성능 비교 후 최적 모델 사용. 추후 embeddig model의 fine-tuning 및 emsemble 진행 예정.
- 개인 맞춤형 음악 추천: 유저 취향(선호하는 장르와 해시태그 및 개방도)과 여행지 방문 시간대 정보를 바탕으로 한 Rule-based filtering
-
백엔드:
[아키텍처]
1. 클라이언트 요청: 클라이언트에서 요청을 보냄
2. Spring Boot 서버
- 클라이언트 요청을 받아 필요한 로직을 처리
- 모델 인퍼런스가 필요할 경우 FastAPI 서버로 요청을 전달
3. FastAPI 인퍼런스 서버
- 각각의 서버는 별도의 머신 러닝 모델을 사용하여 인퍼런스 작업을 수행
- 인퍼런스 결과를 Spring Boot 서버로 반환
4. Spring Boot 서버
- FastAPI 서버로부터 받은 인퍼런스 결과를 취합하여 클라이언트에게 응답
- 프론트엔드:
- React를 기반으로 한 직관적이고 사용하기 쉬운 컴포넌트 구현.
- UX 설계를 통해 최소한의 단계로 원하는 결과를 얻을 수 있도록 설계.
- 유저가 불필요한 인지적 노력을 들이지 않도록 시각적 효과 구현.
- 8~9월: 수도권 → 전국 확대, 추천 여행지 확장 및 유저 피드백, 큐레이션 등 부가 기능 도입 예정.
- 10월: 구글 플레이스토어에 앱 출시 예정.
- 관광 산업 활성화:
- 맞춤화된 여행 코스와 가격 경쟁력 있는 상품 구성으로 만족도 높은 여행 경험 제공.
- 유튜브, 팟캐스트 등에서 여행지 큐레이션 상품 출시를 유도하여 관광 활성화.
- 내수 경제 활성화에 기여.
- 지역 경제 활성화:
- 여행지 간 유사도를 바탕으로 지역 간 협력 유도 (연계형 관광 상품 출시).
- 음식점, 숙박 업소 등이 혼행 트렌드에 맞는 서비스 제공을 유도하여 매출 상승에 기여.
- 음원 시장 활성화:
- 지역 관련 음원 디렉팅을 통해 지역 관광 활성화와 음원 매출 상승에 기여.
- 외국인 여행객의 한국 음악 감상을 유도하여 한국 음원 시장의 해외 진출에 기여.
-
데이터 수집의 한계:
- 국내 여행로그 데이터가 수도권에 한정되어 있어 전국적인 데이터 커버리지가 부족.
- 동네 마트나 만화카페, 종교시설 등 여행지 추천에 부적합하다고 판단되는 데이터의 필터링이 완전하지 못했음.
- 음악 추천 데이터의 경우 특정 플레이리스트와 API를 통해 수집한 데이터에 의존. 이후, 추가적인 데이터 수집과 모델링을 통해 음악 추천의 다각화와 성능 향상을 이룰 에정임.
-
서비스 확장성:
- 초기에는 수도권에 한정된 서비스 제공으로 전국적 확장 시 기술적, 운영적 문제 발생 가능성.
- 도보/대중교통/차량 등과 같은 이동 수단에 따른 추천의 다각화 기능 필요.
- 유저의 피드백에 따른 모델 성능의 실시간적인 개선 기능 필요.
- 추천된 음악의 실시간 재생을 위한 리다이렉트 기능의 추가 필요.
- 실시간 여행중인 유저를 위한 부가 기능 필요.
- 다양한 여행지와 음악 취향을 반영하기 위해 지속적인 데이터 업데이트와 모델 개선 필요.
더 많은 정보와 업데이트 사항은 TripBeats 인스타그램 계정에서 확인하실 수 있습니다.
감사합니다!