일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준
- Implicit feedback
- ANNOY
- SGNS
- Negative Sampling
- CV
- CF
- word2vec
- TTS
- Ai
- Recommender System
- FastSpeech2
- RecSys
- Tacotron
- Item2Vec
- 부스트캠프 AI Tech
- Skip-gram
- matrix factorization
- ALS
- FastSpeech
- Neural Collaborative Filtering
- 논문리뷰
- Noise Contrastive Estimation
- 추천시스템
- wavenet
- Dilated convolution
- NEG
- BOJ
- Collaborative Filtering
- Tacotron2
- Today
- Total
목록AI/추천 시스템 (8)
devmoon
이전에 Item2Vec이나 Matrix Factorization을 사용할 때, 벡터공간에 유저나 아이템을 투영시켜서 현재 아이템과 가장 가까운 벡터를 찾아 추천하는 방법을 사용했었다. 아이템의 개수가 100개 정도라면 모든 벡터와 현재 벡터를 비교해서 얼마나 유사한지, 얼마나 가까이 있는지 연산을 할 수가 있지만, 아이템의 개수가 1억 개가 넘어간다면 이를 어떻게 처리해야 할지도 생각해보아야 한다. 따라서 이번에는 완벽하게 가까운 벡터를 찾아낼 수는 없지만, 높은 정확도를 가지고 가까운 벡터를 찾도록 도와주는 ANN에 대해서 소개한다. Brute Force KNN K-NN은 현재 나(벡터)와 가장 가까운 $k$개의 벡터를 의미한다. 가장 단순하게 생각했을 때, 모든 벡터와의 거리 연산, 유사도 연산을 사..
협업 필터링 방식은 다른 사람들의 데이터를 바탕으로 나의 추천을 결정하는 방법론을 말한다. 기본적으로 다른 유저의 데이터가 많이 존재할수록 추천 성능이 올라갈 것이라는 믿음을 바탕으로 생겨났으며 이번 글은 다양한 협업 필터링 중 최초로 등장한 이웃 기반 협업 필터링(Neighborhood Based Collaborative Filtering)에 대해 다룬다. 예를 들어, A와 B가 온라인 쇼핑몰에서 상품을 구매하고자 할 때 전자제품들을 많이 구매했다면, A가 다음으로 좋아할 만한 상품들을 B의 기록을 통해서 추천하는 것이다. 둘이 동일한 성향을 가지고 있는데 B가 특정 상품에 대해 안 좋은 평가를 내렸다면, A도 그 상품을 좋아하지 않을 확률이 크기 때문이다. 지금과 같은 예시는 유저를 기반으로 한 협업..
Content Based Recommendation 콘텐츠 기반 추천은 유저가 선호하는 아이템들의 특성(feature)을 파악하여, 동일하거나 비슷한 특성을 가진 다른 아이템들을 추천하는 것을 말한다. 일상생활의 예시로 유저 A가 영화 인터스텔라, 그래비티를 선호한다고 하면 SF와 우주를 배경으로 하는 다른 영화를 해당 유저에게 추천을 해주는 것이다. 콘텐츠 기반 추천의 장점 다른 유저의 데이터를 참고하지 않기 때문에, 다른 유저의 데이터가 필요 없다. 새로운 아이템이나 인기가 낮은 아이템의 추천이 가능하다. 추천이 왜 되었는지를 설명할 수 있다. 콘텐츠 기반 추천의 단점 아이템의 특성(feature)을 파악하는 것이 어렵다. 한 분야야의 추천만 계속 진행될 수 있다. 다른 유저의 데이터를 활용하지 않는..
이전 글에서는 찾아낸 연관 규칙 중에서 의미 있는 연관 규칙을 골라내는 2가지 방법에 대해서 살펴보았었다. 사실 어떤 것들이 좋은 것인지를 알아보기 전에 그 후보군을 만드는 것이 더 중요한 일이다. 아이템의 개수가 많아질수록 만들 수 있는 연관 규칙의 수는 절대적으로 수가 늘어나는데, 어떻게 모든 연관 규칙을 만들지 않고도 유의미하지 않은 것을 미리 걸러낼 수 있는지 알아보려고 한다. 연관 규칙을 탐색하는 알고리즘은 사실 연관 규칙 탐색에서 가장 중요하다고 할 수 있다. 실제로 그만큼 어렵고 해결하기 까다롭기 때문인데, 가장 naive 한 접근 방법(brute force)과 다음 3가지 연관 규칙 탐색 알고리즘이 존재한다. Apriori 알고리즘 DHP(Direct Hashing & Pruning) 알고..
연관 규칙 분석 이전 글에서 보았던 가장 기본적인 인기도 기반의 추천 시스템과는 달리 아이템 간의 연관성을 파악하여 추천을 진행하는 것을 연관 규칙 분석이라고 한다. 다른 말로는 장바구니 분석 또는 서열 분석이라고도 하는데, 장바구니 분석이라고 말하는 것은 마트에 장을 보러 가는 것을 떠올려 보면 된다. 장바구니 안에 여러 개의 상품들이 담겨있는데, 이 상품들 간의 연관성을 찾아내고자 하는 것이다. 같이 구매되는 상품은 무엇인지 아니면 꼭 같이 등장하는 상품이 있지는 않은지 파악하는 것이다. 마트에서 구매한 장바구니 목록을 계속 예시를 들어 설명하자면, 5명의 사람이 구매한 아이템 목록이 아래와 같다고 생각해보자. 여기서 각 사용자가 구매한 아이템 목록 즉, 거래내역을 Transaction 이라고 부르게..
추천 시스템을 만든다고 했을 때 바로 떠오르는 아이디어 중 하나는 분명 "가장 인기 있는 아이템을 사용자에게 추천한다" 일 것이다. 통계적으로 많은 사람들이 좋아했고 구매했기 때문에 잠재적으로 다른 사용자도 해당 아이템을 선호할 가능성이 높기 때문이다. 이번 글에서는 이런 인기도 기반 추천 시스템에 대해서 알아보고자 한다 인기도 기반의 추천시스템은 현업에서 주로 데이터가 부족하거나, 또는 서비스를 시작한 지 얼마 되지 않았을 때 사용한다. 데이터를 부족하기 때문에 추천 모델을 구축하는데 어려움이 있고, 서비스를 시작하지 않은 것도 마찬가지로 데이터가 부족한 현상으로 이어지게 된다. 인기도 기반 추천을 하기 위해서는 각 아이템들을 특정 점수를 기준으로 정렬할 필요가 있다. 인기도의 기준을 어떻게 정할지 경..
추천 시스템 모델을 만들었다면 실제로 적용했을 때 얼마나 좋게 작용하는지 평가할 수 있어야 한다. 간단하게 회사의 비즈니스 입장에서는 새로운 추천 모델을 통해 매출이 얼마나 증가했고, 조회가 얼마나 증가했는지 확인해볼 수 있다. 또한 추천 시스템에서 중요한 평가지표인 CTR(Click Through Rate, 클릭률)을 통해 노출대비 클릭이 얼마나 많이 이루어졌는지 알아볼 수 있다. 반대로 비즈니스 관점이 아닌 사용자에게 얼마나 품질 좋은 추천이 이루어졌는지 생각해볼 수 도 있다. 사용자가 느낄만한 관점은 아래와 같이 크게 4가지로 분류하여 평가한다. 연관성 : 추천된 상품이 유저와 관련된 상품인가? 다양성 : 추천된 K 개의 상품에 다양한 상품이 포함되어 있는가? 하나의 카테고리 상품만 추천되고 있지는..
최근 인터넷이 점차 보급되는 것을 뛰어넘어 거의 모든 사용자들이 인터넷 서비스를 사용하고 상품들을 소비한다. 어떤 물건을 구매하기 위해서 직접 가서 상품을 구매하기보다 택배 배송을 서비스해주는 회사인 쿠팡 또는 SSG몰 네이버 쇼핑들을 사용하게 되며 음식을 먹게 될 때도 배민이나 요기요 같은 배달 서비스를 사용한다. 어떤 것을 구매하지 않고 소비할 수 있는 유튜브의 영상 콘텐츠와 웹툰의 만화들도 마찬가지이다. 위의 모든 IT 서비스들의 공통점은 소비할 수 있는 아이템이 매우 많다는 것이고 이에 따라 각 사용자들은 원하는 상품을 찾기 위한 더 효율적인 방법들이 필요해졌다. 먼저 사용자가 상품을 어떤 식으로 찾아 소비하는지에 따라 2가지 방식으로 나누는 것이 가능하다. Pull 방식 (Searching) 유..