SlideShare a Scribd company logo
1 of 15
추천 알고리즘
Matrix - Factorization
정정윤 Date. 2021-10-15
알고리즘 종류
Matrix Factorization
Matrix Factorization 추천 모델은 sparse한 user-item matrix에 대하여 데이터가 없는 부분을 model을 통해 채
워 넣는 과정
User latent matrix Item latent matrix
•1. 잠재요인의 개수 K를 설정
•2. 주어진 K에 따라서 P(MxK)와 Q(NxK)행렬을 만들고 초기화한다.
•3. 주어진 P(User Latent Matrix), Q(Item Latent Matrix)을 사용해서 예측 평점을 구한다. ^R=PQTR^=PQT
•4. R(User-Item Matrix)에 있는 실제 평점과 예측 평점의 오차를 구하고 이 오차를 줄이기 위해서 P, Q 값을 업데이트한다.
•5. 오차가 일정 Threshold 이하가 되거나 미리 정해진 Iteration에 도달할 때 까지 3번으로 돌아가서 반복한다.
Matrix Factorization
사용자-항목 간 상호작용 행렬을 두 개의 저차원의 정사각형 행렬로 분해 표시.
넷플릭스가 주최한 2006년 추천 시스템 경진대회에서 우승한 팀이 채택했던 기술로 추천시스템 내에서 가장 널리 쓰임
개개인의 선호도와 제품의 컨텐츠 등을 고려하는 컨텐츠 필터(Content Filtering)와 달리, 사용자들의 평가, 피드백을
기반으로 추천하는 것을 말함
Matrix Factorization
'MSE error’ - sparse user-item matrix와 P,Q의 내적한 행렬과의 차이를 제곱한 것이며, 학습의 목적
은 이 차이를 최소화 하는것
L2 regularization - 가중치 matrix에 제곱하여 cost에 추가해줌. 오버피팅을 방지하기 위한것.
Objective function
Matrix Factorization
임의의 행렬 초기값을 가정. Amy 사용자 행렬내적을 통해 1.44 값을 구함 →
영화1에 대한 평점 3과 1.44를 비교하여 손실(loss)이 있음을 파악 → 1.44를 증가시키기 위해 ①번의 F1과 F2를 조
금씩 증가하고 동시에 ②번의 F1과 F2도 조금씩 늘려봄. 행렬 인수분해 값들의 차이를 최소화 하는 과정 훈련
①과 ②의 행렬 인수분해 값들 간의 차이를 최소화해가는 과정을 반복.
Matrix Factorization – (1)
SVD
특이값 분해 - 고유값 분해처럼 행렬을 대각화하여 분해하는 방법 . nXn의 정방행렬이 아니어도 분해가능함.
1.데이터에 결측치가 없어야 함
2.대부분의 현업 데이터는 Sparse 한 데이터
Matrix Factorization – (1)
SVD
U는 AAT를 고유값분해해서 얻어진 직교행렬 U의 열벡터들을 A의 left singular vector라 부르고, V 의 열벡터들을 A의 right singular vector라 부른다. 또한 Σ는 AAT, ATA를 고유값분해해서 나오는 고유값
들의 square root를 대각원소로 하는 m x n 직사각 대각행렬로, 그 대각원소들을 A의 특이값(singular value)이라 부른다. 즉 U, V는 특이 벡터를 나타낸 행렬이고 Σ 는 특이값에 대한 행렬이라고 할 수
있다.
Σ의 크기를 지정해 줌으로써 latent(의미 부여 벡터)의 크기를 지정해 줄 수도 있다. 이후 decomposition 된 행렬들을 이용하여 원래의 행렬 A와 사이즈가 동일한 행렬을 만들어내면, 비어있는 공간들을
유추해내는 새로운 행렬이 나타나는 것이다. 이를 Matrix Completion의 관점에서 보면, A 행렬에서 rating이 존재하는 데이터를 이용해 미지의 U, Σ, V를 학습하여 Completed 된 행렬 A`를 만들어내는 것
이다.
Matrix Factorization – (2)
SGD
행렬 M을 전처리하고 차원결정
U 그리고 V행렬을 초기화함
USER- RATING MATRIX에서 아무 값 뽑기
U V일부 성분만 영향을 주는것을 알 수 있음
해당 성분들을 조정하여 Original User rating Matrix와 근사된 행렬의 에러를 줄여줌
단점 : Explicit Feedback 에만 사용가능
Matrix Factorization – (2)
SGD
•사용자 i의 아이템 j에 대한 예측값 - (1)
•예측 오차(실제값 - 예측값)
•오차의 제곱식 p와 q에 대해서 편미분
•새로운 p, q 값 update(a는 학습률)
•과적합 방지를 위한 Regularization term 추가
•Beta는 정규화 정도)
•새로운 p, q 값 update - (2)
사용자와 아이템의 경향성을 고려한 (1)식 수정
•사용자 평가경향, 아이템 평가 경향 값 update - (4)
오차의 제곱을 최소화해야 하기 위한것
Matrix Factorization – (3)
ALS
SGD 연산값 많고 시간이 오래걸림
Qi 고정시켜놓고 P업데이트 => P고정시키고 Q 업데이트 … 과정을 충분히 방법.
업데이트시 목적함수를 고정시키지 않는 변수로 편미분 한 후 그 값이 0이되는 행
렬 Q와 P를 찾는것
P와 Q가 서로 번갈아가며 최적화 되게 됩니다! 하나의 행렬을 최적화하는 것이기
때문에 Convex Problem으로 취급되고, 보다 더 빠르게 학습됨.
Matrix Factorization – (3)
ALS
SGD 연산값 많고 시간이 오래걸림
ALS는 SGD와 다르게 각 데이터 포인트를 순차적으로 업데이트할 필요가 없다. 주
어진 행렬을 가지고 계산만 하면 되기 때문에 아래 그림처럼 행렬을 쪼개서 병렬 처
리가 가능하다. 따라서, ALS가 SGD보다 훨씬 빠른 속도로 학습을 수행할 수 있다.
Matrix Factorization – (3)
ALS
사용자가 아이템을 얼마나 선호하는지를 나타낸 Confidence 값을 정의
사용자가 아이템에 관심있는지 여부(Preference)를 Binary로 표현
Implicit Feedback ALS MF목적함수
Implicit Feedback ALS MF 업데이트 수식
다음시간에..
감사합니다
빅데이터사업부 정정윤 Date. 2021-10-15

More Related Content

Similar to Cop 3주차발표

3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)Haesun Park
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regressionHaesun Park
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트S.O.P.T - Shout Our Passion Together
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdftangtang1026
 
시계열분석의 이해
시계열분석의 이해시계열분석의 이해
시계열분석의 이해TIMEGATE
 
시계열 분석의 이해와 활용
시계열 분석의 이해와 활용시계열 분석의 이해와 활용
시계열 분석의 이해와 활용Seung-Woo Kang
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템NAVER D2
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning성재 최
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learningHaesun Park
 
Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Yong Joon Moon
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedtaeseon ryu
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Park Jonggun
 

Similar to Cop 3주차발표 (15)

3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)3.unsupervised learing(epoch#2)
3.unsupervised learing(epoch#2)
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
 
이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf이정근_project_로봇비전시스템.pdf
이정근_project_로봇비전시스템.pdf
 
07. PCA
07. PCA07. PCA
07. PCA
 
시계열분석의 이해
시계열분석의 이해시계열분석의 이해
시계열분석의 이해
 
시계열 분석의 이해와 활용
시계열 분석의 이해와 활용시계열 분석의 이해와 활용
시계열 분석의 이해와 활용
 
[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템[224] 번역 모델 기반_질의_교정_시스템
[224] 번역 모델 기반_질의_교정_시스템
 
Imagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement LearningImagination-Augmented Agents for Deep Reinforcement Learning
Imagination-Augmented Agents for Deep Reinforcement Learning
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learning
 
Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815
 
Siamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explainedSiamese neural networks for one shot image recognition paper explained
Siamese neural networks for one shot image recognition paper explained
 
Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1Start IoT with JavaScript - 4.객체1
Start IoT with JavaScript - 4.객체1
 
Spc개요
Spc개요Spc개요
Spc개요
 

Cop 3주차발표

  • 1. 추천 알고리즘 Matrix - Factorization 정정윤 Date. 2021-10-15
  • 3. Matrix Factorization Matrix Factorization 추천 모델은 sparse한 user-item matrix에 대하여 데이터가 없는 부분을 model을 통해 채 워 넣는 과정 User latent matrix Item latent matrix •1. 잠재요인의 개수 K를 설정 •2. 주어진 K에 따라서 P(MxK)와 Q(NxK)행렬을 만들고 초기화한다. •3. 주어진 P(User Latent Matrix), Q(Item Latent Matrix)을 사용해서 예측 평점을 구한다. ^R=PQTR^=PQT •4. R(User-Item Matrix)에 있는 실제 평점과 예측 평점의 오차를 구하고 이 오차를 줄이기 위해서 P, Q 값을 업데이트한다. •5. 오차가 일정 Threshold 이하가 되거나 미리 정해진 Iteration에 도달할 때 까지 3번으로 돌아가서 반복한다.
  • 4. Matrix Factorization 사용자-항목 간 상호작용 행렬을 두 개의 저차원의 정사각형 행렬로 분해 표시. 넷플릭스가 주최한 2006년 추천 시스템 경진대회에서 우승한 팀이 채택했던 기술로 추천시스템 내에서 가장 널리 쓰임 개개인의 선호도와 제품의 컨텐츠 등을 고려하는 컨텐츠 필터(Content Filtering)와 달리, 사용자들의 평가, 피드백을 기반으로 추천하는 것을 말함
  • 5. Matrix Factorization 'MSE error’ - sparse user-item matrix와 P,Q의 내적한 행렬과의 차이를 제곱한 것이며, 학습의 목적 은 이 차이를 최소화 하는것 L2 regularization - 가중치 matrix에 제곱하여 cost에 추가해줌. 오버피팅을 방지하기 위한것. Objective function
  • 6. Matrix Factorization 임의의 행렬 초기값을 가정. Amy 사용자 행렬내적을 통해 1.44 값을 구함 → 영화1에 대한 평점 3과 1.44를 비교하여 손실(loss)이 있음을 파악 → 1.44를 증가시키기 위해 ①번의 F1과 F2를 조 금씩 증가하고 동시에 ②번의 F1과 F2도 조금씩 늘려봄. 행렬 인수분해 값들의 차이를 최소화 하는 과정 훈련 ①과 ②의 행렬 인수분해 값들 간의 차이를 최소화해가는 과정을 반복.
  • 7. Matrix Factorization – (1) SVD 특이값 분해 - 고유값 분해처럼 행렬을 대각화하여 분해하는 방법 . nXn의 정방행렬이 아니어도 분해가능함. 1.데이터에 결측치가 없어야 함 2.대부분의 현업 데이터는 Sparse 한 데이터
  • 8. Matrix Factorization – (1) SVD U는 AAT를 고유값분해해서 얻어진 직교행렬 U의 열벡터들을 A의 left singular vector라 부르고, V 의 열벡터들을 A의 right singular vector라 부른다. 또한 Σ는 AAT, ATA를 고유값분해해서 나오는 고유값 들의 square root를 대각원소로 하는 m x n 직사각 대각행렬로, 그 대각원소들을 A의 특이값(singular value)이라 부른다. 즉 U, V는 특이 벡터를 나타낸 행렬이고 Σ 는 특이값에 대한 행렬이라고 할 수 있다. Σ의 크기를 지정해 줌으로써 latent(의미 부여 벡터)의 크기를 지정해 줄 수도 있다. 이후 decomposition 된 행렬들을 이용하여 원래의 행렬 A와 사이즈가 동일한 행렬을 만들어내면, 비어있는 공간들을 유추해내는 새로운 행렬이 나타나는 것이다. 이를 Matrix Completion의 관점에서 보면, A 행렬에서 rating이 존재하는 데이터를 이용해 미지의 U, Σ, V를 학습하여 Completed 된 행렬 A`를 만들어내는 것 이다.
  • 9. Matrix Factorization – (2) SGD 행렬 M을 전처리하고 차원결정 U 그리고 V행렬을 초기화함 USER- RATING MATRIX에서 아무 값 뽑기 U V일부 성분만 영향을 주는것을 알 수 있음 해당 성분들을 조정하여 Original User rating Matrix와 근사된 행렬의 에러를 줄여줌 단점 : Explicit Feedback 에만 사용가능
  • 10. Matrix Factorization – (2) SGD •사용자 i의 아이템 j에 대한 예측값 - (1) •예측 오차(실제값 - 예측값) •오차의 제곱식 p와 q에 대해서 편미분 •새로운 p, q 값 update(a는 학습률) •과적합 방지를 위한 Regularization term 추가 •Beta는 정규화 정도) •새로운 p, q 값 update - (2) 사용자와 아이템의 경향성을 고려한 (1)식 수정 •사용자 평가경향, 아이템 평가 경향 값 update - (4) 오차의 제곱을 최소화해야 하기 위한것
  • 11. Matrix Factorization – (3) ALS SGD 연산값 많고 시간이 오래걸림 Qi 고정시켜놓고 P업데이트 => P고정시키고 Q 업데이트 … 과정을 충분히 방법. 업데이트시 목적함수를 고정시키지 않는 변수로 편미분 한 후 그 값이 0이되는 행 렬 Q와 P를 찾는것 P와 Q가 서로 번갈아가며 최적화 되게 됩니다! 하나의 행렬을 최적화하는 것이기 때문에 Convex Problem으로 취급되고, 보다 더 빠르게 학습됨.
  • 12. Matrix Factorization – (3) ALS SGD 연산값 많고 시간이 오래걸림 ALS는 SGD와 다르게 각 데이터 포인트를 순차적으로 업데이트할 필요가 없다. 주 어진 행렬을 가지고 계산만 하면 되기 때문에 아래 그림처럼 행렬을 쪼개서 병렬 처 리가 가능하다. 따라서, ALS가 SGD보다 훨씬 빠른 속도로 학습을 수행할 수 있다.
  • 13. Matrix Factorization – (3) ALS 사용자가 아이템을 얼마나 선호하는지를 나타낸 Confidence 값을 정의 사용자가 아이템에 관심있는지 여부(Preference)를 Binary로 표현 Implicit Feedback ALS MF목적함수 Implicit Feedback ALS MF 업데이트 수식