-
모델기반 협엽필터링카테고리 없음 2022. 5. 10. 12:23
모델기반 협업필터링
- 머신러닝을 가장 잘 활용한 추천알고리즘의 일종
- 주어진 데이터를 활용하여 모델 학습
- 학습과정에서 모델이 데이터를 배워서 데이터 정보를 압축한다
- 항목간 유사성에서 벗어나, 데이터의 패턴을 학습
- 데이터 크기 또는 데이터의 특징을 동적으로 활용 가능하다
- 데이터의 잠재적 특성(선호하는 취향)을 파악하는 모델(Latent Factor Model)
모델기반 협업필터링 장점1
- 추천모델(알고리즘)의 크기 - 수많은 데이터로 구성된 행렬보다 압축된 형태로 저장
- 추천모델(알고리즘)의 학습과 예측 속도 - 데이터 전처리와 학습과정으로 미리 모델 준비->준비된 모델로 예측
- 추천모델(알고리즘)의 과적합 방지 - 데이터를 다양하게 학습할 수 있으며, 새로운 추천을 할 가능성이 있다
모델기반 협업필터링 장점2
- Sparse data
- 유저-아이템 간 데이터 중 사용 가능한 데이터는 전체 데이터 중 비율이 작다
- 유저-아이템 간 데이터에서 표시되지 않은 항목은 새로운 추천을 하기 어렵다(Cold-start)
- Limited Coverage
- 공통의 유저 또는 아이템이 선택된 데이터를 확보하기 어렵다
- 이웃기반 협업필터링의 특성 중 '이웃'의 효과를 보기 어렵다
Rule-based 협업필터링 feat. Association Rule
상호 연관관계
- 데이터 속에서 상호 연관관계를 찾을 수 있다
- 구매목록: {우유, 샌드위치}, {아메리카노, 초콜렛}
- 영화 시청목록: {마이너리티 리포트, 미션 임파서블}
모델기반 협업필터링 feat. Association Rule
- 데이터의 모델
- 데이터의 관계, 접근과 흐름 파악을 위한 추상화된 모형
- 데이터 구조 결정
- 데이터의 여러 특징을 파악해서 모형화 ->모델링
- 데이터 간의 연관 법칙을 찾는 data mining 기법 중 하나
- 기존 데이터를 기반으로 Association Ruls(연관 규칙)을 만든다
Association Rule Mining
1. 정의
- Minimum Support와 Minimum Confidence 값은 넘는 Rule 찾는 과정
- 데이터에서 흥미로운 관계를 찾는 Rule-based Machine Learning 기법 중 하나
- 특정 measure를 통해 interestingness를 평가하여 Strong Rules를 찾는 과정
2. Association Rule의 Support(지지도)
- 데이터 관계 설정을 위해 아이템이 동시에 발생할 확률
- 전체 데이터 중 규칙(A, B)를 포함하는 데이터 비율
3. Association Rule의 Confidence(신뢰도)
- 특정 아이템 A가 선택된 상태에서 다른 아이템 B를 선택할 확률
- (A, B)의 관계를 가정하고, A를 선택한 사람이 B를 선택한 비율
4. Association Rule의 Lift(향상도)
- (A, B)의 관계를 직접적으로 나타내는 measurement
- 1보다 크면, 이어서 B를 선택할 확률이 높고, 1보다 작다면 확률이 높지않다
Association Rule Mining-Support
- Support
- Support는 0과 1 사이 값이다
- Support가 1에 가까울수록 A와 B 관계가 중요하다는 것을 의미한다
- 0에 가까운 연관관계를 먼저 제거한다->자주 발생하지 않다는 것을 의미한다
- support(A->B)와 support(B->A)의 차이점 파악이 불가능하다
Association Rule Mining-Confidence
- Confidence
- Support와 마찬가지로 Confidence 역시 0과 1 사이 값이다
- A를 선택했을 때, B를 선택할 확률이다
- 1에 가까울 수록 A는 B에 많은 영향을 받는다->minimum support 중 가장 큰 confidence를 선택한다
- support(A->B)와 support(B->A)와 다르게 A와 B 사이의 관계 파악이 가능하다
Association Rule Mining-Lift
- Lift
- 0과 1사이의 확률값이 아닌 A와 B사이의 관계를 파악하는 용도로 사용된다
- lift(A->B) < 1: 상호대체->A와 B는 반비례
- lift(A->B) > 1: 상호보완->A와 B는 정비례
- lift(A->B) = 1: 독립->A와 B는 서로에게 영향을 끼치지 않는다
Latent Factor Model
- 사용자/아이템 특성을 벡터로 간략화(요약)하는 모델링
- 사용자/아이템 특성 간 복잡한 관계를 학습한다
- 사용자/아이템 행렬에서 사용자와 아이템을 factor로 나타내는 방법
- 사용자와 아이템이 같은 vector공간에 표현된다
- 사용자와 아이템을 모르는 차원(dimension)에 표현하고, 몇 개의 차원인지 모른다
- 같은 vector 공간에서 사용자와 아이템이 가까우면 유사, 멀리 떨어져 있으면 유사하지 않다
Singular Value Decomposition
- U는 고유값 분해로 얻은 m x m 직교행렬
U의 열벡터는 A의 left singular vector
- V는 고유값 분해로 얻은 n x n 직교행렬
V의 열벡터는 A의 right singular vector
- ∑는 m x n 대각행렬
- 고유값분해해서 나온 eigenvalue의 제곱근이 대각원소(대각원소=A의 특이값)
Singular Value Decomposition
- 차원축소기법(Dimensionality Reduction) 중 하나
- 사용자와 아이템간 데이터를 행렬 R로 나타낸다
- 행렬 U는 사용자와 latent factor, V는 아이템과 latent factor
- 행렬 U와 V의 모든 열벡터는 특이벡터(singular vector), 모든 특이벡터는 서로 직교한다
- 행렬 ∑의 대각성분은 M의 특이값
- 사용자와 아이템의 관계를 2차원 직교좌표계로 표현한다
- 사용자와 아이템의 고유값 계산 -> 고유값으로 기존 평점 데이터를 다시 계산한다
- 데이터 차원 축소 - 노이즈 제거, Sparse matrix 형태로 큰 데이터 축소한다
- 행렬 U는 user와 latent factor간의 관계
- 행렬 V는 item과 latent factor간의 관계
- 행렬 ∑는 대각행렬로, latent factor의 중요도
- Latent factor는 user와 item이 공통으로 갖는 특징
- 단, latent factor의 뜻을 이해하기 어렵기 때문에 추천에 대한 구체적인 설명이 어렵다
Matrix Factorization
- Latent Factor Model을 구현하는 방법
- Rating Matrix를 분해하는 과정
- |U| x |I|: user-item rating matrix(rank k < n)
- P -> |U| x k: matrix of user factors
- Q -> |I| x k: matrix of item factors
- 분해한 행렬 X와 Y를 곱하여 평점을 예측한다
- 임의의 차원 수 f는 직접 정한다
- R(원래 rating matrix)과 R'(예측 matrix)이 서로 유사하도록 학습하는 과정이다(관측된 data만 사용한다)
More on Matrix Factorization
- Matrix Completion 문제
- Other SVD
- Loss Function
- Optimization
Matrix Factorization
- R(원래 rating matrix)과 R'(예측 matrix)이 서로 유사하도록 학습하는 과정이다(관측된 data만 사용한다)
- (true rating-predicted rating)으로 근사값을 추론하는 문제이다
- predicted rating을 이용한 matrix completion 문제이다
- (Stochastic) Gradient Descent, Alternating Least Square 등 사용한다 (Loss function)최적화를 위해 사용한다
- 정보를 추가하여 모델링 할 수 있다 (Explicit feedback를 Matrix Factorization 녹여낸다)
Matrix Factorization - Objective Function
Matrix Factorization - Optimization
- Stochastic Gradient Descent
- 학습 데이터의 모든 rating을 다 훑는다
- Error term
실제 평점(true rating)과 예측 평점(predicted rating)의 차이를 error항으로 정의
- 현재에서 gradient 반대방향으로 xu, yi를 update한다
- 구현이 쉽고, 계산이 빠르다
- Alternating Least Squares
- 일반적으로 xu와 yi를 둘 다 알 수 없는 경우가 많이 존재한다
- 그렇다면 loss function이 convex하지 않다(Convex하다 = 최적화를 좀 더 빠르고 정확하게 찾을 수 있다)
- xu와 yi 둘 중 하나를 고정하고 식을 quadratic식으로 최적화 문제를 풀 수 있다
- xu와 yi를 번갈아 고정시키면서, least-square(최소제곱)문제를 풀게 된다
- 병렬처리에 사용할 수 있다 - xu와 yi를 독립적으로 계산하기 때문에 병렬화하는데 장점이 있다
- Implicit feedback 처리할 때 유리하다 - Explication data에 비해 dense하기 때문에 연산량이 많아진다
More on Matrix Factorization
- Adding Bias
- User u와 Item i의 상호관계 파악한다(기존방법)
- User u와 Item i의 개별 특성을 함께 표현하기 위해 bias term 추가한다
- Additional Input Sources
- Behavior Information 등 추가 정보를 활용한 모델링을 할 수 있다
- Temporal Dynamics
- 데이터를 시간의 변화에 따라 동적(dynamic)으로 반영하는 모델링한다
- t는 시간의 변화를 나타낸다
- Inputs with Varying Confidence Levels
- 데이터가 동일한 가중치 또는 신뢰도가 아닌 상황을 모델링
- 대규모 광고에 영향을 받은 item이 자주 선택되는 경우
- Implicit feedback 데이터에서 user가 실제로 선호하는지 판단하기 어려운 경우
Additional Information for Latent Factor Model
- 실제 상황에서는 implicit feedback 데이터를 활용해야 하는 경우가 더 많다
- Implicit feedback을 활용하는 latent factor model과 그에 대한 학습 방법을 제시한다
Implicit과 Explicit Feedback이란
추천시스템, data 종류를 살펴보자
Explicit Feedback
- Item i에 대한 User u의 직접적인 생각, 취향, 선호도를 나타낸다
- 대표적인 예시 - 영화, 드라마등 평점, 상품 구매 후 상품 구매 후기, 평점
Implicit Feedback
- 플랫폼에서 얻을 수 있는 데이터
- User u의 선호도, 취향을 정확히 파악할 수 없으나, 그럴듯한 추론을 한다
- 데이터 자체의 품질은 좋지 않지만, 데이터를 얻을 수 있는 방법이 다양하다 - 사용자 로그 분석, 검색 기록, 머무르는 시간, 실제 구매 여부, 장바구니 등
Explicit vs. Implicit Feedback