Graph Convolutional Networks (GCNs) made simple

Поделиться
HTML-код
  • Опубликовано: 17 май 2020
  • Join my FREE course Basics of Graph Neural Networks (www.graphneuralnets.com/p/bas...! This video introduces Graph Convolutional Networks and works through a Content Abuse example. For a hands on example with code, check out this blog: blog.zakjost.com/post/gcn_cit...
    Mailing List: blog.zakjost.com/subscribe
    Discord Server: / discord
    Original Paper: openreview.net/pdf?id=SJU4ayYgl
    Patreon: / welcomeaioverlords

Комментарии • 159

  • @SuperNile
    @SuperNile 4 года назад +82

    By far the best intro explanation I've seen soon far, and its significantly helped me put the papers Ive been reading into context

  • @andrewminhnguyen9446
    @andrewminhnguyen9446 3 года назад +15

    Thank you for this simple and straight-forward explanation. GNNs have been intimidating up to this point because I couldn't visualize the operations.

  • @pranavpandey2965
    @pranavpandey2965 3 года назад +2

    Thank you so much for this great explanation!!. I've been searching and browsing for hours, and this is best I can found about GCNs.

  • @matthewstubbs6308
    @matthewstubbs6308 4 года назад +1

    So easy to apply something without understanding the process. graph networks can be tough to talk about. you did a great job with your descriptions, language and structure of the video. Looking forward to your video on relational GCNs.

  • @DavenH
    @DavenH 3 года назад +3

    Thanks for these videos man. You've got a good radio voice for this stuff, makes it clear and easy to consume without annoying "ums" and "ahhs".

  • @vunguyen2246
    @vunguyen2246 2 года назад +2

    I have in pain for 2 months to try understand wtf is GNN, GCN. Your video, just 9 minutes make it clear. Thank you very much. Looking forward to more from you

  • @omnitomato
    @omnitomato 4 года назад +2

    Thank you for the explanation! It answered my biggest question how neural network is modeled on graph and why it is useful!

  • @user-xn8wg6yw7g
    @user-xn8wg6yw7g 4 месяца назад

    Clear, honest, patient explanation. Thank you. You're doing this right, and you're a big asset to people who want to learn. Please don't change your approach at all.

  • @ayushdaksh3680
    @ayushdaksh3680 3 года назад +1

    The best explanation I have come across, going to use it as a part of my research project. Thanks!

  • @fazlfazl2346
    @fazlfazl2346 2 года назад +1

    Among the top 3 lecture series that I have seen on the topic on RUclips.

  • @submagr
    @submagr 2 года назад +1

    I am glad I watched this video to get quick idea about GCN. Thank you so much!

  • @amiarora79
    @amiarora79 2 года назад

    The best introduction to GCN I have come across. Thank you!

  • @YangJackWu
    @YangJackWu 3 года назад

    Thanks for taking the time to produce this. Very clear

  • @saurabhsawant9182
    @saurabhsawant9182 4 года назад +1

    Amazing explanation man. You got me so excited now. Please make more videos, I love it.

  • @sheesh_kebab
    @sheesh_kebab Год назад +1

    Amazing explanantion! I've tried understanding this elsewhere but it's really vague, your animations helped a ton. Thanks.

  • @kameelamareen
    @kameelamareen 8 месяцев назад +2

    Simply beautiful ... many thanks for this video !

  • @maulindusarkar4581
    @maulindusarkar4581 Год назад +1

    The best explanation on how GCN works! Great work!

  • @scraps7624
    @scraps7624 Год назад

    Oh man, 10/10, incredible explanation. Such a great breakdown of the concepts and the jargon that is a bit of a barrier at the beginning
    I can't thank you enough 😅

  • @prakharpandey8844
    @prakharpandey8844 4 года назад

    Great! The best explanation of the topic I found till now....good job man

  • @ashishrahul4692
    @ashishrahul4692 2 года назад +5

    I've recently started trying to understand GNNs, and have been hunting for videos & blogs that explain the concepts. This is hands down the best video out there!!
    With every other video that I've watched, I'd only gain a partial understanding of the concept, and leave with so many unanswered question. Some videos would even confuse me more than I already was. LOL. But this video has done a phenomenal job of explaining what GNNs really are, and all the mathametical operations involved.

  • @arjunchaudhuri5781
    @arjunchaudhuri5781 4 года назад +1

    Excellent introduction. Loved it.

  • @mikejason3822
    @mikejason3822 3 года назад +2

    Best explanation I have seen so far!

  • @HandokoSupeno
    @HandokoSupeno 3 месяца назад

    Best straight-forward explanation i've ever seen. Thanks

  • @snowjordan6822
    @snowjordan6822 3 года назад

    Best tech video I've seen. Looking forward to more from you.

  • @gabywang5327
    @gabywang5327 3 года назад

    This video is awesome! Looking forward to more fantastic content!

  • @MShahbazKharal
    @MShahbazKharal Год назад

    God! I spent hours on articles and this video was sitting here all along. Thank you, a lot.

  • @sathyanarayananvittal7832
    @sathyanarayananvittal7832 Год назад

    Thank you. Wonderful examples

  • @axolotl_observer
    @axolotl_observer 2 года назад

    thank you so much for those videos on graph NNs! they really help me to understand them conceprually

  • @skippy1234459
    @skippy1234459 2 года назад

    Great simple intro. Thanks for making this!

  • @user-pe4xm7cq5z
    @user-pe4xm7cq5z 5 месяцев назад +1

    You're awesome! Absolutely amazing explanations!! THANK YOU

  • @sdwysc
    @sdwysc 2 года назад +1

    Great explanation.. Thanks for your time, effort for helping people.

  • @bingbongtoysKY
    @bingbongtoysKY 2 года назад

    great channel! I learned about you from your MLST episode! great work

  • @BeanieMcBean
    @BeanieMcBean 4 года назад +4

    I am a complete newbie to AI and I'm so happy I found this video, I got desperate trying to get behind the idea of GCNs but you made it so clear, wow! Thanks a lot for this video, I also joined the Discord server - such a cool idea to connect with people all over the world who are interested in AI! :-)

  • @majdalhafi3475
    @majdalhafi3475 2 года назад +1

    Nice and simple elaboration.
    Thank you

  • @elirhm5926
    @elirhm5926 2 года назад

    Best explanation for GCN! Thank You.

  • @sparshbadjate2538
    @sparshbadjate2538 4 месяца назад

    literally made it so simple. amazing explanation

  • @jtetrfs5367
    @jtetrfs5367 2 года назад

    Well explained! Excellent work!

  • @emadarmiti
    @emadarmiti 3 года назад

    The best explanation I've seen soon far. Thanks a lot...

  • @hugobotha8066
    @hugobotha8066 5 месяцев назад

    This whole series is excellent.

  • @KelvinMeeks
    @KelvinMeeks 3 года назад

    Really appreciate the quality of your videos Zak.

  • @samiissaadi53
    @samiissaadi53 3 года назад

    Very well explained, thank you!

  • @buttforce4208
    @buttforce4208 4 года назад

    Great explanation, well done!

  • @junxu973
    @junxu973 2 года назад +1

    short and clear, many thanks!

  • @jff711
    @jff711 2 года назад

    Very well-explained. Thank you.

  • @machinelearningdojowithtim2898
    @machinelearningdojowithtim2898 4 года назад

    Great stuff Zak!

  • @ceevaaaaa
    @ceevaaaaa 3 года назад +1

    The most intuitive/layman explanation by far; Thank you very much !!! Subscribing. #Respect ++

  • @oleksandrasaskia
    @oleksandrasaskia 6 месяцев назад

    Amazing video! Thanks so much!

  • @jairjuliocc
    @jairjuliocc 2 года назад

    Finally i understand this topic , thank you for put this simple

  • @saadwazir
    @saadwazir Год назад

    a very good explanation and very simple tnx man you made my day

  • @nurkleblurker2482
    @nurkleblurker2482 2 года назад +1

    I wish I saw this video days ago. Instant subscribe

  • @Hoi_music
    @Hoi_music 4 дня назад

    This was such a great video!!

  • @joydeepkr.devnath193
    @joydeepkr.devnath193 4 года назад

    splendid work!

  • @RoobertFlynn
    @RoobertFlynn 2 года назад +1

    Great content !

  • @bennyraichu
    @bennyraichu 2 года назад +1

    Clear and concise!

  • @abhinavmishra9401
    @abhinavmishra9401 3 года назад +1

    Beautiful. Thanks a ton.

  • @rakeenakiel3038
    @rakeenakiel3038 5 месяцев назад

    Amazing video!

  • @user-hs4hm6lv1w
    @user-hs4hm6lv1w 11 месяцев назад

    Thanks buddy... best explanation

  • @mariapaulacolombi9548
    @mariapaulacolombi9548 10 месяцев назад

    THANK YOU this was super helpful

  • @johnspivack6520
    @johnspivack6520 Год назад

    Thank you. Excellent, clear introduction. Why can't anyone else do this? Are they just incompetent at explaining things or do they enjoy leaving out key pieces and giving students grief? Anyway, praise God that you're a different type of person and it's much, much appreciated.

  • @Atishay568
    @Atishay568 3 года назад +4

    I just can't thank you enough

  • @user-fc8fh3pp2i
    @user-fc8fh3pp2i 2 года назад

    literally the best explanation

  • @sasankv9919
    @sasankv9919 4 года назад +2

    Just when I needed.

  • @doronknowsbest3
    @doronknowsbest3 Год назад

    This is a fantastic video

  • @UrMum-kn8bj
    @UrMum-kn8bj 3 года назад +1

    Incredible job! Thank you for making this!

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад

      Thanks Mom!

    • @UrMum-kn8bj
      @UrMum-kn8bj 3 года назад

      @@welcomeaioverlords You're welcome, son; I am very proud of you 😂

  • @shanli7257
    @shanli7257 2 года назад

    Thanks for the excellent introduction of GCN! You've made it so simple to understand. By any chance that you can provide an introduction of Graph Attention neuralnetwork?

  • @nicolasugrinovic2886
    @nicolasugrinovic2886 4 года назад +1

    great explanation

  • @michelleatias6968
    @michelleatias6968 3 года назад +1

    awesome explanation . Than you.

  • @TheAirum
    @TheAirum 3 года назад +1

    Explained really work.

  • @wahabf3071
    @wahabf3071 4 года назад

    Neat and clean!

  • @maqboolurrahimkhan
    @maqboolurrahimkhan 3 года назад

    thanks :) very nice explanation

  • @chinmayrath8494
    @chinmayrath8494 Год назад

    Thank you very much 🙏🏻

  • @hansalas
    @hansalas 4 года назад +1

    Waiting for Relational GCNS..... Awesome explanation btw

  • @BlockDesignz
    @BlockDesignz 4 года назад

    Very well done. Good pace, and very helpful animations.
    Video Suggestion: Graph Attention Networks for whole graph classification.

    • @welcomeaioverlords
      @welcomeaioverlords  4 года назад

      I wanted to cover GATs, so I’ll plan to cover that use case if/when that happens. Thanks for the comment!

  • @monsieur910
    @monsieur910 4 года назад +1

    Nice video!

  • @xavierromerocarrion1369
    @xavierromerocarrion1369 Год назад

    Excellent bro. You are a crack.

  • @artem_isakow
    @artem_isakow 10 месяцев назад

    Thanks!

  • @ericklestrange6255
    @ericklestrange6255 3 года назад

    amazing

  • @fatimaothmana9115
    @fatimaothmana9115 4 года назад

    WOW this is real amazing and very clear please more explanation graph attention model please

  • @WowPlusWow
    @WowPlusWow 3 года назад

    That was a good video

  • @bluesky3149
    @bluesky3149 4 года назад

    Great explanation. You should make videos much more frequently

    • @welcomeaioverlords
      @welcomeaioverlords  4 года назад

      Thanks for the compliment! I agree with you that I need to pickup the frequency.

  • @prarthana1122
    @prarthana1122 2 года назад

    Thank you for the lecture.
    I have a list of datasets, each data contain information of adjacent face points. i have conveted those points to graph using NetworkX and Deep graph library. My problem is now how do I use those graph or adjacent face points for data clustering? Basically, How do I cluster using list of graph points?

  • @rajsahu3136
    @rajsahu3136 3 года назад

    Thanks

  • @paulnguyen9254
    @paulnguyen9254 3 года назад

    A+!!! subbbed

  • @saintshing
    @saintshing 10 месяцев назад

    Thanks for the video. I have some questions. Do different nodes share the same weights (across layers)? How do you train the model based on backpropagation?

  • @waleedrazzaq2994
    @waleedrazzaq2994 Год назад

    best one

  • @utkarshkonge3494
    @utkarshkonge3494 3 года назад +1

    Beautiful explanation! I wanted to ask what happens to the information at the node itself in the GCN layer ? Does that get aggregated with its neighbors?

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад +1

      That’s exactly right. In GCN, each node is given a self-connection, so it’s in its own neighborhood. Then it’s information is treated the same as its neighbors. Other model architectures handle this differently. For example, R-GCN gives self-connections special treatment by having a dedicated projection matrix. Others like GraphSAGE and GAT concatenate the node information with the neighborhood information, so the representation size doubles.

  • @stefanbschneider
    @stefanbschneider 3 года назад

    Great explanation, thanks! Are the fully connected NNs inside each GCN layer just 2-layer dense networks with just input and output layer? Or could they be deep NNs with multiple hidden layers?

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад

      In the paper, one GCN layer = 1 NN dense layer. It’s just a single learnable projection matrix. But that’s not a fundamental restriction.

  • @labhanshnaik1065
    @labhanshnaik1065 9 месяцев назад

    thanks

  • @ipodyy6744
    @ipodyy6744 3 года назад +1

    If this video can come along with a hands-on coding tutorial it would be perfect!

  • @-arabsoccer1553
    @-arabsoccer1553 4 года назад +1

    Amazing tutorial ! i have seen a lot of explanation and this the best one clear and simple.
    - But i have a question how we can use this as a learning process ,is the weight matrix will be shared between a different graphs ?(i mean after first learning we will have weights for layer 1 and layer 2 which used to classify nodes in graph 1,is these weight will updated for each node representation ,is these weight matrices will be updated by passing different graph until we finish the learning phase,so we can use the same filter (weights) to classify un-seen nodes in different graphs.)
    - how we can apply same concept to classify the node(Pixel) in the image segmentation problem ,since each node(Pixel ) will have different number of classes.
    - can you give an explanation for the pooling operation in Graph network

    • @welcomeaioverlords
      @welcomeaioverlords  4 года назад

      Glad you enjoyed. If you'd like to discuss further, please join the Discord server.

  • @Ruhgtfo
    @Ruhgtfo 3 года назад

    what if the node send message with loop?

  • @Subby907
    @Subby907 4 года назад

    Hey, great video. For a GCN is it necessary to have the adjacency matrix defined in advance or it can be learned?

    • @welcomeaioverlords
      @welcomeaioverlords  4 года назад +1

      GCN as originally described was not for link prediction tasks, but node/graph classification. So the graph connections should be pre-defined. But that's not to say you can't adapt it. The R-GCN paper describes a link prediction task, for example. They use GCN to learn node embeddings and then use those node embeddings with a DistMult scoring function and negative samples for training. This allows you to predict missing links in the adjacency matrix.

  • @sunaaa835
    @sunaaa835 Год назад

    I want to ask about osnet . Is it consider as a gcn?

  • @user-co4kk2lp9v
    @user-co4kk2lp9v 4 месяца назад

    nice

  • @rajinlaxus3835
    @rajinlaxus3835 3 года назад

    where do we find the karate club input data? I want to this with my own data. already have the node connections as well as the weights of each connection. Great video btw

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад

      It's built into standard graph libraries, like DGL and NetworkX.

  • @alinamanmedia
    @alinamanmedia 3 года назад

    Thanks for your great videos. How can GCN differentiate zero-weight edges with not connected nodes?

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад +1

      Hi Ali. GCN doesn’t use edge weights. However, I’ve seen them included (even learned) in the GCN-LPA paper, which basically learns the edge weights that maximize performance of label propagation. So there are lots of options. That said, I don’t know what an edge weight of zero means.

    • @alinamanmedia
      @alinamanmedia 3 года назад

      @@welcomeaioverlords Thank you very much. I'm gonna read the paper.

  • @ThePritt12
    @ThePritt12 2 года назад

    3:55 is it the same neural network for every node? shared parameters? or a unique NN for every node?

    • @welcomeaioverlords
      @welcomeaioverlords  2 года назад +1

      Same. That's what makes it convolution-like: weight sharing.

  • @MrTopsen
    @MrTopsen 3 года назад

    Very good explanation! I was wondering why the implementation of GCN in PyTorch Geometric only permits Addition as aggregate function? It might be the wrong forum to ask this question.
    Thanks for the video though! :)

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад

      I’m not familiar with PyG, but it looks like they use the normalization and adjacency reparameterization that they paper develops. This scales the messages by the inverse of degree, so should effectively take the average.

  • @amitsanger952
    @amitsanger952 3 года назад

    Brother you look like famous Hollywood star Brad Pitt. Even your voice is similar to him. love it.

  • @bryancc2012
    @bryancc2012 3 года назад

    great video but didn't get the first step of the example, maybe IP address and accounts is not a typical graph? what is the different to use a GCN in this or to use ip address and account information as a feature combine with the content and do classical classification? thanks

    • @welcomeaioverlords
      @welcomeaioverlords  3 года назад +1

      Thanks for the question Bryan. How do you use account ID and IP address as features in a model? They are very high cardinality, so it's not clear how you use them. This is precisely why graph methods are useful for these types of features.