안녕하세요? 🥮기획자 팥씨입니다.
오늘은 29cm에서 사용자의 검색 행위를 어떻게 분기하여 처리하고,
문제가 생길 시 어떻게 대응하는지 알아보도록 하겠습니다.
검색 원리의 이해와 검색 문제 대응하기
안녕하세요 저는 29CM 검색팀의 검색 운영담당자(PM) 원효석입니다. 저의 첫 포스팅은 우리 29CM에서는 어떤방식으로 검색이 처리가 되며 검색결과 문제에 대해서는 어떻게 대응하는지에 대한 소
medium.com
좋은 글 써주신 29CM 검색 PM 님 감사합니다. 🙇🏻♂️
[배경]
- 특정 검색어를 사용하여 상품을 찾아내지 못하는 경우가 있다.
- 원하는 상품을 정해두고 검색을 했는데,
원하는 것과 전혀 다른 상품들이 보여져서 쇼핑을 포기하게 되는 경우가 발생한다.
- -> 이 경우, 원하는 상품을 찾지 못하고 고객이 이탈을 하거나
상품을 찾기 위해 많은 시간을 소요해 쇼핑에 피로감을 줄 수 있다.- 금일 읽은 기사에서 표현을 빌려오자면..
- 1) 탐색비용 증가
- 2) 인지적 종결 욕구 높은 사람에게 피로감 부여
인지적 종결욕구란?
경제적 의사결정 : 정보를 처리하는 데 드는 시간과 노력을 최소화하려는 선택
이 욕구가 높을수록 신속한 의사결정을 중시하고, 기존 대안을 반복 선택하는 경향을 보임
[현재의 29CM 검색 프로세스]
- Elastic Search 엔진과 Nori 형태소 분석기를 사용하여 검색 서비스를 제공하고 있음.
(기술에 대한 설명은 아래에 추가했습니다.)
Elastic Search 엔진
개요:
- 오픈 소스 분산 검색 및 분석 엔진.
- 대량의 데이터를 실시간으로 검색하고 분석하는 데 사용됨.
특징:
- 분산 아키텍처: 데이터를 여러 노드에 분산하여 저장하고, 검색 및 분석 작업을 병렬로 수행.
- 강력한 검색 기능: 다양한 쿼리 언어와 필터를 사용하여 복잡한 검색 조건을 처리.
- 실시간 검색: 데이터가 인덱싱되는 즉시 검색 가능.
- 확장성: 수평적으로 확장 가능, 즉 노드를 추가하여 처리 능력을 쉽게 증가시킬 수 있음.
- RESTful API: RESTful 웹 서비스를 통해 쉽게 접근 및 관리 가능.
- 다양한 데이터 타입 지원: 텍스트, 숫자, 날짜 등 다양한 데이터 타입을 인덱싱 및 검색 가능.
Nori 형태소 분석기
개요:
- Elastic Search에서 한글 텍스트를 분석하기 위해 사용하는 형태소 분석기.
- 일본어 형태소 분석기인 Kuromoji를 기반으로 한 한글 분석기.
특징:
- 한글 텍스트 분석: 한글 문장을 형태소 단위로 분해하여 의미를 분석.
- 토큰화: 문장을 의미 있는 단어(토큰)로 나눔.
- 맞춤법 교정 및 정규화: 한글의 다양한 변형을 정규화하여 일관된 검색 결과 제공.
- 사용자 사전: 특정 도메인이나 애플리케이션에 맞게 사용자 정의 사전을 추가하여 분석 품질 향상.
- 다양한 형태소 태그: 명사, 동사, 형용사 등 다양한 품사 태그를 지원하여 세부적인 텍스트 분석 가능.
결합 사용
텍스트 인덱싱:
- 한글 문서를 Elastic Search에 인덱싱할 때, Nori 형태소 분석기를 사용하여 텍스트를 형태소 단위로 분해하여 인덱싱.
검색 쿼리 처리:
- 사용자가 검색어를 입력하면, Nori 형태소 분석기를 통해 검색어를 분석하고, Elastic Search가 분석된 검색어를 바탕으로 적절한 결과를 반환.
정확한 검색 결과 제공:
- 한글 특유의 언어적 특성을 고려한 형태소 분석을 통해 보다 정확하고 의미 있는 검색 결과를 제공.
현재의 FlowChart에 따르면, 아래와 같은 검색 Flow를 제공하고 있습니다.
검색어 -> 형태소 분석 -> 유사어 확장 -> 상품정보 색인 -> 랭킹정렬 -> 검색결과 페이지
- 검색어
- 고객이 원하는 상품을 찾기 위해 키워드를 검색하는 과정
- 검색어의 70% : 브랜드명, 상품명
- 키워드 입력 후 엔터를 치는 순간부터, 검색결과 페이지 노출까지의 여정
- 형태소 분석
- Nori 형태소 분석기 사용, 고객의 검색어 분석
- 기능 (1) : 키워드를 명사별로 분절하여 검색소스로 활용
- 기능 (2) : 자동 오탈자 교정 기능을 통해 키워드 수정
- 예시 : 드링크탱크 -> 드&링&탱크 // 셀레뷰 -> 세&레뷰
- 명사키워드 데이터(드링크탱크, 셀레뷰 등) 를 넣어서 학습시켜줘야 함.
그렇지 않다면 잘못된 명사분적 및 오탈자교정이 발생하여 잘못된 검색결과를 보여주게 됨. - 29CM에 입점한 전체브랜드 / 브랜드 유사어 / 카테고리 / 카테고리 유사어 / 일반키워드 등 지속적으로 사전에 등록 중
- 명사키워드 데이터(드링크탱크, 셀레뷰 등) 를 넣어서 학습시켜줘야 함.
- 유사어 확장
- 브랜드/카테고리/일반키워드 3종류의 유사 검색어들을 모아 놓은 데이터 사전 활용
- 고객들이 특정 대표 키워드를 두고 검색을 할 수 있는 키워드들 확장 -> 상품 노출
- 예시 : 가디건 = 가디간, 카디건, Cardigan // 마르디 메크르디 = 마르디, 메크르디, 마르디메크리디
- 유사어 사전에 공식명칭 대표 키워드를 설정하고, 그에 맞는 유사 키워드를 등록. (브랜드, 카테고리, 일반 키워드)
- 상품정보 색인
- 형태소 -> 유사어 확장되면, 해당 키워드를 통해 상품 정보들과 매칭되고 결과 불러옴.
- 매칭되는 상품정보 필드는
- 브랜드필드 : 해당 브랜드 대표명과 그에 등록된 브랜드 유사어 키워드들이 검색어와 매칭
- 카테고리 : 대>중>소 3단계의 구조로 설정, '소' 카테고리 기준으로 유사어 사전에 등록된 키워드들도 검색어와 매칭
- 검색어 : MD 또는 파트너 측에서 입력, 검색어와 매칭되는 데 사용
- 상품 기본정보 : 상품명, 옵션값, 검색필터 등. "일반키워드" 분류값으로 등록된 유사어들이 검색어와 매칭
- 랭킹정렬 & 6. 검색결과 페이지
- 2~4의 과정을 통해 결과에 노출된 준비가 된 상품들의 순서 정렬
- 랭킹정렬 : 고객의 주문수 / 클릭 수 / 좋아요 / 장바구니 담기 / 정확한 키워드 매칭 등의 조건에 따라
스코어가 부여되고, 스코어 높을 수록 검색결과 페이지의 상단에 상품 노출
- 랭킹정렬 : 고객의 주문수 / 클릭 수 / 좋아요 / 장바구니 담기 / 정확한 키워드 매칭 등의 조건에 따라
- 2~4의 과정을 통해 결과에 노출된 준비가 된 상품들의 순서 정렬
[올바른 검색이 되려면]
- 형태소 사전에 올바른 키워드들을 등록 -> 검색어 분석이 정확히 이루어지도록 해야 한다.
- 유사어 사전에 고객이 검색할 수 있는 다양한 키워드들을 등록하여 검색 확률을 높여줘야 한다.
- 브랜드, 카테고리, 상품 기본정보 등을 정확하게 등록하여 검색어와 올바르게 매칭에 되어 상품이 노출되도록 해야 한다.
[검색문제 발생 시 대응 프로세스 : 검색문제 유형을 3가지로 분류 후 상세 구분 9가지로 분류]
경우의 수를 나눠본다.
- 노출이 안되거나
- 노출이 '잘못' 되거나
- 랭킹이 잘못되거나
위의 검색 프로세스에 대한 이해를 바탕으로,
위의 3가지 경우에 따라 원인을 파악하고 대응하는 방법은 아래와 같다.
- 상품 노출이 안됨
- 검색어 오분석 : 형태소 사전에 올바른 명사 키워드를 등록하여 해결
- 유사어 미등록 : 공식명칭을 대표 키워드로 설정 후 유사어 사전에 등록하여 해결
- 상품 노출이 잘못됨
- 검색어 오분석 : 형태소 사전에 올바른 명사 키워드를 등록하여 해결
- 유사어 오등록 : 유사어 사전에서 해당 키워드를 삭제하여 해결
- 카테고리 오맵핑 : 올바른 카테고리를 재지정해주어 해결
- 카테고리 구조문제 : 카테고리 구조를 개편하여 해결
- 검색어 오등록 : 검색어란에서 올바르지 않은 값을 삭제하여 해결
- 필터값 오등록 : 필터값을 올바르게 수정해주어 해결
- 상품 기본정보 오등록 : 해당 정보들을 올바르게 수정해주어 해결
- 랭킹 로직이 잘못됨
- 검색어와 맞는 상품이 노출은 되었으나 연관성이 부족한 상품들이 상위에 노출되는 경우.
- 고객들의 쇼핑 행동이 반영된 값들을 중심으로 랭킹 올려주는 점수 부여
- 키워드들이 가지는 중의적인 값들 중 우선순위 규칙을 정하여 높은 우선순위를 가지게 되는
상품들에게 랭킹을 올려주는 점수 부여해 해결 - 예시) 검색결과 상품 중 고객이 많이 구매한 상품들의 랭킹을 올려준다
-> '달력' 검색 시 '달력 카테고리'를 가진 상품의 랭킹을 올려주고 '증정' 상품들의 랭킹을 뒤로 미룸.
- 검색어와 맞는 상품이 노출은 되었으나 연관성이 부족한 상품들이 상위에 노출되는 경우.
검색은 키워드 데이터와 상품 정보들의 정확성에 대한 싸움.
문제 파악 및 대응 프로세스를 명확하게 갖춰 놓는다면 빠르게 대응하여 문제 해결이 가능하다!
🥮 29CM의 블로그를 읽고
과거 마케팅 인턴 시 고객사의 상품이 구글 검색에 정확히 노출되게 하기 위해 확장검색 키워드를 관리한 경험이 떠올랐습니다.
기획자에게는 역시 논리적 사고력이 중요함을 알게되었던 글이었습니다.
사용자의 검색 의도를 캐치하고, 그에 따라 검색 시 불러와야 할 대상을 정합니다.
검색을 할 때 어떤 데이터를 어떤 순서로, 어떤 곳에 우선순위를 두고 정렬할지 결정합니다.
검색 Flow에 대한 기술적/논리적 이해를 바탕으로 문제 해결방법을 3가지 -> 9가지로 나누어 대응하는 법을 익힐 수 있었습니다.
🥮 검색 문제해결 Flow
- 현재의 검색 Flow에 대한 논리적 이해
- FlowChart 작성
- 검색 문제로 인입되는 내용에 대한 검색 문제 3가지로 분류
- 이에 따라 이슈 유형을 9가지로 분류하여 해결
🥮 기획자의 언어
- 검색 시 탐색비용 증가
- Elastic Search 엔진과 Nori 형태소 분석
- 유사어 확장
- 상품정보 색인
- 검색어 / 유사어 - 오등록 / 미등록
- 우선순위 결정 및 스코어 부여
'[기획자 시선]' 카테고리의 다른 글
Day4. 롯데온에서 선물 수락 및 거절 개선하기 (1) | 2024.05.12 |
---|---|
Day3. 당근에서 검색 필터 사용성 개선하기, 검색필터 레퍼런스 (1) | 2024.05.11 |
Day 1. 화해의 목적형 사용자를 위한 검색 개선 프로젝트 (0) | 2024.05.09 |
[기획자 시선] 토스 고양이가 이상형 월드컵을 한다고? (0) | 2024.04.21 |
[기획자 시선] 트리플에 제안합니다 _ 유사 상호명 및 후보방문지 (1) | 2024.04.03 |