grep

Engineering

여기어때의 검색 결과 없음(NR)에 대한 이야기

김정훈Dovy(도비) / 검색개발팀여기어때

2024년 12월 31일

원문에서 보기 ↗

안녕하세요, 여기어때컴퍼니에서 검색을 담당하고 있는 검색플랫폼개발팀 도비입니다. 오늘은 사용자들이 경험하는 “검색 결과 없음(No Results, 이하 NR)” 문제를 여기어때에서는 어떻게 해결해 나가고 있는지 이야기해보려고 합니다.

1. 여기어때 검색의 현황

여기어때는 현재 키워드 베이스의 검색을 주로 사용하고 있습니다. 키워드 검색의 장점은 간편하고 직관적인 검색 방식으로 사용자의 경험을 단순화 하고, 특정 키워드에 대한 빠르고 정확한 결과가 제공 가능 하다는 것입니다. 하지만 키워드 베이스 검색은 사용자가 검색의도를 정확히 표현하지 못하거나, 검색한 데이터가 색인 내 일치하는 항목이 없는 경우 결과 없음 상황이 자주 발생하게 됩니다.

관련 부서와 협업하여 데이터를 분석해보니, 약 18%의 사용자들이 검색 결과 없음을 경험하고 있었고, 주요 원인은 오타나 미제휴점 키워드 등 이었으며, 이는 사용자들이 추가 탐색 없이 이탈할 가능성을 높이는 요인으로 작용하고 있었습니다.

키워드 검색의 장점

키워드 검색의 단점

검색 결과 없음의 주요 원인(실제 분석된 내용은 더 많지만 비중으로 접근)

오타나 미제휴점의 검색결과 없음 (예)

2. 결과 없음(NR)을 줄이기 위한 노력

이 문제를 해결하기 위해 저희는 관련 부서와 협업하며, 많은 고민을 했습니다. 그리고 키워드 베이스내에서 할 수 있는 부분과 흔히 AI나 LLM등으로 표현되는 시멘틱 검색부분으로 나누어 단계적으로 접근하였습니다. 키워드 베이스에서는 검색 데이터를 보강하고 알고리즘을 개선하는 데 집중하며 여러가지 방안을 시도했고, 시멘틱 검색을 위해서는 각종 데이터의 임베딩이나 GCP등 AI 플랫폼을 이용한 방식을 시도해 보았으며, 그 결과 NR 비중을 눈에 띄게 줄일 수 있었습니다.

여러가지 방법:

3. 오타 교정과 미제휴점 주변 추천 (1단계)

1단계에서는 가장 빈번하게 발생하는 NR 원인인 “오타”와 “미제휴점” 문제를 해결하는 데 집중했습니다. 오타교정이나 미제휴점 추천은 키워드 베이스에서 사전을 통한 해결방식과 시멘틱 검색을 통한 방식 모두 가능하나, 좀 더 타겟팅 된 결과를 보여주기 위해 사전을 통한 방식으로 접근하였습니다.

(1) 오타 교정

사용자들이 입력한 키워드에서 오타를 찾아내기 위해 Elasticsearch(ES)의 퍼지 검색 기능을 활용하는 방식과 제휴점, 주소, 명소 등 보유 데이터 및 SR 키워드 중 후보군을 추출하고, 직접 거리 계산 방식을 비교하여 정확도가 높은 방식을 선정.

퍼지 검색의 장단점:

직접 거리 계산 방식:

(2) 미제휴점 주변 추천

미제휴점으로 인해 검색 결과가 나오지 않는 경우, 사용자가 검색한 미제휴점 주변의 제휴점을 추천하는 방식으로 접근했습니다. 이를 위해 주소 및 POI와 POLYGON 데이터를 구축하여 검색된 미제휴점과 가까운 장소를 추천할 수 있었습니다.

미제휴점 주변 추천의 특징:

오타교정과 미제휴점 추천 결과 (예)

4. 시멘틱 검색 (2단계)

1단계에서 오타 교정과 미제휴점 추천으로 전체 검색량 중 검색결과없음(NR) 비중을 3% 내외로 낮출 수 있었습니다. 하지만 여전히 남아있는 NR문제를 해결하기 위해서, 최근 GCP AI 기반의 Vertex AI Search를 활용해 사용자의 의도를 더 깊이 이해하고 관련 결과를 제공하는 시멘틱 검색을 내부적으로 실험했고 오픈을 준비 중입니다.

시멘틱 검색을 위한 여러 시도:

시멘틱 검색의 주요 특징:

시멘틱 검색 실험 (예)

5. 앞으로의 계획

여기까지 검색 결과 없음을 줄이기 위해 노력한 과정들을 소개해드렸습니다. 사실 검색결과 없음은 한 번에 해결 할 수 있는 문제는 아닙니다. 검색결과를 취합하고 분석해주시는 분들, 또한 유의미한 데이터를 도출하여 기획을 하고 의견을 제시해주시는 분들, 만들어진 API를 이쁘게 UX로 포장해주시는 분들, 오픈 이후에도 꾸준히 데이터를 보강하고 운영해주시는 분들, 여러 관련 부서의 인원들의 지속적인 노력이 만들어내는 결과입니다.

앞으로도 검색 결과 없음 문제를 해결하기 위해 더욱 고민하고 좋은 솔루션을 찾아가도록 하겠습니다. 이후에는 오타교정이나 미제휴점 추천, 시멘틱 검색을 좀더 TECH적인 관점에서 하나씩 짚어가는 글로 찾아뵐까 합니다. 지금까지 읽어주셔서 감사합니다.