ALS는 행렬 분해를 활용한 대표적인 추천 알고리즘입니다. 추천 시스템을 구축하기 위한 첫 출발점으로는 matrix factorization에 기반을 둔 모델을 많이 활용합니다. 그 이유는 단일 모델로서 성능도 좋고, 무엇보다 데이터 파이프라인이 간단하고 서빙이 편리하기 때문이라고 생각합니다. matrix factorization 기법을 활용한 ...
특이값 분해(Singular Value Decompostion)
행렬을 직교행렬 두개와 대각행렬 하나로 분해할 수 있습니다. 3줄 요약 특이값 분해(SVD)는 \(m \times n\) 직사각 행렬 \(M\)을 직교행렬 \(U\), \(V^T\)와 고유값 행렬 \(\Sigma\)로 대갹화 하는 방법입니다. 고유값 분해(EVD)는 정방 행렬에만 적용 가능한데 반해, 특이값 분해(SVD)는 직사각 ...
tf.keras 커스텀 하기
최근에 python2 + tensorflow 1.x로 작성된 추천 시스템 레거시 코드를 유지 보수 및 개선하는 업무를 진행하고 있습니다. 기존 코드는 tensorflow 1.x 버전으로 짜여져 있어서 API의 통일성이 부족했고, 오픈 소스 코드에 기반하여 상황 마다 필요한 컴포넌트를 추가 하다보니 코드의 일관성도 많이 저해된 상태였습니다. 따라서 ...
고유값 분해(Eigenvalue Decompostion)
정방행렬을 고유벡터와 고유값의 행렬로 분해할 수 있다?! (Eigenvalue decomposition, OREILLY) 2줄 요약 고유값 분해는 \(n \times n\) 정방 행렬을 고유벡터로 이루어진 행렬과 고유값으로 이루어진 행렬로 대각화 하는 방법 행렬 거듭제곱, SVD 등에서 활용 됨 \(n \times n\)...
PCA(주성분 분석)
원래 데이터들을 어느 벡터에 사영시켜야 데이터의 구조를 최대한 보존할 수 있을까? 3줄 요약 PCA는 데이터의 기존 구조를 최대한 유지하고자 하는 목적을 가진 변수 추출 또는 차원 축소 기법임 데이터의 기존 구조를 최대한 유지 하기 위해서는 사영(projection) 하였을 때 분산이 최대가 되는 방향의 벡터를 찾아야 함 데이터...
고유값(eigen value)과 고유벡터(eigen vector)
방향은 변하지 않고 크기만 변하는 벡터를 찾아라! 두줄 요약 !! 선형 변환을 했을 때 크기는 변하나 방향은 변하지 않는 벡터를 고유벡터라고 하고 변하는 크기는 고유값이라 함 행렬 분해 기법(EVD, SVD)과 PCA 등 여러 응용 사례의 가장 기초가 되는 개념 선형대수학 개념 중 고유값(ei...
2020년 회고
올 한해를 간략히 정리해 보면… 참 다사다난 했던 2020년입니다. 저는 캘린더 앱을 통해 항상 스케줄을 관리하는데요. 이번 회고글을 쓰면서 2020년 1월부터 오늘까지의 캘린더를 쭉 훑어 보았습니다. 소기의 성과를 달성한 일도 있었고, 스스로 다짐했으나 지키지 못했던 일도 많이 있었네요. 그와 동시에 한 해가 이렇게 빨리 지나가버린 것에 대해 놀라...
큰수의 법칙(LLN, Law of Large Numbers)
표본의 크기가 커질수록 표본평균은 모평균에 근접해 갑니다. 우리는 공정한 동전을 던졌을 때 앞면이 나타날 확률이 \(\cfrac{1}{2}\)이라는 것을 특별히 증명하지 않아도 알 수 있습니다. 우리가 지금까지 살아오면서 겪은 수많은 경험들에 의하면 동전의 앞면이 나타날 확률이 \(\cfrac{1}{2}\)이기 때문이죠. 이처럼 수많은 경험의 경...
중심 극한 정리(CLT, Central Limit Theorem)
석사과정 때부터 중심극한정리에 의해서 표본의 크기가 30 이상이면 정규분포가 되어서…’ 라는 말을 많이 들어왔습니다. 그래서 ‘설문자료를 수집할 때 표본이 30개 이상이면 분석을 할 수 있겠구나…’ 라고 단순하게 생각 했던 때가 있었는데요. 최근에 하버드 확률론 기초 강의(Statistics 110)를 수강하면서 수업 말미에 등장한 중심극한정리에...
연속형 확률 분포 정리
하버드 확률론 기초 강의(Statistics 110)을 수강 후, 교수님께서 강조하신 여러가지 분포에 대해 개념정리 할 필요성을 느꼈습니다. 특히 이커머스 도메인에서는 통계에 기반한 분석 기법들이 많이 활용되는데(LTV, MAB 등), 실무에서 주어진 태스크를 빠르고 정확히 수행하기 위해 미리 관련 개념 정리를 해두려고 합니다. 이번 포스트는 대표적인...