여행 검색 경험 향상을 위한 AI 활용
여행을 준비할 때 우리는 숙소, 투어, 액티비티, 입장권 등 다양한 상품을 한 곳에서 검색하고 싶어합니다. 마이리얼트립의 통합검색은 바로 이런 니즈를 반영해, 항공을 제외한 모든 여행 상품을 한 곳에서 검색할 수 있도록 설계된 기능입니다. 하지만…
여행을 준비할 때 우리는 숙소, 투어, 액티비티, 입장권 등 다양한 상품을 한 곳에서 검색하고 싶어합니다. 마이리얼트립의 통합검색은 바로 이런 니즈를 반영해, 항공을 제외한 모든 여행 상품을 한 곳에서 검색할 수 있도록 설계된 기능입니다. 하지만 이렇게 다양한 상품을 한 번에 보여줄 때, “어떤 종류의 상품을 먼저 노출할 것인가?” 라는 중요한 문제가 발생합니다. 예를 들어, 사용자가 ‘제주 신화월드’ 를 검색했을때는 국내 숙소를, ‘홍콩 디즈니랜드’ 를 검색했을때는 티켓을 먼저 보여줘야 하는 거죠.
검색추천팀의 머신러닝 엔지니어인 이성진님은 이런 문제를 해결하기 위해 사용자가 입력한 키워드를 분석하여 어떤 종류의 여행 상품(예: 숙소, 티켓, 투어 등)을 가장 먼저 보여주는 것이 사용자의 의도에 부합하는지 판단할 수 있는 AI 기반 검색어 분류 시스템을 개발하기 시작했습니다.
검색 결과와 사용자 의도 사이의 간극
마이리얼트립의 통합검색을 통해 키워드 검색을 하면 가끔 사용자의 실제 의도와 검색 결과가 일치하지 않는 경우가 있습니다. 가령 ‘제주 신화월드’ 를 검색했을 때 투어/티켓 검색 결과가 상단에 나오는 경우를 들 수 있지요. 이렇게 여행 검색은 다양한 의도를 담고 있어 더욱 복잡합니다. 호텔을 찾는 것인지, 관광지 정보를 원하는 것인지, 아니면 티켓 예약을 원하는 것인지에 따라 적절한 결과가 달라져야 하지만, 현실은 그렇지 않은 경우가 많았습니다.
처음 시도했던 방식과 그 한계
“NER은 지나치게 복잡했고, 직접적인 의도 분류로 이어지기 어려웠습니다.”
가장 먼저 시도한 접근은 NER(Named Entity Recognition)을 활용한 방식이었습니다. Claude 기반으로 BIO 태깅(단어에 B(시작), I(내부), O(밖) 형태의 라벨을 붙여 엔터티 위치를 나타내는 방식)된 데이터를 생성하고, Llama 3.2B 및 Blossom 같은 Open 모델을 미세조정해 학습시켰습니다. 그러나 이 방식은 결과적으로 의도 분류라는 목적에 비해 구조가 지나치게 복잡했고, 실제 서비스 적용에 적합하지 않았습니다. 엔터티를 추출한 후 다시 해석해야 하는 이중 구조가 실효성을 떨어뜨렸기 때문입니다. NER 기반 접근은 여기서 중단하고, 보다 직접적인 분류 방식으로 전환했습니다.
Claude를 활용한 분류 시스템 구축
우리는 분류 모델을 통해 쿼리를 직접 투어, 티켓, 숙소, 렌터카, 쇼핑, 복합 등으로 나누기로 했습니다. 우선 3개월간의 통합검색 로그 30만여건 중 8회 이상 검색된 약 5만 개의 쿼리를 수집했고, 이 중 기존에 수작업 처리된 쿼리를 제외한 4.5만 개 정도에 대해 Claude를 이용해 분류를 진행했습니다.
“약 90%의 쿼리를 안정적으로 분류할 수 있었고, 그 중 24%는 기존의 노출 순서를 바꾸는 효과를 냈습니다.”
프롬프트는 총 12회 이상의 반복 실험을 통해 개선되었고, 각 클래스의 정의와 판단 기준을 명확히 규정하며, 확신이 없을 경우 default로 처리하도록 설계했습니다. 결과적으로 전체 쿼리의 약 90%에 대해 안정적으로 분류가 가능했고, 이 중 24%는 기존과 다른 순서로 노출하는 결과를 도출해냈습니다. 사용자의 검색 의도에 맞는 더 적절한 상품들을 노출할 수 있게 된거죠.
확장과 실험의 여지들
“사용자 행동 데이터 기반으로 피드백 루프를 구성할 수 있다면, 분류 시스템의 정밀도는 더욱 높아질 것입니다.”
이 시스템은 아직 진화 중입니다. 향후에는 쿼리 변형과 웹 문맥을 활용한 확장 실험도 계획하고 있습니다. 예를 들어, 유사 쿼리를 클러스터링해 의도를 확장하거나, 웹에서 수집한 관련 정보로 분류 정확도를 높이는 방식입니다. 단, Claude의 토큰 한계로 인해 입력이 과도해질 경우 로컬 모델로의 전환도 고려하고 있습니다. 또한 사용자 행동 데이터(예: 클릭, 전환 등)를 반영해 의도를 정교하게 해석하거나, 복합 의도(예: “제주 호텔 오션뷰”)를 세분화하는 방향도 검토 중입니다.
AI를 현업에 녹여낸다는 것
“단순히 AI를 도입하는 것이 아니라, 실제 사용자 경험을 개선할 수 있어야 진짜 의미가 있습니다.”
이 프로젝트는 단순한 분류 모델 적용에 그치지 않습니다. 우리가 얻은 가장 큰 인사이트는 LLM을 실제 운영 환경에 녹여내기 위해선 단순 정확도 이상으로 “서비스 상의 효용성”과 “운영 가능성”이 중요하다는 점입니다. 어떤 프롬프트가 일관되게 동작하는지, 시스템에 부하 없이 배치 처리가 가능한지, 혹은 유저 경험에 실질적인 영향을 주는지까지 종합적으로 고려해야 했습니다. 실제로 Q&A 시간에는 로컬 모델의 속도 및 콜드스타트 대처 가능성, 사용자 행동 데이터를 반영한 피드백 루프 구성 방안 등이 논의되었고, 이는 시스템의 실용성과 지속가능성에 대해 고민하게 해준 중요한 화두였습니다.
검색 의도를 정확히 파악하고 이에 따라 상품을 더 잘 연결해주는 일. 그것은 단순히 기술의 문제가 아닌, 사용자 경험의 본질을 건드리는 일이었습니다. 우리는 이 방향을 계속 밀고 나가보려 합니다.