추천 시스템 동향 및 개요

머신러닝과 딥러닝 · 2020. 2. 16. 18:28

과거

과거 초창기 e-commerce 시장에서 사용하던 추천 알고리즘의 리스트

과거의 추천 시스템은 KDD(Knowlege Discover in Database)라는 방법론을 기반으로 알고리즘을 개발했다.

쉽게 설명하면 '데이터셋에서 유의미한 규칙을 찾아내는 것'인데, 

이의 대표적인 방법은 Association Rule이 있다.

 

Association Rule은 고객들의 상품 묶음 정보를 규칙적으로 표현하는 가장 기본적인 알고리즘이다.

흔히, 장바구니 분석이라고도 불린다. (월마트의 사례, 맥주와 기저귀의 관계를 밝힘)

고객들이 함께 구매하는 상품들을 분석하는 것이다. 상품간의 연관성을 수치화하여 나타냄.

직관적이고 구현하기 쉽고, 성능도 괜찮은 편이다.

 

추천의 타입

1. 개인화 추천 (Personalized Recommender) - CF

 

2. 비개인화 추천(Non-personalized Recommender) - AR

rating 기반의 인기 상품이나, Association Rule(AR)순위 상품을 추천해주는 방법.

이 방법은 Cold Start Problem이 발생하는 상황 or 개인화추천이 잘 적용되지 않는 추천 영역에 사용됨.

 

3. Attribute-based recommender - Content based Approach

아이템 자체가 가지고 있는 정보, 즉 컨텐츠 정보를 활용하여 추천하는 방법으로 Cold Start문제를 해결하는 방법이다.

Collaborative Filtering(CF)과 상호 보완적인 알고리즘인 Content-based Approach라고도 불린다.

 

 

현재 

추천의 중요성은 여전함.

넷플릭스는 대여되는 영화의 2/3가 추천으로 발생하고,

구글 뉴스도 38%이상의 조회가 추천에 의해 발생.

아마존의 경우 판매의 35%가 추천으로 발생.

 

현재 추천 시스템의 동향은 기본적으로 과거와 다르지 않음.

딥러닝으로 고도화된 알고리즘들이 당연히 적용되어 있고, 

현재 추천 모델링에 사용되는 방법론은 크게 3가지이다.

 

1. 통계 기반의 모델링 (데이터에 대한 가장 기본적인 접근법)

2. 협업 필터링 (Collaborative Filtering)

3. 딥러닝 기반 모델링

 

통계 기반 모델링의 경우

사이트에서 패션 상품을 노출한다고 할 때, 신상품에 대한 고객들의 반응(Implicit Score)이 일반화 되었다고 가정한다.

이 때, 해당 상품에 대한 암묵 점수들의 분포를 통계적으로 살펴보는 것이 의미가 있을 수 있음.

가설에 기반하여 실제의 분포나 반응이 얼마나 다른지 검정하는 통계검정 기법인 카이제곱 검정 통계 기법을 사용할 수 있음.

 

CF(협업필터링)기반 모델링의 경우

대부분의 추천시스템은 이 방법으로 구축된다. 

많은 유저들로부터 모은 취향정보를 기반으로 예측하는 방법.

가정: 어떤 특정한 사람A가 어떤 영화에 대해 인물B와 같은 의견을 갖는다면

다른 영화에 대해서도 비슷한 의견을 가질 확률이 높을 것.

 

협업 필터링 종류는 Memory-based, Model-based, Hybrid가 있음.

 

Memory-based 협업 필터링은 유사도를 기반으로 동작함.

사용자-사용자 간의 유사도를 기준으로 하는 경우(User-Based)

아이템-아이템 간의 유사도를 기준으로 하는 경우(Item-Based)

 

아마존과 넷플릭스를 비롯한 서비스에는 아이템 기반으로 처리함.

 

Model-based 협업 필터링은 대표적으로 MF가 사용됨.

MF는 유저나 상품의 정보를 나타내는 벡터를 PCA나 SVD같은 알고리즘으로 분해하거나 축소하는 방법이다.

예를 들어, Matrix Factorization은 

유저를 행으로 하고 상품에 대한 평가를 열로 하는 행렬이 있다고 할때,

이를 두개의 행렬로 분해하는 방법으로 유저에 대한 latent와 상품에 대한 latent를 추출하는 것이 목적이다.

 

숨어있는 특징값이라고 볼 수 있는 latent feature는 

유사한 유저나 상품을 추천하는 것에 활용할 수 있다.

 

MF의 대표적인 방법은 SVD(Singular Value Decomposition, 특이값분해)이다.

행렬을 대각화하여 분해하는 방법이다. 정방행렬이 아니어도 분해가 가능하고

Sparse한 특성을 지니는 추천시스템에서 Matrix를 분해하는 것에 안성맞춤이다.

 

 

딥러닝 기반의 경우

최근의 연구결과를 바탕으로 부분적으로 적용되고 있는 방법.

예를 들어 word2vec을 키워드 분류에 활용하거나,

이미지에서 inception모델로 피쳐를 뽑아 유사한 의류를 분류하는 등이다.

 

 

절대적인 방법론은 없음.

이미지 추천 -> 딥러닝

나와 비슷한 사용자가 좋아할만한 아이템 추천 -> CF 등. 다르게 접근

(당연한 말)