Deep Learning/Recommender system 11

[Recommender System] 공분산(Covariance)

추천 시스템에서는 차원 축소 기법을 사용하여 모델을 구축할 때 공분산을 다룬다. 차원 축소는 다차원 행렬을 저차원으로 보내어 희소성 문제를 일부 완화할 수 있게 만들어주는 기법이다. 지금은 행을 기준으로 계산이 이루어지면 PCA(Principal Component Analysis), 열을 기준으로 계산이 이루어지면 FA(Factor Analysis) 정도로만 이해해도 무방하다. 사용자-아이템 간 평점 행렬은 일반적으로 희소(Sparsity) 행렬이라고 부른다. 쇼핑몰에는 방대한 양의 아이템이 존재하는데, 사용자는 모든 아이템에 대해 평점을 측정하는 것이 아니고, 일부에 대해서만 평점을 부여하기 때문이다. 이전에 다루었던 SVD(Singular Value Decomposition)과 비슷한 맥락이며, 결과..

[Recommender System] UBCF vs IBCF

앞 글에서 이웃 기반 방법론의 수식에 대해서 간략히 설명했다. 이웃 기반 방법론은 사용자 기반 모델, 아이템 기반 모델이 존재하는데 일반적으로 아이템 기반 모델이 성능이 조금 더 좋다고 한다. 왜 그럴까? 총 3가지 이유를 거론할 수 있을 것이다. 1. 시간 복잡도 온라인 쇼핑몰을 보면 실제 사용자 수는 엄청나게 많지만 사용자 수에 비해서 아이템 수는 상대적으로 적은 것이 일반적이다. 우리가 NBCF(Neighbor Based Collaborative Filtering)을 구현할 때를 생각해보자. $n$은 사용자의 수, $m$은 아이템의 수라고 가정하면, 사용자 간의 유사도를 계산하게 되면 사용자($u$)의 이웃의 유사도를 계산하기 위해서는 $n-1$번의 연산이 들어가게 되고, 아이템 간의 유사도를 계산..

[Recommender System] 이웃 기반 방법론 - Cosine, Pearson

이웃 기반 방법론은 사용자-사용자 간 유사도 혹은 상품-상품 간 유사도를 이용하자는 아이디어에서 시작됐다. 이웃 기반 모델에서는 다음과 같은 두 가지 기본 가정을 설정한다. NBCF(Neighbor Based Collaborative Filtering)라고 불리기도 한다. 1. 사용자 기반 모델 : 유사한 사용자들은 같은 상품에 대해 비슷한 평점을 부여한다. 2. 아이템 기반 모델 : 유사한 상품은 동일한 사용자에세 비슷한 방식으로 평점이 부여된다. 사용자 기반 이웃 모델을 구성하기 위해서는 타깃 사용자($i$)와 유사한 사용자를 찾기 위해서는 다른 모든 사용자와의 유사도를 계산해야한다. 유사도 계산을 수행할 때에는 사용자마다 본인의 기준이 다르기 때문에 평점 스케일이 다를 수 있음을 고려하고 계산을 수..

[Recommender System] context of recommender systems

컨텍스트의 사전적인 정의는 '이벤트를 둘러싸고 적절한 해석을위한 자원을 제공하는 프레임' 이며, 다양한 곳에서 다양한 의미로 쓰인다. 자연어 처리에서는 문장의 문맥을 뜻하고, 추천시스템에서는 시간적, 공간적 컨텍스트를 예로 들 수 있다. 고객에게 제품을 추천해줄 때 여름인데 겨울 패딩을 추천해주는 것보다는 반팔티와 같은 여름의 컨텍스트에 맞는 제품을 추천해주는 것이 구매할 확률이 높기 때문이다. 추천시스템에서는 이와 같이 도메인에 특화된 다양한 문제점들이 있기 때문에 이를 해결함으로써 고객 만족도가 더욱 높아지고, 매출액에 직결될 수 있을 것이다. 시간에 민감한 추천 시스템 : 영화를 추천해줄 때 최근 개봉한 영화를 추천해주는 것과 개봉한지 몇 년이 지난 영화를 추천해주는 것은 큰 차이가 있다. 필연적으..

[Recommender System] 협업 필터링(Collaborative Filtering)

협업 필터링(Collaborative Filtering; CF)은 추천시스템을 배우는 사람의 입장에서는 가장 기본적인 모델 중 하나일 것이다. 협업 필터링 중에서 초기 알고리즘인 이웃 기반 협업 필터링은 크게 두 가지 유형이 존재한다. 1. 사용자 기반 협업 필터링(User-based CF) 사용자 기반 협업 필터링은 사용자에게 추천을 제공해주기 위해 해당 사용자와 유사한 사용자의 평점을 이용하여 아이템을 추천해주는 방법을 말한다. 2. 아이템 기반 협업 필터링 (Item-based CF) 아이템 기반 협업 필터링은 아이템에 대한 추천을 만들기 위해 해당 타깃 아이템과 유사한 그룹(A)을 형성한 후 타깃 사용자가 그룹(A)에 대한 평점을 확보하여 이를 기반으로 추천해주는 방법을 말한다. 사용자 기반 CF..

[Recommender System] Collaborative Filtering, Content-based, Knowledge-based

아마존, 넷플릭스, 구글 등 여러 기업에서 책, 영화, 뉴스 등을 추천해주기 위해서 여러 추천시스템 방법을 활용하고 있다. 추천시스템 중에서 가장 대표적인 예로는 협업 필터링(Collaborative Filtering), 콘텐츠 기반(Content based), 지식 기반(Knowledge based) 등이 존재한다. 협업 필터링(Collaborative Filtering) 협업 필터링은 추천시스템을 공부하는 사람이라면 다들 들어 봤을 것이라고 생각한다. 협업 필터링 방법은 사용자와 아이템 간의 관계를 보는 방법이라고 생각하면 된다. 명시적(Explicit) 데이터를 기준으로 한다면 사용자가 영화를 시청하고 난 후 해당 영화에 평점을 매기는 형태로 행렬(matrix)를 만든 것이고, 암묵적(Implici..

[Recommender System] Metrics

추천시스템에서는 어떤 평가함수가 있을까? 우리는 평가함수에 대해서 다양하게 알고 있어야 한다. 왜냐하면 평가함수는 도메인이나 목적에 따라서 다른 평가함수를 적용해서 사용해야 해당 추천시스템이 제대로 적용되고 있는지 알 수 있기 때문이다. 1. 내가 추천해준 영화를 고객이 보았는가? 2. 내가 추천해준 영화를 고객이 높은 점수로 평점을 주었는가? 1번의 경우에는 실제 영화를 해당 고객이 시청했다면 성공으로 볼 수 있지만 2번의 경우에는 실제 고객의 만족도까지 높아야 되기 때문에 고객의 만족도까지 고려해서 평가한 것이다. 기사의 경우 기사를 확인하고 체류시간에 따라 평가할 수 있다. Accuracy - 정확도는 여러 예측 모델에서 가장 많이 쓰이는 평가지표 중 하나이며, 추천시스템에서는 내가 추천해준 영화를..

[Recommender System] Neighborhood based method(CF)

K-Neighborhood based method(KNN)은 k개의 군집으로 clustering을 하는 머신러닝 기법 중 하나이다. 추천시스템에서 KNN이라 함은 Explicit Data 즉, 유저가 자신의 선호도를 직접 표현한 데이터를 가지고 새로 유입된 사용자 혹은 상품에 대해서 선호도를 예측하는 기법이라고 볼 수 있다. User Based Collaborative Filtering 사용자 간 유사도를 측정해 사용자가 아이템에 해당하는 평점을 직접 입력하지 않더라도, 해당 사용자와 유사한 사용자의 평점을 가지고 사용자에 대한 아이템의 선호도를 예측하는 기법이다. 주로 코사인 유사도, 피어슨 유사도를 사용하여 유사도를 계산하여 측정한다. 주의해야할 점은 해당 사용자가 측정한 평점에 bias가 들어갈 수..

[Recommender System] TF-IDF

TF-IDF 라는 개념에 들어가기 앞서 우리가 알아야할 개념들을 먼저 짚고 넘어가자. 점점 기술이 발전해가면서 텍스트에 대한 중요도가 높아지고 있다. 블로그, 의료 기록, 민원 등 다양한 곳에서 우리는 텍스트를 접해볼 수 있다. 우리는 이런 텍스트들을 비즈니스에 활용하기 위해 노력하는 단계이다. 흔히 텍스트를 '비구조' 데이터라고 한다. 일반적인 데이터가 갖추어야 할 구조를 가지고 있지 않음을 뜻하며 텍스트 데이터는 각 데이터마다 길이도, 구조도 다르다. 맞춤법을 틀리는 경우도 있을 것이고, 단어를 섞고 축약하는 경우도 발생할 수 있다. 그리고 동일한 단어라고 하더라도 사용하는 분야에 따라 그 의미가 전혀 다른 경우가 발생할 수 도 있다. 또, 문맥을 파악하지 않으면 해당 단어가 어떤 뜻인지 파악하기가 ..

[Recommender System] Association Rule

추천시스템은 우리가 가장 많이 접해볼 수 있다. 넷플릭스, 당근 마켓, 쿠팡, 카카오 등 여러 기업에서 사용한다. 넷플릭스의 경우는 사람간의 유사도를 평가해 해당 영화를 시청했을 때 그 영화와 줄거리가 비슷한 영화를 추천해주고, 카카오의 경우 카카오에서 어떠한 기사를 보면 그 기사의 토픽을 보고 비슷한 기사를 추천해주는 방법을 사용하고 있다. 이렇게 추천시스템은 우리의 일상에 이미 동화되어 있다. 롱테일의 법칙 롱테일의 법칙은 하위 80%가 상위 20%의 가치보다 크다는 법칙이다. 추천시스템을 이야기 하는데 왜 갑자기 롱테일의 법칙을 이야기 할까? 다소 동 떨어진 의미라고 생각할 수 있지만 현재 추천시스템을 사용하는 기업들은 상위 20% 의 고객에 초점을 맞추기 보다는 하위 80% 의 고객에게 초점을 맞..

반응형