패스트캠퍼스

패스트캠퍼스 환급챌린지 14일차 : 30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지 강의 후기

빨간순빈 2025. 4. 14. 21:21

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://abit.ly/lisbva

 

공부 시작

강의 종료

강의장

학습 인증샷

학습후기

 

PageRank란?

그래프를 기반으로 어떤 노드가 더 중요한지 확률적으로 평가하는 방식.

 

그래프에서 많은 엣지를 받는 노드가 더 중요하다는 가정

을어오는 엣지의 수가 아니라 중요한 노드에게 링크 받았는가를 계산

 

추천시스템에서의 활용

 

user-item 그래프에서 중요 아이템 선별

유저들이 많이 연결된 상품

다른 인기 아이템과 잘 연결된 상품

 

주요 특징

연결 기반 순위 결정 엣지 수뿐 아니라, 중요한 노드와의 연결 고려
텔레포트(d) 도입 그래프에 고립된 노드 문제 방지
반복 계산 점수 수렴할 때까지 반복 (보통 20~50회)
빠름 학습 없이 단순 계산 → cold start에도 강함

 

 


GNN(Graph Neural Network)

 

노드 수 연결구조가 다른 그래프 데이터를 직접 처리 가능

노드 임베딩 학습을 하면서 이웃의 영향까지 함께 학습 가능

 

학습 단계

[초기 임베딩]  
→ [이웃 노드 정보 집계 (Aggregation)]  
→ [자기 표현 업데이트 (Update)]  
→ [예측값 계산]  
→ [정답과 비교해 Loss 계산]  
→ [역전파로 파라미터 업데이트]

 

1단계 초기 임베딩 초기화

각 노드에 대해 초기 임베딩 부여

 

2단계 이웃 정보 집계

각 노드에 연결된 이웃 노드들의 임베딩을 모은다

이때 합산, 평균, max, attention 등 다양한 방식 사용 가능

 

3단계 자기 표현 업데이트

입계된 이웃 정보와 자신의 임베딩을 합쳐서 새로운 표현 h_v^k를 만든다.

 

4단계 예측값 계산

최종 노드 임베딩을 가지고 예측값 생성

 

5단계 손실함수 계산

 

6단계 파라미터 업데이트 (역전파)


2단계에서 집계 함수를 선택하는 기준은? 딥러닝의 loss, 활성함수처럼 테스트를 해봐야 아는건가?

 

집계 방식 특징 사용할 때
합(sum) 이웃 수가 많을수록 영향력 증가 노드 간 연결 수 자체가 의미 있을 때 (ex. popularity 반영)
평균(mean) 연결 수 상관없이 정보 균등 반영 이웃 수가 제각각일 때 안정적
최댓값(max) 가장 강한 영향만 반영 잡음이 많은 경우 (강한 연결만 반영하고 싶을 때)
attention 이웃마다 다른 가중치 부여 이웃 중 중요한 노드가 있을 때 (성능 좋지만 느림)

 

GNN에서는 loss function처럼 다양한 수식을 선택하거나 조합해서 쓰는 게 있는가?

 

gpt 답변

GNN도 딥러닝처럼 수식적인 구성 요소들을 조합하고 실험하면서 최적 구조를 찾는 과정이다.
Loss function만 바꾸는 게 아니라,
aggregation 방식, update 함수, 활성화 함수, 구조 반복 수 모두 실험 대상이 된다.

 

 

3단계에서 h_v^k가 뭐지?

 

  • vv: 노드의 이름 (예: 유저, 상품 등)
  • kk: GNN 레이어 깊이 (layer number)
  • hvkh_v^k:
  • 노드 v가 이웃들과 정보를 주고받고, 그걸 기반으로 표현을 새로 계산한 결과
    → 즉, v의 최신 문맥 임베딩