오늘은 선물 추천 서비스의 품질을 심각하게 위협하고 있는 두 가지 이슈에 대해 정리해보았다. 바로 ‘중복 상품 제거’와 ‘추천 상품의 다양성 확보’다. 이는 단순히 추천이 "되냐 안 되냐"의 문제가 아니라 사용자가 이 추천을 실제로 신뢰하고 쓸 수 있느냐를 좌우하는 중요한 문제다.
현재 네이버 쇼핑 검색 API를 활용해 AI 기반 질문/선택지로부터 추출한 키워드 조합을 통해 상품을 조회하고 있다. 기본적으로는 다음과 같은 4가지 조합으로 검색을 시도하고 있으며 가격 조건을 만족하는 최소 4개의 상품이 확보될 때까지 반복적으로 API를 호출하고 그 결과를 저장해 추천 결과로 활용한다.
예시 키워드 조합: ["아빠", "10~30만원", "생일", "여행", "실용적", "센스있는"]
1. 여행 + 실용적 + 센스있는 + 아빠 + 생일
2. 여행 + 실용적 + 센스있는 + 아빠
3. 여행 + 실용적 + 센스있는 + 생일
4. 여행 + 실용적 + 센스있는
하지만 이런 방식으로 수집된 상품 중에서는 다양성보다는 중복성이 부각되는 문제가 두드러지게 나타났다. 특히 아래 두 가지 유형이 주요 문제로 드러났다.
상품을 추천할 때 동일한 상품이 이미지와 제품 자체는 같고 제목과 가격만 약간 다르게 구성된 형태로 여러 번 추천 결과에 포함되는 경우가 많았다.
예시
상품A
: "럭셔리 여행 가방 세트 – 블루", 이미지 A, 129,000원상품B
: "3종 여행가방 기내용 대형 블루", 이미지 A, 135,000원두 상품은 이미지가 같고 본질적으로 같은 상품이나 API 응답에서 구분되지 않아 다른 상품으로 인식된다. 그래서 네이버 검색 API 호출 시 반환되는 값으로 imageUrl
과 title
을 찾아보았다. 하지만 실제로 같은 이미지여도 이미지 URL이 다르게 반환되었다. 판매자가 상품을 올릴 때 등록하면 imageUrl
이 다르게 등록되는 거 같다. title
은 유사하긴 하지만 위 예시 처럼 다르게 나온다. 이걸 문자열 유사도로 판단하기엔 어려울 수 있겠다는 생각이 들었다. 위 예시는 많이 다르지 않게 나온 상품이지만 다른 상품들은 상품 자체는 똑같았지만 제목에서 되게 많이 다른 경우도 있었기 때문이다.
추천 키워드가 포괄적이고 일반적일수록 추천 결과는 특정 계열 상품에만 집중되었다. 예를 들어 ["요리", "주방용품", "실용적"]
이라는 키워드를 기준으로 추천하면 4개의 상품이 후라이팬, 후라이팬, 후라이팬, 도마
처럼 추천 결과가 나오게 된다. 이렇게 되면 특정한 상품에 치우치게 되고 추천 결과의 선택의 폭이 좁아진다. 결국 이는 추천 신뢰도와 직결되는 문제라 사용자의 입장에선 이 서비스를 사용할 이유가 없어진다.
이렇게 나오는 이유는 네이버 검색 API는 제목 기반 검색이라 키워드의 포함 여부에 따라 검색 결과가 지나치게 편중된다. 현재 추천 로직은 "조건을 만족하는 4개 상품 확보시 더 이상 탐색하지 않고 종료"하는 방식이라 다양성을 확보할 기회 자체가 제한된다. 하지만 프론트엔드에서 AI 기반으로 추출하는 키워드가 명확한 하위 카테고리를 나누지 않으면 특정 상품 계열로 쏠릴 수 밖에 없다.
현재 고려 중인 개선 방향은 모든 키워드로 1개를 담고 한 번에 하나의 키워드만 사용해 각각 검색하여 상품을 1개씩 담아서 총 4개의 상품을 조합해 추천하는 방식을 고려하고 있다. 이 방식은 키워드별 대표 상품을 고르게 분산시켜 추천 결과를 구성할 수 있고 한 게열에 몰리지 않도록 강제하는 장점이 있다. 하지만 ["요리","실용적","조리도구"]
라는 키워드가 왔을 때 실용적
이라는 키워드에서 요리 계열과는 동떨어진 상품이 나올 수 있다는 단점도 있다.
이 문제들을 겪으면서 느낀 건 검색 기반 추천 시스템의 한계는 결국 "제공되는 데이터의 품질"과 "상품을 식별할 수 있는 기준값의 부재"에서 비롯된다는 점이다. 백엔드에서 로직을 열심히 짜더라도 주어진 데이터가 신뢰할 수 없다면 중복 상품 제거나 추천 다양성 확보는 본질적으로 한계를 가질 수밖에 없다. 특히 외부 API에 의존하는 구조에서는 동일 상품을 식별하거나 범주화하는 것이 현실적으로 어렵다는 점이 뼈저리게 느껴졌다. 또한 추천 결과의 품질은 단순히 “좋은 상품이냐” 혹은 “선택지가 다양하냐”로 판단할 수 있는 문제가 아니다. 사용자가 특정 질문에 대해 고른 답변에 맞춰 그 맥락을 만족시킬 수 있는 다양한 상품들이 균형 있게 제시되는가가 핵심이라고 느꼈다. 즉, 추천을 통해 “내가 선택한 맥락에서 나에게 맞는 새로운 발견”이 이루어져야 한다는 것이다. 현 시점에서 백엔드가 할 수 있는 최선은 주어진 키워드 조합을 최대한 전략적으로 분산하여 다양한 방향으로 검색해보는 방식이며 그 결과물 중 겹치지 않는 추천을 구성해 신뢰도 있는 결과를 제공하는 것이라고 본다.