28
Alterna(ng Least Squares Weight λRegulariza(on 이해 시도 최범균, [email protected]

ALS WS에 대한 이해 자료

Embed Size (px)

Citation preview

Page 1: ALS WS에 대한 이해 자료

Alterna(ng  Least  Squares    Weight  λ  Regulariza(on  이해 시도  

최범균,  [email protected]  

Page 2: ALS WS에 대한 이해 자료

주의: 나는 전문가가 아니며,  오류가 존재할 수 있습니다.  

2  

Page 3: ALS WS에 대한 이해 자료

학습 자료  

•  다음의 두 문서  – Large-­‐scale  Parallel  Collabora(ve  Filtering  for  the  NeFlix  Prize  •  hHp://goo.gl/YrUxB  

– Collabora(ve  Filtering  for  Implicit  Feedback  Datasets  •  hHp://goo.gl/caoyqY  

3  

Page 4: ALS WS에 대한 이해 자료

기본은 행렬 분해  

•  평가 행렬 R이 있을 때, – nu * nm 행렬: 사용자 수 nu, 아이템 수 nm임 –  rij는 사용자 i가 아이템 j에 대한 평점

•  R을 분해한 U, M 행렬 구함 – U는 nf * nu 행렬, M은 nf * nm 행렬

•  nf: 특징 개수 –  rij ≅ ui

T*mj •  ui: U의 i열 벡터, mj: M의 j열 벡터

– 기존에 평가 데이터가 없는 rij를 r'ij로 예측

4  

Page 5: ALS WS에 대한 이해 자료

그림으로  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

5   4   2   4   ?  

1   2   5   ?   4  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

R U M

4.9   3.9   1.9   3.8   2.1  

0.8   1.8   4.7   1.9   4.1  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

UTM

R' R'의 오류가 가장 작은 (U,M)을 구하는 것이 목적

-­‐   -­‐  

-­‐   -­‐  

-­‐   -­‐  

-­‐   -­‐  

-­‐   -­‐  

-­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐  

UT

M

5  

Page 6: ALS WS에 대한 이해 자료

알고리즘  

•  U와 M을 구하는 과정  –  1단계: M  행렬 초기화 (nf  *  nm 행렬)  •  각 아이템 평가 점수의 평균을 1행 값으로 사용  •  나머지 행은 작은 임의 숫자로 채움  

–  2단계:  M을 고정시키고 U 행렬 생성  (목적함수를 최소화하는 U 행렬 구함)  

–  3단계:  U를 고정시키고 M  행렬 생성 (목적함수를 최소화하는 M  행렬 구함)  

–  4단계: 종료 조건 충족할 때 까지 2와 3단계를 반복  •  예,  RMSE 향상이 1  bps 미만이면 중지 (bps:  0.0001)  

6  

Page 7: ALS WS에 대한 이해 자료

사용할 목적 함수  

f (U,M ) = rij −uiTmj( )

2+λ nui ui

2

i∑ + nmj

mj2

j∑

#

$%%

&

'((

(i, j )∈I∑

I: 사용자i가 평가한 아이템j  nui:  사용자i의 평점 개수,  nmj: 아이템j의 평점 개수  λ:  벌점 가중치  

오류 제곱의 합   평가 개수가 많고 특징 개수가 많을수록  가중치 벌점 증가 è 과적합 방지 목적  

7  

Page 8: ALS WS에 대한 이해 자료

M이 주어질 때 U를 구하는 법  

ui = Ai−1Vi,∀i

Ai =MIiMIi

T +λnuiE

Vi =MIiRT i, Ii( )

Ii:  사용자 i가 평가한 아이템 j의 집합  MIi:  Ii에 속한 j  컬럼들의 M  부분 행렬  R(i,Ii):  R의 i번째 행에서 평가 점수가 있는 Ii에 속한 j  컬럼들의 행 벡터  

8  

Page 9: ALS WS에 대한 이해 자료

유도식  12∂f∂uki

= 0,∀i,k

uiTmj − rij( )mkj

j∈Ii

∑ +λnuiuki = 0,∀i,k

mkjmjTui

j∈Ii

∑ +λnuiuki = mkjrijj∈Ii

∑ ,∀i,k

MIiMIi

T +λnuiE( )ui =MIiRT i, Ii( ),∀i

ui = Ai−1Vi,∀i

누가 설명 좀...  

9  

Page 10: ALS WS에 대한 이해 자료

U가 주어질 때 M을 구하는 법  

mj = Aj−1Vj,∀j

Aj =UIjUI j

T +λnmjE

Vj =UIjR I j, j( )

Ij:  아이템j를 평가한 사용자 i의 집합  UIj:  Ij에 속한 i  컬럼들의 U  부분 행렬  R(Ij,j):  R의 j번째 컬럼에서 평가 점수가 있는 Ij에 속한 i  컬럼들의 열 벡터  

10  

Page 11: ALS WS에 대한 이해 자료

결정할 값  

•  정확도/과적합  – λ 값: 평가 개수에 대한 벌점 가중치  – Feature  개수: 예측 정확도에 관여  

•  연산 시간/정확도  – 반복:  M,U를 점진적으로 구하는 반복회수  

11  

Page 12: ALS WS에 대한 이해 자료

예측 값 후처리  

•  후처리1:  – 예측 P의 평균이 기존 입력값 평균과 같지 않

으면, 모든 예측 값을 평균 차이만큼 보정  

•  후처리2:  – 두 개의 예측값을 구하고 두 값을 일정 비율로

반영  – 예, 예측 P0와 P1을 구하고,  RMSE(Px)를 최소화

하는 x를 구해서,  Px를 예측으로 사용  •  Px  =  (1-­‐x)P0  +  xP1  

12  

Page 13: ALS WS에 대한 이해 자료

M,U  도출 과정 과정 예  

•  R:  10  *  11 행렬 (10 사용자,  11 아이템)  •  Feature 개수:  3  •  λ:  0.01  

13  

Page 14: ALS WS에 대한 이해 자료

예시, 데이터  1   2   3   4   5   6   7   8   9   10   11  

1   2   -   -­‐   4   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

2   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

3   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   1   -­‐   4   -­‐  

4   3   3   4   -­‐   3   -­‐   -­‐   2   2   -­‐   -­‐  

5   5   5   5   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

6   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

7   4   -­‐   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

8   -­‐   -­‐   -­‐   -­‐   -­‐   4   -­‐   -­‐   -­‐   -­‐   4  

9   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

10   -­‐   -­‐   -­‐   3   -­‐   -­‐   -­‐   -­‐   4   5   -­‐  

평가 점수가 없는 경우 행렬에서 0을 사용  14  

Page 15: ALS WS에 대한 이해 자료

M 행렬 초기화  

3.5   4.0   4.33333   3.5   3.5   4.0   5.0   1.5   3.0   4.75   4.66666  

0.05908   0.36506   0.85858   0.28166   0.43807   0.48437   0.14459   0.05967   0.68708   0.05128   0.76919  

0.02826   0.91683   0.02493   0.21998   0.91913   0.51776   0.19809   0.72384   0.10324   0.49281   0.29010  

1행은 평가한 값들의 평균  

1  

2  

0  

0  

3  

5  

0  

4  

0  

0  

0  

(2  +  3  +  5  +  4)  /  4  =  3.5  

M은 3(Feature 개수)  *  11(Item  개수) 행렬  

15  

Page 16: ALS WS에 대한 이해 자료

1라운드,  초기 M에서 U1  도출  

0.66341   1.03871   0.88439   0.84802   1.2167   0.99720   1.14286   0.89562   0.98662   0.86231  

3.29432   0.17120   -­‐0.02988   -­‐0.18622   -­‐0.12343   0.02883   -­‐0.97586   -­‐0.59622   -­‐0.12357   1.43946  

0.39629   0.06456   -­‐0.42366   0.13694   -­‐0.17829   0.03950   1.03662   1.19990   0.57735   1.08375  

u1   u2  

16  

Page 17: ALS WS에 대한 이해 자료

U1의 u1  열벡터 도출 공식  

u1 = A1−1V1

A1 =MI1MI1

T +λnu1E

V1 =MI1RT 1, I1( )

I1  =  {1,4,5},  λ=0.01,  nu1=3  

Mi1  =    3.5   3.5   3.5  

0.05908   0.28166   0.43807  

0.02826   0.21998   0.91913  

R(1,  I1)  =  [2,  4,  4]    

A1=  [  [36.780,  2.726,  4.086]                      [2.726,  0.305,  0.466]                      [4.086,  0.466,  0.924]]  

 V1=[[35.000]                    [2.997]                    [4.613]]  

A1-­‐1=[[0.081,  -­‐0.774,  0.033]  

                   [-­‐0.774,  21.800,  -­‐7.580]                      [0.033,  -­‐7.580,    4.763]]  

u1=A1-­‐1V1  =[[0.663]                                                [3.294]                                                [0.397]]  

17  

Page 18: ALS WS에 대한 이해 자료

5회 반복으로 구해진 M,U  

3.69398   3.63956   4.24002   0.58407   2.90055   1.35310   4.55255   1.65115   1.69608   4.26497   4.24155  

-­‐0.05280   -­‐0.55535   0.84728   1.17631   0.36669   -­‐0.91911   0.23995   0.11801   0.90227   0.54173   -­‐0.36714  

-­‐0.56573   -­‐0.47156   0.17572   0.82723   1.05549   1.84661   0.50122   1.46317   1.15103   0.55385   0.01934  

0.71980 1.14974 0.96309 0.87816 1.25417 1.06552 1.10438 0.88598 1.00243 0.85348

2.33512 -­‐0.05156 0.23567 0.12294 -­‐0.34731 0.04600 -­‐0.82199 -­‐0.60182 0.58327 1.26160

1.00074 0.00876 -­‐0.40704 0.32348 -­‐0.42788 0.10816 0.28093 1.20912 0.58822 1.21846

M  

U  

18  

Page 19: ALS WS에 대한 이해 자료

결과 예측 행렬  1.97 0.85 5.21 4.00 4.00 0.68 4.34 2.93 4.48 4.89 2.22 4.25 4.21 4.83 0.62 3.33 1.62 5.23 1.91 1.91 4.88 4.90 3.78 3.57 4.21 0.50 2.45 0.34 4.24 1.02 1.38 4.01 3.99 3.05 2.98 3.88 0.93 2.93 1.67 4.19 1.94 1.97 3.99 3.69 4.89 4.96 4.95 -0.03 3.06 1.23 5.41 1.40 1.32 4.92 5.44 3.87 3.80 4.58 0.77 3.22 1.60 4.92 1.92 1.97 4.63 4.51 3.96 4.34 4.04 -0.09 3.20 2.77 4.97 2.14 1.46 4.42 4.99 2.62 2.99 3.46 0.81 3.63 3.99 4.50 3.16 2.35 4.12 4.00 3.34 3.05 4.85 1.76 3.74 1.91 5.00 2.59 2.90 4.92 4.05 2.40 1.83 4.90 2.99 4.22 2.25 4.80 3.34 3.99 5.00 3.18

2   -   -­‐   4   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   1   -­‐   4   -­‐  

3   3   4   -­‐   3   -­‐   -­‐   2   2   -­‐   -­‐  

5   5   5   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

4   -­‐   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

-­‐   -­‐   -­‐   -­‐   -­‐   4   -­‐   -­‐   -­‐   -­‐   4  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

-­‐   -­‐   -­‐   3   -­‐   -­‐   -­‐   -­‐   4   5   -­‐  

예측 행렬(UTM)  

원본 평가 행렬  

19  

Page 20: ALS WS에 대한 이해 자료

ALS의 장점  

•  대량 데이터 처리 •  사용자/아이템 개수 대비 데이터가 드물게

존재하는 경우에도 적용 가능  •  노이즈 데이터에 강함  

20  

Page 21: ALS WS에 대한 이해 자료

ALS  WR  with  Implicit  Feedback  

Page 22: ALS WS에 대한 이해 자료

Implicit  Feedback  

•  Implicit  Feedback  – 비디오 시청, 구매 내역, 조회 내역 등  – 직접적인 평가 점수가 아닌 간접 피드백  – 평가 값을 구할 수 없는 경우 사용  

•  주요 특징  – 부정 피드백 없음  – 노이즈가 존재 (단순 조회가 긍정 피드백인지

알 수 없음)  – 숫자는 긍정에 대한 신뢰 수준을 의미  

22  

Page 23: ALS WS에 대한 이해 자료

Implicit  Feedback  이용 모델  

•  다음을 값으로 갖는 행렬을 사용  – pij  =  rij  >  0  ?  1  :  0  (rij:  implicit  feedback)  – 즉, 피드백이 한 번이라도 있으면 1, 없으면 0  

•  긍정 정도를 구하기 위한 신뢰 수준 정의  – cij  =  1  +  αrij  (α:  상수)  

•  사용할 목적 함수(x:  사용자,  y:  아이템)  

23  

f (U,M ) = cij pij −uiTmj( )

2+λ ui

2+ mj

2

j∑

i∑#

$%%

&

'((

i, j∑

Page 24: ALS WS에 대한 이해 자료

U와 M을 구하는 과정  

•  앞의 과정과 동일  •  M이 주어질 때 U를 구하는 공식  

•  U가 주어질 때 M을 구하는 공식  

24  

ui = MCiMT +λI( )−1MCip(i)T

mj = UC jUT +λI( )−1UC j p( j)

Cjji = cij

Ciij = cij

p(i)  =  사용자 i  행 벡터  

p(j)  =  아이템 j  열 벡터  

Page 25: ALS WS에 대한 이해 자료

예제  

•  앞과 동일한 원본 평가 행렬 R  •  Feature:  3  •  반복:  5회  •  Lamda:  2  •  Alpha:  40  

25  

Page 26: ALS WS에 대한 이해 자료

결과 M,  U  

26  

2.536 1.604 2.138 1.316 2.658 0.522 1.878 1.028 1.215 2.54 1.151 1.2 1.709 1.565 0.699 0.228 -­‐1.063 -­‐0.883 0.352 1.351 1.187 -­‐0.354

0.722 -­‐0.06 0.529 1.571 0.425 0.317 -­‐1.472 -­‐1.244 -­‐0.459 -­‐0.571 2.069

0.297 0.11 0.249 0.396 0.224 0.198 0.15 0.272 0.313 0.117 -­‐0.095 -­‐0.215 0.091 0.199 0.329 -­‐0.285 0.251 -­‐0.724 -­‐0.01 0.691 0.397 0.376 -­‐0.497 -­‐0.389 0 -­‐0.226 0.423 0.2 -­‐0.243 0.213

M  

U  

Page 27: ALS WS에 대한 이해 자료

결과 예측 행렬  

27  

0.925   0.289   0.696   0.948   0.935   0.382   0.056   -­‐0.223   0.049   0.414   1.197  

0.294   -­‐0.213   0.099   0.586   0.404   0.405   -­‐0.157   -­‐0.43   -­‐0.329   -­‐0.189   0.981  

0.383   0.586   0.413   -­‐0.389   0.472   -­‐0.125   1.119   0.907   0.654   1.025   -­‐0.774  

0.964   0.999   0.953   0.051   0.934   -­‐0.127   1.141   0.961   0.929   1.465   -­‐0.418  

0.962   0.922   0.993   0.524   0.669   -­‐0.233   0.13   0.347   0.717   0.959   0.14  

-­‐0.002   -­‐0.155   -­‐0.141   -­‐0.293   0.366   0.334   0.956   0.385   -­‐0.04   0.295   -­‐0.138  

0.988   0.645   0.938   1.039   0.637   -­‐0.053   -­‐0.562   -­‐0.284   0.327   0.438   0.961  

-­‐0.034   -­‐0.813   -­‐0.445   0.167   0.643   0.975   0.855   -­‐0.224   -­‐0.74   -­‐0.282   0.984  

0.607   0.5   0.526   0.023   0.727   0.097   0.955   0.621   0.479   0.923   -­‐0.14  

1.278   1.355   1.443   0.971   0.558   -­‐0.605   -­‐0.704   0.098   0.977   0.995   0.33  

2   -   -­‐   4   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   1   -­‐   4   -­‐  

3   3   4   -­‐   3   -­‐   -­‐   2   2   -­‐   -­‐  

5   5   5   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

4   -­‐   4   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5  

-­‐   -­‐   -­‐   -­‐   -­‐   4   -­‐   -­‐   -­‐   -­‐   4  

-­‐   -­‐   -­‐   -­‐   -­‐   -­‐   5   -­‐   -­‐   5   -­‐  

-­‐   -­‐   -­‐   3   -­‐   -­‐   -­‐   -­‐   4   5   -­‐  

예측 행렬(UTM)    

원본 평가 행렬  

Page 28: ALS WS에 대한 이해 자료

참고자료  

•  Large-­‐scale  Parallel  Collabora(ve  Filtering  for  the  NeFlix  Prize  – hHp://goo.gl/YrUxB  

•  Collabora(ve  Filtering  for  Implicit  Feedback  Datasets  – hHp://goo.gl/caoyqY  

•  Simple  Matrix  Factoriza(on  for  Recommenda(on  in  Mahout  – hHp://goo.gl/lQHvpf  

28