본문 바로가기

추천시스템

추천시스템의 분류 추천시스템은 크게 collaborative filtering(CF)과 content-based filtering(CB)로 구분할 수 있다. 각각의 장단점이 있기에 요즘은 이 둘을 결합한 hybrid 방식이 많이 채택된다. Collaborative Filtering Idea 과거 아이템 선택 이력이 비슷한 유저들끼리는 취향이 비슷할 것이다. 아이템 A, B, ..., G를 좋아하는 유저들은 아이템 X도 좋아하더라. 그러면 어떤 유저가 아이템 A, B, ..., G를 좋아한다면 해당 유저의 아이템 X에 대한 피드백이 없더라도 이 유저도 아이템 X를 좋아할 것이라고 추측할 수 있다. 과거 아이템 선택이 비슷한 유저들끼리 그룹으로 나눈다고 해보자. 어떤 그룹 내의 유저가 특정 아이템을 접한 적이 없더라도 그 그.. 더보기
Continual Learning in Recommender Systems 이번 포스트에서는 추천시스템에서의 continual learning을 다룰 겸 ADER: Adaptively Distilled Exemplar Replay Towards Continual Learning for Session-based Recommendation이라는 논문을 소개하겠다. 1. Continual Learning 추천시스템은 한 번의 모델 학습으로 끝나는 것이 아니라 반드시 새로 유입된 데이터로 모델을 지속적으로 업데이트해야한다. 그 이유는 추천시스템을 이용하는 유저와 추천 대상인 아이템은 계속 변하고, 또 유저 취향과 환경은 계속 변하기 마련이기 때문이다. 논문에 추천시스템의 continual learning을 잘 표현하는 그림이 있다. $t$번째 모델 업데이트에서 기존 추천시스템의 모델 .. 더보기
랭킹 최적화 문제 유저가 선택할 아이템을 예측하여 노출시키는 추천시스템이 있는 반면 여러 아이템을 유저의 관심도에 따라 랭킹, 즉 순위를 매겨서 노출시키는 추천시스템이 있다. 전자의 경우 웹 사이트의 특정 영역에 뜨는 광고를 생각하면 되고 후자의 경우 넷플릭스나 유튜브의 동영상 추천을 생각하면 될 것 같다. 전자의 경우 regression이나 classification 문제로 비교적 쉽게 풀리지만 후자의 경우 명확히 regression 혹은 classification 문제로 정의하기 어렵다. 추천 풀에 있는 각 아이템마다 유저의 관심도 점수가 있다고 생각해보자. 당연히 유저가 관심가질만한 아이템을 먼저 보여주는 것이 유리하기 때문에 점수가 큰 아이템부터 순서대로 보여주는 것이 맞을 것이다. $n$개의 아이템이 있을 때, .. 더보기
정형 데이터를 다루기 위한 Neural Network TabNet: Attentive Interpretable Tabular Learning (https://arxiv.org/pdf/1908.07442.pdf) 내용 정리 문제 제기 딥러닝은 이미지, 자연어 등 비정형 데이터를 처리하는데는 좋은 성과를 보였지만 정형 데이터(tabular data) 관련 분야에서는 그러지 못하였다. CNN, FC layer 등은 표를 다루는데 적합하지 않다. 정형 데이터 관련해서는 아직까지는 ensemble decision tree 계열의 알고리즘들이 가장 많이 사용된다. 그렇다면 왜 굳이 딥러닝을 정형 데이터 처리에 적용하려고 하는 것일까? 저자들은 정형 데이터 처리에 있어서 딥러닝(gradient descent 기반의 end-to-end learning)의 이점을 다음과 .. 더보기
Sequential Recommendation과 GNN 지난 "추천시스템과 GNN(Graph Neural Network)"에서는 주로 general recommendation을 다뤘다면 이번에는 sequential recommendation 계열의 알고리즘을 제안한 논문인 "Session-based Recommendation with Graph Neural Networks"(https://arxiv.org/pdf/1811.00855.pdf)를 다루고자 한다. 해당 논문에서 소개한 알고리즘인 SR-GNN은 유저 프로파일을 사용하지 않고 오직 유저의 session sequence만으로 유저가 다음에 클릭할 아이템을 예측하고자 한다. Session sequence는 유저가 현 세션 동안 클릭한 아이템들을 시간 순서대로 나열한 것을 일컫는다. Notations 전체.. 더보기
추천시스템과 GNN(Graph Neural Network) "Graph Neural Networks in Recommender Systems: A Survey" (https://arxiv.org/pdf/2011.02260.pdf) 내용 정리 - 그래프와 GNN은 추천시스템에 어떻게 적용되는가? GNN이란 무엇인가? GNN은 말 그대로 그래프 구조의 데이터를 다루기 위한 neural network이다. GNN의 큰 틀은 다음과 같다. (사진 출처 : https://arxiv.org/pdf/1706.02216.pdf) 바깥 루프가 한 번 돌 때마다 각 노드는 (1) neighbor aggregation과 (2) information update라는 두 과정을 거친다. Neighbor aggregation은 임의의 aggregator function을 통해 기준 노드.. 더보기
DQN 기반 추천시스템 "Recommendations with Negative Feedback via Pairwise Deep Reinforcement Learning" (https://arxiv.org/abs/1802.06501)을 통해 DQN으로 어떻게 추천시스템을 구현할 수 있는지 알아보자. 문제 제기 추천시스템과 상호작용하면서 유저의 선호도는 계속 변하는데 기존 알고리즘들은 추천을 정적인 프로세스로 모델링하고 fixed greedy strategy를 따른다. 기존 알고리즘들은 당장의 short-term reward만 고려하고 long-term reward를 최대화할 수 있는 아이템에 대한 추천을 간과한다. 유저의 클릭 이력(positive feedback)만큼이나 유저가 클릭하지 않고 지나친 아이템 정보(negative.. 더보기
강화학습을 이용한 Top-K 추천시스템 이번 포스트에서는 "Top-𝐾 Off-Policy Correction for a REINFORCE Recommender System" (https://arxiv.org/pdf/1812.02353.pdf)라는 논문을 소개하고자 한다. Introduction Objective 아이템 추천으로 유저의 장기적인 만족도를 최대화할 수 있는 RL Agent 학습 Challenges Large, non-stationary state and action space: 추천시스템 문제를 MDP로 모델링하기 위해 유저의 취향을 state, 추천할 아이템을 action으로 정의한다. 유저의 취향은 매우 복잡하고 시간에 따라 변한다. 아이템의 개수는 무수히 많고 새로운 아이템이 계속 유입된다. Off-policy trainin.. 더보기