Data/추천

[추천시스템] 2. 인기도 기반

Derek Grey 2024. 3. 30. 15:40
반응형

 

 

1. 인기도 기반 추천 시스템

 

인기도 기반의 추천 시스템이란 사람들에게 많이 구매, 클릭, 좋아요 등으로 인기가 높은 상품을 추천해주는 시스템을 의미한다. 

 인기도 기반이 추천? 인가에 대한 의문도 들수 있지만, 상품을 유저에게 제안해주고 구매를 유도한다는 점에서 인기도 기반 추천 시스템도 추천의 한 종류이다.

 무엇보다, 인기도 기반 추천 시스템은 머신러닝 방법론과 다르게 적용되는 룰베이스 기반의 강력한 추천 시스템이다. 쇼핑몰에 개인화나 추천은 없어도, 인기 Top 10 이나 판매량 Top 10 등으로 카테고리가 기획된다. 

 그리고, 해당 카테고리는 추천 그 이상의 효과나 판매량을 가져온다. 때문에, 인기도 기반은 개인화나 추천과 함께 시너지를 낼 수 있는 추천 시스템이자 필수적인 추천 시스템이다.

 

 

해당 코드는 인기도 기반으로 영화를 추천해주는 코드이다. ratings 는 movie_id 별로 rating(평점)의 평균이 존재하는 것이고, 해당 영화 평점 평균이 높은 것부터 상위 정렬하여 n_items 개를 추천해주는 코드이다.

def rec_best_seller_movies(n_items) : 
    movie_mean = ratings.groupby(['movie_id'])['rating'].mean()
    movie_sort = movie_mean.sort_values(ascending=False)[:n_items]
    recom_movies = movies.loc[movie_sort.index]
    recommendations = recom_movies['title']
    return recommendations

rec_best_seller_movies(10)

 

rec_best_seller_movies 를 실행시, 영화 평균 평점이 높은 상위 10개를 반환 받을 수 있다. 인기도 기반 추천 시스템은 간단하다. 그러나, 이와 같이 추천시 영화를 노출 시켜주는 캐루셀(Carousel)이 무한하게 고정되서 변동이 없는 경우들이 존재한다. 때문에, 해당과 같은 경우를 해결하기 위해 데이터를 수집하는 Window를 변경한다거나 혹은 그 이상의 방법을 고안하는 것이 중요하다.

 

넷플릭스 TOp 10 시리즈

 

그리고, 무조건적으로 상품변동이 되어야만 좋은 Top 10 구좌인가에 대한 고민도 깊게 해봐야하는 생각보다 어려운 시스템이다. 

 때문에, 넷플릭스나 OTT 같은 서비스에서는 카테고리나 장르 별로 Top 10을 구현하는 식을 통해 해결하고 있다. 인기도 기반 추천 시스템의 데이터 변수나 적절한 Threshold 는 도메인 기반으로 적용되는 것이 일반적이다.

 

 

 

 

반응형