SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

ML system design_pattern
ML system design_patternML system design_pattern
ML system design_patternyusuke shibui
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方BrainPad Inc.
 
公平性を保証したAI/機械学習
アルゴリズムの最新理論
公平性を保証したAI/機械学習
アルゴリズムの最新理論公平性を保証したAI/機械学習
アルゴリズムの最新理論
公平性を保証したAI/機械学習
アルゴリズムの最新理論Kazuto Fukuchi
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出MPRG_Chubu_University
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification StandardBOAZ Bigdata
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스BOAZ Bigdata
 
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016MLconf
 
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.Sejeong Kim 김세정
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦Preferred Networks
 
20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについてPreferred Networks
 
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving carDevsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving caryusuke shibui
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnetNagi Teramo
 
20220521_IR_reading_Sato.pptx
20220521_IR_reading_Sato.pptx20220521_IR_reading_Sato.pptx
20220521_IR_reading_Sato.pptxMasahiro Sato
 
2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 choi kyumin
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?Yasuharu Nishi
 
単一物体追跡論文のサーベイ
単一物体追跡論文のサーベイ単一物体追跡論文のサーベイ
単一物体追跡論文のサーベイHitoshi Nishimura
 
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)Masakazu Iwamura
 
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Atsushi Odagiri
 
20171110 qrnn quasi-recurrent neural networks
20171110 qrnn   quasi-recurrent neural networks20171110 qrnn   quasi-recurrent neural networks
20171110 qrnn quasi-recurrent neural networksh m
 

La actualidad más candente (20)

ML system design_pattern
ML system design_patternML system design_pattern
ML system design_pattern
 
ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方ブレインパッドにおける機械学習プロジェクトの進め方
ブレインパッドにおける機械学習プロジェクトの進め方
 
公平性を保証したAI/機械学習
アルゴリズムの最新理論
公平性を保証したAI/機械学習
アルゴリズムの最新理論公平性を保証したAI/機械学習
アルゴリズムの最新理論
公平性を保証したAI/機械学習
アルゴリズムの最新理論
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出
 
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard
제 14회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [BICS팀] : Boaz Industry Classification Standard
 
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스
제 16회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [기린그림 팀] : 사용자의 손글씨가 담긴 그림 일기 생성 서비스
 
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016
Stephanie deWet, Software Engineer, Pinterest at MLconf SF 2016
 
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.
IBM with 서비스나우, IT운영관리 이젠 바뀔 때입니다.
 
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
東大大学院 電子情報学特論講義資料「ハイパーパラメタ最適化ライブラリOptunaの開発」柳瀬利彦
 
20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて20171128分散深層学習とChainerMNについて
20171128分散深層学習とChainerMNについて
 
Devsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving carDevsumi 2021 MLOps for Self-driving car
Devsumi 2021 MLOps for Self-driving car
 
5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet5分でわかるかもしれないglmnet
5分でわかるかもしれないglmnet
 
20220521_IR_reading_Sato.pptx
20220521_IR_reading_Sato.pptx20220521_IR_reading_Sato.pptx
20220521_IR_reading_Sato.pptx
 
2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때 2015 py con word2vec이 추천시스템을 만났을때
2015 py con word2vec이 추천시스템을 만났을때
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
 
単一物体追跡論文のサーベイ
単一物体追跡論文のサーベイ単一物体追跡論文のサーベイ
単一物体追跡論文のサーベイ
 
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)
ディープラーニングを用いた物体認識とその周辺 ~現状と課題~ (Revised on 18 July, 2018)
 
Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定Pythonでの開発を効率的に進めるためのツール設定
Pythonでの開発を効率的に進めるためのツール設定
 
Rの高速化
Rの高速化Rの高速化
Rの高速化
 
20171110 qrnn quasi-recurrent neural networks
20171110 qrnn   quasi-recurrent neural networks20171110 qrnn   quasi-recurrent neural networks
20171110 qrnn quasi-recurrent neural networks
 

Destacado

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
 

Destacado (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 a 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 a 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
 

Más de 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
 

Más de 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