Branch Log · Open in interactive viewer →

13 Matrix Factorization by Optimization

GPU를 활용한 병렬화가 용이하다.


13.4 Matrix Factorization Formulation

어떤 행렬 R 을, 두 개의 행렬 곱( R′=U×V )으로 근사하는 기법을 Matrix Factorization이라고 한다.

E(U,V)=∑m,n(Rmn−Rmn′)2

matrix example

오차를 최소화할 때, 일반적으로 기계 학습의 regularization 항을 추가한다.

\argminU,VE(U,V)=∑m,n(Rmn−Rmn′)2+λ(∑m,pUmp2+∑p,nVpn2)

Linear Algebra로 표현하면 다음과 같다. (L2 norm)

\argminU,VE(U,V)=||R−R′||F2+λ(||U||F2+||V||F2)


13.4.1 Solve with Gradient Descent

경사 하강법을 사용하여 U와 V를 업데이트할 수 있다.

**Algorithm**
*for t = 1 to infinite* { *for all m and p*, Umpt+1=Umpt−λ(∂E(U,V)∂Ump)Ump=Utmp *for all p and n*, Vpnt+1=Vpnt−λ(∂E(U,V)∂Vpn)Vpn=Vtpn }

13.5 Matrix Factorization Variations

기본 형태는 다음과 같다.

ru,i≈uu•vi

다음은 학습 파라미터 bu,bi (bias)를 포함하는 variation이다.

예를 들어, 영화 점수를 사람별로 매긴 행렬이 있다면, 사람 A행 B행 C행마다 bias가 다르게 존재해야 한다.

ru,i≈μ+bu+bi+pu•qi ru,i≈μ+bu+bi+pu•qi

예를 들어 마지막 수식의 target function은 다음과 같다.

minb*,p*,q*∑(u,i)∈ℛ(ru,i−(μ+bu+bi+pu•qi))2+λ(bu2+bi2+||pu||2+||qi||2)

Notes: 미분 수식


13.5.1 Collective Matrix Factorization

다음은 주로 추천 도메인에서 사용하는 collective matrix factorization의 예시다.

matrix example 2

두 데이터에서, user factor X 를 공유하는 조건으로 손실 함수를 modeling한다.

L(X,Y,Z)=12||I1∘(A−XYT)||F2+α2∘||B−XZT||F2+β2(||X||F2+||Y||F2+||Z||F2)