AI로 개선한 커머스 검색: 오타, 동의어부터 자연어까지

안녕하세요. 달파 커머스팀의 PM 박효연입니다.
저희 팀은 작년부터 커머스에서 자주 발생하는 '검색 실패' 문제를 해결하기 위해 다양한 시도를 해왔습니다.
오늘은 여러 커머스에서 공통적으로 마주치는 검색 이슈와, 이를 AI로 개선했던 기술적 방법들을 간단히 소개드리려 합니다.
1.검색 실패, 조용한 매출 손실
검색했는데 원하는 상품이 안 나와서 앱을 꺼버린 적, 한번쯤 있으실 거에요.
겉보기엔 잘 작동해 보여도, 검색으로 인한 손실은 생각보다 큽니다.
고객은 말없이 떠나고, 그 순간은 전환율에도 통계에도 잘 잡히지 않거든요.
그래서 많은 기획자분들은 검색 문제를 인지조차 하지 못하거나,
알면서도 객단가나 광고 수익에 밀려 우선순위를 낮춥니다.
하지만 최근엔 점점 더 많은 팀들이 AI를 활용해
오타, 키워드 확장, 의미 기반 검색 등 다양한 개선을 시도하고 있어요.
막막하다면 문제의 크기를 가늠하는 것부터 시작해보세요.
아래의 지표 중 하나라도 측정해보시는 것을 추천드립니다.
지표명 | 정의 | 이상적인 수치 |
---|---|---|
No result Rate | 검색 결과가 0건인 검색어의 비율 | 5% 이하 |
검색 후 클릭 전환율 | 검색 이후 상품을 클릭한 비율 | 20~30% 이상 |
검색 후 장바구니 전환율 | 검색 이후 장바구니에 담긴 비율 | 10% 이상 |
검색 후 구매 전환율 | 검색 이후 실제 구매로 이어진 비율 | 2~5% 이상 |
검색 NDCG | 검색 결과의 순위 품질 지표. 유의미한 결과가 상위에 노출될수록 점수가 높아짐 | 0.8 이상 (1에 가까울수록 좋음) |
2.검색 실패의 유형
검색실패 문제의 크기를 파악했다면, 다음으로는 구체적으로 어떤 유형의 검색실패가 발생하는지 파악해야 합니다.
대부분의 커머스에서는 보통 흔히 알려진 Elastic Search를 기반으로 한 키워드 매칭 중심의 검색 시스템을 사용합니다. 이런 경우 검색 실패의 대표적인 유형은 다음과 같습니다:
- 오타·띄어쓰기 실수
- 철자 오류나 복합어 붙여 쓰기로 인해 결과가 누락되는 경우
- 예:
빠스키에
,아디다스슬리퍼
,고양ㄴ이모레
- 단어는 다른데 뜻은 같은 경우
- 사용자 표현과 상품 등록 키워드가 달라 연결되지 않는 경우
- 예:
운동화
↔스니커즈
,셔츠
↔남방
- 자연어형 검색어 (롱테일 검색어)
- 기획 키워드나 상황 중심 표현처럼, 상품명과 직접 연결되지 않는 검색어
- 예:
집들이 선물 추천
,여름 휴가용 린넨 셔츠
,칼로리 낮은 간식
- 없는 상품·브랜드 검색
- 실제로 판매되지 않아 결과를 줄 수 없는 경우
- 예: 단종된 제품, 미입점 브랜드, 존재하지 않는 옵션 등
위와 같은 검색어들은 일반적인 검색어에 비해 검색량은 상대적으로 적지만,
구체적인 구매 의도나 상황이 담겨 있는 경우가 많아 전환율이 높은 편입니다.
하지만 표현 방식이 매우 다양하고 정형화되어 있지 않기 때문에,
기존의 키워드 기반 검색으로는 모두 대응하기가 현실적으로 불가능하죠.
3.'검색 의도'를 파악하는 벡터 검색
이런 문제를 해결하기 위해 도입하는 것이 의미 기반 검색(Semantic Search)입니다.
핵심은 검색어와 상품을 '키워드의 일치 여부'가 아니라 '의미의 유사도'로 연결하는 것이며, 그 중심에는 임베딩(embedding) 모델이 있습니다.
🧠 임베딩 모델이란?
- 사람의 언어나 상품 정보를 '벡터'라는 숫자 덩어리로 변환하는 모델입니다.
- 이 벡터는 '의미'를 담고 있기 때문에, 단어가 다르더라도 유사한 의미를 가진 표현들을 가까운 위치에 매핑할 수 있습니다.
예: "아기 간식"과 "유아용 스낵"은 단어는 다르지만, 벡터 공간에서는 가까운 위치에 있게 됩니다.
🧩 어떤 모델을 쓸까?
- 종합 커머스: 가장 범용적인 자연어 모델
- 패션, 식품 등 특화 커머스: 색상, 계절감, 소재 등 특성을 잘 반영하는 도메인 특화 모델
하지만 이 '베이스 모델'만으로는 부족한 경우가 많습니다. 우리 서비스의 고객들이 검색하는 방식, 제품 카탈로그에 맞게 모델을 파인튜닝(fine-tuning) 해야 커머스에 맞는 더 정교한 검색이 가능합니다.
4.우리 서비스에 맞는 AI 검색 만들기
🔧 파인튜닝이란?
임베딩 모델을 우리 서비스에 맞게 최적화시키는 것을 말합니다. 이 때 '검색어가 어떤 상품에 대한 검색의도를 가지고 있는지' 를 알려주는 행동 데이터가 필요합니다.
💾 학습 데이터는 어떻게 생겼을까?
다음은 실제 검색 행동 데이터를 기반으로 만든 학습용 데이터 예시입니다. 검색 후 클릭, 장바구니, 구매 등의 행동 데이터 로그를 통해 비교적 쉽게 구축할 수 있습니다.
query | positive 상품 | negative 상품 |
---|---|---|
저칼로리 아이스크림 | 라라스윗 초콜릿 아이스밀크, 빙그레 더위사냥 제로 | 에스프레소 캡슐 1개, 유스풀몰 도마 세트 |
쿠션 파운데이션 | 라네즈 네오 쿠션 21N, 이니스프리 마이쿠션 SPF50+ PA+++ | 틴트 립밤, 핸드크림 세트 |
하객룩 | 모노톤 플레어 원피스, 린넨 블렌디드 자켓 투피스 | 그래픽 티셔츠, 트레이닝 팬츠, 수영복 상하의 세트 |
이렇게 쿼리-정답-오답 데이터를 수천~수십만 건 쌓아 학습하면 모델은 "정답 상품은 가까이, 오답은 멀리" 보내도록 학습됩니다. 우리 서비스에 딱 맞는 임베딩 모델로 점차 최적화되는 것이죠.
🤖 그 결과로 가능한 것들
- 오타:
저캘로리 아이스크림
→라라스윗 초콜릿 아이스밀크
- 동의어:
저당 아이스크림
,다이어트 아이스크림
→라라스윗 초콜릿 아이스밀크
- 자연어/롱테일:
결혼식 갈 때 입을 옷
→모노톤 플레어 원피스
,린넨 블렌디드 자켓 투피스
- 브랜드 인식:
라네즈 쿠션
→라네즈 네오 쿠션 21N
물론, 여기까지 소개한 방법 외에도 실제로는 더 많은 기술적 모듈이 함께 작동합니다. 예를 들어, 한국어 오타 교정 모델, 커머스 특화 토크나이징, 동의어 자동 확장, 검색 태그 자동 증강 같은 것들이죠.
“우리는 쓸만한 데이터가 없는데요”라고 말씀하시는 팀들도 많습니다.
그럴 땐 작은 행동 로그부터 쌓고, 시작 가능한 부분부터 정리하면서 하나씩 최적화해 나가야 합니다.
검색은 하루아침에 좋아지지 않습니다. 하지만, 조금씩 데이터를 활용하고 AI로 보완하는 구조를 만들어가면 사람이 일일이 태그를 붙이지 않아도, 다양한 검색 의도에 유연하게 반응하는 우리만의 검색 모델을 만들 수 있습니다.