Simple Message Passing on Graphs

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 พ.ย. 2024

ความคิดเห็น • 34

  • @RaynerGS
    @RaynerGS 2 ปีที่แล้ว +4

    Thanks so much for your class; I am a Ph.D. student, and your channel is helping me - way to go and Salute from Brazil.

  • @RalphDratman
    @RalphDratman ปีที่แล้ว

    Excellent! Thanks very much. That's outstandingly clear.
    The resulting system implements diffusion with conservation of total, um, node stuff.

  • @arp_ai
    @arp_ai 4 ปีที่แล้ว +6

    I enjoyed the video. Thank you! Would be awesome to mention example applications of message passing.

    • @welcomeaioverlords
      @welcomeaioverlords  4 ปีที่แล้ว +2

      Thanks Jay! This is relevant whenever information is gathered over a graph neighborhood. Graph neural network techniques and Label Propagation are examples. I hope this helps. A follow up video will expand on this to show how this same approach is used by Graph Convolutional Networks.

    • @arp_ai
      @arp_ai 4 ปีที่แล้ว

      @@welcomeaioverlords wonderful! Thanks for the answer! Looking forward to it!

  • @pavelpopov9712
    @pavelpopov9712 ปีที่แล้ว

    It’s a great video, one thing (if I understood correctly) is to take different values for nodes features vector instead of nodes initial range positions. I didn’t catch that from the first time

  • @Christian-ty5vn
    @Christian-ty5vn 3 ปีที่แล้ว +1

    Thanks! :) Enjoyed the video. Well explained and great examples.

  • @rupjitchakraborty8012
    @rupjitchakraborty8012 3 ปีที่แล้ว

    Loving your channel. Too few likes for such a good video.

  • @moustafa_shomer
    @moustafa_shomer 2 ปีที่แล้ว

    great video, thank you so much

  • @ThyRiki
    @ThyRiki 4 ปีที่แล้ว +2

    Great video! Very clear.

  • @leandrostival4326
    @leandrostival4326 3 ปีที่แล้ว

    Great explanation!

  • @TheMarcosVerissimo
    @TheMarcosVerissimo ปีที่แล้ว +1

    Wonderful video! Pity that it looks like you have stopped making them. If that were part of a Udemy course, I'd definitely take it.

    • @welcomeaioverlords
      @welcomeaioverlords  ปีที่แล้ว +2

      I have this free course: www.graphneuralnets.com/p/basics-of-gnns, and this paid course: www.graphneuralnets.com/p/introduction-to-gnns.
      And I hope to start making videos again, but needed a little (or not so little) break :)

    • @TheMarcosVerissimo
      @TheMarcosVerissimo ปีที่แล้ว

      @@welcomeaioverlords Thanks for the reply! I read the video description later, and I have already enrolled. Would you have any plans of making the also the full course self-paced? I have a project that will involve GNNs but I'm on a postdoc that involves learning a lot of things, and that leaves me little room for separating a few months to practically only take the course.

  • @maryamalizadeh4984
    @maryamalizadeh4984 3 ปีที่แล้ว

    great explanation . Thanks

  • @jevoncharles8680
    @jevoncharles8680 9 หลายเดือนก่อน

    Brilliant

  • @hayleecs4223
    @hayleecs4223 4 ปีที่แล้ว +2

    Great video, but that t-shirt tho!
    edit: seriously, thanks for the animations as well!

  • @736939
    @736939 2 ปีที่แล้ว +1

    7:35 I didn't get this: so why, when we sandwich "A", between D^(-1/2) A D^(-1/2) we know that "D" on the right side is related to the destination node?

    • @welcomeaioverlords
      @welcomeaioverlords  2 ปีที่แล้ว +3

      Because if it's on the right, it multiplies the columns of A and if it's on the left, it multiplies the rows of A. To see this, do it by hand. It will also make it easier to recall that D only has non-zero entries along the diagonal.

    • @736939
      @736939 2 ปีที่แล้ว

      @@welcomeaioverlords Thanks a lot. I think that I will buy your course, because I saw the content and you provide a good GNN explanation, also I thought that GNN's propagation is done by BFS algorihm, but you show the "waterdrop" approach, where did you read it? I tried to find good, readable GNN sources, but I saw only difficult-to-read scientific articles.

  • @leo.y.comprendo
    @leo.y.comprendo 3 ปีที่แล้ว +1

    Great video!! I am currently working on an algorithm that builds an adjacency matrix from features extracted on a convolutional layer for a set of images (deep features). However, the formula just states that A is softmax(F)@softmax(F).T. This leaves me with an adjacency matrix with real numbers. Is this valid for message passing algorithms? I could imagine that it is some sort of “weighted edges”? Thanks!

  • @seyitahmetozturk721
    @seyitahmetozturk721 2 ปีที่แล้ว +1

    I couldn't understand why you changed degree of each node (1,2,3,1,1) to (1,2,3,4,5). Maybe I missed some point but I am curious to answer.

    • @keremcomert4239
      @keremcomert4239 2 ปีที่แล้ว +1

      (1,2,3,4,5) is irrelevant to the node degrees, the degrees stay as they are. (1,2,3,4,5) was just an arbitrary assignment of values to each node, to demonstrate node features. You might as well assign any other value to each node, the idea is that when you perform the matrix multiplication, for each node in a row only the neighbors of that node are able to propagate its feature value.

  • @robmarks6800
    @robmarks6800 2 ปีที่แล้ว

    Even though I’ve almost finished my master’s, the generalization of simple scalar arithmetic such as multiplication and division to vectors still surprise me. For example going from a/d to the inv(D)*A formula. Which seems even harder to comprehend if D wouldnt be diagonal.
    Can anyone help me/point to any respurces that explain(not define) these fundamental matrix operations?

    • @welcomeaioverlords
      @welcomeaioverlords  2 ปีที่แล้ว +2

      D is always diagonal by construction. I'm not sure this is what you're asking, but I'm not claiming that element-wise division can always be straight-forwardly expressed by an inverted matrix. In this particular case, since D is diagonal and we have the definition: D*D_inv = 1, I think it's straightforward to see (do it by hand for an example) that the inverse of a diagonal matrix is simply 1/elements of that matrix.

  • @arjunashok4956
    @arjunashok4956 3 ปีที่แล้ว +1

    Why wouldn't message passing work without scaling with respect to the destination, and without the square root? i.e. just by using the initial formulation(D * A) with self-loop edges in A (and hence accounted in D), why can't I do the message passing?

    • @welcomeaioverlords
      @welcomeaioverlords  3 ปีที่แล้ว +4

      It’s not that it wouldn’t work. It might work as well or better, depending on the problem. Sometimes no normalization is better (i.e. just a sum of messages). But the paper used this parameterization because it aided in the derivation and is numerically stable.

    • @arjunashok4956
      @arjunashok4956 3 ปีที่แล้ว

      Thanks a ton! You're awesome! :)

  • @milandoshi7640
    @milandoshi7640 3 ปีที่แล้ว

    Is it possible to create a adjacent matrix from an image of a molecule or from just coordinates without knowng which components are connected ?. Thanks in advance.

    • @welcomeaioverlords
      @welcomeaioverlords  3 ปีที่แล้ว +1

      You might dig into "Latent Graph Learning".

    • @xabiergarciaandrade2656
      @xabiergarciaandrade2656 3 ปีที่แล้ว +1

      In order to derive an adjacency matrix from a coordinate file you would need to define pairwise bond lengths as threshold

  • @vishnusureshperumbavoor
    @vishnusureshperumbavoor 2 ปีที่แล้ว

    I didn't understood the part 1,2,3,1,1
    @ 4:57

    • @rafael_l0321
      @rafael_l0321 ปีที่แล้ว

      As explained in 3:01 - node 1 has degree 1, node 2 degree 2, node 3 degree 3, node 4 degree 1, node 5 degree 1