P스테이지에서 그래프 활용해서 만들 수 있는 프로젝트 주제가 있다면 무엇이 있을까요?
- 구현해볼수 있을만한 주제가 어떤어떤것이 있나요?
- 그래프 관련이 안보였다.
- knowledge graph에 gnn을 사용하는 연구분야가 있다.
- 이게 가능할지는 모르겠다.(난이도가 쉽지는 않음)
- 이유한님이 하셨던 캐글 링크 - 코로나 백신
- 캐글에 GNN쳐보면 많이 나옵니다.
- link prediction, node classification (좀 쉬운것)
- 추천시스템도 link prediction의 일종.
- 실제로 knowledge graph로 하면 그래프 분석 느낌이 좀 나요.
- Knowledge DB가 graph화 된게 Knowledge graph라고 생각하시면 될 것 같아요.(여러 관계를 각각 인접행렬화)
- 관련 아티클
그래프분석알고리즘이랑 그래프네트워크분석은 뭐가 다른가요?
- 큰 차이가 없다.
- 그래프 분석이 좀더 큰 느낌
실습/과제 테스트코드에 들어가있는 노드와 엣지 데이터를 GUI로 그려서 데이터(노드나 가중치나 엣지)를 뽑아주는 툴이 있나요?
- Node2Vec으로 classification 하는 실습에서..
- NetworkX 내부에도 visualization 해주는 툴은 많음.
- graph visualization 툴도 많습니다.
- 근데 그림을 먼저 그려놓고 데이터로 뽑는건 잘 모르겠네요. 대부분은 데이터 형태가 먼저 존재하고 그걸 그립니다.
- 데이터셋 링크 슬랙에 올려주심
열심히 부스트캠프에서 한 학습정리가 인턴/취업 연계에 도움이 될만할지? 학습정리말고 다른 포트폴리오를 만들어둔다면 뭐가 좋을지?
- 학습정리는 지식을 쌓는것으로써의 의미로서는 좋은데, 포트폴리오에 적는건 그렇게 도움될지 잘 모르겠어요.
- 조교님은 학부취업을 하시는게 아니기 때문에 기업에서 어느정도를 원하는지...
- 지식도 지식이지만, 사실상 실무 경험이 있는게 더 좋을것같은데.
사이드프로젝트에서 추천기능을 구현하고싶은데, 어려운 수준이 아니라 간단한 수준이라도 직접 만들어 보는게 포트폴리오에 도움이 될까요? 만약 만들어보는게 좋을 것 같다면 추천해주실만한 모델이나 라이브러리나 레퍼런스가 있을까요?
- 당연히 도움이 됩니다.
- 라이브러리는 많은데, 라이브러리를 사용하지 않고 간단한 모델이라도 구현해보는것을 추천드립니다.
- collaborative filtering이나, latent factor model같은것을 처음부터 만들어보는걸 추천드려요.
- 근데 사실 교과서에 나오는 것과 트렌드의 갭이 너무 커서..
- 중간정도에 있는 라이브러리들은 implicit library?
- 실제그래프에서는 평점데이터 같은걸 남기지 않는 경우가 많아서, 행동적인 부분(클릭 여부 등)을 0/1로만 구분해 평가하기도.
- 논문
- 최신 트렌드는
- Knowledge graph를 사용해서 추천시스템 성능을 향상시키는 연구가 많이 되고 있다.
- KGAT(Knowledge Graph Attention Network) - Knowledge graph를 GAT에 적용시킨버젼.
- 학회 티어
- 1티어 : ICML/NIPS/ICLR
- 1.5티어 : AAAI/ IJCAI /// 데이터쪽은 KDD/WWW
- 2티어? : ICDE/ICDM~ CIKM/WSDM/RecSys
초보자가 볼 수 있는 그래프 책 추천해주세요
- 초보자 수준 : 이 수업듣고 나서!
- cs224w : 스탠퍼드 그래프 강의인데, 강의도 좋고, material로 쓰는 교재도 좋습니다.
전자공학이 그래프 혹은 ML과 어떤 연관이 있나요? 적용되는 분야가 따로 있나요?
- cs관련 제외하고, 전자과의 통신 관련 정보이론 수업!
- ML에서 기본적으로 쓰는 entropy, cross-entropy, KL-divergence같은 개념들을 처음 배웠었음.
- 수학적인 툴을 배웠음.
- 전기/전자 연구실에서 수학적 베이스를 가지고 머신러닝으로 가시는 분이 많은데, 수학적 베이스를 많이 필요로 하는 아랫단을 많이 하는듯.
조교님은 전기전자를 전공하셨는데, CS 전공자에 비해 지금 연구하시는 데에 더 유리한 점이 있었나요?
- 딱히.. 이 랩실은 CS 전공자들도 다 수학을 많이 배우고 들어오기 때문에.
- 굳이 찾자면 전자과 출신이 수학 공부를 더 많이 했을 확률이 있다 정도?
조교님이 도메인 중에 그래프를 선택하신 계기가 무엇인가요?
조교님이 ML을 처음 배우실 때 어떻게 공부를 시작하셨는지?
- 학부 수업 때 ML을 안배웠는데, 모두를 위한 딥러닝으로 시작했다가, Coursera의 Andrew Ng 강의로 시작
- 그 이후로는 석사때 학교수업을 듣거나하면서 공부.
- 석사생활을 시작하기에 부족한거같냐라고 물어보시면 yes인것같은데, 면접을 통과하기에는 핵심적인 내용이 많다.
- 그런 핵심적인 내용들을 공부해두는게 좋은것같다.
P스테이지에서 배우면 좋을것같다고 생각하시는 주제가 무엇이 있을지?
- 이 중에 필수(또는 공통)코스로 하나만 꼽는다면?
- 관심사가 있는 것으로 설정하시는게..
- 기초가 될 만한 내용이 따로 있진 않은것같고.. 배워두면 다른데에서 쓸수 있는건 모델 최적화..
- 모델 최적화는 아무래도 수학적 베이스를 많이 다룰것같긴해요.
- 기업에서 가장 많이 뽑는건 Vision이나 NLP.
- NLP나 Vision은 데이터 특화, 목적성이 있는 Task인데,
- 그래프는 Task가 따로 존재한다기보다는, 어떤 데이터를 그래프로 표현하느냐하는 문제라서...
- 범용성은 있지만 Application 단보다는 좀 방법론적인 내용.
- 그래서 네이버 NLP에서도 하부 부서로 Graph를 뽑고있음.
조교님이 이전에 프로젝트 할 때 데이터 편향된 케이스 얘길 하셨는데
- Over Smoothing이랑 동일한 건지 궁금하네요
- 논문이 있는데, GNN에서 layer를 너무 많이 쌓으면, 더 많은 이웃 정보들을 가지게 되므로, 그래프 전반적인 데이터를 가지게된다.
- 레이어를 깊게 쌓으면 구조적인 의미가 사라진다.
- CNN과 구조적으로 다른 점은... 실제 그래프는 대부분 작은 세상으로 연결될 수 있다. 그게 CNN과의 차이가 있어서 그럴수도?
GNN에서 그래프 수는 그럼 그냥 2-3개?
- GNN에 ResNet을 사용하려는 연구도 있습니다.
- residual을 사용하면 더 깊게 쌓을 수 있다.. 이런 얘기들이 있는데, 사용되는 task가 한정되어있다고.
- 일반적인 모델은 2-3개정도만 하는게 좋은 것 같아요.
Collaborative filtering이 시간이 많이 들던데..