추천시스템

2022.01.14 - [머신러닝 | 딥러닝/추천시스템] - [K-Data x 러닝스푼즈] 2-1. 컨텐츠 기반 추천(CB), TF-IDF [K-Data x 러닝스푼즈] 2-1. 컨텐츠 기반 추천(CB), TF-IDF # 컨텐츠 기반 추천? : CB(Content-based Recommendation) 유저 A라는 사람이 과거에 선호한 아이템의 메타데이터를 가지고 비슷한 아이템을 유저 A에게 추천한다. => 아이템의 메타데이터의 예) - 영화 : 배 xod22.tistory.com CB에 대한 이론은 다뤄보았는데 이번엔 직접 데이터를 활용하여 컨텐츠 기반 추천(CB)를 실습해보려고 합니다! CB(Content-based Recommendation) : 먼저 실습에 앞서 간단하게 다시 CB(Content-..
2022.02.17 - [머신러닝 | 딥러닝/추천시스템] - [K-Data x 러닝스푼즈] 4-3. Multi-Armed Bandit (MAB) [K-Data x 러닝스푼즈] 4-3. Multi-Armed Bandit (MAB) 실제 추천에 많이 활용되고 있는 방법인 Mutli-Armed Bandit에 대해 공부해보려고 합니다! Multi-Armed Bandit(MAB)? 강화학습은 아니지만 강화학스브이 핵심 아이디어인 Exploitation(착취) / Exploration(탐험).. xod22.tistory.com 저번 포스팅에서 MAB의 기본적인 원리에 대해 공부해보았습니다! 이번 글에서는 MAB의 4가지 방법에 대해 소개해보려고 합니다!! 1. Simple Average Method (greedy ..
실제 추천에 많이 활용되고 있는 방법인 Mutli-Armed Bandit에 대해 공부해보려고 합니다! Multi-Armed Bandit(MAB)? 강화학습은 아니지만 강화학습의 핵심 아이디어인 Exploitation(착취) / Exploration(탐험)을 활용 * 원리 1) 카지노에 있는 K개의 슬롯머신을 N번 플레이 할 수 있다 - 한번에 한개의 슬롯머신을 당길 수 있음! 2) 각각의 슬롯머신에서 얻을 수 있는 Reward의 확률은 모두 다르다 - Reward는 0 또는 1로 가정 3) 수익을 최대화하기 위해서 슬롯머신을 어떤 순서로 당겨야 하는가? 모든 슬롯머신을 동일하게 당겨본다(?) -> 5번씩 -> explore(탐험) 일정 횟수만큼 슬롯머신을 당겨보고, 남은 횟수는 그 시간 동안 제일 높은 ..
Item2Vec 단어가 아닌 추천 아이템(Item)을 Word2Vec 방법을 사용하여 임베딩! 유저가 소비한 아이템 리스트를 문장으로, 아이템을 단어로 가정하여 Word2Vec에 적용 아이템 연관 추천에서 MF를 사용한 아이템 기반 CF보다 높은 성능과 양질의 추천결과를 제공! Item2Vec 상세 유저 혹은 세션별로 소비한 아이템 집합을 생성한다..! 학습을 통해 생성된 아이템 벡터 간의 유사도는 코사인 유사도를 사용함! Item2Vec 예시 - 아프리카TV의 Live2Vec : 유저의 시청 이력 = 문장, Live방송 = 단어 - Spotify의 Song2Vec : 유저의 플레이리스트(재즈,,,등등) = 문장, 노래 = 단어 - 크리테오의 Meta-Prod2Vec : 유저의 쇼핑 세션 = 문장, 상품..
임베딩 1) Sparse Representation : one-hot encoding ex) 면도기 = [0, 0, 0, 0, ..,1, 0, 0, ..., 0], 차원의 개수는 아이템 전체 개수와 같다..! 벡터의 차원은 한없이 커지고 공간이 낭비된다는 특징 2) Dense Representation : 아이템 전체 개수보다 훨씬 작은 차원으로 표현됨..! 아이템의 의미를 여러개의 차원에 분산하여 표현한다 ex) 면도기 = [0.2, 1.4, -0.4, 1.2, 0.3] 워드 임베딩 단어를 정해진 사이즈의 dense vector로 나타내는것이다.!! one-hot encoding->dense representation [0,0,1,...,0]-> 3차원[0.2, 0.4, 0.4] 임베딩 시키면 단어간의..
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 사용 예시 유저에게..
xod22
'추천시스템' 태그의 글 목록