고객지원 > 지식/노하우

지식/노하우

지식/노하우

모델 기반 협업 필터링 베이지안 개인화 랭킹 알고리즘

페이지 정보

작성일2020-10-05

본문

모델 기반 협업 필터링: 베이지안 개인화 랭킹 알고리즘

 
(주)넷스루 개인화컨설팅팀

 


협업 필터링 : 비슷한 우리, 취향도 비슷할까?
머신러닝을 활용하는 추천 알고리즘은 크게 두 가지로 나누어집니다. 사용자 정보와 상품을 활용하여 추천하는 방식인 콘텐츠 기반 필터링(Contents-Based Filtering)과 사용자와 상품 간 상호작용 정보를 활용하여 추천하는 방식인 협업 필터링(Collaborative Filtering)입니다.
협업 필터링은 크게 두 가지로 나누어집니다. 모델 학습 없이 명시적 데이터를 활용해 아이템 간 유사도를 계산하여 아이템을 추천하는 메모리 기반 협업 필터링(Memory-Based Collaborative Filtering)과 암묵 데이터로부터 상품과 사용자의 특성을 추론하여 유사도를 계산하는 모델 기반 협업 필터링(Model-Based Collaborative Filtering)이 있습니다.
메모리 기반 협업 필터링은 모델 학습 시간이 없어서 비교적 직관적으로 추천할 수 있다는 점에서 유용하지만, 뻔한 추천을 한다는 약점이 존재합니다. 모델 기반 협업 필터링은 사용자의 취향과 상품의 특성을 있는 그대로 사용하지 않고, 상호 작용 데이터(사용자가 상품에게 어떤 액션을 취했는지에 대한 정보)로부터 추론하여 추천하기 때문에 좀 더 다양한 형태의 추천을 끌어낼 수 있다는 장점이 있습니다.
이번 주제는 메모리 기반 협업 필터링의 문제를 해결하기 위한 모델 기반 협업 필터링의 알고리즘 중 하나인 베이지안 개인화 랭킹 알고리즘을 소개하고자 합니다.
모델 기반 협업필터링 : 베이지안 개인화 랭킹 알고리즘
베이지안 개인화 랭킹 (BPR : Bayesian Personalized Ranking) 알고리즘은 고객 행동 데이터 중 암묵 데이터(Implicit Data)를 활용할 때 사용합니다. 암묵 데이터란 고객이 직접 선호를 드러내지는 않았지만 소비 활동에서 자연스럽게 기록된 “페이지 뷰 로그”, “장바구니 담기 기록”, “구매” 등이 있습니다. “사용자는 선호하는 상품에 대해서는 로그를 여러 번 발생시킨다”라고 가정하고, 이를 통해 암묵적으로 사용자의 취향을 알 수 있다고 하여 붙여진 이름입니다. 
BPR 알고리즘의 핵심 아이디어는 “클릭 횟수”, “구매 횟수”등 과 같은 데이터를 그대로 선호도로 치환하여 비교하지 않고, 클릭 여부 또는 구매 여부와 같은 유무에 대한 데이터를 쓰거나 활용하는 것입니다. “클릭 횟수”나 “구매 횟수” 등과 같은 정보로는 “A를 B보다 훨씬 더 선호한다” 같은 상품 간 선호 차이를 판단할 수 없습니다. 대신 확실히 말할 수 있는 것은 “고객은 자신이 클릭 또는 구매한 상품을 그렇지 않은 상품보다 선호한다”입니다. 고객은 자신이 선호하는 상품은 찾아서 클릭해볼 것이고, 자신이 관심 없는 상품은 웬만하면 클릭하지 않기 때문입니다. 이 단순한 가정이 BPR 알고리즘의 핵심이 됩니다.

BPR 알고리즘은 모델 기반 협업 필터링 중 대표적인 알고리즘인 행렬 인수분해 (MF: Matrix Factorization)를 사용합니다. 행렬 인수분해 기법에 따라 ALS(Alternating Least Squares), BPR(Bayesian Personalized Ranking), LMF(Logistic Matrix Factorization) 와 같은 알고리즘이 존재하며 이번 시간에는 BPR 알고리즘에 대해 설명합니다.
예를 들어 “페이지 뷰 로그” 데이터를 a와 같은 사용자-상품 간의 행렬로 나타냅니다. 이때 행렬에 채워지는 값은 1과 0으로, 클릭 횟수에 상관없이 클릭한 상품은 1, 클릭하지 않은 상품은 0으로 채워지게 됩니다. 사용자는 모든 상품을 소비할 수 없기 때문에 사용자-상품 행렬의 많은 값은 비어있게 됩니다. MF는 사용자-상품 간 행렬을 사용자의 취향 정보 행렬과 상품의 특성 정보 행렬로 도출하여, 사용자-상품 간 행렬에서 몰랐던 값을 내적 연산 (dot product) 하여 얻을 수 있게 됩니다. 결과적으로 사용자가 반응하지 않은 아이템의 선호도 예측이 가능하며, 유사한 사용자 또는 유사한 상품을 찾을 수 있는 장점이 있습니다.
f0fab17ca4f6de365e8a9ad543a5c294_1601884
[ a. 행렬 데이터 ]
MF로 사용자-상품 간 행렬에서 사용자의 취향 정보 행렬과 상품의 특성 정보 행렬로 도출하였다면, 사용자 A가 가장 선호할만한 상품은 어떻게 찾을 수 있을까요? 사용자의 취향 정보 행렬과 상품의 특성 정보 행렬은 b1, b2와 같은 행렬로 나타냅니다. 사용자 A와 모든 상품의 행렬 값의 내적 연산을 통해 유사도 값을 각각 구하고, 유사도 값이 클수록 더 선호하는 상품이라 판단할 수 있습니다.

f0fab17ca4f6de365e8a9ad543a5c294_1601884
[ b1. 사용자 행렬 데이터 : M X D (M은 사용자 수, D은 피처 수)]
 f0fab17ca4f6de365e8a9ad543a5c294_1601884
[ b2. 상품 행렬 데이터 : N X D (N은 상품 수, D은 피처 수)]

 

 

유사도 값의 추출 결과는 c와 같이 나타냅니다. 각 사용자 별로 반응하지 않은 상품을 포함하여 모든 상품에 대해 유사도 값을 추출할 수 있으며, 높은 유사도 값을 가진 상품 N 개를 추천하게 됩니다.

f0fab17ca4f6de365e8a9ad543a5c294_1601884
[ c. 추천 결과 ]

 

 

개인화 추천 효과 극대화 : 메인과 상품 상세 페이지 
메인 페이지와 상품 상세페이지는 개인화 추천 시나리오를 적용하였을 때 가장 효과를 많이 보는 페이지입니다. 어디에 추천영역을 둘지, 어떤 시나리오를 적용하는지 등에 따라 추천 결과는 달라집니다. 
BPR 알고리즘은 사용자의 취향과 상품의 특성을 있는 그대로 사용하지 않고, 상호 작용 데이터(사용자가 상품에게 어떤 액션을 취했는지에 대한 정보)로부터 추론하여 추천하기 때문에 좀 더 다양한 형태의 추천을 끌어낼 수 있다는 장점이 있습니다.
 
따라서 중요도가 높은 메인 페이지와 상품 상세페이지 추천 영역에 BPR 알고리즘 기반 추천상품을 노출시켜준다면, 고객이 사이트에 방문했을 때 좀 더 다양한 상품, 고객에게 최적화된 상품을 접할 수 있어서 사이트 이탈을 최소화 할 수 있습니다.

 

f0fab17ca4f6de365e8a9ad543a5c294_1601884

[ 메인 페이지 - 상단 ]


f0fab17ca4f6de365e8a9ad543a5c294_1601884
[ 상품 상세 페이지 - 상단 ]

  • 트위터로 보내기
  • 페이스북으로 보내기

모바일 페이지로 이동