본문 바로가기

기술블로그

[띵동] 배달음식, 아직도 “리뷰 많은 순” 정렬하니?

띵동, 이번엔 “스마트 추천 정렬”을 추천해 봅니다!

 

Fig 1. Ddingdong app main page (left) and sort options (right).

신종 코로나바이러스 감염증(코로나19) 여파로 집에 있는 시간이 길어지면서 음식 배달 서비스에 대한 수요가 증가했다고 하죠. 음식 배달 서비스의 확대로 보자면, 배달 가능한 음식 종류가 많아진 것 또한 무시할 수 없죠. 예전에는 음식 배달하면 가장 먼저 떠오르는 메뉴가 치킨, 피자, 짜장면이었다면, 요즘에는 배달 안되는 음식이 없을 정도로 다양한 메뉴와 주변의 유명한 맛집까지 집에서 편하게 먹을 수 있기 때문입니다.

 

이렇게 음식 배달이 가능한 음식점이 늘어나면서 우리의 선택지가 늘어났다는 장점이 있지만, 반면에 우리가 찾아서 비교해야할 음식점이 그만큼 많아졌습니다. 메뉴를 정하는 것도, 음식점을 정하는 것도, 직접 비교해서 마음에 드는 곳을 찾는 수고가 필요합니다. 이때 사람마다 다른 기준을 가지고 음식점/메뉴를 비교하고, 최종 선택된 음식점이 명예의 전당인 “장바구니”에 들어가 주문이 되는데요, 그 평가 기준이나 비교 항목은 사람마다 정말 다양합니다.

 

의사결정(구매)까지의 과정에 대해 잠깐 다른 서비스 이야기를 해보려고 합니다. 온라인 몰에서 가전제품을 구매하려고 할때, 가장 먼저 확인하게 되는 요소는 어떤 것들이 있을까요.

“역시 가전제품은 AS가 잘되는 유명 브랜드지!” (브랜드)
“AS보다는 적당한 가격을 구매해서 고장나면 새로 사고 싶어!” (가격)
“무엇보다 실제 구매한 다른 사람의 리뷰가 제일 중요해!” (리뷰)

우리가 흔히 생각할 수 있는 구매 결정 요소인 브랜드, 가격, 리뷰가 반영되어 있습니다. 하지만 사람마다 느끼는 우선 순위나 중요도는 천차만별이며, 스스로 만족하기 위한 절충안을 만들어 의사결정을 합니다.

 

이런 의사결정을 돕기 위해 많은 사이트나 플랫폼들은 필터/정렬(filters/sort)이라는 기능을 제공함으로써 좀더 빠르고 쉽게 필요한 정보를 확인할 수 있도록 돕고 있습니다. 예를 들어, 가격이 가장 중요한 요소라면, 가격이 저렴한 순서대로 정렬하여 가전제품 리스트를 확인할 수 있도록 하는 것이죠.

 

Fig2. How to add items to cart and order on Ddingdong app.

 


다시 음식 배달 서비스로 돌아와볼까요.

음식을 주문하기까지의 의사결정과정에서 고려되어지는 (혹은 고려될 것 같은) 요소들은 정말 많습니다. 우선, 우리에게 많이 익숙해진만큼 대부분의 플랫폼에서 기본으로 제공하는 가격, 배달비, 리뷰, 거리, 주문수가 있습니다.

각자의 스타일에 따라 다음과 같은 의사결정과정의 예시를 생각해볼 수 있습니다.

“안전하게 프랜차이즈 음식이지!” (브랜드)
“할인하는 음식점이 최고야!” (가격)
“이왕 먹는거 후기가 좋은 곳에서 시킬래!” (리뷰)

이렇게 배달앱에서 제공하는 필터와 정렬을 활용하여, 내가 보고 싶은, 내 의사결정의 우선순위에 맞는 음식점을 순서대로 나열하여 확인하게 됩니다.무작정 모든 음식점을 살펴보는 것보다 훨씬 빠르고 편한 방법이며, 한편으로는 배달음식을 주문 하기까지의 일련의 과정처럼 느껴지기도 합니다.

하지만 이러한 기능들이 제공되고 있음에도 우리는 장바구니에 음식을 넣기까지 정렬, 스크롤의 반복과 수많은 리뷰와 음식사진을 확인할 수 밖에 없는데요. 이미 익숙해진 필터/정렬, 여기서 좀더 업그레이드를 하여 “필터/정렬까지 개인화가 되면 어떨까”라는 고민을 하게되었고, 우리가 한끼 배달음식을 먹기위해 했던 스크롤과 리뷰확인의 수고를 조금 줄여줄 수 있는, 믿을 수 있는 리스팅(정렬)이 필요해 보였습니다.

그렇게 기존 필터/정렬이 제공하지 못하는 부분을 보안해줄, “띵동만의 필터/정렬 시스템을 만들어 보자!” 라는 생각으로 띵동의 스마트 추천 정렬이 도입되었습니다.


띵동에는 스마트 추천 정렬이 있어요!

 

Fig3. Definition of the Smart Sort.

 


띵동에서는 기본 정렬로 “띵동 스마트 추천” 정렬을 제공하고 있습니다. 단순히 광고나 거리순으로 음식점을 나열하는 것이 아니라, 좀더 의미있고 효율적인 리스트로 제공하고자 하는 목적을 가지고 있으며, 앱에서 제공되고 있는 공식적인 정의는 아래와 같습니다.

“띵동 스마트 추천” 정렬이란?
나의 주문 패턴 분석 및 다른 사용자의 최근 주문수, 재주문율, 즐겨찾기 수, 평균주문금액 등 맛집 선택에 도움이 되는 요소들의 조합으로 최적의 맛집을 추천하는 똑똑한 추천 알고리즘 입니다.

Why, 왜 스마트 추천이 필요한가요?

 

Fig 4. Sort examples of US food delivery service apps (Zomato and Grubhub).

 


먼저, 기존의 필터/정렬 기능에서 아쉬웠던 부분 중, 아래 세가지 항목을 중점적으로 보안하고자 했습니다.

  1. 제공되는 필터/정렬 기능외에는 사용할 수 없습니다.
  2. 여러가지 요소를 조합하기는 어렵습니다.
  3. 한가지 요소만 적용하다보면, 허점이 생깁니다. (trade off)

1.
사람마다 중요하게 생각하는 요소가 다양하지만, 실제로 앱에서 제공되는 필터/정렬에 없는 요소라면 사실상 확인하기 어렵습니다. 대부분 주문수와 리뷰점수에 의존하게 되다보니, 실제로 주문수가 많고 리뷰가 높은 소수의 음식점만 선택지에 놓이게 됩니다.

아무래도 구매자의 기준이 그렇다보니, 음식점에서 별점 높은 리뷰를 허위로 작성하고 돈을 주고 거래하는 경우까지 발생한다는 글을 종종 읽게 되는데요. 그것을 인지한 구매자는 “리뷰점수도 믿을 수 없다!” 라는 생각을 할 수 밖에 없죠.

그렇다고 새롭게 제공되는 필터/정렬 요소들이 없기 때문에, 결국 주문 많은, 리뷰 높은 순 이외의 기준을 세우기는 어렵습니다. 결국 정렬 후에도 위에서 부터 음식점의 리뷰와 사진을 꼼꼼히 확인하며 의사결정을 하게 됩니다. 리뷰를 다시 리뷰하는 과정이 되어버린거죠.

 

2.
“적당한”이라는 필터는 없습니다.

아무래도 제공될 수 있는 필터/정렬이 제한되어 있다보니, 주문수와 리뷰점수 두 요소 모두 “적당히” 반영되는 정렬 기능은 제공 되지 않습니다. 정렬은 한개만 선택가능하기 때문에, 정렬 후에도 개인의 두번째 우선순위를 기준으로 직접 눈과 손가락으로 확인해야하는 부분인 것이죠.

 

3.
한 개의 정렬을 사용했을 경우에 허점(trade off)가 발생하게 됩니다.

예를 들어, 리뷰가 높은 순서로 정렬을 했다고 가정을 해본다면, 5점 만점인 음식점이 가장 위로 올라오게 됩니다. 하지만 총 1개의 리뷰가 5점이었다면, 아마 5점 만점 음식점으로 상위에 올라와 있게 되겠죠.

이번에는 리뷰가 많은 수로 정렬을 했다고 한다면, 리뷰수”만” 많은 상점이 상위로 올라오게 됩니다. 우리가 보고 싶은 것은 1개의 리뷰를 가진 5점짜리 음식점도, 10만개의 리뷰를 가진 1점짜리 음식점도 아닙니다.

 


What, 스마트 추천의 매력은 무엇인가요?

Fig5. Ddingdong has the “Smart Sort” option on the refine page.

 


스마트 추천 정렬의 최종 목표는 “정렬의 개인화”입니다. 그 시작점으로써 고려하는 부분은 아래 두가지 입니다.

 

  1. 배달음식의 새로운 의사결정 요소를 제공합니다.
  2. “적당한”을 시도하여 믿을 수 있는 정렬을 제공합니다.

스마트 추천에는 여러가지 요소들이 반영되며, 요소에 따라서 일정한 가중치를 주어 리스팅(정렬)에 필요한 최종 점수를 산정합니다. 그 중 몇가지 요소를 소개하려고 합니다.

 

  • 재주문율 (Retention Score)
    “다시, 또 주문할게요”와 같은 느낌의 점수 입니다.
    100명이 1번씩 주문한 음식점과 10명이 10번씩 주문한 음식점이 나타내는 의미는 다르다는 생각이 반영된 요소로 “재주문율”을 반영합니다. 동일한 조건에서 다시 주문(재주문)한 사람/주문이 많을 수록 높은 점수를 받게 됩니다.
  • 최근 성장률 (Growth Score)
    “작년 여름과 올해 여름, 지난달과 이번달, 그리고 지난주와 이번주의 음식 트랜드는 다를텐데”라는 느낌을 주는 점수 입니다.
    언제나, 항상, 늘 주문수가 많은 음식점은 익숙한 필터로 충분히 확인이 가능합니다. 이번주에는 어떤 음식점의 주문이 급상승! 했는지 점수로 반영하여, 동일한 기간에 일정 성장률 이상 성장한 음식점이 높은 점수를 받게 됩니다.
  • 인기 시간대 (Popular Time)
    “다른 사람들은 점심, 야식으로 어떤걸 먹나?”를 반영하는 요소 입니다.
    바쁜 점심시간, 그리고 퇴근후 야식에 먹고 싶은 음식은 다릅니다. 우리 머릿속의 “점심”과 “야식”용 메뉴의 틀에서 벗어나, 실제로 그 시간대에 어떤 음식점이 주문으로 바쁜지 반영하고자한 점수인데요. 한 음식점도 메뉴, 업종에 따라서 피크 시간대가 다르며, 시간대가 반영된 점수로 끼니, 시간마다 트랜드가 반영된 점수를 받게 됩니다.

How, 앞으로의 스마트 추천 정렬은 어떻게 변해가나요?

현재 반영된 여러가지 요소들은 무작위로 선택한 것이 아닌, 실제로 주문하는 사용자들의 주문 패턴에서 두드러진 요소들을 핵심으로 반영하고 있습니다. 시간이 지나면서 그때마다 중요하게 여겨지는 요소는 변화하게 될 것이며, 사용자들의 주문 방식과 결정 우선순위 패턴을 잘 추적하여 빠르게 반영하는 것이 앞으로 띵동 데이터팀이 해야할 일입니다.

뿐만 아니라, 다양한 요소를 반영하는 것도 중요하지만, 어떻게 레시피 대로 조합하는가도 중요한 부분인데요. 그렇기 때문에 띵동만의 정렬 조합을 발전시키는 것을 무엇보다도 중요하게 생각하고 고민하고 있습니다.

최종 목적지가 “정렬의 개인화”인 만큼, “나”의 의사결정 우선순위를 반영한 “나”의 정렬을 제공하는 것을 목표로 하고 있습니다. 단순한 오름차순, 내림차순, 광고의 모습에서 벗어나 오로지 데이터, 숫자로만 제공되는, 신뢰할 수 있는 리스팅(정렬)을 제공하고자 지속적으로 발전시키고 있습니다.