추천시스템을 개발할 때 가장 중요한 부분은 무엇일까? 다양한 의견이 있겠지만,
추천의 기반이 되는 알고리즘, 추천모델의 선택은 신중하게 선택해야 하는 측면임은 분명하다.
활용할 데이터의 종류, 크기, 양이나 추구하는 추천 결과의 방식 등을 충분히 고려해 선택해야 한다.
내가 추천시스템을 개발할 때 이용한 알고리즘은 GNN 기반의 모델로,
유저와 상품의 상호작용에 집중하기 위해 선택한 딥러닝 모델에 커스터마이징을 추가한 방식이었다.
이에 관련해서는 나중에 더 자세히 다뤄볼 예정이다.
오늘은 협업필터링과 컨텐츠(콘텐츠)기반필터링에 대해 간단히 정리해보았다.
Table of Content
1. 협업필터링 (CF)
- 메모리 기반의 접근 방식
- 모델 기반의 접근 방식
- 협업필터링의 한계
2. 컨텐츠기반필터링 (CB)
- 장점
- 단점
- 활용 방식
3. 하이브리드필터링
1. 협업필터링 (CF, Collaborative Filtering)
어떤 명시적(Explicit) 프로필을 만들지 않고
이전 구매 기록이나 제품 평가 기록 등 과거 사용자 행동에만 의존해서 시스템을 구성한다.
이 방식은 유저와 아이템 간의 상관 관계를 찾아내는 것이 주 목적이라고 할 수 있다.
협업필터링에는 두가지 접근방법이 있다.
1.1 메모리 기반의 접근 방식
- 가장 전통적인 접근 방식. 단순하고 직관적
- 유저 간, 아이템 간 유사도를 메모리에 저장해두고 추천 시에 사용한다.
- 특정 유저에 대하여 추천이 필요할 때 해당 유저와 유사한 k 명의 유저가 소비한 아이템들을 추천하거나
- 혹은 특정 아이템에 대한 Rating 예측이 필요할 때 해당 아이템과 유사한 k 개의 아이템의 Rating을 기반으로 추정
단점
- 데이터가 축적 X or Sparse 한 경우 성능이 낮음
- 확장 가능성이 낮음 ( ∵ 데이터가 너무 많아지면, 속도가 저하됨)
1.2 모델 기반의 접근 방식
Latent Factor Mdoel
- 사용자와 아이템을 잠재적인 차원들을 나타낼 수 있다고 본다.
여기서의 차원은 축과 같은 의미로 사용될 수 있다. - 아이템 잠재벡터와 유저 잠재벡터 간 inner product(내적)로 아이템에 대한 유저의 선호 모델링
- Matrix Factorization은 Latent Factor Model을 구현하는 방법 중 하나. 간단하지만 강력한 추천
Classification/Regression(분류/회귀) 방식
- Classification/Regression 방식은 콘텐츠 기반 추천 방식과 쉽게 융합이 가능
- feature X가 주어졌을 때, label y를 예측하는 구조이기 때문에, 피드백 y
를 예측하는 상황에서, X에 콘텐츠 관련 정보를 feature로 만들어서 추가하면, 피드백 데이터뿐만 아니라 콘텐츠 데이터를 활용한 추천이 가능
딥러닝 등 모델응 융합하는 방식
- 다양한 모델이 등장하면서 모델을 하나로 구분하기 어려울 때도 있다.
- 각 모델들의 특징을 모두 가지고 있는 Factorization Machine 계열 모델
- GNN 등 딥러닝을 활용한 Neural Collaborative Filtering 등
- 레이어 설계가 자유로운 딥러닝의 특성으로, 다양한 정보나 모델을 결합한 하이브리드 추천 방식의 모델도 많이 제안되었다.
1.3 협업필터링의 한계
콜드스타트 (Cold Start) 문제
- 협업필터링을 사용하기 위해서는 기존 데이터가 필수적
- 사용자 기반 추천방식으로는 아무런 행동이 키록되지 않은 신규 사용자에게는 추천을 할 수가 없다.
- 아이템 기반 추천 방식도 새로운 아이템이 출시되더라도 이를 추천할 정보가 쌓이기 전가지는 추천이 어렵다.
- 콜드스타트는 새로 시작할 때의 곤란함
- → 시스템이 아직 충분한 정보를 모으지 못한 사용자에 대해 추론을 이끌어 낼 수 없는 문제
계산 효율 저하
- 협업필터링은 계산량이 비교적 많은 알고리즘이기 때문에
- 사용자가 많아질수록 계산이 오래걸린다. 며칠까지 걸리는 경우도 종종 발생
- 사용자가 일정 수준 이상이어야 정확한 결과를 낼 수 있으면서도, 그럴수록 시간이 오래 걸리게 되는 딜레마
롱테일 (Long Tail)
- 롱테일은 파레토 법칙(전체 결과의 80%가 전체 원인의 20%에서 일어나는 현상)을 그래프로 나타내었을 때 꼬리처럼 긴 부분을 형성하는 80%의 부분을 일컫는 말
- 이 현상을 협업필터링에 적용하면 사용자들이 관심을 많이 보이는 소수의 콘텐츠가 전체 추천 콘텐츠로 보이는 비율이 높아지는 ‘비대칭적 쏠림 현상’ 발생한다.
- 아이템이나 콘텐츠의 수가 많아도 사용자들은 소수의 인기있는 항목에만 관심을 가진다.
2. 컨텐츠 기반 필터링 (CB, Content-based Filtering)
사용자가 특정 아이템을 선호하는 경우, 해당 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천하는 방식이다.
아이템에 대한 정보만 있으면 추천이 가능하기므로 기존 이력이 없는 경우에도 새로운 아이템에 대한 추천이 바로 가능하다는 장점이 있다.
그러나 소비이력이 충분히 쌓인 아이템에 대해서는 협업 필터링에 비해 추천 성능이 떨어진다는 인식이 보편적이라고 한다.
컨텐츠 기반 필터링은 추천 대상 아이템이 빠르게 바뀌는 상황에서 사용되며,
혹은 소비 이력이 적은 아이템에 대한 추천을 하거나 협업 필터링을 보완하는 용도로 많이 활용된다.
예시) 영화, 웹툰 등
예시) 판도라 음악 추천시스템, 넷플릭스 등
- 신곡이 출시되면 음악을 분석하여 장르, 비트, 음색 등 400여 항목 체크 (features extraction)
- 유저로부터 좋아요를 받은 음악의 특색과 해당 유저의 프로파일 준비 (profile learner)
- 음악의 특징과 사용자 프로필을 바탕으로 선호하는 음악 추천 (filtering component)
2.1 장점
- 다른 유저의 데이터가 필요하지 않다.
- 추천할 수 있는 아이템 범위 넓다. 새로운 아이템이나 인기없는 아이템도 추천 가능
- 추천 이유를 제시할 수 있다.
- 아이템의 features로 컨텐츠 분석하는 것이 가능하기 대문에 특정 feature가 추천의 이유가 되었다고 설명 가능하다.
2.2 단점
- 적절한 feature를 찾기 어렵다.
- 새로운 유저를 위한 추천 어렵다. 유저의 데이터가 매우 부족한 경우 추천시스템 적용 어려움
- 선호하는 특성을 가진 항목을 반복 추천한다.
- 즉, 추천시스템이 overspecialization(과잉전문화, 과적합)되는 경향.
- 유저의 다양한 취향을 반영하기 어렵다.
2.3 활용 방식
원 핫 인코딩(One-hot encoding)
- 간단한 카테고리나 범주형 데이터일 때 활용이 가능하다.
- 그러나 데이터가 복잡하거나 범주가 넓어질 때에는 한계점이 있다.
- 데이터가 복잡하거나 범주 데이터가 커질 때는 벡터의 크기를 고정하는 임베딩(Embedding) 방법을 사용
Word2Vec (+ TF-IDF), CNN, RNN, Transformer(BERT, GPT) 등
- 텍스트 데이터 활용 모델
CNN, ConvNeXt, Vision Transformer (ViT), CLIP, YOLO, Faster R-CNN, Mask R-CNN, AutoEncoder, GAN, 등 다양
- 이미지 데이터 활용 모델
3. 하이브리드 필터링 (Hybrid Filtering)
- 협업필터링과 컨텐츠기반필터링의 단점의 상호 보완하기 위한 방식이다.
- 두 가지 이상의 추천 알고리즘을 조합하는 방식
- 기존 알고리즘의 단점을 보완하면서 장점은 활용하여 효과적인 알고리즘을 생성한다.
관련글
추천 모델 성능 평가
2024.09.02 - [공공연히 개발하기 🧑💻/Machine Learning] - [추천시스템] 추천시스템 성능 평가 - 평가 지표 (mAP@K, nDCG 총정리)
[추천시스템] 추천시스템 성능 평가 - 평가 지표 (mAP@K, nDCG 총정리)
추천시스템, 추천 모델의 다양한 성능 평가 방법 중 mAP와 nDCG 평가 지표에 대해 알아보자.1. MAP@K- Precision, Recall- Cutoff (@K)- Average Precision (AP@K)- Mean Average Precision (MAP@K)2. nDCG- Relevance score, 관련성 점
imlookingformyjob.tistory.com
그래프 이론의 기초
2024.09.05 - [공공연히 개발하기 🧑💻/Machine Learning] - [추천시스템] 그래프와 추천시스템 : 1. 그래프 이론의 기초
References:
https://tech.kakao.com/posts/463
카카오 AI추천 : 협업 필터링 모델 선택 시의 기준에 대하여 - tech.kakao.com
안녕하세요. 카카오 추천팀의 hee.yoon입니다. 여기에서는 협업 필터링(Col...
tech.kakao.com
https://tech.kakao.com/posts/486
카카오 AI추천 : 카카오의 콘텐츠 기반 필터링 (Content-based Filtering in Kakao) - tech.kakao.com
카카오 서비스 사용자들의 아이템(콘텐츠 또는 상품) 소비 패턴을 살펴보면, 기존에...
tech.kakao.com