버즈니 AI Lab 김선범, 권순목 리서치 엔지니어

[아이티데일리]

▲ 버즈니 AI Lab 김선범 리서치 엔지니어(왼쪽), 권순목 리서치 엔지니어

추천의 필요성

인터넷 쇼핑몰에는 수많은 상품들이 존재한다. 마음에 드는 상품을 찾기 위해 유저는 모든 상품을 탐색해야 할까? 그렇다면 엄청 많은 시간이 필요할 것이다. 만약 유저가 좋아할 만한 상품만 간추려서 보여준다면 유저는 원하는 상품을 찾는 데 그리 많은 시간이 필요하지는 않을 것이다. 따라서 유저가 탐색해야 하는 범위를 줄여주는 것이 추천의 역할이다.

쉽게 설명하자면 ‘반바지’를 구매하러 들어온 유저에게 모든 ‘반바지’를 보여주는 것이 아닌, 유저가 좋아할 만한 ‘반바지’만 선별해서 보여준다면 유저의 탐색 영역을 대폭 줄일 수 있을 것이다. 그러면 유저는 원하는 스타일의 ‘반바지’를 보다 빠르고 쉽게 찾을 수 있게 될 것이다. 바로 이것이 추천이 필요한 이유다.

따라서 유저에게 긍정적인 쇼핑 경험을 제공하기 위해서는 좋은 추천 서비스를 개발하는 것이 필요하며 이를 위해 버즈니 AI 랩(AI Lab)은 오늘도 노력 중이다.


홈쇼핑모아 추천 서비스

홈쇼핑모아의 추천은 ‘아이템 투 아이템(Item to Item)’, ‘유저 투 아이템(User to Item)’ 두 가지 방식으로 서비스 되고 있다. Item to Item 추천은 가장 최근에 눌러본 아이템과 유사한 아이템들을 추천하는 방식이다. 쉽게 예를 들면 유저가 ‘반바지’를 눌렀을 때, 누른 ‘반바지’와 유사한 다른 ‘반바지’들을 추천해주는 방식이다.

User to Item 추천은 유저의 과거 로그로부터 아직 보지 못한, 그리고 좋아할 만한 상품을 선별해서 추천해주는 방식이다. 예를 들어 어떤 유저가 과거에 ‘콜라’, ‘치킨’, ‘햄버거’, ‘사이다’ 등을 눌러봤다면 ‘피자’를 추천해줄 수 있다. User to Item 추천은 유저의 과거 로그를 사용하기 때문에 유저마다 전부 다른 추천이 발생한다. 즉 개인화된 추천 서비스가 가능한 방식이다.


- 홈쇼핑모아의 ‘Item to Item’ 추천 서비스

‘Item to Item’ 추천은 3가지 지면에서 서비스되고 있다.

첫 번째 Item to Item 기반 추천 서비스(<그림 1>)는 홈쇼핑모아의 메인 페이지인 편성표에서 발생하는 추천이다. 유저가 편성표에서 상품을 클릭하고, ‘뒤로가기’를 눌러 편성표로 돌아오면 방금 누른 상품 하단에 상품과 연관된 상품을 추천해준다. 같은 상품을 누른 모든 유저들은 똑같은 추천 결과를 받기 때문에, 이 추천 방식은 개인화가 되어있다고 볼 수는 없다.

두 번째는 홈쇼핑 상품 상세페이지 하단 추천(<그림 2>)이다. 유저가 홈쇼핑 상품을 클릭하면 상품 상세페이지로 넘어가는데, 해당 페이지 하단에 방금 누른 상품과 연관된 상품들을 추천해준다.

세 번째는 가격비교 페이지 하단 추천(<그림 3>)이다. 홈쇼핑모아에서는 동일한 상품들을 가격비교페이지로 묶어서 보여주고 있다. 이 페이지에 들어가면 페이지 하단에 방금 누른 상품과 연관된 상품들을 추천해준다.

유저는 보통 관심 있는 상품을 클릭한다. 이렇게 Item to Item 추천을 통해 유저의 관심 상품과 유사한 상품들을 추천하면 유저는 원하는 상품을 쉽게 찾을 수 있게 되므로, 유저에게 긍정적인 쇼핑 경험을 제공할 수 있다. 따라서 좋은 품질의 Item to Item 추천 서비스가 매우 중요하다.


- 홈쇼핑모아의 User to Item 추천 서비스

User to Item을 이용한 추천은 2가지 지면에서 서비스되고 있다.

첫 번째는 홈쇼핑모아 메인 페이지인 편성표에서 제공하는 개인화 추천 서비스(<그림 4>)다. 편성표에서 아래로 스크롤을 하다보면 유저의 과거 로그를 기반으로 좋아할 만한 상품들을 추천해 준다. 개인화 추천은 카테고리별로 나눠서 제공하며, 제공되는 카테고리는 패션, 뷰티, 푸드, 언더웨어, 가전, 여행, 유아 등이다.

두 번째는 개인화 추천 푸시(<그림 5>)다. 유저의 과거 로그를 기반으로 유저가 좋아할 만한 상품들과 유저가 푸시에 잘 반응할 만한 검색 키워드를 선정하고 푸시를 발송한다.

유저가 과거에 본 상품들을 이용해서 좋아할만한 상품을 추천하기 때문에 유저 개개인에게 맞춤화된 개인화 추천이라고 할 수 있으며, 따라서 유저마다 전부 다른 추천 결과를 받게 된다. 유저들의 특징은 개개인마다 전부 다를 수 있다. 따라서 개개인에 최적화된 개인화 추천을 제공한다면 높은 추천 효율을 얻을 수 있을 것이다.


- 홈쇼핑모아에서 추천 모델을 학습하는 방법

앞에서 설명한 Item to Item, User to Item 추천 서비스들은 Collaborative Filtering(CF) 기반으로 서비스 되고 있다. CF는 어떤 유저가 어떤 상품에 얼마나 많이 반응했는지 대한 정보, 즉 유저와 상품에 관한 인터랙션(Interaction) 로그를 이용해서 유저들이 좋아할 만한 상품을 자동으로 파악할 수 있도록 하는 방법이다. 이를 위해 홈쇼핑모아 로그에서 User-Item Interaction 행렬 데이터를 생성하고, 이 데이터를 MF(Matrix Factorization)을 이용해 유저와 아이템의 Latent Vector로 분할해서 추천에 사용한다.

▲ Matrix Factorization를 이용한 User Latent Vector, Item Latent Vector 분할

User Latent Vector와 Item Latent Vector의 분할은 (그림 6)처럼 두 Latent Vector의 행렬 곱이 User-Item Interaction이 되도록 수행된다.

이렇게 분할된 두 Latent Vector를 이용하면 이전에 유저가 반응한적 없는 상품에 대해서도 유저의 선호도를 예측할 수 있다. 예를 들면 위 그림에서 User 1은 Item p에 반응한 적이 없다. 하지만 User 1의 Latent Vector [3.2, 1.1]와 Item p의 Latent Vector [0.42, 0.23]을 내적하면 약 1.6이 되는데, 바로 이것이 User 1이 Item p를 얼마나 좋아할지에 대한 예측값이 될 수 있다. 바로 이 방식이 홈쇼핑모아에서 제공하는 User to Item 추천 방식이다.

또한, 생성된 Item Latent Vector 사이의 Similarity(ex: Cosine Similarity)를 계산하면 특정 상품과 유사한 상품들을 계산할 수 있고, 이를 통해 Item to Item 추천이 가능해진다. 즉, ‘반바지’와 유사한 ‘반바지들’을 추천할 수 있게 되는 것이다.


- 사용 중인 추천 모델의 단점

이렇게 하나의 모델로 User to Item, Item to Item 추천을 쉽게 할 수 있도록 만들어주는 CF에도 단점은 존재한다. CF는 로그에서 등장하는 유저와 상품에 대해서만 추천이 가능하기 때문에 신규 유저와 신규 아이템에 대한 추천이 불가능하다. 이러한 문제를 Cold-start Problem이라고 한다.

또한 CF 학습 방법으로 사용하는 MF는 Time 정보를 활용하지 않기 때문에 추천할 때에도 Time 정보가 활용되지 않는다. 사실, Time 정보를 활용하는 방법이 존재하기는 하지만 효과적으로 사용하기는 어렵다. 따라서 실시간으로 유저에 대한 최적의 추천을 제공하지 못한다는 단점을 가지고 있다.

이처럼 홈쇼핑모아에서 사용 중인 추천 모델의 단점을 보완하고, 홈쇼핑모아 유저 개개인에게 최적화된 다양한 개인화 추천 서비스를 제공하기 위해서 홈쇼핑모아 추천 팀은 다양한 기술들을 연구 개발하고 있다.


추천을 커머스에 적용하기 위해 고민해야 할 것들

사용자들의 다양한 니즈를 충족시키기 위해 최근 커머스 산업에서는 개인화 기술에 집중하고 있다. 개인화 기술이 중요한 이유는 유저의 성향이 전부 다르며, 유저가 쇼핑을 하는 의도가 전부 다를 것이기 때문이다. 어떤 유저는 할인율이 높은 상품을 좋아할 수 있지만, 어떤 유저는 고가 브랜드의 상품을 좋아할 수도 있다. 모든 유저에게 똑같이 할인율이 높은 상품을 추천한다면, 다른 유저는 서비스에 대한 만족도가 떨어질 수 있기에 유저 성향에 맞게 개인화된 추천 서비스가 제공되어야 한다. 따라서 홈쇼핑모아는 2020년 모든 홈쇼핑모아 유저들에게 개인화된 자신만의 홈쇼핑모아를 제공하는 것을 목표하고 있다.

성공적인 개인화 추천 서비스를 위해서 기존에 사용하던 추천 모델의 단점을 해결해야 한다. 또한 더욱 양질의 추천 상품들을 제공하기 위해 더욱 고도화된 추천 방식이 필요하며, 유저 개개인의 특징을 추천에 잘 반영할 수 있도록 다양한 Feature를 발굴해야 한다.


- 추천 모델의 단점 해결하기

기존 추천 모델의 단점은 Cold-start Problem과, Time 정보를 잘 활용하지 못하는 것이다. 우선 Cold-start Problem에는 Item / User에 대해서 두 가지로 나뉜다.

Item Cold-start Problem은 특정 상품이 학습 데이터에 포함되지 않아 Latent Vector가 없기에 유사한 상품들을 찾을 수 없는 경우다. 이 문제 해결을 위해 Item 본연의 Feature(ex: 상품명)를 활용해서 Latent Vector를 생성하는 Content-based 추천 모델을 도입하려고 연구하고 있다. 이 방식을 이용하면 학습에 사용되지 않은 Item에 대해서도 본연의 Feature를 이용해 Latent Vector를 계산할 수 있고, 유사한 Item들도 찾아낼 수 있게 된다.

User Cold-start Problem은 Item과 마찬가지로 학습에 신규 User의 로그가 포함되지 않았기 때문에 발생하는 문제다. 신규 User는 성별, 나이, 선호 브랜드 등의 Feature를 알기 어렵기 때문에 Content-based 모델을 이용해서 Latent Vector를 생성할 수 없고, 따라서 개인화된 상품을 추천해주는 것도 불가능하다. 하지만 신규 User에게 ‘인기 상품 추천’ 등의 규칙 기반 추천은 제공해 줄 수 있기 때문에 어떤 추천을 제공해야 가장 효과적인가에 대해서, 그리고 어떻게 하면 신규 User에게도 개인화된 추천을 제공할 수 있을지에 대한 연구가 필요하다.

Time 정보를 잘 활용하지 못하는 문제를 해결하는 것은 Session-based 추천 모델을 이용하면 해결이 가능하다. Session-based란 특정 세션 내에서 시간 순으로 정렬된 유저 로그로부터 직후에 볼 상품을 예측하는 방법이다. 유저의 기호는 시간이 지남에 따라 계속 변해간다. 따라서 짧은 Session 내에서의 유저 로그만을 이용해서 추천한다면 당장 유저가 좋아할만한 상품을 추천해줄 수 있을 것이다. Time이라는 context를 사용하기 때문에 RNN 계열의 모델이 사용되기도 하지만. 최근에는 시계열 데이터를 잘 처리하는 transformer 기반의 모델을 사용하기도 한다.


- 고도화된 추천 방식 연구

기존에는 유사도 기반으로 추천 상품을 추출하고, 유사도 Score가 높은 순으로 정렬해서 추천에 사용했다. 이 경우에는 적절한 추천 상품을 잘 보여줄 수는 있지만, 특정 유저가 추천 상품에 대해서 얼마나 클릭할지, 구매할지 등에 대한 고려는 이뤄지지 않았다. 따라서 추천 결과를 그대로 사용하지 않고, 추천 결과 상품 내에서 개인화된 re-ranking을 통해 유저가 가장 클릭할 확률이 높거나 구매 전환율이 등이 높을 상품 순으로 정렬해 우선적으로 추천한다. 이것이 가능하려면 유저와 상품 사이의 클릭률, 구매 전환율 등을 예측할 모델도 필요하다. 다시 말하면 추천을 3가지 단계로 나눌 수 있다.

1. 추천 후보군 추출 (Generate Candidate Layer)
추천 모델을 (MF, Session 기반 모델 등) 사용해, 유저별로 좋아할만한 상품 후보들을 prefiltering 할 수 있다. 이 방식이 바로 기존의 추천 상품을 추출하던 방법이다.

2. 유저의 선택 예측 (User Intention Prediction Layer)
1단계에서 추출된 추천 후보군 아이템들에 대해서, (유저와 추천 상품) pair에 대한 Score를 예측한다. Score는 클릭률, 구매 전환율 등이 될 수 있다. 이를 위해서는 Score를 예측할 모델이 필요하다.

3. 유저의 선택 예측 기반 Reranking (Reranking Layer)
2단계에서 계산된 user와 모든 추천 후보군 아이템들 사이의 Score를 기반으로 추천 상품들을 내림차순으로 정렬해 상위 K개의 상품을 유저에게 추천한다.


- 다양한 feature를 발굴하기

더욱 개인화되고 고도화된 추천 서비스를 제공하기 위해서 다양한 feature를 활용해야 한다. 이를 위해 어떤 feature를 어떻게 추출하고 활용할지에 대해 연구가 필요하다. feature는 상품의 속성, 유저의 특징, 상품과 상품간의 관계, 유저와 유저와의 관계, 유저와 상품간의 관계로부터 추출할 수 있다.

1. User / Item feature
홈쇼핑모아에서는 상품에 대한 여러 데이터들을 보유하고 있다. 상품 이미지, 상품명, 상품 가격, 카테고리 정보, 상품에 걸려있는 이벤트 정보 등등을 이용해 상품을 나타낼 수 있으며, 용도에 따라 이러한 상품 정보를 추천시스템에 쓰이는 item feature로 나타낼 수 있다. 이러한 상품 feature는 간단하게는 비슷한 아이템을 추천하는 추천 시스템에 사용되거나, 더욱 고도화된 추천 알고리즘의 재료로 사용될 수 있다.

홈쇼핑모아에서는 간접적으로 유저에 대한 정보를 수집 및 유추를 하고 있다. 이렇게 수집된 정보를 활용해 유저를 나타낼 수 있으며, 용도에 따라 이러한 유저 정보를 추천 시스템에 쓰이는 user feature로 나타낼 수 있다. 이러한 유저 feature는 간단하게는 사용자와 비슷한 유저가 구매한 상품을 추천하는 추천 시스템을 구축할 때 사용이 될 수 있고, 좀 더 고도화 된 추천 시스템에서는 사용자에 맞추어진 개인화 추천시스템의 재료로 사용될 수 있다.

2.Item to Item feature
상품간의 유사성을 여러 방식으로 계산해 feature화 시킬 수 있다. 예를 들면 상품간의 가격 차이, 이미지 유사도 등등을 활용해 각각의 아이템들이 얼마나 유사한지를 여러 가지 알고리즘으로 계산할 수 있으며 이렇게 계산된 유사도 정보가 다른 고도화된 추천 시스템에 적용될 수 있다. 간단하게는 비슷한 아이템을 추천하는 추천 시스템에 쓰일 수 있고, 좀 더 고도화 된 추천 시스템에서는 추천 시스템이 좀 더 다양한 아이템들을 추천하도록 유도하는 알고리즘의 재료로 사용될 수 있다.

3. User to User feature
유저들의 인구학적 정보나, 홈쇼핑모아 서비스에서 간접적으로 나타낸 정보들(선호하는 브랜드, 선호하는 가격대, 평소 서비스를 사용하는 시간대 등등)을 활용해 유저들 간의 유사성을 여러 방식으로 계산할 수 있고, 이 결과물을 feature로 사용할 수 있다. 이러한 정보로 각각의 유저들을 특정 유저 세그먼트에 포함시킬 수 있으며, 이 유저 세그먼트 그룹 정보는 추후에 개발될 고도화된 추천 서비스의 재료로 사용될 수 있다.

4. User to Item feature
유저들이 어떤 상품을 선택했는지 나타내는 데이터를 활용해 유저와 상품간의 연관성을 계산하고, feature화 시킬 수 있다. 예를 들면 유저들이 선택했던 상품들의 정보를 이용해 유저별로 유사도를 측정할 수 있으며, 이러한 유저 유사도 정보를 활용해 어떤 유저군과 상품군이 연관성이 깊은지 파악할 수 있다. 또한, 유사도 정보를 사용해 비슷한 성향을 가진 유저들의 상품 선택을 기반으로 추천을 할 수 있다. User to Item feature 정보를 활용해 계산된 유저간의 유사성을 통해 홈쇼핑모아의 모든 유저들을 여러 유저 세그먼트로 세분화 시킬 수 있으며, 이 정보를 토대로 유저별 개인화 추천을 구현할 수 있다.


결론

앞으로 홈쇼핑모아에서 제공하려는 개인화된 추천 서비스를 위해서 해결해야할 문제들이 있고, 새롭게 연구해야하는 요소들도 많이 있다. 이를 위해서 버즈니는 고품질의 개인화된 추천 서비스 제공을 목표로 하고 있고, 이는 서비스의 혁신과 새로운 고객 가치를 제공하는 데 중요한 역할을 할 것으로 생각한다.

저작권자 © 아이티데일리 무단전재 및 재배포 금지