채널톡 아이콘

임베딩부터 트랜스포머까지: 내적으로 이해하는 추천시스템의 수학

영화 평점 예측이라는 하나의 문제를 통해 PCA, SVD, 행렬분해, 어텐션을 내적의 관점에서 연결합니다. 라이브러리 호출만 하던 사람이 임베딩 숫자의 의미와 트랜스포머의 계산 원리를 스스로 설명할 수 있게 됩니다. 추천시스템의 빈칸을 채우는 모든 과정을 하나의 수식으로 이해하는 여정입니다.

3명 이 수강하고 있어요.

난이도 중급이상

수강기한 무제한

수강 후 이런걸 얻을 수 있어요

  • 고유값·고유벡터부터 Query·Key·Value까지 하나의 내적 흐름으로 설명

  • 영화 평점 빈칸을 평균, SVD, 행렬분해, 어텐션으로 채우는 계산 과정 구현

  • 임베딩과 트랜스포머 가중치가 생성되는 수학적 원리 이해

H2. 임베딩이 왜 그 평점을 내는지

임베딩을 호출해도 그 평점이 왜 나오는지 말이 안 나올 때, 이 강의가 그 계산을 한 줄로 이어 줍니다. 주성분분석에서 시작해 특이값 분해, 행렬분해, 트랜스포머 어텐션까지 영화 평점 하나로 따라갑니다. 라이브러리 이름을 외우는 시간이 아니라, 같은 내적이 추천 점수로 바뀌는 과정을 말로 설명하는 시간입니다.

H2. 계산은 한 줄로 이어집니다

이 제목 바로 아래에 수업 순서 그림을 넣으세요. 대체텍스트는 주성분분석, 특이값 분해, 행렬분해, 트랜스포머가 화살표로 이어진 수업 순서입니다. 파일은 다운로드 폴더의 인프런_수업순서_PCA_SVD_MF_Transformer.png입니다.

H3. 주성분분석, 정보량이 모이는 축

성분은 독립변수입니다. 자료가 퍼진 정도가 분산이고, 그 힘은 내적입니다. 공분산은 자료를 전치한 뒤 곱해서 구합니다. 정보량은 파레토처럼 한두 축에 모입니다. 그 축의 길이가 고유값이고, 방향의 비율이 고유벡터입니다. 고유값은 정보량이고 고유벡터는 가중치입니다. 키와 몸무게의 타원, 붓꽃의 꽃잎 길이로 이 말을 확인합니다. 사람은 두 축만 볼 수 있으니 그림은 정보량이 큰 축만 남깁니다. 집단이 겹치면 LDA로 자료를 다시 세웁니다. 평균은 멀리, 집단 안의 퍼짐은 작게 만드는 축입니다.

H3. 특이값 분해, 빈칸을 다시 만드는 계산

영화 평점에서는 빈칸이 문제입니다. 고객은 일부 영화만 보고 점수를 남깁니다. SVD는 그 빈칸을 평균으로 채운 뒤, 고객 쪽과 영화 쪽의 고유값을 각각 구합니다. 정보량이 큰 축만 남기면 차원이 줄고, 비어 있던 칸에 새 평점이 생깁니다. 홍길동이 안 본 영화가 4점 근처로 나오면 추천하고, 그 아래면 빼는 식이 초기 추천입니다. 과거 평점과 예측 평점의 차이를 평균 낸 값이 작으면 그 시스템을 믿을 수 있습니다. 이미 본 영화의 실제 점수와 다시 만든 점수를 비교하는 방법입니다.

H3. 행렬분해, 본 평점만 학습

평균으로 채운 값은 그 사람이 준 평점이 아닙니다. 사전 데이터는 실제로 본 기록만 써야 합니다. 그래서 빈칸은 학습에서 뺍니다. 영화와 고객처럼 차원을 모르는 대상은 속성을 임의로 정합니다. 그 숫자를 평균 0, 분산 1에 가깝게 두고 서로 다르게 뽑는 일이 임베딩입니다. 둘의 내적에 가중치를 곱하면 평점이 나옵니다. 실제 점수와 차이가 나면 가중치만 고쳐 차이를 줄입니다. 그 가중치를 저장한 것이 모델입니다. 이 학습이 행렬분해 factorization 입니다.

H3. 트랜스포머와 어텐션

질문을 바꾸면 마지막 계산이 됩니다. 홍길동이 안 본 영화의 평점을 묻는 말이 Query입니다. 과거에 비슷한 평점을 남긴 사람이 Key입니다. 내적으로 비슷한 정도를 전체 합으로 나누면 확률이 되고, 숫자가 커지면 소프트맥스로 줄입니다. 그 사람이 준 평점이 Value입니다. 확률과 평점을 곱해 더하면 기대 점수가 나옵니다. 이것이 어텐션이고, 기댓값과 같은 계산입니다. 빈칸이 많은 실제 표에서는 본 영화만으로 속성을 만들기 어려우므로 임베딩을 씁니다. 질문, 핵심, 평가에 가중치가 각각 들어가 계산량이 커집니다. 이 구조가 transformer 이고, 그 평가 방법이 attention-model 입니다.

H2. 영화 평점으로 보는 추천

이 흐름이 영화 평점 recommender-systems 의 계산입니다. 넷플릭스와 유튜브 추천이 여기서 출발해 행렬분해와 트랜스포머로 이어졌다는 역사를 수업에서 따라갑니다. 오차가 0.4 근처면 5점 만점에서 어느 정도 가까운지, 자료를 100명에서 1,000명으로 늘리면 오차가 어떻게 줄어드는지, 배치로 여러 개의 오차를 평균 내야 한 점에만 맞추는 일을 피하는지도 같이 봅니다.

H2. 이 강의가 맞는 사람

임베딩 숫자가 왜 나오는지 설명하지 못하는 분, 빈 평점을 평균으로 채운 채 추천 결과를 믿고 있는 분, Query와 Key와 Value를 이름만 알고 계산은 모르는 분에게 맞습니다. 행렬의 행과 열, 곱과 전치를 알고 있으면 따라가기 좋습니다. 파이썬 파일을 실행해 본 적이 있으면 실습을 같이 돌릴 수 있습니다. 실습 코드는 ChatGPT에 수업에서 말한 조건을 적어 받습니다.

H2. 수업에서 보는 순서

수업은 세 부분입니다. 첫째는 주성분분석입니다. PCA를 시작하는 이유, 고유값과 고유벡터, 차원 축소와 LDA를 봅니다. 둘째는 특이값 분해입니다. 빈칸을 채우는 SVD와, 오차를 보고 행렬분해로 넘어가는 이유를 봅니다. 셋째는 행렬분해와 트랜스포머입니다. 학습 곡선을 보고, 어텐션으로 평점을 계산한 뒤 전체를 정리합니다.

H2. 수업 영상을 보는 방법

각 수업 영상은 수업 노트의 iframes 로 연결되어 강의실에서 재생됩니다. 로그인, 회원가입, 아마존 데이터로 서비스를 만드는 내용은 이 영상에 없습니다. 계산을 이해한 다음 단계입니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 임베딩 벡터의 숫자가 어떻게 나오는지 설명하지 못하는 ML 엔지니어

  • Query·Key·Value를 개념으로만 알고 실제 계산은 모르는 AI 개발자

  • 추천시스템을 평균 기반으로만 구현해 본 데이터 분석가

선수 지식,
필요할까요?

  • 행렬의 곱셈과 전치 연산에 대한 기본 이해

  • 파이썬 파일을 실행하고 간단한 코드를 수정해 본 경험

  • 분산과 공분산의 개념적 의미

안녕하세요
오늘은 샘입니다.

커리어인증

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!

무료