Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

ALS WS에 대한 이해 자료

  • Inicia sesión para ver los comentarios

ALS WS에 대한 이해 자료

  1. 1. Alterna(ng Least Squares Weight λ Regulariza(on 이해 시도 최범균, madvirus@madvirus.net
  2. 2. 주의: 나는 전문가가 아니며, 오류가 존재할 수 있습니다. 2
  3. 3. 학습 자료 • 다음의 두 문서 – 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
  4. 4. 기본은 행렬 분해 • 평가 행렬 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
  5. 5. 그림으로 R U M -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ 5 4 2 4 ? 1 2 5 ? 4 -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ -­‐ 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
  6. 6. 알고리즘 • 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
  7. 7. 사용할 목적 함수 Tmj ( )2 Σ f (U,M) = rij − ui Σ + nmj +λ nui ui 2 i mj 2 Σ j # & (( ' %%$ (i, j )∈I 오류 제곱의 합 I: 사용자i가 평가한 아이템j nui: 사용자i의 평점 개수, nmj: 아이템j의 평점 개수 λ: 벌점 가중치 평가 개수가 많고 특징 개수가 많을수록 가중치 벌점 증가 è 과적합 방지 목적 7
  8. 8. M이 주어질 때 U를 구하는 법 −1Vi,∀i ui = Ai Ai = MIi T +λnui MIi E Vi = MIi RT i, Ii ( ) Ii: 사용자 i가 평가한 아이템 j의 집합 MIi: Ii에 속한 j 컬럼들의 M 부분 행렬 R(i,Ii): R의 i번째 행에서 평가 점수가 있는 Ii 에 속한 j 컬럼들의 행 벡터 8
  9. 9. 유도식 1 2 ∂f ∂uki = 0,∀i, k Tmj − rij ( )mkj Σ u+λni ui j∈Ii uki = 0,∀i, k Σ mmTu+λnkjj i ui j∈Ii Σ ,∀i, k uki = mkjrij j∈Ii ( MMT +λnE)u= MIi Ii ui i Ii RT i, Ii ( ),∀i −1Vi,∀i ui = Ai 누가 설명 좀... 9
  10. 10. U가 주어질 때 M을 구하는 법 −1Vj,∀j mj = Aj Aj =UI j T +λnmj UI j E Vj =UI j R(I j, j) Ij: 아이템j를 평가한 사용자 i의 집합 UIj: Ij에 속한 i 컬럼들의 U 부분 행렬 R(Ij,j): R의 j번째 컬럼에서 평가 점수가 있는 Ij에 속한 i 컬럼들의 열 벡터 10
  11. 11. 결정할 값 • 정확도/과적합 – λ 값: 평가 개수에 대한 벌점 가중치 – Feature 개수: 예측 정확도에 관여 • 연산 시간/정확도 – 반복: M,U를 점진적으로 구하는 반복회수 11
  12. 12. 예측 값 후처리 • 후처리1: – 예측 P의 평균이 기존 입력값 평균과 같지 않 으면, 모든 예측 값을 평균 차이만큼 보정 • 후처리2: – 두 개의 예측값을 구하고 두 값을 일정 비율로 반영 – 예, 예측 P0와 P1을 구하고, RMSE(Px)를 최소화 하는 x를 구해서, Px를 예측으로 사용 • Px = (1-­‐x)P0 + xP1 12
  13. 13. M,U 도출 과정 과정 예 • R: 10 * 11 행렬 (10 사용자, 11 아이템) • Feature 개수: 3 • λ: 0.01 13
  14. 14. 예시, 데이터 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
  15. 15. M 행렬 초기화 M은 3(Feature 개수) * 11(Item 개수) 행렬 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 15
  16. 16. 1라운드, 초기 M에서 U1 도출 u1 u2 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 16
  17. 17. U1의 u1 열벡터 도출 공식 −1V1 u1 = A1 A1 = MI1 T +λnu1 MI1 E V1 = MI1 RT 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
  18. 18. 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
  19. 19. 결과 예측 행렬 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
  20. 20. ALS의 장점 • 대량 데이터 처리 • 사용자/아이템 개수 대비 데이터가 드물게 존재하는 경우에도 적용 가능 • 노이즈 데이터에 강함 20
  21. 21. ALS WR with Implicit Feedback
  22. 22. Implicit Feedback • Implicit Feedback – 비디오 시청, 구매 내역, 조회 내역 등 – 직접적인 평가 점수가 아닌 간접 피드백 – 평가 값을 구할 수 없는 경우 사용 • 주요 특징 – 부정 피드백 없음 – 노이즈가 존재 (단순 조회가 긍정 피드백인지 알 수 없음) – 숫자는 긍정에 대한 신뢰 수준을 의미 22
  23. 23. Implicit Feedback 이용 모델 • 다음을 값으로 갖는 행렬을 사용 – pij = rij > 0 ? 1 : 0 (rij: implicit feedback) – 즉, 피드백이 한 번이라도 있으면 1, 없으면 0 • 긍정 정도를 구하기 위한 신뢰 수준 정의 – cij = 1 + αrij (α: 상수) • 사용할 목적 함수(x: 사용자, y: 아이템) 23 Tmj ( )2 Σ f (U,M) = cij pij − ui Σ +λ ui Σ 2 + mj 2 j i # $ %% & ' (( i, j
  24. 24. U와 M을 구하는 과정 • 앞의 과정과 동일 • M이 주어질 때 U를 구하는 공식 • U가 주어질 때 M을 구하는 공식 24 ui = (MCiMT +λ I )−1 MCi p(i)T mj = UCjUT ( +λ I )−1 UCj p( j) Ci = cjj ij Cj = cii ij p(i) = 사용자 i 행 벡터 p(j) = 아이템 j 열 벡터
  25. 25. 예제 • 앞과 동일한 원본 평가 행렬 R • Feature: 3 • 반복: 5회 • Lamda: 2 • Alpha: 40 25
  26. 26. 결과 M, U 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 26 M 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 U
  27. 27. 결과 예측 행렬 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) 원본 평가 행렬
  28. 28. 참고자료 • 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

×