Recommender System
-
[Recommender System] - 결과 정렬에서의 Shuffle 알고리즘Recommender System/추천 시스템 2021. 4. 5. 12:06
본 포스팅은 필자가 쓴 DeliveryHero Korea 기술 블로그(링크)에 있는 추천 시스템의 Shuffle 알고리즘 활용법에 관한 내용을 발췌한 것이다. 회사 기술 블로그에 글을 쓰면서 흥미 위주의 글을 쓰게 되었는데, 여기에 조금 더 내용적인 살을 붙여 글을 재구성하였다. 당연히 비즈니스와 관련이 없는 선에서 세간에 알려진 알고리즘 내용만을 서술하였다. 1. Spotify의 Music Shuffle 알고리즘 추천시스템, 그중에서도 콘텐츠 Shuffle이 필요한 영역에서 가장 대표적인 예시는 Spotify의 Shuffle 알고리즘이다. Music Shuffle 에서는 컨텐츠를 완전한 랜덤으로 추천하지 않는다. 하지만 흔히 알고있기로, 사용자들은 음악 앱에서 셔플 기능을 사용할 때 동작하는 방식을 완..
-
[Recommender System] - 추천시스템과 MAB (Multi-Armed Bandits)Recommender System/추천 시스템 2021. 1. 28. 21:57
1. Multi-Armed Bandit MAB에서 가장 중요한 개념은 Exploration & Exploitation이다. 여러 개의 슬롯머신 중, 어떤 슬롯머신을 당겨야 이득을 최대화할 수 있는지를 파악하는 것을 탐색/획득으로 알아내기 때문이다. 그래서 탐색과 활용이 조화롭게 필요한 추천시스템에서 많이 활용되는 방식이다. 이미 수 년 전부터 추천시스템에서는 대세로 자리잡았다. A/B 테스트의 완벽한 상위호환이라고 볼 수 있기 때문이다. (모델 단위가 아닌 아이템 단위의 MAB는 모델의 대체재이기도 하다.) MAB의 구성 원리는 앞서 말한 것 처럼 두 가지, 탐색과 활용이다. 그 중 추천시스템에서의 Exploration은 Diversity를 올려줄 수 있는 방법 중 하나이다. Cold-start 문제를 ..
-
[Recommender System] - Graph Convolutional Matrix Completion 번역 & 리뷰Recommender System/논문 및 블로그 리뷰 2020. 12. 29. 20:20
1. Intro 이 논문은 recommender system에서의 matrix completion 문제를 "link prediction on graph" 관점으로 바라본 내용을 서술하고 있다. 핵심 아이디어를 하나 예로 들면, user-item rating matrix를 user-item의 이분그래프로 표현할 수 있다는 것이다. 그리고 이를 graph auto-encoder 프레임워크에 응용하는 것을 제안한다. 논문에서 표현한 전체적인 그림은 아래와 같다. 2. Matrix completion as link prediction in bipartite graphs 그래프로 기존의 Rating Matrix를 표현하는 방식은 다음과 같다. W는 User와 Item의 집합을 나타내는 기호이고, E는 Edge 정..
-
[Recommender System] - 임베딩 벡터의 Nearest Neighbor를 찾는 과정Recommender System/추천 시스템 2020. 12. 3. 17:31
이번 글에서는 검색/추천 시스템에서 가장 중요한 문제 중 하나인 Vector Space 안에서의 Nearest Neighbor를 찾는 문제에 대해 이야기하려고 한다. 이 문제가 중요한 이유는, ML을 활용하여 검색이나 추천에 활용되는 Item을 Densed Vector로 표현하는 것이 가장 보편적인 방법이 되었기 때문이다. 대표적인 예는 Collaborative Filtering에서 사용되는 Latent Factor이며, 최근에는 Word2Vec과 같이 자연어 처리에서 힌트를 얻은 임베딩 방법을 더 많이 사용하는 듯 하다. 개인적으로 최근에 Densed Vector의 Similarity를 real-time으로 줄세우는 작업을 많이 하게 되었는데, 이러한 Vector Search를 빠르게 구현하기 위해 i..
-
[Recommender System] - Factorization Machine (From Scratch with Python)Recommender System/추천 시스템 2020. 4. 17. 18:57
이전 포스팅 보기 본 포스팅은 Factorization Machine의 intuitive한 설명(블로그 번역 + 필자 개인적 해석)과 라이브러리 활용법에 대한 포스팅의 후속이다. FM이 sparse한 피처간의 pair-wise interaction을 학습한다는 것을 어렴풋이 이해했다면, 이번에는 실제로 Science 레벨에서 모델링 할때 어떻게 활용해야 하는지를 수식 레벨부터 직접 코드로 구현해보면서 따라가보자. 백문이 불여일견이라 하였으니, 코드 역시 마찬가지일 것이다. 이번 글에서는 FM의 intuitive한 설명은 생략하고 실제로 벡터 단위로 어떤 분석을 수행해야 하는지, pair-wise한 학습을 하면 어떤 이득을 얻을 수 있는지에 대해서 중점적으로 서술하였다. 1. Algorithm Concep..
-
YouTube Recommendation system 트릴로지 리뷰 - [3]Recommender System/논문 및 블로그 리뷰 2020. 2. 11. 16:53
이전 포스팅 보기 더보기 YouTube Recommendation system 트릴로지 리뷰 - [1] YouTube Recommendation system 트릴로지 리뷰 - [1] 본 포스팅은 2010, 2016, 2019에 발표한 유튜브의 추천시스템 자료를 리뷰한 것이다. 3부작이 끝이 아님에도 트릴로지라는 이름을 붙인 것은, 필자에게는 이 자료들이 매트릭스 3부작이나 반지의제왕 3부작 만큼이.. yamalab.tistory.com https://yamalab.tistory.com/124 YouTube Recommendation system 트릴로지 리뷰 - [2] YouTube Recommendation system 트릴로지 리뷰 - [1] 이번에 리뷰할 자료는 으로, 2016년에 발표된 것이다. ..
-
Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 리뷰Recommender System/논문 및 블로그 리뷰 2020. 2. 10. 13:50
본 포스팅은 YouTube recommendation system 트릴로지 리뷰(링크) 중, 스핀오프 영화 같은 개념이라고 생각하면 좋다(..). 본래 multi-task learning은 딥러닝 분야에서 많이 사용되던 방식인데, 저자가 아마도 유튜브의 추천시스템에 대해 연구하다가 multi-task model의 필요성을 느꼈던 것 같다. 사실 논문에 나와있는 그림만 봐도 어떤 것을 하려는지 대강 짐작할 수 있는 내용이기 때문에, 논문을 아주 자세히 읽어볼 필요는 없다고 생각한다. 다만 유튜브 추천시스템 논문들을 제대로 읽고 싶은 사람이라면 이 논문 역시 주의깊게 봐야한다. 본 포스팅에서는 아주 간략한 내용만 소개하고자 한다. 1. 모델의 대략적인 구성은 아래 그림과 같다. MMoE는 그림 왼쪽에 있는 ..
-
YouTube Recommendation system 트릴로지 리뷰 - [2]Recommender System/논문 및 블로그 리뷰 2020. 2. 4. 19:49
YouTube Recommendation system 트릴로지 리뷰 - [1] 이번에 리뷰할 자료는 으로, 2016년에 발표된 것이다. 이 자료는 당시에 나오자 마자 읽어봤던 자료인데(물론 우연이었다), 추천시스템에 막 관심을 가지기 시작했을 때 생애 처음(..)으로 제대로 읽어본 '논문' 비스무레한 것이다. 복잡한 수식도 나오지 않고 intuitive 하면서도 흥미로운 내용이라 지금 읽기에는 무척 재미난 논문이지만, 당시에는 딥러닝은 커녕 머신러닝의 'ㅁ' 자도 모르던 학부생 시절이었기 때문에 끝까지 읽는데 아주 애를 먹었던 기억이 있다. 게다가 2016년에는 추천시스템에 대한 자료 자체가 다소 귀한 편이었기 때문에(물론 지금도 넉넉치는 않다), 개념을 잡아주고 트렌드를 파악하기에 매우 도움이 됐었다...
-
YouTube Recommendation system 트릴로지 리뷰 - [1]Recommender System/논문 및 블로그 리뷰 2020. 1. 31. 18:11
본 포스팅은 2010, 2016, 2019에 발표한 유튜브의 추천시스템 자료를 리뷰한 것이다. 3부작이 끝이 아님에도 트릴로지라는 이름을 붙인 것은, 필자에게는 이 자료들이 매트릭스 3부작이나 반지의제왕 3부작 만큼이나 재미있었기 때문(..) 오늘 리뷰할 자료는 으로, 2010년에 발표된 것이다. 유튜브 붐이 일어나던 초창기에 사용된 추천시스템을 살펴볼 수 있다. 하지만 그 철학과 기본 틀은 현재까지도 유효하며, 이제 막 추천시스템을 구축하려는 작은 서비스에서는 여전히 현대적인 추천시스템이라고 할 수 있다. 1. Intro 유튜브 추천시스템을 요약하면, 유저가 유튜브에서 행동한 데이터를 바탕으로 개인화된 비디오를 추천해준다는 것이라고 할 수 있다. 그리고 이 논문은 그 과정에서 직면한 문제점들과 이를 어..
-
Microsoft Research Learning to Rank 알고리즘 - [1] RankNetRecommender System/추천 시스템 2019. 10. 31. 22:35
지난 포스팅에서는 Learning to Rank에 대한 intuitive한 내용들을 다루었다. 이에 대한 내용을 다시 한 번 상기하자면, 검색과 추천같은 '랭킹'이 중요한 서비스의 경우, 아이템의 순위를 어떻게 정하느냐가 서비스의 품질을 결정한다고 할 수 있다. 그리고 이를 평가하기 위한 가장 정교한 방법은 list-wise 방법으로, nDCG를 대표적인 예로 들 수 있다. 그렇다면 이제 pair-wise ~ list-wise 정렬을 잘 하는 방법, 즉 "순서 정보를 이용하여 모델을 학습하는 방법"에 대해 알아보자. 이를 가장 잘 대표하는 방식이 바로 RankNet 계열의 알고리즘이다. 이는 Microsoft Research에서 연구한 내용으로, 순서 정보를 이용하여 뉴럴넷을 학습하는 랭킹 알고리즘의 기..