Recommender system
추천 시스템(推薦system)은 정보 필터링 (IF) 기술의 일종으로, 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것이다. 추천 시스템에는 협업 필터링 기법을 주로 사용한다. 소셜 북마크 사이트에서 링크를 사람들에게 추천하고 무비렌즈 데이터 세트에서 영화를 추천하는 방법등이 이에 속한다.
Categories
- Content-based filtering (컨텐츠 기반 필터링)
- Collaborative filtering (협업 필터링)
- Collaborative filtering#Model-based - 딥러닝 방법론 있다.
Projects
Hierarchy
Recommender_system_-_hierarchy.png
Other Recommemder System
- Context-based Recommendation
- Context-aware Recommendaton System
- Location-based Recommendaton System
- Real-time or Time-Sensitive Recommendation System
- 사용자의 친구 또는 속한 커뮤니티의 선호도를 바탕으로 추천
- SNS 등의 뉴스피드 또는 SNS 네트워크 데이터 등 활용
- 특정 도메인 지식을 바탕으로 아이템의 Features를 활용한 추천
- Case-based Recommendation : 사용자의 니즈(현재 문제 등)와 해결책 중 가장 적합한 것을 골라서 추천
- Constraint-based Recommendation : 사용자에게 추천할 때, 정해진 규칙을 바탕으로 추천
Content-based filtering vs Collaborative filtering
- (추천시스템) 추천시스템 A to Z : 추천 알고리즘의 종류
- 7 Types of Hybrid Recommendation System | by Jeffery chiang | Analytics Vidhya | Medium
Content-based filtering
장점
- 첫번재 평가자에 대한 딜레마 없음 (Cold-start dilemma X)
- 다른 사용자의 도움 없이 적절한 추천 받음 (User liberty)
- 새로운 아이템에 대한 추천을 위해 해당 아이템을 rating할 필요가 없음
- Scarcity 영향 없음
- 사용자의 프로필 변경 및 업데이트를 모니터링하여 많은 사용자의 관심도나 관심도 변화 문제를 해결하는 데 실용적이다.
- 더 적은 데이터로 동작
단점
- 제한된 콘텐츠 분석
- Overspecialization (시스템은 사용자 프로필에 대해 높은 점수를 받은 항목만 추천할 수 있음. 사용자는 이미 평가된 항목과 유사한 항목으로 추천)
- 너무 다르거나 비슷한 아이템을 설명할 수 없음.
- 복잡한 관계를 해석할 수 없음
- 계산 비용이 많이 듦
- 동의어 또는 동음이의어 때문에 위기에 직면
- 일부 유형의 아이템 콘텐츠는 분석하기 쉽지 않음
- 사용자는 자신의 과거 경험과 유사한 항목만 받을 수 있음 (사용자를 놀라게 할 수 없음)
Collaborative filtering
장점
- 콘텐츠 정보가 필요로 하지 않음
- 사용자는 이전에 연락한 적이 없지만 관심이 있는 항목을 받을 수 있음(사용자를 놀라게 할 수 있음)
- 다른 사용자의 점수는 시스템에 변경 사항이 포함되어 있기 때문에, deterministic 결과로 사용하진 않음 (시간이 지남에 따라 향상된 Adaptive Quality)
단점
- Rating 데이터 필요
- Sparse 데이터로 추천할 수 없음
- 확장성 문제
- Cold-start dilemma (신규 사용자(커뮤니티) 및 신규 아이템 문제)
- 엄청나게 많은 아이템 세트와 적은 수의 사용자로 인해 성능이 저하됨
- 품질은 대량의 데이터 수집에 달려 있음
- 취향이 특이한 유저에게 추천하기 어렵다
- 선호도가 변하거나 포함된 사용자를 클러스터링하고 분류하는 것은 어려움
Deep learning based
추천 시스템에서의 딥러닝 모델 장점
- Non-Linear Transformation
- 복잡한 User-Item의 상호작용 패턴을 파악할 수 있음
- 기존의 Matrix Factorization 모델의 경우 선형 모델이므로, 표현력을 학습하는데 제약
- Input data의 특징을 효과적으로 학습
- Hand-Craft Feature Design을 줄일 수 있음 → Feature Engineering 비용 감소
- 이미지 및 텍스트와 같은 비정형 데이터를 효과적으로 다룰 수 있음
- Sequence 한 특성의 데이터(User의 행동, Item의 변경)에서도 효과적으로 작동 → 다음에 구매 가능한 Item 추천 가능
- Keras, Tensorflow, Pytorch와 같은 다양하고 편리한 Framework를 가지고 있음
추천 시스템에서의 딥러닝 모델 단점
- Interpretability
- 딥러닝 모델의 예측 결과를 해석하기 어려움 (Black-Box 모델)
- 현재, Atttention model을 통해, 해석 가능성을 열었음
- 딥러닝 모델을 학습하기 위해서는 많은 양의 데이터가 필요
- 이미지 및 텍스트 데이터를 수집하는 것보다, 추천 시스템에서의 Labeled 된 데이터를 수집하는 것이 용이
- 매우 많은 수의 Hyper-Parameter
- 머신러닝의 전반적인 한계점
- 단일 Hyper-Parameter를 사용할 수 있는 연구가 진행되고 있음
Models
딥러닝 관련:
- MF - Matrix Factorization
- GMF - Generalized Matrix Factorization
- MLP - Multilayer Perceptrons
- NeuMF - Neural Matrix Factorization
- FM - Factorization Machine
- NeuFM - Neural Factorization Machine
- WDL - Wide & Deep Learning
- DeepFM - Deep Factorization Machine
- xDeepFM - Extreme Deep Factorization Machine
- FGCNN - Feature Generation by using Convolutional Neural Network
- ONCF - Outer-based Product Neural Collaborative Filtering
- CNNDCF - Convolutional Neural Network based Deep Colloborative Filtering
- ConvMF - Convolutional Matrix Factorization
- AutoRec - AutoRec
- DeepRec - DeepRec
- CFN - Collaborative Filtering Network
- CDAE - Collaborative Denoising AutoEncoder
- CCAE - Collaborative Convolutional AutoEncoder
- SDAECF - Stacked Denoising AutoEncoder for Collaborative Filtering
- mDACF - marginalized Denoising AutoEncoder Collaborative Filtering
- GMF++ - Generalized Matrix Factorization ++
- MLP++ - Multilayer Perceptrons ++
- NeuMF++ - Neural Matrix Factorization ++
- Graph-based Recommendation
- NGCF
- NARM
- BERT4Rec
- Gprah Laplacian
- DGCNN (Graph classification)
- Link Prediction Based on Graph Neural Networks
See also
- Information filtering system (정보 필터링 시스템)
- Machine Learning
- Similarity (유사도)
Favorite site
- Recommender system - Wikipedia
- (추천시스템) 추천시스템 A to Z : 추천 알고리즘의 종류
- 7 Types of Hybrid Recommendation System | by Jeffery chiang | Analytics Vidhya | Medium
- 딥러닝 관련 추천 모델 - Survey(2019)
- [논문] (1707.07435) Deep Learning based Recommender System: A Survey and New Perspectives - 딥러닝을 적용한 추천 모델들을 전반적으로 소개하는 논문입니다.
- 멜론에서 음악 추천을 어떻게 할까? - 전재호 (카카오 추천팀)
- LINE Timeline의 새로운 도전 1편 – 추천 컨텐츠 탐색을 위한 Discover와 새로운 구독 모델 Follow - 이경복 (라인)
- 네이버 급상승검색어에 AI 기술 ‘RIYO’가 적용되어 검색어 차트가 사용자 선택에 따라 개인 별로 차별화됩니다 - 네이버 다이어리 블로그
- 브런치 추천의 힘에 대한 6가지 기술(記述) - 최규민 (카카오 추천팀)
- 딥러닝 추천 시스템 in production - 전무익 (당근마켓)
- 딥러닝 개인화 추천 - 전무익 (당근마켓)
- AiTEMS가 추천하는 ‘함께 볼만한 영화 추천 서비스’가 오픈됩니다. - 네이버 검색 블로그
- ‘함께 볼 만한’ 상품도 맞춤형으로, 스타일 토픽 기반 쇼핑 추천 (AiTEMS)을 소개합니다. - 네이버 검색 블로그
- 번개장터 추천 시스템 개발 및 도입후기 Part3 - 이명휘 (번개장터)
- 번개장터 추천 시스템 개발 및 도입후기 Part2 - 이명휘 (번개장터)
- 번개장터 추천 시스템 개발 및 도입후기 Part1 - 이명휘 (번개장터)
- [네이버가 연구하는 기술] AI기반 장소 추천 시스템 AiRSPACE(에어스페이스) - 네이버 검색 블로그
- CIKM2017에서 발표한 네이버의 자동 뉴스 추천 기술 - 정후중 (네이버 검색), 박근찬 (네이버 AiRS)
- 카카오I 추천 엔진의 진화 - 성인재 (카카오 추천팀)
- 쇼핑을 자주 하지 않는 이용자도, 신규 판매자도 만족스러운 쇼핑 플랫폼을 만드는 에이아이템즈(AiTEMS)의 기술 - 이정태 (네이버 Personal Shopper), 박병선 (네이버 커뮤니케이션그룹)
- 취향저격 잇템 찾아주는 딥러닝 기반 개인화 상품 추천 시스템 ‘에이아이템즈 (AiTEMS) - 이정태 (네이버 Personal Shopper), 박병선 (네이버 커뮤니케이션그룹)
- 내 손안의 AI 비서, 추천 알고리듬 - 전상혁, 김광섭 (카카오 추천팀)
- 카카오 뉴스 추천 AI 알고리듬 '루빅스'의 비밀 - 카카오 정책산업 연구 브런치
- 인공지능 기반 추천 시스템 AiRS를 소개합니다 - 네이버 다이어리 블로그
- 루빅스(RUBICS) – kakao의 실시간 추천 시스템 - 서상원 (카카오 추천팀)
Y.LAB 의 Recommender System/추천 시스템 Tutorials
- 'Recommender System/추천 시스템' 카테고리의 글 목록 :: Y.LAB
- (Recommender System) - 추천 시스템의 전반적인 내용 (1) :: Y.LAB
- (Recommender System) - 추천 시스템의 전반적인 내용 (2) :: Y.LAB
- (Recommender System) - 추천 시스템에 사용되는 알고리즘들 :: Y.LAB
- (Recommender System) - Spark로 연관 규칙(Association Rule) 구현하기 :: Y.LAB
- (Recommender System) - MF(Matrix Factorization) 모델과 ALS(Alternating Least Squares) :: Y.LAB
- (Recommender System) - Python으로 Matrix Factorization 구현하기 :: Y.LAB
- (Recommender System) - Autoencoder를 이용한 차원 축소 기법 :: Y.LAB
- (Recommender System) - 개인화 추천 시스템의 최신 동향 :: Y.LAB
- Learning to Rank와 nDCG :: Y.LAB
- Microsoft Research Learning to Rank 알고리즘 - (1) RankNet :: Y.LAB
- (Recommender System) - Factorization Machine (From Scratch with Python) :: Y.LAB
- (Recommender System) - 임베딩 벡터의 Nearest Neighbor를 찾는 과정 :: Y.LAB
- (Recommender System) - 추천시스템과 MAB (Multi-Armed Bandits) :: Y.LAB
- (Recommender System) - 결과 정렬에서의 Shuffle 알고리즘 :: Y.LAB
- (Recommender System) - GCN과 MultiSAGE 알고리즘 :: Y.LAB
- (Recommender System) - MovieLens 데이터셋으로 MultiSAGE의 Context Query 구현하기 - 1 :: Y.LAB
- (Recommender System) - MovieLens 데이터셋으로 MultiSAGE의 Context Query 구현하기 - 2 :: Y.LAB
- (Recommender System) - Sequential Recommendation (feat. BERT4REC) :: Y.LAB