LDA의 생성과정 1. 토픽 개수 K를 설정 : 토픽은 모든 문서에 분포되어 있음! 2. 문서에 있는 모든 단어를 K개 중 하나에 토픽에 랜덤으로 할당 : 만약 한 단어가 한 문서에 두 번 이상 등장한다면 각 단어는 서로 다른 토픽에 할당될 수도 있음 3. 각 문서의 개별 단어에 대해서 다음 계산을 반복한다. 단어 하나의 topic을 모른다고 가정하고 문서 1(doc1) 중에 A가 나타날 확률 = 2/4 = 0.5 문서 전체에서 A라는 topic을 골랐을 때 cat이 나올 확률 = 1/6 = 0.167 => 두 값을 곱해서 cat에 A가 할당될 확률을 구함! =0.0835 문서 1(doc1) 중에 B가 나타날 확률 = 2/4 = 0.5 문서 전체에서 B라는 toopic을 골랐을 때 cat이 나올 확률 =..
오늘 포스팅에서는 빠르고 실용적인 추천 기법들에 대해 소개해보려고 합니다! 유명하진 않지만 실제로 비즈니스/서비스에서 많이 사용되는 모델들이니 잘 공부해놓으시면 도움이 될 것이라고 생각합니다ପ(´‘▽‘`)ଓ♡⃛ 1. LDA 2. 임베딩과 Word2Vec->Item2Vec 3. Multi-Armed Bandit 이 세가지에 대해 앞으로 차례대로 포스팅 해볼 계획입니다! LDA를 이용한 추천 : Latent Dirichlet Allocatioin 토픽 모델링은 문서의 집합에서 토픽을 추출하는 포르세스로 가장 대표적인 알고리즘이 LDA이다! LDA는 주어진 문서와 각 문서가 어떤 토픽을 가지는지 확률모형을 통해 표현하며 토픽별 단어의 분포, 문서의 토픽의 분포를 디리클레 분포로 가정하고 풀어낸다.! LDA는 ..
MF 서빙 이슈 MF 학습은 Pu, Qi 값을 구함 -> 특정 유저 u에게 추천을 제공하기 위해서 해당 유저벡터와 후보 아이템 벡터들의 연산이 필요함 -> 특정 아이템 i와 비슷한 아이템(i')를 추천하기 위해서 해당 아이템 벡터와 후보 아이템 벡터의 유사도 연산이 필요함 -> 만약 아이템 개수가 엄청 많다면.. 스코어를 계산할 때 오랜 시간과 높은 연산량이 필요하게됨 Anooy : approximate nearest-neighborhood ( ANN계열 알고리즘 ) 수많은 데이터가 있는 n차원 벡터 공간에서 주어진 벡터와 가장 유사한 벡터들을 찾는 알고리즘 주어진 벡터가 속한 공간을 tree search로 찾고, 그 권역 안에서만 nearest neighbor 연산을 함! Annoy 사용 예시 유저에게..
이번 포스팅에서는 Implicit Feedback데이터를 활용해 MF를 학습할 수 있는 논문의 기법에 대해 소개해보려고 합니다! 베이지안 추론에 기반하고 있으며 접근이 재밌고 기발해서 유명해진 방법이라고 합니다! Introduction 1) 사용자의 클릭, 구매 등의 로그는 Implicit Feedback 데이터 2) binary(0/1)로 이루어져있음 -> 선호도를 고려하지 않고 일반적으로 유저가 아이템을 클릭/구매 할 확률을 예측하는 문제 3) 유저가 item i보다 j를 좋아한다면? 이라는 정보를 사용해 MF의 파라미터를 학습하는 방법 => 관측되지 않은 데이터에 대해서 유저가 아이템에 관심이 없는 것인지 / 유저가 실제로 관심이 있지만 아직 모르는 것인지 고려해야됨... Personalized R..
이번 포스팅에서는 Matrix Factorizaton과 최적화 기법을 소개하려고 합니다!_! 먼저 다시한번 Matrix Factorization 기법에 대해 정의해보겠습니다~_~ Matrix Factorization이란? R과 최대한 유사하게 R^을 추론하는 것이 목표 즉 목적함수는 explicit feedback(1~5점 평점)에서 true rating과 우리가 예측한 predicted rating의 차를 Minimize하는 것이다. Objective Fuction (목적함수) 1) 학습데이터에 있는 유저 u의 아이템 i에 대한 실제 rating 2) 유저 u의 latent vector 3) 아이템 i의 latent vector ->2),3)은 최적화 문제를 통해 업데이트 되는 파라미터 4) 람다 te..
# Latent Factor Model? 간단하게 말하면 임베딩을 한다는 뜻! 다양하고 복잡한 유저와 아이템의 특성을 몇개의 벡터로 compact(작게?) 표현 -> 유저와 아이템을 같은 차원 벡터로 표현하여 나타냄 -> 같은 벡터 공간에서 유저와 아이템의 유사한 정도를 눈으로 확인할 수 있음 예시) # 전통적 SVD란? Matrix Factorization의 코어 아이디어가 됨! Rating Matrix R에 대해서 1) 유저 잠재 요인 행렬 2) 잠재 요인 대각행렬 3) 아이템 잠재 요인 행렬 이렇게 세가지의 행렬로 분해하는 것이다. => 이것은 그냥 선형대수학에서의 개념으로 유저와 아이템을 정해진 차원으로 임베딩하고싶다면? # Truncated SVD? 대표값으로 사용될 k개의 특이값만 사용한다. ..
지금까지 유저/아이템 간의 유사도를 구해 추천을 하는 User-based나 Item-based 같은 Neighborhood-based CF에 대해 공부를 해봤습니다! 이번 포스팅에서는 머신러닝 모델을 활용하는 Model-based CF에 대해 적어보려고 합니다! # 모델 기반 협업 필터링? -SVD(Singular Value Decomposition) -MF(Matrix Factorization) / SGD, ALS, BPR 등의 종류가 있음.. 유저/아이템 간의 유사도에 의존하는 기법들은 데이터의 sparsity(데이터의 빈공간?)에 취약하고 추천 결과를 생성할 때마다 많은 연산을 요구하게 됩니다! - Model-based CF는 머신러닝 모델을 사용하며 데이터..