-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix edge_insensitive
homophily measure
#4152
Conversation
Thank you. I think you are correct regarding I'm not sure why we can't make use of |
|
Thanks for your reply!
It is not exactly clear to me how you derive at 6/7 for h_0. To me, this looks like the edge homophily function restricted to a certain class. In particular, there exists no node with degree higher than 1, which leads to: h_0 = (1 + 1 + 1 + 0 + 0) / (1 + 1 + 1 + 1 + 0) = 3 / 4 The paper also mentions that they "focus on the edge homophily in this work". |
Oh, I computed |
Ah, I see, that makes sense. Thanks for your reply. What does that mean for this PR? Is the current implementation still wrong in your opinion? |
No, we can maintain to use edge homophily function to compute In conclusion, I think we need to
|
Sounds good. Thank you! Let me know if you want to update the PR accordingly. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed.
Regarding #3977
I found some gaps between the definition of the feat homophily measure in the paper and the implementation of it in #3977, so I suggest to fix them.
The paper suggested the measure as 'summation over C classes (0 to C-1) and division by C-1'.
However, the code has used the mean operator, which leads to wrong calculation.
To compute h_k value, the code has used edge homophily function, but I think the definition of h_k is different from it.
We have to consider the degrees of each node, instead of the number of edges.
I think the answers of the test cases need to be corrected too.