본문 바로가기

[Day33] Item2Vec and ANN 5-1 Word2Vec & Item2Vec Item2Vec을 알려면 Word2Vec을 알아야하고, Word2Vec을 알려면 Embedding을 알아야하니까 일단 embedding부터 시작해보자 Embedding 임베딩 : 주어진 데이터를 낮은 차원의 벡터로 만들어서 표현하는 방법 MF에서 latent vector와 같은 개념 Sparse Representation 아이템 전체 가짓수 = 차원의 수 one-hot encoding, multi-hot encoding와 같은 방법이 있다. ex) 사과=[1,0,0,0,0,0], 배=[0,1,0,0,0,0] 벡터는 모두 0 or 1로 이루어져있다. 해당 아이템에만 1 나머지는 0으로 두기 때문이다. 아이템 갯수가 많아지면 그에 따라 벡터의 차원도 커지고 공간도 낭비된다. Dense Representati..
[Day32] Collaborative Filtering 4-3 Bayesian Personalized Ranking Bayesian Personalized Ranking : BPR implicit feedback를 사용해 MF를 학습할 수 있다. 베이지안 추론에 기반해서 implicit data로 서로 다른 아이템에 대한 유저의 선호도를 반영한다. Personalized Ranking 사용자에게 ranking이 있는 아이템 리스트를 제공하는 문제 (=아이템 추천 문제) 유저가 아이템 i보다 아이템 j를 좋아한다는 정보를 이용해서 MF의 파라미터를 학습한다. 이 정보가 해당 유저의 personalized ranking이다. 사용자의 클릭이나 로그는 implicit data이기 때문에 선호도가 분명하게 드러나지 않다. 상호작용하지 않은 아이템에 대한 것은 관측데이터가 없어서 밑의 두 가지로 고려할 수 있다 유저가 아이템에..
[Day32] Collaborative Filtering 4-2 MF & MF for Implicit Feedback Matrix Factorization : MF 유저-아이템 행렬을 저차원의 user와 item의 latent factor 행렬의 곱으로 분해하는 방법 SVD와 달리 관측한 선호도만 모델링에 활용한다. 목표 : 관측되지 않은 선호도를 예측하는 일반적인 모델을 만드는 것 $$R \approx P \times Q^{T} = \widehat{R}$$ $P$ : User Matrix $Q$ : Item Matrix $|U|$ : user의 수 $|I|$ : item의 수 k : latent vector 수 $\widehat{r_{u,i}}$ : true rating = 유저가 매긴 실제 rating값 $p_{u}$ : 유저u의 latent vector $q_{i}$ : 아이템i의 latent vector $P \..
[Day32] Collaborative Filtering 4-1 MBCF & SVD NBCF의 한계 Sparsity(희소성) 문제 데이터가 충분하지 않다면 추천성능이 떨어진다. 유사도 계산이 부정확하기 떄문에 성능도 떨어진다. 데이터가 부족하거나 혹은 아예 없는 유저, 아이템의 경우 추천이 불가능하다. (Cold Start) Scalability(확장성) 문제 유저와 아이템 수가 늘어날수록 유사도 계산도 늘어나 시간이 오래 걸린다 하지만 데이터양이 많아지기 때문에 정확한 예측을 한다. MBCF : Model Based Collaborative Filtering 항목 간 유사성을 비교하는 것에서 벗어나 데이터에 내재한 패턴을 이용해 추천하는 CF기법 SVD Matrix Factorization Deep learning NBCF MBCF non parametric 파라미터를 학습하지 않는다..
[Day32] Collaborative Filtering 3-2 K-Nearest Neighbors CF&Similarity Functions& Rating Prediction Rating Prediction ※ 설명은 user-based이지만 동작 방식은 user-based나 item-based나 같습니다. UBCF(User-based Collaborative Filter) - Absolute Rating 영화 V 영화 W 영화 X 영화 Y 영화 Z User A 5 4 5 2 1 User B 4 5 ? 1 2 User C 2 1 1 4 5 User D 4 2 3 2 4 Average 영화X를 본 다른 유저들의 평균을 내서 rating으로 사용 $$\frac{5+1+3}{3}$$ $$\hat{r}(u,i)=\frac{\Sigma_{u'\in\omega_{i} r(u',i)}}{|\Omega_{i}|}$$ ※전체 유저 : U, 아이템 : I, 유저 (여기서는 지금 rating p..
[Day32] Collaborative Filtering 3-1 CF & Neighborhood-based CF 협업 필터링 CF : Collaborative Filtering 많은 유저들(collaborative)로부터 얻은 정보를 이용해 유저의 관심사를 자동으로 예측 데이터가 축적될 수록 협업의 효과가 커지는 것은 머신러닝 모델에서도 학습데이터가 많아지면 성능이 좋아지는 것과 같다. ex) 노트북을 본 유저들이 구매한 다른 상품 추천 유저가 아이템에 부여할 평점/선호도/클릭확률을 예측하는 것이 목표이다. 방법 유저-아이템 행렬을 생성한다. 유저-아이템 행렬에는 유저가 아이템에 대해 기록한 선호도나 평점같은 것이다. 하지만 이 행렬은 다 채워지기 힘들다. 유저가 모든 아이템에 대해서 선호도를 표시할 수 없기 때문이다. 유사도 기준을 정하고, 유저끼리 혹은 아이템간의 유사도를 구한다. 비어있는 값을 주어진 평점과 ..
[추천시스템] Precision@K, Recall@K, AP@K 정의부터 하고 살펴보자 Precision@K 추천시스템이 추천한 K개 아이템 가운데 실제 유저가 관심있는 아이템의 비율 Recall@K 유저가 관심있는 전체 아이템 가운데 추천시스템이 추천한 아이템의 비율 예시를 들어 보자 여기서는 사용자도 item을 4개 선택했지만 사용자가 선택할 item의 갯수는 달라질 수 있다. Precision@3은 (추천시스템과 사용자가 선택한 item 중 겹치는 것의 갯수) / (추천시스템이 추천한 item)이 되고, Recall@3은 (추천시스템과 사용자가 선택한 item 중 겹치는 것의 갯수) / (사용자가 선택한 item)이 된다. Precision@K, Recall@K은 순서를 신경쓰지 않지만 더 관심을 가질만한 아이템을 먼저 추천해주는 것이 중요하기 때문에 평가에 순..
[Day31] 추천 시스템 Basic 2-2 TF-IDF를 활용한 컨텐츠 기반 추천 컨텐츠 기반 추천 Content-based Recommendation 사용자가 과거에 선호한 아이템과 비슷한 아이템을 그 사용자에게 추천 ex) 같은 장르의 음악 장점 단점 다른 유저의 데이터가 필요하지 않음 아이템의 적합한 피쳐를 찾는 것이 어려움 :이미지냐 텍스트냐에 따라 feature preprocessing도 달라져 시간이 오래 걸린다. 새로운 아이템이나 인기도가 낮은 아이템을 추천할 수 있음 한 분야의 추천 결과가 계속 나온다 overspecialization 설명 가능 다른 유저의 데이터 활용 불가 Item Profile item이 가진 부가정보로 feature를 찾아서 item profile을 만들어야 한다. 아이템이 가진 feature를 vector형태로 표현하는 것이 쉽다. 하나의 fea..