본문 바로가기

검색서비스 기획

검색지표를 올리는 첫번째 과제, 오타보정기능

반응형

오타보정기능, 왜 필요한가?

온라인쇼핑몰과 오프라인매장을 비교해보자.
오프라인 매장에서는, 점원에게 "핑쿠색 스트라입 샤쓰 있나요? " 라고 물어봐도
점원은 알아듣고 '핑크색 스트라이프 셔츠' 를 보여줄 것이다.

온라인쇼핑몰에서 고객이 원하는 상품을 찾아주는 역할의 검색서비스 역시,
고객이 급하게 또는 검색창에 키워드를 대충 입력했더라도
찰떡같이 이해하고 올바른 키워드 검색결과를 보여줘야 한다.

그러기 위해서 반드시 필요한 것이 검색서비스의 자동 오타보정기능이다.

( *동의어 사전관리를 통해 다양한 오타키워드들을 정타키워드와 일치시켜줄 수 있지만 사전에 예상하지 못했던 키워드가 입력됐을 경우에는 보정이 불가한 한계가 있기 때문에, 자동으로 보정해주는 오타보정 기능이 훨씬 효율적이다. )


그렇다면, 검색서비스의 오타보정을 점검하기 위해 최근 인기있는 버티컬커머스 플랫폼의 검색서비스를 살펴보자.

29cm / 지그재그 / 펫프렌즈 에서 오타 검색 시

최근에 인기있는 패션 전문몰인 '29cm' 와 '지그재그', 그리고 반려동물 전문몰 '펫프렌즈'에서 인기키워드들의 오타인 '청바ㅈ' , '원피ㅅ', '로얄캐니'을 검색해봤다. 3개의 오타 모두 해당 플랫폼에서 충분히 의도파악이 가능한 키워드들이였지만 제대로 된 검색결과를 보여주지 못했고 '검색결과가 없다.'는 안내화면과 함께 상품추천 영역을 노출하고 있었다.

오늘의집 / 무신사 에서 오타 검색 시

반면에 좀 더 연식이 있는(?) 버티컬커머스 플랫폼인 '오늘의 집'과 '무신사'에서는 오타검색 시 보정기능이 작동했는데, '오늘의 집' 같은 경우는 자동으로 보정결과 값을 보여줬고 '무신사'는 보정된 키워드를 표시하며 클릭을 통해 재검색할 것을 제안했다. 어느방식이 더 효율적인가에 대해서는 플랫폼별로 상이하겠지만, 검색사용자들이 실수로 잘못 입력한 키워드를 재입력 후 검색하는 수고를 덜어준 것은 분명하다.

만약 해당 플랫폼의 검색Product들이, 검색 시 상품결과를 보여주는지를 알 수 있는 '검색성공율(실패율)'을 지표로 삼고 있었다면 자동오타보정은, '검색성공율(검색실패율)' 지표에 긍정적인 영향을 미칠 것이다. 단순오타로 인해 실패했던 검색어들이 보정되어 정상적인 결과를 노출시킬 수 있을테니 말이다.


그런데, 검색데이터 중 오타로 인한 검색실패가 얼마나 되려나..?

오타보정기능의 효과를 파악하기 위해 실제 운영중인 버티컬커머스 플랫폼의 초기 검색 데이터를 살펴보자.
아래는 일주일 검색실패 키워드( =검색결과를 노출하지 못한 키워드) 데이터를 오타와 미취급 키워드(=비오타)로 분류하고, 오타 데이터를 한번 더 단순오타 / 한영오타 / 그 외 오타 로 재분류하는 작업을 통해 얻은 차트이다.

오타로 인한 검색실패는 전체 검색실패사례의 19% 였으며, 오타 중에서도 단순 오타(54%)와 한영 오타(14%)가 약70%를 차지하고 있음을 확인했다. 단순 오타의 대부분은 "청바지"를 "청바ㅈ" 와 같이 검색한 오타였는데, 이런 키워드들을 제대로 보정 후 검색해준다면 검색성공율 지표가 약 10.26%(19% x 54%)가량 상승할 거라는 계산이 나온다. 이를 개선하기 위해 단순오타들을 좀 더 군집화 시키고 싶어 나는 '편집거리'라는 개념을 통해 수치화시켰다.

그 결과, 단순 오타들의 평균 편집 거리는 1.46 (2 이하의 자·모음의 오타가 발생) 이라는 수치를 얻었고 정답 키워드와 편집거리 2이하의 키워드로 입력된 오타들을 보정하는 프로세스가 필요하다는 결론을 얻을 수 있었다.

만약 오타보정기능 도입의 필요성을 설득해야 한다면 위와 같은 방식을 활용해보자!


*편집거리 (edit-distance)
편집거리 알고리즘(edit distance)은 두 문자열의 유사도를 판단하는 알고리즘이다. 이를 활용하여 고객입력단어와 오타보정 사전을 비교( MxN 이차원 매트릭스 활용한 최소편집거리 ) 하여 편집거리 2 이하인 키워드로 변환하여 검색합니다. 여기서 말하는 편집(edit)이란, 수정/삽입/삭제의 개념으로 3개중 한개의 작업이라도 이루어진다면 1의 작업이 이루어졌다고 본다.

예를 들어 설명하면 ‘horse’ ros의 편집거리는 3 ( operation 3번 활용 )
1. horse -> rorse ( replace ‘h’ -> ‘r’ )
2. rorse -> rose ( delete ‘r’ )
3. rose -> ros ( delete ‘e’ )


구현 방식의 정답은 없다.


위와 같은 오타보정 방식은, 매우 단순하고 기초적인 방식이다. 편집거리를 사용하면 정답 키워드에 대한 사전관리가 필요할 뿐만 아니라 고객이 원하는 키워드를 편집거리 이내에서 임의로 보정해버리는 부작용이 발생할 수 도 있다. 최근에는 머신러닝을 통한 오타보정기술이 적용된다고 하는데, 공부해봐야겠다..

결론은, 처음에 언급했던것과 같이 잘못된 검색어를 입력하더라도 올바른 검색결과를 보여주어야만 상품진입, 구매와 같은 '전환'이 이루어질 것이기 때문에, 검색Product의 지표상승을 위한 첫번째 과제로 '자동오타보정 기능'이 필요하다는 것이다.











반응형