SlideShare a Scribd company logo
1 of 28
Download to read offline
Alterna(ng 
Least 
Squares 
Weight 
λ 
Regulariza(on 
이해 시도 
최범균, 
madvirus@madvirus.net
주의: 나는 전문가가 아니며, 
오류가 존재할 수 있습니다. 
2
학습 자료 
• 다음의 두 문서 
– 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
기본은 행렬 분해 
• 평가 행렬 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
그림으로 
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
알고리즘 
• 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
사용할 목적 함수 
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
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
유도식 
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
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
결정할 값 
• 정확도/과적합 
– λ 값: 평가 개수에 대한 벌점 가중치 
– Feature 
개수: 예측 정확도에 관여 
• 연산 시간/정확도 
– 반복: 
M,U를 점진적으로 구하는 반복회수 
11
예측 값 후처리 
• 후처리1: 
– 예측 P의 평균이 기존 입력값 평균과 같지 않 
으면, 모든 예측 값을 평균 차이만큼 보정 
• 후처리2: 
– 두 개의 예측값을 구하고 두 값을 일정 비율로 
반영 
– 예, 예측 P0와 P1을 구하고, 
RMSE(Px)를 최소화 
하는 x를 구해서, 
Px를 예측으로 사용 
• Px 
= 
(1-­‐x)P0 
+ 
xP1 
12
M,U 
도출 과정 과정 예 
• R: 
10 
* 
11 행렬 (10 사용자, 
11 아이템) 
• Feature 개수: 
3 
• λ: 
0.01 
13
예시, 데이터 
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
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
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
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
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
결과 예측 행렬 
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
ALS의 장점 
• 대량 데이터 처리 
• 사용자/아이템 개수 대비 데이터가 드물게 
존재하는 경우에도 적용 가능 
• 노이즈 데이터에 강함 
20
ALS 
WR 
with 
Implicit 
Feedback
Implicit 
Feedback 
• Implicit 
Feedback 
– 비디오 시청, 구매 내역, 조회 내역 등 
– 직접적인 평가 점수가 아닌 간접 피드백 
– 평가 값을 구할 수 없는 경우 사용 
• 주요 특징 
– 부정 피드백 없음 
– 노이즈가 존재 (단순 조회가 긍정 피드백인지 
알 수 없음) 
– 숫자는 긍정에 대한 신뢰 수준을 의미 
22
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
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 
열 벡터
예제 
• 앞과 동일한 원본 평가 행렬 R 
• Feature: 
3 
• 반복: 
5회 
• Lamda: 
2 
• Alpha: 
40 
25
결과 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 
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) 
원본 평가 행렬
참고자료 
• 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

More Related Content

What's hot

SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」Naoyuki Kataoka
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLNatanael Simões
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目cct-inc
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 
IT業界におけるコミュニティ活動の大切さ
IT業界におけるコミュニティ活動の大切さIT業界におけるコミュニティ活動の大切さ
IT業界におけるコミュニティ活動の大切さ法林浩之
 
[PR12] Generative Models as Distributions of Functions
[PR12] Generative Models as Distributions of Functions[PR12] Generative Models as Distributions of Functions
[PR12] Generative Models as Distributions of FunctionsJaeJun Yoo
 
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみたプロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた青い森ウェブ工房(福田匡彦)
 
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기NAVER Engineering
 
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERARightBrain inc.
 

What's hot (9)

SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」SIROK技術勉強会 #1 「Reactってなんだ?」
SIROK技術勉強会 #1 「Reactってなんだ?」
 
Introdução à Engenharia de Software e UML
Introdução à Engenharia de Software e UMLIntrodução à Engenharia de Software e UML
Introdução à Engenharia de Software e UML
 
Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目Msを16倍出し抜くwpf開発2回目
Msを16倍出し抜くwpf開発2回目
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
IT業界におけるコミュニティ活動の大切さ
IT業界におけるコミュニティ活動の大切さIT業界におけるコミュニティ活動の大切さ
IT業界におけるコミュニティ活動の大切さ
 
[PR12] Generative Models as Distributions of Functions
[PR12] Generative Models as Distributions of Functions[PR12] Generative Models as Distributions of Functions
[PR12] Generative Models as Distributions of Functions
 
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみたプロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた
プロトコルバッファ形式の路線バス運行情報(GTFS-RT)をPHPで加工してみた
 
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
200819 NAVER TECH CONCERT 06_놓치기 쉬운 안드로이드 UI 디테일 살펴보기
 
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA
라이트브레인 아카데미 6기 오픈프로젝트- 3조; 인공지능 퍼실리티 CERA
 

Viewers also liked

CF Models for Music Recommendations At Spotify
CF Models for Music Recommendations At SpotifyCF Models for Music Recommendations At Spotify
CF Models for Music Recommendations At SpotifyVidhya Murali
 
Social Analytics 소개 (SDEC 오프모임 세미나)
Social Analytics 소개 (SDEC 오프모임 세미나)Social Analytics 소개 (SDEC 오프모임 세미나)
Social Analytics 소개 (SDEC 오프모임 세미나)NAVER D2
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀beom kyun choi
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)beom kyun choi
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
데이터분석의 길 4: “고수는 통계학습의 달인이다”
데이터분석의 길 4:  “고수는 통계학습의 달인이다”데이터분석의 길 4:  “고수는 통계학습의 달인이다”
데이터분석의 길 4: “고수는 통계학습의 달인이다”Jaimie Kwon (권재명)
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
 
Algorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at SpotifyAlgorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at SpotifyChris Johnson
 

Viewers also liked (9)

CF Models for Music Recommendations At Spotify
CF Models for Music Recommendations At SpotifyCF Models for Music Recommendations At Spotify
CF Models for Music Recommendations At Spotify
 
Social Analytics 소개 (SDEC 오프모임 세미나)
Social Analytics 소개 (SDEC 오프모임 세미나)Social Analytics 소개 (SDEC 오프모임 세미나)
Social Analytics 소개 (SDEC 오프모임 세미나)
 
Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀Tensorflow regression 텐서플로우 회귀
Tensorflow regression 텐서플로우 회귀
 
차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)차원축소 훑어보기 (PCA, SVD, NMF)
차원축소 훑어보기 (PCA, SVD, NMF)
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
데이터분석의 길 4: “고수는 통계학습의 달인이다”
데이터분석의 길 4:  “고수는 통계학습의 달인이다”데이터분석의 길 4:  “고수는 통계학습의 달인이다”
데이터분석의 길 4: “고수는 통계학습의 달인이다”
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
도메인구현 KSUG 20151128
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
 
Algorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at SpotifyAlgorithmic Music Recommendations at Spotify
Algorithmic Music Recommendations at Spotify
 

Similar to ALS WS에 대한 이해 자료

파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트itproman35
 
Standardization of item_data_by_ai_decryption
Standardization of item_data_by_ai_decryptionStandardization of item_data_by_ai_decryption
Standardization of item_data_by_ai_decryptionJihyunSong13
 
밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습Juhui Park
 
파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강Woong won Lee
 
22 r data manipulation 2 pt 20140404
22 r data manipulation 2 pt 2014040422 r data manipulation 2 pt 20140404
22 r data manipulation 2 pt 20140404Myung-Hoe Huh
 
Ch.5 machine learning basics
Ch.5  machine learning basicsCh.5  machine learning basics
Ch.5 machine learning basicsJinho Lee
 

Similar to ALS WS에 대한 이해 자료 (10)

분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트파이썬 데이터 분석 3종세트
파이썬 데이터 분석 3종세트
 
Standardization of item_data_by_ai_decryption
Standardization of item_data_by_ai_decryptionStandardization of item_data_by_ai_decryption
Standardization of item_data_by_ai_decryption
 
R_datamining
R_dataminingR_datamining
R_datamining
 
밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습밑바닥부터 시작하는 딥러닝_신경망학습
밑바닥부터 시작하는 딥러닝_신경망학습
 
Spc개요
Spc개요Spc개요
Spc개요
 
파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강
 
22 r data manipulation 2 pt 20140404
22 r data manipulation 2 pt 2014040422 r data manipulation 2 pt 20140404
22 r data manipulation 2 pt 20140404
 
Rdatamining
Rdatamining Rdatamining
Rdatamining
 
Ch.5 machine learning basics
Ch.5  machine learning basicsCh.5  machine learning basics
Ch.5 machine learning basics
 

More from beom kyun choi

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개beom kyun choi
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기beom kyun choi
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나beom kyun choi
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)beom kyun choi
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugbeom kyun choi
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초beom kyun choi
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유beom kyun choi
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰beom kyun choi
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)beom kyun choi
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개beom kyun choi
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해beom kyun choi
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개beom kyun choi
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개beom kyun choi
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기beom kyun choi
 
객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회beom kyun choi
 

More from beom kyun choi (20)

옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나TDD 발담그기 @ 공감세미나
TDD 발담그기 @ 공감세미나
 
keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)keras 빨리 훑어보기(intro)
keras 빨리 훑어보기(intro)
 
DDD 준비 서문래
DDD 준비 서문래DDD 준비 서문래
DDD 준비 서문래
 
Ddd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksugDdd start 부록 지앤선&ksug
Ddd start 부록 지앤선&ksug
 
MVP 패턴 소개
MVP 패턴 소개MVP 패턴 소개
MVP 패턴 소개
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
Event source 학습 내용 공유
Event source 학습 내용 공유Event source 학습 내용 공유
Event source 학습 내용 공유
 
Spring Boot 소개
Spring Boot 소개Spring Boot 소개
Spring Boot 소개
 
모델링 연습 리뷰
모델링 연습 리뷰모델링 연습 리뷰
모델링 연습 리뷰
 
Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)Ji 개발 리뷰 (신림프로그래머)
Ji 개발 리뷰 (신림프로그래머)
 
리뷰의 기술 소개
리뷰의 기술 소개리뷰의 기술 소개
리뷰의 기술 소개
 
스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해스프링 시큐리티 구조 이해
스프링 시큐리티 구조 이해
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
Zookeeper 소개
Zookeeper 소개Zookeeper 소개
Zookeeper 소개
 
하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기하둡2 YARN 짧게 보기
하둡2 YARN 짧게 보기
 
객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회객체 지향 발담그기 JCO 컨퍼런스 14회
객체 지향 발담그기 JCO 컨퍼런스 14회
 
Storm 훑어보기
Storm 훑어보기Storm 훑어보기
Storm 훑어보기
 

ALS WS에 대한 이해 자료

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