김예빈Yebeen Kim

연구 · 석사 연구 · 국내 학술대회 논문

차량 운전자의 내비게이션 사용 이력 데이터셋을 활용한 개인화 POI 추천 시스템 (KCC'22)

체크인이 아닌 '목적지 설정' 로그로 운전자를 위한 POI 추천 문제를 정의하고, SAE-NAD를 피드백 가중 학습과 그룹 인기도 재랭킹으로 확장해 Recall@5를 최대 15.7% 개선한 연구

기간
2022.06 발표 (선행 산학 과제 2021.08 – 2022.03)
역할
제1저자 — 데이터셋 구축, 모델 구현, 실험 전체 수행, 논문 작성 참여
발표·산출
한국정보과학회 KCC 2022 · 2022년 한국컴퓨터종합학술대회 논문집 pp. 564–566 (2022.06)
날짜
2022.06
목차 19개 절
목차
  1. 산학 과제에서 논문으로 — 무엇을 새로 정의했는가
  2. 배경 — 개인화 POI 추천 문제의 구조
  3. 관련 연구 네 편과 베이스 모델 선택
  4. 문제 정의 — 내비게이션 도메인은 무엇이 다른가
  5. 베이스 모델 — SAE-NAD [Ma et al., CIKM'18]
  6. 베이스 모델 선정 과정 — 후보 10편에서 심층 3편까지
  7. 제안 ① — 취향이 드러나는 카테고리 선별과 카테고리별 독립 모델
  8. 제안 ① — 피드백 조건부 confidence 가중치 (식 1)
  9. 제안 ② — 운전자 그룹(성별 × 연령) 인기도 재랭킹
  10. 실험 설계 — 데이터셋과 평가 프로토콜
  11. 결과 — 음식점/카페/술집에서 최대 15.7%
  12. 확장 실험 — 왜 쇼핑·문화/레저는 오르지 않았나 (가설 → 데이터 검증)
  13. 한계와 후속 연구로 이어진 것
  14. 논문 원문 — 영문 제목, 초록, 참고문헌
  15. 데이터셋의 원천 — 4개 테이블과 결측 69%
  16. 정성 검증 — 실제 운전자 두 명의 top-10 대조
  17. 유저 스터디 — 45명 온라인 블라인드 테스트의 상세 수치
  18. 웹 데모 — 두 추천 결과를 지도 위에서 대조
  19. 분석에서 멈추지 않은 것 — 카테고리별 추천 시나리오와 과제 산출물
요약
  • 기존 개인화 POI 추천 연구는 Foursquare·Gowalla 같은 LBSN의 체크인 데이터를 전제로 발전해, 도보·대중교통 이용자만 대상으로 삼는 경우가 많았다. 차량 운전자 대상 연구는 거의 없었다.
  • 2021년 5월부터 10월까지 6개월간 실제 운전자로부터 수집된 내비게이션 이용 이력 데이터셋(최대 222,127명, 체크인 519만 건, 밀도 0.022–0.040%)으로 이 공백을 다뤘다.
  • LBSN용 모델 네 편(USG·Geo-Teaser·GeoIE·SAE-NAD)을 비교한 뒤 SAE-NAD [Ma et al., CIKM'18]를 베이스로 골랐다. 방문 순서에 의존하지 않고, 방문 횟수는 손실 가중치로 거리는 디코더로 이미 다루고 있어 새 신호를 넣을 자리가 분명했기 때문이다.
  • 두 곳을 확장했다. ① 취향이 드러나는 세 카테고리만 추천 대상으로 삼고, Like/Dislike에 따라 confidence 가중치의 ε을 e⁴ / e⁶ / e⁵로 다르게 둔 조건부 가중 학습(식 1). ② 성별 2 × 연령대 3 = 6개 운전자 그룹의 POI 인기도를 min-max 정규화해 예측 확률에 곱하는 재랭킹.
  • 인기도 기반 비개인화 추천 대비 음식점/카페/술집에서 Recall@5 0.032 → 0.038(+15.7%), Recall@10 0.054 → 0.061(+12.9%)을 얻었다. 반면 쇼핑은 Recall@10에서 0.277 → 0.277(0%)로 개선이 없었다.
  • 오르지 않은 숫자를 그대로 보고하고 원인을 파고들었다. 재방문이 지배적인 카테고리에서는 인기도가 이미 강한 베이스라인이라는 가설을 데이터로 검증했고, '밀도 0.02%의 데이터에서 미방문 POI를 모두 0으로 복원하는 것이 맞는가'라는 질문이 석사 연구 주제(네거티브 샘플링)로 이어졌다.
주요 수치
+15.7%Recall@5 개선음식점/카페/술집, 0.032 → 0.038 (비개인화 대비)
6개월수집 기간2021.05 – 2021.10 실제 운전자 내비게이션 이력
222,127명운전자 수쇼핑 카테고리 기준 (전처리 후 최대)
5,190,022건체크인세 카테고리 합계 (2,414,520 + 771,369 + 2,004,133)
0.022 – 0.040%데이터 밀도LBSN 벤치마크보다 희소
6개운전자 그룹성별 2 × 연령대 3 (20–30 / 40–50 / 60대 이상)

산학 과제에서 논문으로 — 무엇을 새로 정의했는가

'추천이 된다'를 확인한 과제를 하나의 연구 문제로 옮기는 작업이었다.

이 논문은 현대자동차와 수행한 VCRM 데이터 분석 산학 과제(2021.08–2022.03)의 결과를 정리해 2022년 한국정보과학회 KCC에 발표한 것이다. 산학 과제에서는 '내비게이션 데이터로 개인화 추천이 된다'는 것을 확인했고, 논문에서는 그것을 하나의 연구 문제로 정의하고 왜 되는지어디까지 되는지를 설명하는 것이 목표였다.

연구의 공백은 명확했다. 위치 기반 소셜 네트워크(LBSN, 예: Foursquare·Gowalla)는 사용자가 방문한 장소에 남긴 체크인 기록을 바탕으로 POI(Point of Interest)를 추천하고, LBSN 도메인을 위한 POI 추천 기법은 그동안 활발히 연구되어 왔다. 그런데 이런 연구들은 도메인 특성상 주로 도보 또는 대중교통으로 이동하는 사용자만을 추천 대상으로 삼는 경우가 많았다. 차량 운전자를 대상으로 개인화 POI 추천을 수행하는 연구는 진행이 매우 미흡한 상황이었다.

논문의 기여 세 가지

  • 문제 정의. 운전자가 방문 후 남긴 Like/Dislike와 성별·연령 정보를 함께 쓸 수 있는 내비게이션 도메인에서, 개인화 POI 추천 문제를 새롭게 정의했다. 명시적 피드백과 인구통계 정보가 동시에 주어지는 설정은 LBSN 체크인 데이터에는 없다.
  • 방법. LBSN용 모델 네 편을 비교한 뒤 SAE-NAD [Ma et al., CIKM'18]를 베이스로 골라, 내비게이션 데이터에 맞게 두 곳을 고쳤다 — 학습할 때 피드백을 가중치로 쓰고, 추천할 때 같은 성별·연령대의 인기도를 곱했다.
  • 검증. 6개월치 실세계 데이터에서, 인기도만 쓰는 비개인화 추천보다 Recall@5를 최대 15.7% 높였다.

저자와 지원

김예빈(한양대 인공지능학과), 배홍균·안지원(한양대 컴퓨터소프트웨어학과), 최현우·이아랑·이한송(현대자동차), 김상욱(한양대 컴퓨터소프트웨어학과). 현대자동차(T001600121010099), 한국연구재단(No. 2018R1A5A7059549), 정보통신기획평가원(No. 2022-0-00352)의 지원을 받아 수행되었다.

배경 — 개인화 POI 추천 문제의 구조

입력은 사용자 × POI 상호작용 행렬, 출력은 Top-N 목록. 일반 상품 추천과 다른 점은 거리다.

입력은 사용자 × POI 상호작용 행렬이다. 체크인이나 방문 횟수처럼 사용자가 남긴 행동 기록이고, 별점 같은 명시적 평가는 없다(implicit feedback). 방문한 POI는 선호로 볼 수 있지만, 방문하지 않은 POI에는 '싫어서 안 간 곳'과 '아직 모르는 곳'이 섞여 있다. 관측되지 않은 0을 그대로 부정 예시로 학습할 수 없다는 것이 이 문제의 핵심 난점이고, 뒤에서 가중 손실과 후속 연구를 이야기할 때 다시 등장한다.

출력은 사용자별 Top-N POI 목록이다. POI마다 방문 확률을 예측해 상위 N개를 추천하고, 실제로 방문한 POI가 그 안에 몇 개 들어 있는지로 평가한다.

일반 상품 추천과 다른 점은 거리다. 사용자는 직접 차를 타고 이동해야 하므로, 멀어질수록 방문 확률이 크게 떨어진다. Ye et al.은 한 사용자가 체크인한 POI들이 대부분 서로 가까운 거리에 위치하고 있음을 확인했고, 이후 연구들은 협업 필터링 신호에 지리적 영향을 함께 쓰는 방향으로 발전했다. 연구 흐름을 정리하면 거리 기반 확률 결합(2011) → 체크인 시퀀스 임베딩(2017) → POI별 지리 영향 학습(2018) → 오토인코더(2018)이며, 네 연구의 공통 전제는 모두 LBSN의 '체크인' 기록이다.

관련 연구 네 편과 베이스 모델 선택

지리 정보를 쓰는 대표 모델 네 편을 기여와 한계로 나눠 비교하고, SAE-NAD를 골랐다.

LBSN 도메인을 타겟으로 하는 기존 POI 추천 시스템들은 POI의 위치 또는 사용자의 현 위치 같은 지리적 정보를 공통적으로 사용한다. 네 편을 '내비게이션 데이터에 적용할 수 있는가'라는 기준으로 비교했다.

모델발표핵심 아이디어내비게이션 도메인에서의 한계 / 선택 이유
USGYe et al., ACM SIGIR 2011사용자 선호(User)·소셜 영향(Social)·지리적 영향(Geographical)을 확률로 결합해 추천. 거리에 따른 방문 확률을 처음으로 모델링했다.한계 — 친구 관계(소셜 그래프)가 필요한데, 내비게이션 데이터에는 없다.
Geo-TeaserZhao et al., WWW 2017체크인 시퀀스 데이터와 요일별 체크인 경향, POI 간 거리 정보를 종합해 요일별 개인화 추천을 수행.한계 — 방문 순서에 의존하는데, 운전자의 방문 간격은 매우 불규칙해 시퀀스를 어디서 끊을지 기준을 세우기 어려웠다.
GeoIEWang et al., IJCAI 2018POI마다 '주변에 주는 영향'과 '주변에서 받는 영향'을 따로 학습해, 같은 거리라도 POI에 따라 효과가 다르게 작동.한계 — 방문 횟수나 피드백 같은 추가 신호를 넣을 자리가 없다.
SAE-NADMa et al., CIKM 2018오토인코더로 방문 기록을 복원. 인코더는 attention으로 각 POI의 중요도를 계산해 사용자를 임베딩하고, 디코더는 이미 방문한 POI와 가까운 POI의 방문 확률을 더 높게 예측.선택 — 방문 순서에 의존하지 않고, 방문 횟수와 거리를 한 구조에서 다루며, 가중치 형태로 새 신호를 넣기 쉽다.

선행 산학 과제에서는 2011–2020년 POI 추천 논문의 흐름을 먼저 정리했다. 사용 정보로 보면 지리 정보 218편, 시간 정보 134편, 소셜 정보 116편 순이었고, 사용 모델로 보면 팩토라이제이션 141편, 확률 모델 139편, 하이브리드 90편, 딥러닝 66편이었다. 딥러닝의 사용률이 최근 3년 사이 빠르게 늘고 있어 '지리 정보를 쓰는 딥러닝 모델'로 방향을 잡고, 후보 10편 → 1차 5편(POI2Vec·SAE-NAD·TMCA·GPR·CatDM) → 심층 3편(SAE-NAD·TMCA·CatDM)으로 좁힌 뒤 SAE-NAD를 최종 선택했다.

문제 정의 — 내비게이션 도메인은 무엇이 다른가

체크인이 아닌 '목적지 설정' 기록이다. 세 가지 차이가 세 가지 설계 결정으로 이어졌다.

차이LBSN 체크인내비게이션 목적지 설정→ 설계 결정
행동 신호다녀온 곳을 사용자가 직접 공유한 확정 기록'가려는 의도'의 로그. 집·회사·학교처럼 취향과 무관한 목적지가 대부분이다.취향이 드러나는 세 카테고리만 추천 대상으로 삼고, 카테고리별로 모델을 따로 학습
이동 반경도보·대중교통 이용자는 수 km 단위로 이동운전자는 수십 km 단위로 이동. 거리에 따라 방문 확률이 떨어지는 스케일 자체가 다르다.후보를 현재 위치와 같은 광역시/도로 제한하고, 그 안에서 거리 영향을 반영
부가 정보소셜 그래프, 리뷰 텍스트소셜 그래프·텍스트 리뷰는 없지만, 방문 후 남긴 Like/Dislike와 운전자의 성별·연령이 있다.피드백은 학습 가중치로, 성별·연령은 재랭킹 신호로 사용

이를 바탕으로 문제를 다음과 같이 정의했다. 주어진 것은 운전자 집합과 POI 집합, 카테고리 c ∈ {음식점/카페/술집, 문화/레저, 쇼핑}, 6개월간 POI i를 목적지로 설정한 횟수 r(u,i) ≥ 0, 피드백 f(u,i) ∈ {Like, Dislike, 없음}, POI 좌표 l(i) = (위도, 경도), 운전자의 현재 위치가 속한 광역시/도 R(u), 그리고 운전자 그룹 g(u) ∈ {남, 여} × {20–30대, 40–50대, 60대 이상}이다. 구하는 것은 R(u) 내 POI 중 방문 확률 p̂(u,i)가 높은 상위 N개(N = 5, 10)이며, 학습 목표는 관측된 방문 벡터 x(u)를 잘 복원하는 함수를 학습하고 복원값을 방문 확률로 해석하는 것이다.

연구 질문 — LBSN을 위해 설계된 모델을 내비게이션 신호(피드백·성별·연령)에 맞게 확장하면, 같은 후보 집합에서 인기도만 쓰는 비개인화 추천을 넘어설 수 있는가?
문제 정의 — 주어진 것(운전자·POI·카테고리, 방문 횟수 r, 피드백 f, POI 좌표와 광역시/도 R(u), 성별×연령 그룹 g(u)), 구하는 것(R(u) 내 상위 N개, N = 5, 10), 학습 목표(관측된 방문 벡터 x(u)의 복원값을 방문 확률로 해석)
문제 정의 — 주어진 것(운전자·POI·카테고리, 방문 횟수 r, 피드백 f, POI 좌표와 광역시/도 R(u), 성별×연령 그룹 g(u)), 구하는 것(R(u) 내 상위 N개, N = 5, 10), 학습 목표(관측된 방문 벡터 x(u)의 복원값을 방문 확률로 해석)

베이스 모델 — SAE-NAD [Ma et al., CIKM'18]

오토인코더로 방문 이력을 복원하면서, 어디를 중요하게 볼지(attention)와 거리(이웃 영향)를 함께 학습한다.

오토인코더 기반 추천의 원리

운전자 u의 방문 벡터 x(u)는 POI 개수만큼의 차원을 갖고, 방문한 POI 자리만 1이다. 인코더가 이 희소한 벡터를 저차원 표현 h(u)로 압축하고, 디코더가 다시 원래 차원으로 복원해 x̂(u)를 만든다. 학습 목표는 복원값이 원래 벡터와 가까워지는 것이고, 학습이 끝나면 방문하지 않은 POI 자리에 복원된 값이 곧 방문 확률 예측이 된다. 방문 패턴이 비슷한 운전자들은 비슷한 저차원 표현으로 모이므로, 협업 필터링을 비선형으로 일반화한 것으로 볼 수 있다.

x(u) → [인코더: self-attention] → h(u) → [디코더: + 거리 기반 이웃 영향] → x̂(u)

  • ① Self-Attentive Encoder — 무엇을 중요하게 볼지. 운전자의 방문 기록에서 관찰되는 각 POI의 중요도를 attention network로 계산한 뒤, 중요도와 함께 각 POI를 인코딩해 운전자를 임베딩한다. 모든 방문을 똑같이 취급하지 않고, 그 운전자를 잘 대표하는 POI에 더 큰 비중을 둔다.
  • ② Neighbor-Aware Decoder — 거리를 어떻게 반영할지. 임베딩된 운전자 벡터와 각 POI 간의 interaction을 구해 방문 확률을 예측한다. 이때 POI의 지리 정보를 함께 고려해, 운전자가 방문한 적 있는 POI들과 가까운 거리에 위치한 POI일수록 방문 예측 확률이 더 높아지도록 계산된다. 임계 거리 밖의 POI는 이웃 영향을 받지 않는다.

가중 재구성 손실 — 방문 횟수를 confidence 가중치로

L = Σu Σi c(u,i) · ( x(u,i)x̂(u,i) )² + λ‖Θ‖²

c(u,i) = 1 + α · log( 1 + r(u,i) / ε )

방문 횟수 r이 클수록 가중치 c가 커져, 그 POI를 더 확실히 복원하도록 학습된다. 방문하지 않은 POI는 r = 0이므로 c = 1이 되어 약하게만 반영된다. 관측된 상호작용은 횟수가 많을수록 확신이 커지고 관측되지 않은 0은 낮은 확신으로 취급하는, implicit feedback의 표준적 장치다(Hu et al., 2008 계열). 이 논문의 첫 번째 확장이 바로 이 가중치를 바꾸는 것이다.

왜 이 모델이 내비게이션 데이터에 맞았나

방문 순서에 의존하지 않아 방문 간격이 불규칙한 이력에도 잘 맞고, 방문 횟수는 손실 가중치로 거리는 디코더에 이미 들어가 있다. 그래서 피드백과 성별·연령이라는 새 신호를 넣을 자리가 분명했다 — 학습 가중치와 출력 단계다.

베이스 모델 선정 과정 — 후보 10편에서 심층 3편까지

논문 관련 연구 절에는 네 편만 실렸지만, 실제 선정은 10편 → 5편 → 3편의 단계를 거쳤다.

2011–2020년 POI 추천 논문의 흐름을 먼저 정리했다. 사용 정보는 지리 정보 218편, 시간 정보 134편, 소셜 정보 116편 순이었고, 사용 모델은 팩토라이제이션 141편, 확률 모델 139편, 하이브리드 90편, 딥러닝 66편이었다. 딥러닝의 사용률이 최근 3년 사이 빠르게 늘고 있어 방향을 ‘지리 정보를 쓰는 딥러닝 모델’로 잡았다.

후보 문헌 10편 — 연관성 상/중/하 평가

연관성의 기준은 과제의 목적과 VCRM 데이터에 적용 가능한지였다.

연구학회방법론연관성사용 데이터와 특징
POI2VecAAAI'17POI Embedding / MF체크인 시퀀스 + 지리 정보. 취향과 최근 방문지를 함께 고려
Geo-TeaserWWW'17POI Embedding / MF시퀀스 + 요일(평일/주말) 이동 경향 + POI 간 거리. 요일별 추천
GeoIEIJCAI'18MF위/경도 + 체크인. 사용자 선호와 지리적 특성을 함께 고려
CAPEIJCAI'18DNN리뷰 텍스트 + 체크인. 시퀀스 내 POI 연관성과 POI 특성 고려
STAICDM'18Graph analysis지역·시간이 포함된 체크인. 특정 행정구역·시간에 따른 추천
CARASIGIR'18RNN중–하시간순 체크인 시퀀스. 주어진 시간에 따른 추천
SAE-NADCIKM'18Autoencoder체크인 + POI 간 거리. 선호도와 이전 방문 POI와의 거리를 고려 · 심층
TMCAICDM'18LSTM체크인 시각(24h·주말/평일), 이전 방문과의 시간·거리 차, 평가(좋아요/싫어요) 등 다양한 정보 · 심층
GPRCIKM'20GNNPOI–POI, 사용자–POI 그래프. POI의 in/out 영향력과 선호도 고려
CatDMWWW'20LSTM시퀀스 + 카테고리 + 지리 + 시간대. 카테고리·시간대별 선호와 장단기 선호 고려 · 심층

1차 선정은 연관성 ‘상’ 5편(POI2Vec · SAE-NAD · TMCA · GPR · CatDM)이었고, 2차 선정에서 제안 모델의 복잡도와 성능을 고려해 SAE-NAD · TMCA · CatDM 세 편을 심층 분석 대상으로 정했다. 논문은 저자가 읽고 정리한 뒤 박사과정 선배들과 교수님께 검토받는 방식으로 진행했다.

심층 3편 비교 — 동기 · 기대 효과 · 고려 사항

기대 효과를 EDA 결과 수치로 뒷받침한 것이 이 비교의 특징이다.

모델동기 · 아이디어내비 적용 시 기대 효과고려 사항결론
SAE-NAD (CIKM'18)
Self-Attentive Autoencoders with Neighbor-Aware Influence · Ma et al., McGill Univ.
체크인 중에도 선호를 대표하는 더 중요한 POI가 있고, 사용자는 이전 방문지와 가까운 POI를 선호한다. 오토인코더 + attention으로 대표 POI를 학습하고, 유사하면서 가까운 미방문 POI를 추천.운전자가 특히 선호하는 POI를 구분해 선호를 효과적으로 포착. 인접 선호 반영 — 생활편의 통합검색의 47%가 5km 이내(EDA)와 부합.내비에서는 목적지 설정 횟수 ≠ 선호일 수 있음 — 아파트·회사·공장.선택. 걸리는 점은 카테고리 선별로 보완
TMCA (ICDM'18)
Temporal and Multi-level Context Attention · Li et al., Shanghai Jiao Tong Univ.
시퀀스·위치 외에 이전 체크인과의 시간 간격, 거리, 시각, 평점 등 다양한 컨텍스트를 쓰면 더 정확해진다. LSTM으로 POI 임베딩을 학습하고 다층 컨텍스트 attention으로 다음 POI를 예측.시간(24h·주말/평일), 이전 목적지와의 간격·거리, POI 속성(도시·카테고리·좋아요/싫어요)을 모두 활용 가능. 시간대별로 다른 추천 — 새벽 여행/레저, 낮 생활편의(EDA).운전자의 방문 간 시간 간격 차이가 커, 시퀀스 범위를 어디서 끊을지 기준이 필요.보류. 순서 의존이 내비 데이터와 맞지 않음
CatDM (WWW'20)
Category-Aware Deep Model for Successive POI Recommendation · Yu et al., Shandong Univ.
다음 24시간 내 방문할 POI를 예측하려면 장·단기 선호가 모두 필요하다. 사용자–POI, 사용자–카테고리, POI–시간, 장단기 선호 4가지 관계를 LSTM으로 학습.시간대에 따라 달라지는 카테고리 선호와 장·단기 선호를 함께 고려 가능 — TMCA는 POI 선호만, CatDM은 카테고리 선호까지 추론.논문 실험은 10km 밖 POI를 후보에서 제외한 결과. 여행/레저는 10–50km 검색이 약 40%(EDA)라 그대로 쓰기 어려움.보류. 광역 범위에서의 효과가 검증되지 않음

제안 ① — 취향이 드러나는 카테고리 선별과 카테고리별 독립 모델

내비게이션에서 가장 많이 설정되는 목적지는 집·회사·학교다. 자주 가지만 취향이 아니다.

운전자 개인의 취향이 반영되기 쉬운 카테고리에 속하는 POI들만 추천 대상으로 삼았다. 선별한 카테고리와 해당 항목은 다음과 같다(초고 표 1).

카테고리항목
음식점한식, 분식, 중식, 양식, 뷔페, 일식 등
카페테마카페, 일반카페, 이색카페, 다방 등
술집호프, 바, 와인바, 칵테일 전문점 등
문화생활시설도서관, 전시장, 과학관, 박물관, 극장 등
레저/스포츠당구장, 골프연습장, 볼링장, 각종 경기장 등
쇼핑전문매장/상가, 시장, 아울렛, 백화점 등

이들 중 상호 연관성이 깊은 음식점·카페·술집을 묶어 하나의 카테고리로, 문화생활시설·레저/스포츠를 묶어 하나의 카테고리로 구성했다. 여기에 쇼핑까지 총 세 가지 카테고리에 대해 카테고리별 모델 학습과 개인화 POI 추천을 수행했다. 대중성이 취향보다 더 크게 작동하는 관광 카테고리는 제외했다.

왜 카테고리를 좁혔나

내비게이션에서 가장 많이 설정되는 목적지는 집·회사·학교다. 자주 가지만 취향과는 무관해서, 그대로 학습하면 모델이 생활 반경을 복원하는 데 용량을 쓰게 된다. 선행 산학 과제의 문헌 검토에서도 SAE-NAD를 그대로 쓸 때 걸리는 점으로 '내비게이션에서 목적지로 설정된 횟수가 선호와 반드시 비례하지 않는다(아파트·회사·공장)'는 문제를 이미 짚어 두었고, 카테고리 선별이 그 보완책이었다.

왜 모델을 세 개로 나눴나

음식 취향과 쇼핑 취향은 서로 다른 축이라 한 벡터에 섞으면 신호가 흐려진다. 카테고리별로 따로 학습하면 후보 공간이 줄어 데이터 밀도가 오르고, 재방문·탐색 같은 행동 차이도 카테고리 단위로 관찰할 수 있다. 실제로 이 설계 덕분에 뒤의 논의에서 카테고리별 결과 차이를 행동 차이로 설명할 수 있었다.

제안 ① — 피드백 조건부 confidence 가중치 (식 1)

베이스 모델의 confidence 가중치에서 α는 2로 두고, ε을 Like / Dislike / 그 외에 따라 e⁴ / e⁶ / e⁵로 나눴다.

모델의 입력으로 운전자의 POI 방문 횟수, 방문 후 남긴 피드백(Like/Dislike), POI 간 거리 정보가 사용된다. 이 중 방문 횟수와 피드백을 학습 과정의 가중치로 이용했다. 논문집 게재본의 식 (1)은 다음과 같다.

조건confidence 가중치 c(u,i)ε
POI i가 운전자 u로부터 positive feedback(Like)을 받은 경우1 + 2 log( 1 + r(u,i) / e⁴ )e⁴ ≈ 54.60
POI i가 운전자 u로부터 negative feedback(Dislike)을 받은 경우1 + 2 log( 1 + r(u,i) / e⁶ )e⁶ ≈ 403.43
그 외(방문 후 피드백이 없거나 미방문)1 + 2 log( 1 + r(u,i) / e⁵ )e⁵ ≈ 148.41

r(u,i)는 운전자 u의 POI i에 대한 방문 횟수다. 베이스 모델의 가중치 1 + α log(1 + r/ε)에서 α = 2로 고정하고, ε만 피드백에 따라 다르게 둔 형태다. ε이 작을수록 같은 방문 횟수에 대해 가중치가 크게 오르므로, Like → Dislike 방향으로 ε을 키운 것은 곧 '취향으로 인정되는 정도'를 줄인 것이다. 운전자가 방문한 적 없었던 POI는 r = 0이므로 세 분기 모두 c = 1이 되어, 단순히 1이 가중치로 사용된다.

논문 그림 1의 예로 계산하면

POI방문 횟수 r피드백계산c(u,i)
A7회Like1 + 2 log(1 + 7 / 54.6)≈ 1.24
B3회Dislike1 + 2 log(1 + 3 / 403.4)≈ 1.01
C, D0회 (미방문)1 + 2 log(1 + 0 / ε)= 1

해석하면, 방문 횟수가 많고 Like를 남긴 POI A는 재구성 오차에 약 24% 더 큰 벌점이 붙어 모델이 그 방문을 더 확실히 복원하도록 학습된다. 반대로 방문 횟수가 적고 Dislike를 남긴 POI B는 가중치가 1.01에 머물러, 방문 이력은 남기되 선호의 근거로는 거의 쓰이지 않는다. 같은 횟수를 방문했어도 피드백에 따라 취향으로 인정되는 정도가 달라진다. 이 학습 과정을 통해 운전자가 방문한 적 있던 POI들 사이에도 방문 횟수와 피드백에 따라 차등을 두어, 개인 취향이 더 잘 추론되도록 만들었다.

참고로 같은 식에 r = 7, 피드백 없음(ε = e⁵)을 넣으면 c ≈ 1.09가 된다(식 1로 직접 계산한 값). Like → 무피드백 → Dislike가 1.24 → 1.09 → 1.01로 단조 감소하는 구조다.

제안 ② — 운전자 그룹(성별 × 연령) 인기도 재랭킹

개인 선호 확률에 같은 성별·연령 그룹의 인기도를 곱해 최종 순위를 정한다.

학습이 끝난 디코더에 의해 방문 확률이 높게 예측된 상위 K개의 POI를 '개인 취향이 잘 반영된 후보'로 간주하고, 여기에 그룹 인기도를 결합했다. 절차는 다섯 단계다.

  1. 후보 선별. 학습된 디코더가 예측한 방문 확률로, 운전자의 현재 위치와 같은 광역시/도 안의 POI 중 상위 K개를 후보로 뽑는다.
  2. 그룹 결정. 성별은 남/여, 연령대는 20–30 / 40–50 / 60대 이상으로 구분해 만든 총 6개 그룹 중 하나에 운전자를 배정한다.
  3. 그룹 인기도 집계. 후보 POI마다, 타겟 운전자와 동일한 그룹에 속하는 운전자 중 그 POI를 방문한 적 있는 운전자의 수를 센다.
  4. 정규화. 방문자 수를 min-max 정규화로 0–1 사이 값으로 맞춘다. 카테고리와 지역마다 방문자 규모의 절대값이 크게 달라, 확률과 곱하기 전에 스케일을 맞춰 주는 단계다.
  5. 결합과 추천. 방문 예측 확률에 정규화한 그룹 인기도를 곱해 최종 점수를 내고, 이 점수 기준 상위 N개를 최종 추천 결과로 제공한다.

계산 예 (설명용 가상 수치, K = 4, 같은 그룹 운전자 기준)

POI방문 확률 그룹 방문자 수min-max 정규화최종 점수순위 변화
A0.90120명0.200.181위 → 3위
C0.60400명1.000.602위 → 1위
E0.60260명0.600.362위 → 2위
D0.5050명0.000.004위 → 4위

정규화 = (방문자 수 − 최솟값) / (최댓값 − 최솟값) · 최종 점수 = × 정규화한 그룹 인기도

개인 확률만 보면 A가 0.90으로 1위지만, 같은 그룹의 운전자들은 거의 가지 않는 곳이라 3위로 내려간다. 확률이 0.60으로 조금 낮아도 그룹에서 가장 많이 간 C가 1위가 된다. 결과적으로 개인 취향에 맞으면서, 비슷한 사람들에게도 검증된 장소가 앞에 놓인다.

왜 곱셈인가, 왜 그룹인가

곱셈은 두 점수가 모두 높아야 앞에 오는 AND 결합이다. 개인 취향과 그룹 인기도 중 하나만 높은 곳은 자연히 순위가 내려간다. 개인 선호를 likelihood, 그룹 선호를 prior로 보면 두 신호의 late fusion으로 해석할 수 있다. 그룹을 고른 이유는 두 가지다. 산학 과제의 데이터 분석에서 성별·연령대별 취향 차이가 뚜렷했고, 모델 구조를 바꾸지 않고 이 정보를 더할 수 있는 가장 단순한 방법이었다. 또 이력이 짧은 운전자에게는 그룹 신호가 개인 신호를 보완한다. 설계의 출발점은 벤치마킹에서 본, 기록이 거의 없는 라이트 유저에게는 연령·성별·시간·위치 통계로 그룹 기반 추천을 하고 기록이 쌓이면 임베딩과 협업 필터링으로 넘어가는 구조였다.

실험 설계 — 데이터셋과 평가 프로토콜

6개월치 실세계 데이터를 시간순 8:2로 나누고, 같은 후보 집합에서 인기도 추천과 비교했다.

내비게이션 데이터셋 (표 2)

총 6개월간(2021/5–10) 실제 운전자로부터 수집된 내비게이션 사용 이력 데이터셋을 사용했다. 전처리로 k-core 방식을 적용했다 — 음식점/카페/술집에 대해서는 8명 미만의 운전자가 방문한 POI와 8개 미만의 방문 POI를 갖는 운전자를 제거했고, 문화생활시설/레저스포츠와 쇼핑에 대해서는 그 기준을 3으로 두었다. 상호작용이 풍부한 카테고리는 기준을 높여, 카테고리별로 학습 가능한 밀도를 확보하기 위한 단계다.

카테고리#(운전자)#(POI)#(체크인)Density
음식점/카페/술집141,16465,4922,414,5200.026%
문화생활시설/레저스포츠100,78219,125771,3690.040%
쇼핑222,12740,2522,004,1330.022%

전처리를 거쳐도 밀도는 0.022–0.040%다. 운전자 한 명이 전체 POI 중 1만분의 2에서 4만 방문한 셈이고, 흔히 쓰이는 LBSN 벤치마크보다도 희소하다. 그래서 방문하지 않은 POI를 어떻게 다루는지가 성능을 크게 좌우한다. 밀도가 이렇게 낮아 모델의 설정값도 여러 번 실험을 돌려 가며 맞춰야 했다.

평가 프로토콜

  • 시간순 8:2 분할. 운전자별 카테고리별 방문 히스토리를 시간 순 기준 8:2로 나눠 앞 80%는 트레이닝셋, 뒤 20%는 테스트셋으로 썼다. 무작위로 나누면 미래 방문이 학습에 섞여 성능이 과대평가된다.
  • 후보 집합. 운전자의 현재 위치 기준, 동일 광역시/도 내에 위치한 POI만 후보로 두고 top-N(N = 5, 10)을 선별했다. 전국 217만 개 POI를 모두 후보로 두면 계산이 무겁고 추천도 흐려진다. 거리 영향의 기준도 맞지 않으므로, 너무 먼 POI에는 거리 가중치를 주지 않도록 했다.
  • 베이스라인. 같은 후보 집합에서 방문자 수 순으로 정렬하는 인기도 기반 비개인화 랭킹이다. 개인화의 기여만 보기 위해 후보 범위와 N을 똑같이 맞췄다.
  • 테스트셋 구성. 테스트셋에는 운전자가 이전에 방문한 적 있던 POI(재방문)까지 모두 포함해, 실제 다음 방문을 그대로 맞히는 과제로 두었다. 이 선택이 카테고리별 결과 차이를 해석하는 열쇠가 된다.

평가 지표

Recall@N = (1 / |U|) · Σu | Top-N(u) ∩ T(u) | / | T(u) |

T(u)는 테스트 기간에 운전자 u가 실제로 방문한 POI 집합이다. 광역시/도 안 수천~수만 개 후보에서 N = 5, 10만 고르므로 절댓값은 작고, 같은 조건의 비개인화 추천과의 상대 비교가 목적이다.

결과 — 음식점/카페/술집에서 최대 15.7%

오르지 않은 숫자(쇼핑 R@10, 0%)까지 표에 그대로 실었다.

비개인화 추천 방법과의 추천 정확도 비교 (표 3)

카테고리메트릭비개인화개인화 (제안)Gain
음식점/카페/술집R@50.0320.03815.7%
음식점/카페/술집R@100.0540.06112.9%
문화/레저R@50.0990.1023.0%
문화/레저R@100.1520.1541.3%
쇼핑R@50.1850.1934.3%
쇼핑R@100.2770.2770%

카테고리별로 읽기

  • 음식점/카페/술집 (+15.7% / +12.9%). POI가 65,492개로 가장 많고, 사람마다 취향이 크게 갈리는 카테고리다. 인기도만으로는 R@5가 0.032에 그치는데, 이는 '모두가 가는 곳'이 거의 없다는 뜻이고 그만큼 개인 이력과 피드백이 설명할 여지가 크다.
  • 쇼핑 (+4.3% / 0%). 인기도만으로도 R@5 0.185, R@10 0.277에 이른다. 대형마트·백화점·아울렛처럼 소수 시설에 방문이 몰리고 같은 곳을 반복해서 가기 때문에, 인기도가 이미 매우 강한 베이스라인이다.
  • 문화생활시설/레저스포츠 (+3.0% / +1.3%). 골프연습장·극장처럼 한 번 정한 곳을 다시 가는 재방문형 소비가 많아, 쇼핑과 같은 이유로 개선 폭이 작았다.

N이 커질수록 개선 폭이 줄어든다

음식점은 15.7% → 12.9%, 문화/레저는 3.0% → 1.3%, 쇼핑은 4.3% → 0%로 줄어든다. 개인화의 효과가 상위 몇 개에 몰려 있고, 목록이 길어지면 인기도 추천이 따라잡는다는 뜻이다. 화면에 몇 개만 보여 주는 내비게이션 UI에서는 개인화가 더 유리하다는 시사점으로 이어졌다.

확장 실험 — 왜 쇼핑·문화/레저는 오르지 않았나 (가설 → 데이터 검증)

'처음 가는 장소만' 모은 테스트셋을 따로 만들자, 그룹 인기도가 오히려 성능을 떨어뜨렸다.

논문에는 표 3 한 장만 실렸지만, 선행 산학 과제 단계에서는 두 가지를 더 나눠 보았다. 첫째, 운전자가 이전에 방문한 적 없는 POI만으로 구성한 Non-visited 테스트셋을 따로 만들어 '이미 갔던 곳을 다시 맞히는 것만으로 점수가 오르는 것'을 막았다. 둘째, 방문 히스토리만 쓴 모델과 여기에 그룹 인기도를 더한 모델을 나눠 무엇이 기여했는지 확인했다.

테스트셋카테고리지표비개인화방문 히스토리Gain히스토리 + 그룹 인기도Gain
Total음식점/카페/술집R@50.0320.038+15.7%0.040+25.0%
Total음식점/카페/술집R@100.0540.061+12.9%0.064+18.5%
Total문화/레저R@50.0990.102+3.0%0.103+4.0%
Total문화/레저R@100.1520.154+1.3%0.162+6.6%
Total쇼핑R@50.1850.193+4.3%0.205+10.8%
Total쇼핑R@100.2770.2770%0.302+9.0%
Non-visited음식점/카페/술집R@50.0310.038+22.5%0.041+32.3%
Non-visited음식점/카페/술집R@100.0510.061+19.6%0.066+29.4%
Non-visited문화/레저R@50.0980.104+6.1%0.092−6.1%
Non-visited문화/레저R@100.1560.1560%0.151−3.2%
Non-visited쇼핑R@50.1740.164−5.7%0.170−2.2%
Non-visited쇼핑R@100.2640.251−4.9%0.259−1.8%

전체 테스트셋에서는 그룹 인기도를 더하면 세 카테고리 모두 성능이 올랐다(음식점 R@5 +25.0%, 쇼핑 R@5 +10.8%). 그런데 처음 가는 장소만 모은 Non-visited 테스트셋에서는 쇼핑과 문화/레저의 성능이 오르지 않았고, 그룹 인기도를 더하면 오히려 내려갔다(문화/레저 R@5 −6.1%, 쇼핑 R@5 −2.2%). 그룹 인기도가 '사람들이 이미 가던 곳'을 더 밀어주기 때문이다.

가설 → 데이터 검증

이 숫자를 숨기지 않고 그대로 보고한 뒤, 두 가지 가설을 세워 데이터로 확인했다.

  • 가설 1. 음식점/카페/술집에서는 새로운 장소를 방문하는 경향이 문화/레저·쇼핑보다 크다. 새 맛집·카페 탐방은 흔하지만, 골프장·스키장은 회원권을 산 곳만 가는 경우가 많다. → 분석 1: Total 테스트셋에서 운전자가 방문한 적 없던 POI의 비율을 운전자별로 구해 평균했더니, 음식점/카페/술집이 문화/레저스포츠·쇼핑보다 확실히 높았다. 가설 지지.
  • 가설 2. 새로운 음식점/카페/술집을 갈 때도 평소 자주 이용하는 메뉴(소분류 카테고리) 안에서 찾는다. → 분석 2: Non-visited 테스트셋에서 운전자가 방문한 적 없던 소분류 카테고리의 비율을 구해 평균했더니, 음식점/카페/술집이 오히려 더 낮았다. 새로운 곳을 가더라도 익숙한 메뉴 안에서 간다는 뜻이다. 가설 지지.

따라서 쇼핑·문화/레저에서 개인화가 힘을 못 쓴 것은 모델의 실패가 아니라, 운전자가 그 카테고리에서는 가던 곳을 다시 가기 때문이라고 설명할 수 있게 되었다. 재방문 POI를 테스트셋에 포함한 평가 프로토콜이 이 차이를 더 키웠다. 45명 대상 온라인 블라인드 테스트에서도 같은 패턴이 나왔다 — 개인화를 고른 비율은 71–75%였지만, 자유 의견에는 "괜찮은 음식점이 많이 추천되었으나, 색다른 장소를 발견하지 못한 건 아쉬웠음"이라는 반응이 남았다. 예측 확률에 그룹 인기도를 곱하면 정확도는 오르지만 인기 있는 POI가 더 자주 노출되는, popularity bias 강화 현상과 정확히 일치한다.

한계와 후속 연구로 이어진 것

세 번째 한계 — '희소한 데이터에서 부정 예시는 무엇인가' — 가 석사 연구 주제가 되었다.

논문에 남은 한계

  • 베이스라인이 인기도 랭킹 하나. 원래의 SAE-NAD나 다른 LBSN 모델(USG·Geo-Teaser·GeoIE)과의 비교가 없고, 피드백 가중치와 그룹 재랭킹의 기여를 따로 떼어 보는 ablation도 논문에는 실리지 않았다.
  • 지표가 Recall@N 하나. 순위 품질을 함께 보는 지표(NDCG 등)와, 반복 실험에 기반한 통계적 검정이 필요하다.
  • 하이퍼파라미터 민감도 미보고. α와 ε, 후보 수 K가 결과에 어떤 영향을 주는지 분석하지 못했다. 특히 ε을 e⁴ / e⁵ / e⁶으로 고른 근거가 실험적으로 제시되지 않았다.
  • '목적지 설정 = 방문'이라는 가정. 운전자가 실제로 그 POI에 도착했는지는 데이터로 확인할 수 없었다.

이론적으로 짚어본 세 가지

  • 카테고리별 효과 차이는 재방문과 탐색의 비율 차이다. 인기도 추천은 재방문이 많은 쇼핑·문화/레저에서 강하고, 개인화 모델은 새로운 곳을 찾아가는 음식점/카페/술집에서 유리하다.
  • 인기도를 곱하는 재랭킹은 정확도를 올리지만 popularity bias를 강화한다. 유저 스터디의 '색다른 장소를 발견하지 못했다'는 반응이 같은 현상이다.
  • 밀도가 0.022–0.040%인 데이터에서는 방문하지 않은 POI가 모두 0으로 복원 대상이 되어, 모델이 인기 있는 POI 쪽으로 수렴하기 쉽다. 방문하지 않은 POI 중 무엇을 진짜 '안 갈 곳'으로 볼 것인지가 열린 질문으로 남았다.

후속 연구

세 번째 물음이 석사 연구 주제가 되었다.

  • 체크인 시퀀스 기반의 next POI 추천 시스템을 위한 네거티브 샘플링 방법 — ASK 2023, 우수논문상
  • Negative Sampling in Next-POI Recommendations: Observation, Approach, and Evaluation — WWW 2024
  • Next-POI 추천을 위한 네거티브 POI 샘플링 방법 및 그 시스템 — 특허 출원

산학 과제의 결과를 연구로 옮길 때 필요한 것은 새로운 모델이 아니라 정확한 문제 정의와 재현 가능한 평가라는 점을 이 논문에서 배웠다.

논문 원문 — 영문 제목, 초록, 참고문헌

게재본의 서지 정보와 초록 전문, 그리고 관련 연구 [1–4]의 정식 제목이다.

제목

  • 국문 — 차량 운전자의 내비게이션 사용 이력 데이터셋을 활용한 개인화 POI 추천 시스템
  • 영문 — A Personalized POI Recommender System Using Drivers' Navigation History

초록 (원문)

최근, 위치 기반 소셜 네트워크의 사용이 활발해지면서, 개인화 POI 추천에 관한 다양한 연구들이 산업계/학계에서 활발히 이뤄지고 있다. 하지만, 그 동안의 개인화 POI 추천 연구는 주로 위치 기반 소셜 네트워크 서비스 이용자들 (즉, 도보 또는 대중 교통을 통해 이동하는 사용자들)만을 대상으로 진행되어 왔다. 즉, 차량 운전자 대상의 개인화 POI 추천 연구는 진행이 미흡한 실정이었다. 따라서 본 연구에서는, 실제 차량 운전자들로부터 총 6개월동안 수집된 내비게이션 데이터셋을 이용해, 운전자가 방문 후 남긴 리뷰 및 그룹 별 인기도를 이용하여 개인화 POI 추천을 수행하는 방법을 새롭게 제안한다. 실세계 내비게이션 데이터셋을 이용한 실험을 통해, 본 연구에서 제안하는 방법이 인기도 기반의 단순 랭킹을 이용하는 비개인화 추천 방법 대비, 최대 약 15%까지 추천 정확도를 개선할 수 있음을 확인하였다.

초록과 서론·결론은 모두 ‘최대 약 15%’로 서술한다. 표 3의 15.7%를 반올림해 보수적으로 적은 표현이다. 결론의 마지막 문장은 “실세계 데이터셋을 이용한 실험 수행 결과, 제안 방안이 POI 추천 정확도 측면에서, 매우 효과적임을 확인할 수 있었다”이다.

참고문헌 [1–4]

번호제목저자 · 학회
[1]Exploiting Geographical Influence for Collaborative Point-of-Interest RecommendationYe, M. et al., ACM SIGIR 2011
[2]Geo-Teaser: Geo-Temporal Sequential Embedding Rank for Point-of-Interest RecommendationZhao, S. et al., WWW 2017
[3]Exploiting POI-Specific Geographical Influence for Point-of-Interest RecommendationWang, H. et al., IJCAI 2018
[4]Point-of-Interest Recommendation: Exploiting Self-Attentive Autoencoders with Neighbor-Aware InfluenceMa, C. et al., CIKM 2018

본문의 인용 방식도 정확히 옮기면, 2절 관련 연구는 “LBSNs 도메인을 타겟으로 하는 기존의 POI 추천 시스템들은, POI의 위치 또는 사용자의 현 위치 등과 같은 지리적 정보를 공통적으로 사용한다 [1-4]”로 시작하고, 3절 제안 방안은 SAE-NAD를 [4]로 지목해 기반 모델임을 밝힌다. 논문 본문에서 모델 구조는 그림 1로, 가중치 계산은 식 1로 참조된다.

데이터셋의 원천 — 4개 테이블과 결측 69%

논문 표 2의 정제된 통계 뒤에는, 2억 3천만 건 중 69%에 POI ID가 없는 원천 데이터가 있었다.

논문에는 전처리 후 통계(표 2)만 실렸지만, 그 앞에 원천 데이터를 다루는 단계가 있었다. 데이터는 네 종류로 왔다.

구분담긴 정보
검색차대번호를 해시한 운전자 식별자, 검색 시각, POI 식별자와 좌표, 검색 방법, 정렬 기준
리뷰방문 후 남긴 좋아요 / 싫어요
운전자성별, 나이
POI명칭, 대분류 · 중분류 · 소분류 카테고리
  • 규모. 2021년 5월부터 8월까지 운전자 189만 명, POI 218만 개 규모였다.
  • 결측. 검색 기록 2억 3천만 건 중 약 69%에 POI 식별자가 비어 있었다. 이름과 좌표만 남아 있었고, 그냥 버리면 데이터의 3분의 2가 사라지기 때문에 위도·경도를 기준으로 POI 정보와 다시 맞추는 작업을 했다.
  • 크기. 네 자료를 한 번에 합치면 메모리가 버티지 못해, 월 단위로 잘라 처리하고 집계 결과를 먼저 만들어 반복해서 쓸 수 있게 했다. 결과적으로 약 7천만 건의 정제된 데이터셋이 만들어졌다.

모델 입력의 정확한 형태

모델 설계 단계에서 정리한 입력 정의는 다음과 같다. 운전자 정보 — 성별(남/여), 연령대(20–30 / 40–50 / 60대 이상). POI 정보 — 위치, 카테고리. 방문 정보 — 방문 횟수, 방문 후 리뷰(Like / Dislike / Close). 즉 리뷰는 두 종이 아니라 세 종이었고, 논문 식 (1)에서 가중치를 나눈 것은 이 중 Like와 Dislike였다.

'성별·연령 그룹'과 '거리'를 모델에 넣은 EDA 근거

주변 검색의 개선점을 찾으라는 과제 목표만 있고 무엇을 볼지 정해진 것이 없어, 검색 방법 · 정렬 · 카테고리 · 거리 · 성별 · 연령 · 시간대 · 지역 · 리뷰 9가지 관점을 스스로 정해 하나씩 분석했다. 그렇게 알게 된 것은 운전자의 66%가 통합검색을 쓰고, 주변검색은 82%가 5km 안에서 이뤄진다는 사실, 새벽엔 골프장 · 밤엔 아파트처럼 시간대마다 찾는 장소가 다르다는 사실, 그리고 20–30대와 40–70대의 취향이 뚜렷하게 갈린다는 사실이었다. 이 발견이 성별·연령 그룹 재랭킹과 거리 기반 후보 제한을 모델에 반드시 넣어야 한다는 근거가 되었다.

정성 검증 — 실제 운전자 두 명의 top-10 대조

Recall 숫자만으로는 무엇이 달라졌는지 보이지 않아, 실제 기록을 따라가며 두 추천 결과를 눈으로 대조했다.

비개인화(인기도)와 개인화(제안)의 top-10을 같은 운전자에게 나란히 뽑아 비교했다. 두 사례 모두 실제 방문지를 개인화 추천이 7위에서 맞혔고, 비개인화는 맞히지 못했다.

사례 1 — 40–50대 남성 · 서울 · 음식점/카페/술집 (실제 방문지: 진주회관)

방문 기록 12곳 — 해주가든, 소학장수촌, 성북동면옥집, 진갈비, 노란상소갈비, 평양집 등 한식 위주.

방법top-10특징
비개인화 (인기도)스타벅스 연희DT · 영등포신길DT · 송파나루역DT · 공릉DT · 구의DT · 방화DT · 종암DT, 카페노티드, 맥도날드 청담DT, 우래옥 본점커피전문점 8곳. 실제 방문지 미적중
개인화 (제안)우래옥 본점, 토속촌삼계탕, 산모퉁이, 스타벅스 연희DT, 또순이네, 북한산제빵소, 진주회관 (7위 · 실제 방문), 패션5, 필동면옥, 마복림떡볶이한식 위주로 재구성. 실제 방문지 7위 적중

사례 2 — 40–50대 여성 · 울산 · 음식점/카페/술집 (실제 방문지: 간절곶해빵)

방문 기록 6곳 — 삼고정문, 미가연, 감자네, 황태회관 등 한식 5곳 + 제과점 1곳(지재근 베이커리).

방법top-10특징
비개인화 (인기도)라메르판지, 농도, 언양기와집불고기, 스타벅스 5곳, 호피폴라, 시선310제과점 0곳. 실제 방문지 미적중
개인화 (제안)언양기와집불고기, 스타벅스 간절곶점, 떡바우횟집, 태양칼국수, 스타벅스 국가정원점, 가천린포크, 간절곶해빵 (7위 · 실제 방문), 동남횟집, 해마지, 한가위한 번뿐인 제과점 기록까지 반영해 적중

사례 2가 특히 시사적이다. 여섯 번의 방문 중 한 번뿐인 제과점 기록이 top-10에 반영된 것은, 식 (1)의 confidence 가중치가 방문 횟수가 작은 관측도 1보다 크게 두어 완전히 묻히지 않게 하기 때문이다. 반대로 인기도 랭킹은 방문자 수가 절대적으로 많은 프랜차이즈 커피전문점을 지역 단위로 반복해 내놓았다.

유저 스터디 — 45명 온라인 블라인드 테스트의 상세 수치

카테고리별 응답 수·선택 비율·만족도와 자유 의견 여덟 건이다. '71–75%'라는 요약 뒤에 있던 내용이다.

설계

  • 참가자 45명 — 남 29명(65%) · 여 16명(35%) / 20대 17명(37%) · 30대 23명(52%) · 40대 5명(11%).
  • 평소 내비에서 주로 검색하는 장소: 음식점/카페/술집, 아파트/주택/집.
  • 절차 — ① 웹 데모에서 현재 지역과 카테고리(음식점/카페/술집 · 문화/레저스포츠 · 쇼핑) 선택 → ② 방문한 적 있는 장소를 검색해 입력하고 방문 횟수와 좋아요/싫어요를 남김 → ③ 비개인화·개인화 결과를 리스트 A / B로 순서를 숨겨 제시하고 취향에 더 가까운 쪽을 선택 → ④ 선택한 리스트의 만족도(5점)를 과거 방문지 포함 / 미포함 각각 평가.

결과

카테고리응답개인화 선택비개인화 선택만족도 (포함 / 미포함)세부 만족도 순
음식점/카페/술집45명32명 (71%)13명 (29%)3.7 / 3.6음식점 › 카페 › 술집
문화/레저스포츠17명12명 (71%)5명 (29%)3.6 / 3.7문화 › 레저스포츠
쇼핑20명15명 (75%)5명 (25%)4.1 / 3.9

흥미로운 역전이 두 곳 있다. 정량 결과에서 개선 폭이 가장 작았던 쇼핑이 만족도는 4.1 / 3.9로 가장 높았고, 개선 폭이 가장 컸던 음식점/카페/술집은 3.7 / 3.6이었다. 또 문화/레저스포츠는 과거 방문지를 포함하지 않은 쪽의 만족도(3.7)가 포함한 쪽(3.6)보다 높은 유일한 카테고리였다. Recall과 체감 만족도가 같은 방향으로 움직이지 않는다는 관찰이다.

자유 의견

추천 만족도 측면 — “시군구 단위로 좁히면 두 결과(A, B)가 서로 비슷하게 나옴”, “프랜차이즈 음식점·카페는 추천하지 않아도 될 것 같음”, “음식점/카페는 만족스러웠으나 문화/레저, 쇼핑은 효용이 크지 않았음”, “괜찮은 음식점이 많이 추천되었으나, 색다른 장소를 발견하지 못한 건 아쉬웠음”.

인터페이스 측면 — “추천 장소의 간략한 정보와 추천된 이유를 함께 보여주면 좋겠음”, “가격·거리 등 다양한 정렬 기준이 있으면 좋겠음”, “좋아요/싫어요 외에 남길 수 있는 리뷰 종류가 더 다양하면 좋겠음”, “‘과거 방문지 포함 추천’ 옵션은 없어도 될 것 같음”.

종합하면, 인지도가 있는 음식점·카페에는 취향이 잘 반영된 준수한 추천을 하지만 숨은 명소를 원하는 수요가 크고 여기에는 약했다. 첫 번째 의견(“시군구로 좁히면 두 결과가 비슷해진다”)은 후보 집합의 크기가 개인화의 여지를 결정한다는 뜻으로, 논문이 후보를 광역시/도로 둔 선택과 직접 맞물린다.

블라인드 테스트 설문 문항 — 어느 쪽이 개인화인지 숨긴 채 리스트 A / B 중 취향에 더 가까운 쪽을 고르게 했고, 차이가 크지 않으면 추천 지역 단위를 '광역시/도 단위'로도 바꿔 확인하도록 안내했다
블라인드 테스트 설문 문항 — 어느 쪽이 개인화인지 숨긴 채 리스트 A / B 중 취향에 더 가까운 쪽을 고르게 했고, 차이가 크지 않으면 추천 지역 단위를 '광역시/도 단위'로도 바꿔 확인하도록 안내했다

웹 데모 — 두 추천 결과를 지도 위에서 대조

모델 결과를 표로만 보여주면 쓸 만한지 알 수 없어, 누구나 써볼 수 있는 웹 어플리케이션을 만들었다.

화면은 네 단계다.

  1. 주변 검색 시작. 랜딩에서 데모로 진입한다.
  2. 카테고리 선택. 문화시설/레저스포츠 · 음식점/카페/술집 · 쇼핑 중 추천받을 카테고리를 고른다.
  3. 방문 POI 입력. 상호명·주소·카테고리로 검색해 방문했던 장소를 추가하고, 방문 횟수를 조절하고 좋아요/싫어요를 남긴다.
  4. 추천 결과. 필터(카테고리 · 과거 방문지 포함 여부 · 추천 지역 단위 시군구/광역시도)를 고르면, 지도 위에 현위치 / 개인 맞춤 추천 / 랭킹 기반 추천(인기도) / 두 결과의 중복 장소가 색이 다른 마커 4종으로 표시된다. 오른쪽에는 입력한 체크인 기록(상호명·카테고리·방문횟수)이 함께 보인다.

학습된 카테고리별 모델이 웹에서 받은 입력(성별·연령·지역·방문 기록·리뷰)으로 추론해 개인화·비개인화 두 리스트를 반환한다. 최종 발표에서 라이브로 시연했고, 앞의 45명 블라인드 테스트도 이 데모로 진행했다.

이 데모가 논문의 검증 방식에서 중요한 이유는, '개인화 vs 비개인화'를 같은 후보 집합·같은 지역 단위에서 동시에 보여 준다는 점이다. 표 3의 상대 비교와 정확히 같은 조건을 사람이 눈으로 확인할 수 있게 옮긴 것이다.

추천 결과 화면 — 필터(카테고리 / 과거 방문지 포함 추천 / 추천 지역 단위 시군구·광역시도)와 지도 위 마커 4종(현위치 · 개인맞춤 추천(SAE-NAD) · 랭킹 기반 추천(인기도) · 두 결과 중복 장소), 오른쪽에 입력한 체크인 기록 3건
추천 결과 화면 — 필터(카테고리 / 과거 방문지 포함 추천 / 추천 지역 단위 시군구·광역시도)와 지도 위 마커 4종(현위치 · 개인맞춤 추천(SAE-NAD) · 랭킹 기반 추천(인기도) · 두 결과 중복 장소), 오른쪽에 입력한 체크인 기록 3건
방문 POI 입력 화면 — 상호명·카테고리·주소와 함께 방문횟수를 조절하고 좋아요/싫어요를 남긴다. 이 입력이 식 (1)의 r(u,i)와 피드백 분기로 들어간다
방문 POI 입력 화면 — 상호명·카테고리·주소와 함께 방문횟수를 조절하고 좋아요/싫어요를 남긴다. 이 입력이 식 (1)의 r(u,i)와 피드백 분기로 들어간다

분석에서 멈추지 않은 것 — 카테고리별 추천 시나리오와 과제 산출물

카테고리마다 운전자 행동이 다르다는 것을 데이터로 확인했으므로, 추천 방식도 카테고리별로 다르게 제안했다.

카테고리제안한 추천 방식근거
음식점/카페/술집같은 성별·연령 그룹을 바탕으로, 자주 가는 세부 카테고리 안에서 새로운 장소를 추천분석 1 — 미방문 POI 비율이 가장 높음. 분석 2 — 미방문 소분류 카테고리 비율은 오히려 낮음(익숙한 메뉴 안에서 새 곳을 찾는다)
문화/레저스포츠가봤던 장소와 새로운 장소를 함께 추천Non-visited에서 히스토리만 쓴 모델은 R@5 +6.1%였지만 그룹 인기도를 더하면 −6.1%로 역전
쇼핑가봤던 장소를 다시 추천하는 데 초점Total R@10에서 인기도가 이미 0.277, Non-visited에서는 개인화가 −4.9%까지 하락

즉 '오르지 않은 숫자'가 실패로 남지 않고 카테고리별 UX 시나리오라는 산출물로 정리되었다. 두 번째 행이 특히 그렇다. 같은 재랭킹을 카테고리에 따라 켜고 끄는 결정이 데이터에서 나왔다.

이 과제가 남긴 산출물

  • KCC'22 논문 「차량 운전자의 내비게이션 사용 이력 데이터셋을 활용한 개인화 POI 추천 시스템」 발표.
  • 모델·웹·분석 산출물을 정리해 현대엔지비에 전달 (2022.04).
  • “숨은 명소를 못 맞힌다”는 한계가 이후 네거티브 샘플링 연구(ASK'23 우수논문상, WWW'24, 특허 출원)로 이어짐.

과제에서 정리한 배운 것 세 가지

  • 데이터를 믿기 전에 먼저 의심하기. 식별자가 빠진 69%를 그냥 버렸다면 전혀 다른 결론이 나왔을 것이다. 전처리에서 무언가를 버릴 때마다 “무엇을 잃는가”를 적어 두는 습관이 생겼다.
  • 논문은 출발점, 설계는 도메인이 결정한다. “아파트는 취향이 아니다”처럼 내비게이션에서만 보이는 사실이 카테고리 선별과 그룹 인기도, 지역 범위라는 설계로 이어졌다.
  • 오르지 않은 숫자가 다음 질문을 만든다. 처음 가는 장소에서 성능이 떨어진 카테고리를 파고든 것이 행동 가설과 유저 스터디, 그리고 석사 연구 주제까지 이어졌다.

여기서 배운 것

  1. 도메인이 모델 선택을 결정한다. 성능이 가장 좋은 모델을 고른 것이 아니라, '새 신호(Like/Dislike, 성별·연령)를 넣을 자리가 있는 구조'를 기준으로 SAE-NAD를 골랐다. 모델을 바꾸지 않고 손실 가중치와 출력 단계만 건드려 도메인 지식을 주입할 수 있었던 것이 이 확장의 핵심이다.
  2. 전처리와 후보 집합 설계가 실험의 절반이다. 취향과 무관한 집·회사·학교를 걸러내는 카테고리 선별, k-core 기준을 카테고리별로 8 / 3으로 다르게 둔 전처리, 후보를 광역시/도로 제한한 결정이 모두 결과의 해석 가능성을 만들었다.
  3. 평가를 정직하게 설계하면 오르지 않은 숫자가 정보가 된다. 시간순 8:2 분할과 Non-visited 테스트셋을 함께 둔 덕분에, 쇼핑·문화/레저의 0% 개선이 '모델 실패'가 아니라 '해당 카테고리의 재방문 지배성'이라는 행동 사실로 설명될 수 있었다.
  4. 정확도와 발견성은 다른 축이다. 그룹 인기도 곱셈 재랭킹은 Total 테스트셋의 정확도를 올렸지만 Non-visited 테스트셋에서는 성능을 떨어뜨렸고, 유저 스터디의 '색다른 장소를 발견하지 못했다'는 반응과도 일치했다. 정확도 지표 하나로 추천 품질을 대변할 수 없다는 것을 수치로 확인했다.
  5. 밀도 0.02%의 implicit feedback에서 '미방문 = 부정'이라는 기본 가정이 병목이다. 미방문 POI를 전부 0으로 복원하도록 학습하면 모델이 인기 아이템으로 수렴한다. 이 한계를 논문에 명시해 두었고, 그것이 그대로 석사 연구(네거티브 샘플링)의 문제 정의가 되었다.