목록AI/추천시스템(RecSys) (9)
기록하는삶
https://github.com/RUCAIBox/RecBole GitHub - RUCAIBox/RecBole: A unified, comprehensive and efficient recommendation library A unified, comprehensive and efficient recommendation library - GitHub - RUCAIBox/RecBole: A unified, comprehensive and efficient recommendation library github.com RecBole은 파이토치/파이썬 기반으로 만들어진 라이브러리로 글을 쓰는 시점을 기준으로 78개의 추천 시스템 관련 알고리즘 모델이 구현돼 있다. 라이브러리가 요구하는 형식에 맞춰 데이터와 con..
1. ABSTRACT & INTRODUCTION - 본 눈문은 implicit feedback을 활용해 personalized ranking을 예측하는 데 있어, Bayesian anaysis에 기반을 둔 최대사후확률(maximum posterior estimator)을 이용한 generic optimization criterion인 BPR-OPT를 제안한다. - 또한 BPR-OPT를 보다 잘 활용할 수 있는, SGD 기법에 bootstrapping을 적용한 sampling 방법을 활용해 만든 learning method를 제안한다. - 당시 추천 모델에서 state-of-the-art에 해당하는 MF와 kNN 기법에 BPR-OPT를 적용해 그 성능을 입증하고 있는데, 13년이나 지난 2022년 시점에서..
1. ABSTRACT & INTRODUCTION CV, NLP, 음성 인식 등의 분야에 비해 DNN의 활용에 대한 연구가 상대적으로 덜 이루어진 추천 시스템 영역에서의 DNN적용 방안을 제시한 논문이다. 기존에는 딥러닝이 활용되더라도 보조적인 수단으로 사용되고 MF(Matrix Factorization) 방식이 중심이 되는 것이 일반적이었다. 본 논문은 이전 CF(Collaborative Filtering) 방법론들이 implicit feedback을 데이터로 사용하기 어려웠던 단점을 극복할 수 있는 DNN 기반의 NCF(Neural network-based Collaborative Filtering)를 제안한다. 본 논문이 주장하는 novelty는 아래의 세 가지다. 1. We present a neu..
딥러닝에 대한 연구가 발전함에 따라 추천 시스템에 딥러닝을 활용하는 것 역시 활발히 연구되고 있다. 이 글에서는 그 중 CTR 예측에 주로 활용되는 DeepFM, DIN, BST에 대해 간단히 정리해본다. 1) DeepFM(2017) 과거의 데이터를 기억하고 학습하는 Memorization과 이를 통해 새로운 혹은 적은 데이터를 가진 대상에 대해 아이템과 특성 조합을 만드는 Generalization을 각각 Wide 파트와 Deep 파트로 나누어 잘 수행할 수 있도록 설계했던 Wide&Deep과 그 구조를 유사하게 하되, wide component가 feature engineering(cross-product transformation)을 필요로 한다는 단점을 극복하고자 FM으로 대체한 모델이다. 따라서..
CF(Collaborative Filtering)은 유저와 아이템, 그리고 유저-아이템의 상호작용 정보(평점 등)를 활용해 Top-K 추천이나 선호도 예측 등을 하는 방법론이다. 이를 기반으로 파라미터의 학습을 필요로하지 않는 Memory-based CF에서 Model-based CF로 발전하며 그 성능이 개선되기도 하고, SVD가 적용된 MF(Matrix Factorization) 기법과 유저의 클릭과 같은 implicit feedback을 반영할 수 있는 ALS(Alternative Least Square) 등이 등장하기도 했다. 이러한 CF 기반 방법론들은 상황에 따라 준수한 성능을 보이기도 하지만, 유저-아이템의 상호작용 데이터를 꼭 필요로 하기 때문에 처음 서비스를 접하는 유저들에 대한 추천이 ..
KNN(K-Nearest Neighbor) 알고리즘은 Vector Space Model에서 내가 원하는 Query Vector와 가장 유사한 Vector를 찾는 알고리즘으로, 분류나 회귀 문제를 해결하기 위해 머신러닝에서 사용되는 기법 중 하나다. 추천 시스템을 구현하기 위한 기계학습 모델에서 상품 간 혹은 유저 간 근접 이웃(NN)을 구하기 위해 활용되기도 한다. 다만 이때 문제는, 데이터의 양이 많아질수록(유저 혹은 아이템의 수가 많아지는 경우) 연산량이 기하 급수적으로 늘어나 실제 서비스에서 활용하기 어렵다는 점이다. 이러한 문제를 해결하기 위한 접근이 ANN(Approximate Nearest Neighbor)으로, trade-off 관계인 정확도와 속도에서 정확도를 일부 포기하고 연산 속도 면에..
유사도(Similarity)는 두 개체 간의 유사성을 수량화한 것으로, 일반적으로 거리에 반비례하도록 그 측정 방법을 구성한다. 일반적으로 거리라고 하면 떠오르는 것이 두 점 사이의 거리의 표현 중 가장 대중적인 유클리디안 거리지만 그 외에도 개체의 속성에 따라 다양한 거리 측정법과 그에 기반한 유사도 측정법이 존재한다. 이 글에서는 그 중 일부를 정리해본다. 1) Mean Squared Difference Similarity 동일한 유저에 대한 아이템별 rating의 msd, 혹은 동일한 아이템에 대한 유저별 rating의 msd의 역수를 이용해 유사도를 표현하는 방법이다. 분모가 0이 되지 않도록 하기 위해 분모에 1을 더해주어 0과 1 사이의 실수로 표현 가능하고, 1에 가까울수록 유사하다고 볼 수..
연관 규칙 분석(Association Rule Analysis, Association Rule Mining)이란 주어진 거래(transaction) 데이터에 대해서 연속된 거래(혹은 클릭, 시청 등)들 사이의 (연관) 규칙을 찾는 것으로, 장바구니 분석 혹은 서열 분석이라고도 불린다. 컴퓨터를 구매한 고객이 그 다음 많이 사는 아이템이 무엇인지 찾거나, 드라마 A와 영화 B를 동시에 시청한 고객의 비율을 알아내는 것 등이 여기에 속한다. 연관 규칙은 X{antecedent} → Y{consequent}의 형태로 표현하게 되며, 이때 antecedent와 consequent는 모두 1개 이상의 item으로 이루어진, 서로소인 itemset이다. 수치에 기반하여 이러한 연관 규칙을 표현하기 위해서는 아래의 ..
과거 유저가 접할 수 있는 상품과 컨텐츠가 제한적이었던 TV 채널, 영화관, 백화점, 신문 등의 플랫폼 혹은 채널에 비해 웹과 모바일 환경에서는 비교할 수 없을 정도로 많은 상품이 존재하는 경우가 대부분이다. 이에 따라 유저가 직접 검색과 정보 비교를 통해 상품을 탐색하던 것과 달리, 수많은 상품 중 유저에게 필요하거나 유저가 좋아할 것이라 예상되는 상품을 선별해 보여주는 추천 시스템이 필요하게 되었다. 조회수가 얼마 되지 않더라도 영상이 추천되기도 하는 유튜브 알고리즘이나, 알만한 친구를 추천해주는 SNS의 친구 추천 서비스, 쇼핑몰에서의 상품 추천, 넷플릭스와 같은 OTT 서비스의 작품 추천 등이 대표적인 예인데, 최근에는 여러 사업 부문에서 인기도 하위 80%에 해당하는 상품 혹은 작품의 소비량이 ..