als ws에 대한 이해 자료
TRANSCRIPT
![Page 2: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/2.jpg)
주의: 나는 전문가가 아니며, 오류가 존재할 수 있습니다.
2
![Page 3: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/3.jpg)
학습 자료
• 다음의 두 문서 – 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/4.jpg)
기본은 행렬 분해
• 평가 행렬 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/5.jpg)
그림으로
-‐ -‐ -‐ -‐ -‐ -‐
-‐ -‐ -‐ -‐ -‐ -‐
-‐ -‐ -‐ -‐ -‐
-‐ -‐ -‐ -‐ -‐
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/6.jpg)
알고리즘
• 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/7.jpg)
사용할 목적 함수
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/8.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/9.jpg)
유도식 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/10.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/11.jpg)
결정할 값
• 정확도/과적합 – λ 값: 평가 개수에 대한 벌점 가중치 – Feature 개수: 예측 정확도에 관여
• 연산 시간/정확도 – 반복: M,U를 점진적으로 구하는 반복회수
11
![Page 12: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/12.jpg)
예측 값 후처리
• 후처리1: – 예측 P의 평균이 기존 입력값 평균과 같지 않
으면, 모든 예측 값을 평균 차이만큼 보정
• 후처리2: – 두 개의 예측값을 구하고 두 값을 일정 비율로
반영 – 예, 예측 P0와 P1을 구하고, RMSE(Px)를 최소화
하는 x를 구해서, Px를 예측으로 사용 • Px = (1-‐x)P0 + xP1
12
![Page 13: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/13.jpg)
M,U 도출 과정 과정 예
• R: 10 * 11 행렬 (10 사용자, 11 아이템) • Feature 개수: 3 • λ: 0.01
13
![Page 14: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/14.jpg)
예시, 데이터 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/15.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/16.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/17.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/18.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/19.jpg)
결과 예측 행렬 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/20.jpg)
ALS의 장점
• 대량 데이터 처리 • 사용자/아이템 개수 대비 데이터가 드물게
존재하는 경우에도 적용 가능 • 노이즈 데이터에 강함
20
![Page 21: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/21.jpg)
ALS WR with Implicit Feedback
![Page 22: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/22.jpg)
Implicit Feedback
• Implicit Feedback – 비디오 시청, 구매 내역, 조회 내역 등 – 직접적인 평가 점수가 아닌 간접 피드백 – 평가 값을 구할 수 없는 경우 사용
• 주요 특징 – 부정 피드백 없음 – 노이즈가 존재 (단순 조회가 긍정 피드백인지
알 수 없음) – 숫자는 긍정에 대한 신뢰 수준을 의미
22
![Page 23: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/23.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/24.jpg)
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/25.jpg)
예제
• 앞과 동일한 원본 평가 행렬 R • Feature: 3 • 반복: 5회 • Lamda: 2 • Alpha: 40
25
![Page 26: ALS WS에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/26.jpg)
결과 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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/27.jpg)
결과 예측 행렬
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에 대한 이해 자료](https://reader033.vdocuments.mx/reader033/viewer/2022052304/55958cc91a28abe7798b466b/html5/thumbnails/28.jpg)
참고자료
• 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