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(RmnRmn)2

matrix example

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

\argminU,VE(U,V)=m,n(RmnRmn)2+λ(m,pUmp2+p,nVpn2)

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

\argminU,VE(U,V)=||RR||F2+λ(||U||F2+||V||F2)


13.4.1 Solve with Gradient Descent

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

**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,iuuvi

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

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

ru,iμ+bu+bi+puqi ru,iμ+bu+bi+puqi

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

minb*,p*,q*(u,i)(ru,i(μ+bu+bi+puqi))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(AXYT)||F2+α2||BXZT||F2+β2(||X||F2+||Y||F2+||Z||F2)