일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 미국석사
- nlp
- RecSys
- BANDiT
- transformer
- 언어모델
- docker
- 플랫폼
- Collaborative Filtering Bandit
- 메타버스
- chatGPT
- MSCS
- 클라우드
- aws자격증
- 머신러닝 파이프라인
- MAB
- 자연어처리
- BERT이해
- 추천시스템
- 머신러닝
- AWS
- COFIBA
- HTTP
- 네트워크
- MLOps
- TFX
- 클라우드자격증
- 중국플랫폼
- llm
- BERT
- Today
- Total
Julie의 Tech 블로그
추천 시스템 - Matrix Factorization 본문
논문 리뷰 - Matrix Factorization Techniques for Recommender System
추천 시스템은 크게 CF(Collaborative Filtering), CBF(Content-based Filtering)으로 나뉜다.
CBF는 유저와 아이템에 대해 각각 Profile DB를 구성한다.
아이템일 경우 예를 들어 영화라고 한다면, 출연하는 배우, 장르, 제작년도 등에 대해 담을 수 있다.
오늘 볼 알고리즘은 CF모델에 해당하는데, CF는 기존의 유저-아이템간의 관계를 파악하여 새로운 유저-아이템간 추천을 해주게 된다.
CBF와는 달리 명시적(explicit)인 데이터를 이용하며, 주로 평가(rating)와 같은 과거 경험 데이터를 사용한다.
이 때문에 Cold start problem이 발생하는데, 이 때는 CBF모델이 성능이 더 뛰어나다. 평소에는 CF가 더 좋은 것으로 알려져있다.
CF중에서 가장 유명하게 알려져있는 알고리즘은 Matrix Factorization인데, 이는 Latent Factor Model로 분류된다.
* 다른 대표적인 알고리즘은 Neighborhood Method라고 한다.
Latent Factor Model은 유저와 아이템간의 관계를 각각 Latent Vector로 학습하게 된다.
가장 기본적인 Matrix Factorization은 아이템과 유저를 각각 차원 f의 잠재 공간(Latent Space)로 표현한다.
아이템-유저 간의 상호작용은 이 두 벡터간 내적(Inner Product) 값으로 구하게 된다. 사용자의 아이템에 대한 관심도를 표현한다.
주로 아이템과 유저간 상호작용에 대한 데이터가 희소하기 때문에, 정규화된 방법을 취하여 과적합을 방지한다.
왼쪽 항은 Squared Error이며 오른쪽 항은 정규화 범위를 제어하는 람다가 포함되어있다.
즉 모델은 정규화 제곱 오차(Regularized Squared Error)를 줄이는 방향으로 학습된다.
주어진 식을 최소화하는 방법은 두 기술이 있다. 우선 SGD(Stochastic Gradient Descent)와 ALS(Alternating Least Squares)이다.
SGD 알고리즘은 아래와 같다.
우선 Rui를 예측하고 , 이에 따른 예측 오차를 계산한다.
목적함수의 Gradient를 계산하여 음의 방향으로 Qi와 Pu를 업데이트하는 것이다.
하지만 SGD는 연산 값이 많고 오랜 시간이 걸릴 수 있다는 단점이 있다. 이로 인해 ALS가 해법으로 떠올랐다.
ALS의 경우에는 Object함수에서 Qi와 Pu 두 변수를 모두 모르기 때문에, 하나의 값을 고정해두면 이차 방정식으로 풀어볼 수 있다.
각각 번갈아가면서 고정되고 점점 Objective function을 최소화하는 방향으로 연산하는 것이다.
ALS의 기술은 병렬 처리에서 효과를 발휘한다. 각각 Pu와 Qi를 고정하고 최소화하는 방식으로 답안을 찾아나갈 수 있기 때문이다.
하지만 앞서 살펴본 목적 함수는 Explicit한 데이터가 있다고 가정을 두고 있다.
하지만 이커머스와 같이 구매 이력, 클릭 이력만 있는 경우 뚜렷한 선호를 파악할 수 있는 데이터가 없다.
이에 따라 Implicit한 데이터에서도 MF를 사용할 수 있는 새로운 Objective function에 대해서도 연구가 되었다.
이러한 상황에서는 유저가 아이템을 조회하였는지, 조회할 때 얼마정도 머물렀는지 등의 선호도를 표현할 수 있는 Pui를 도입하였다.
하지만 이러한 액션이 없었다고 해서 유저가 선호하지 않았다고 판단하기가 어렵다.
왜냐하면 존재를 몰랐을 수도 있고, 시스템 오류로 새로고침하다 여러번 클릭이 되었을 수도 있기 때문이다.
따라서 이 선호도 정도를 표현하는 Pui에 대해 confidence level을 주게 된다 (Cui).
논문에서는 위 Objective Function에 ALS를 적용하면 좋은 성과를 낼 수 있다고 말한다.
참고자료
https://yamalab.tistory.com/89
[Recommender System] - MF(Matrix Factorization) 모델과 ALS(Alternating Least Squares)
추천 알고리즘 중에 가장 널리 사용되는 알고리즘은 단연 CF이다. 그중에서도 단일 알고리즘으로써 가장 성능이 높은 것은 단연 Model Based CF인 Matrix Factorization 계열의 알고리즘이다. (CF 기반 모델링에..
yamalab.tistory.com
https://www.kaggle.com/shawamar/product-recommendation-system-for-e-commerce
Product Recommendation System for e-commerce
Explore and run machine learning code with Kaggle Notebooks | Using data from multiple data sources
www.kaggle.com
'Tech > RecSys' 카테고리의 다른 글
MAB기반 추천시스템 : Collaborative Filtering Bandits - (2) (0) | 2021.07.04 |
---|---|
MAB기반 추천시스템 : Collaborative Filtering Bandits - (1) (0) | 2021.07.04 |
MAB 문제란? - Multi-Armed Bandit (2) (0) | 2021.06.18 |
MAB - 넷플릭스 artwork personalization 사례 (0) | 2021.06.03 |
[논문리뷰] Neural Collaborative Filtering (1) (0) | 2021.05.14 |