2024년 패스트 캠퍼스 챌린지
패스트캠퍼스 환급챌린지 26일차 미션 (2월 26일) : 30개 프로젝트로 끝내는 추천시스템 구현 초격차 패키지 강의 후기
조이쓰
2024. 2. 26. 16:15
강의 내용 Review
📍배운내용📍
- GNN 오버뷰
- Deepwalk 방법
👉강의내용👈
GNN 오버뷰
- 딥러닝은 개체가 갖는 표현 정보를 구하는 것이였음, 단어, 이미지, 문장
- 높은 차원의 데이터를 저차원에 함축시켜서 의미 정보를 잘 담아 낼수있는 덴스 한 표현을 얻는 접근
- GNN에서도 그래프를 구성하는 노드를 임베딩하는 표현 학습 기법 있음
- 그래프의 단점: 입력형태가 다름, 정형화 된 형식이 아님, non 유클리드 한 방법, 인접행렬은 노드의 수가 틀어남에 따라서 행렬계산에 load가 커짐
- 1) permutaion invariant: 노드의 순서를 섞으면 기존의 ML은 안됨
- 2) 순서를 섞더라도 의미, 즉 벡터가 변하지 않도록 하는 것이 보장 되지 않음
- 위 두가지 문제점을 해결할수있는 방법 노드를 dense한 표현, 벡터로 만듦
- 분류, 예측같은 원하는 태스크를 수행하기 위해서 노드를 수치 벡터로 만들어아함
- 연결정보를 반영한 벡터를 만들려면? 인접행렬 사용
- 행렬이 너무 커지면 메모리에 올릴수없고 쪼개야함
- 위치 정보를 하나로 만들어서 이것으로 머신러닝 다운스트림 수행
- 노드를 벡터로 만드는법
- 고차원의에서 non유클리드 정보를 유지하면서 저차원의 벡터개체에 임베딩
- 1) 인코더 정의: 인코딩 펑션 결정
- 2) 유사도 정의: 의미상 비슷한 노드가 가까운 위치를 갖도록
- 3) 파라미터 최적화: 손실값을 통해 파라미터를 의미값을 반영하도록 최저화
- 그래프 노드의 표현학습은 인코더 구조정의하고 손실 정의하고 손실최적화 하는 과정
- 인코더: shallow embedding
- 얕은 임베딩: 하나의 노드마다 하나의 칼럼 할당됨, look up 으로 죄회 될수 있는, 의미 관계를 잘 반영할수있게 임베딩모델 학습 함
Deepwalk 방법
- 인풋으로 들어간 Karqate graph를 2차원 표현으로 임베딩을 하면 잘 분류가됨
- sparse한 형태로 성능이 떨어지는 데 skip gram 가반의 word2vec에 방법 으로 동기를 얻음
- 랜덤워크는 확률적인 방법으로 중요도 구함
- word2vec은 분포가설이 핵심
- 노드에서도 랜덤워크로 시퀀스를 만들면 자연어처럼 처리 할수있지 않을까?
- 스킵그램이 주워지면 윈도우 사이즈에 따라서 발견될수있는 가능성이 높은 애들을 예측, 이 예측과정에서 노드 임베딩 구함
- 딥워크는 유의미한 임베딩 값을 구했다는 점에서 유의미
- 임베딩을 얕게 하는데 노드가 많아질수록 파라미터가 커짐
- 노드간 공유하는 파라미터를 정보를 의존적으로 만드는 것도 중요함
- 한번도 본적없는 노드는 임베딩을 못구함: transductive함 , 귀납적으로 추론 불가능 함
- transductive learning: 전이적 학습, 이미 관측된 인스턴스 필요
- inductive learning : 학습셋으로 부터 특정 함수를 학습해서 일반화 된 추론 수행
공부사진


26일차 후기
생각보다 진도가 잘 안나간다.ㅠ
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.