pygcn icon indicating copy to clipboard operation
pygcn copied to clipboard

What is the difference between two adjacency matrix normalization?

Open Yfhu1103 opened this issue 4 years ago • 5 comments

Hello, thanks for the amazing work. In your implementation, you use D^-1A, but I noticed that some other work use D^-1/2AD^-1/2, I suppose these two calculation won't get the same normalized adjacency matrix. Which one should I choose? Or they will have the same performance? I think maybe in a large graph(A is very big), D^-1/2AD^-1/2 will roughly equal to D^-1A, is that correct?

Yfhu1103 avatar Oct 08 '19 07:10 Yfhu1103

You can treat this choice as a hyperparameter and try both versions if you want to be sure -- there will most likely be a slight difference in performance.

On Tue, Oct 8, 2019 at 9:01 AM Mrslock [email protected] wrote:

Hello, thanks for the amazing work. In your implementation, you use D^-1A, but I noticed that some other work use D^-1/2A D^-1/2, I suppose these two calculation won't get the same normalized adjacency matrix. Which one should I choose? Or they will have the same performance? I think maybe in a large graph(A is very big), D^-1/2AD^-1/2 will roughly equal to D^-1A, is that correct?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/tkipf/pygcn/issues/47?email_source=notifications&email_token=ABYBYYFQXQCOO7HHSALN46TQNQV4VA5CNFSM4I6NYVVKYY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HQIMFZQ, or mute the thread https://github.com/notifications/unsubscribe-auth/ABYBYYH7NCL3AOR3YIRIUI3QNQV4VANCNFSM4I6NYVVA .

tkipf avatar Oct 08 '19 07:10 tkipf

Thanks, but I still cannot figure out what's the meaning of D^-1/2AD^-1/2, I think D^-1A makes sense, while some people say D^-1/2A*D^-1/2 is symmetric, why we need symmetry?

Yfhu1103 avatar Oct 08 '19 08:10 Yfhu1103

Consider that all the nodes have the same amount of information to share with their neighbors. If node V has more neighbors than node U, then accordingly V contributes less to each of its neighbors than U does, and this is why we need symmetry. I hope this intuitive explaination make sense.

YiBo-stu avatar Mar 02 '20 07:03 YiBo-stu

Lassser66

Consider that all the nodes have the same amount of information to share with their neighbors. If node V has more neighbors than node U, then accordingly V contributes less to each of its neighbors than U does, and this is why we need symmetry. I hope this intuitive explaination make sense.

Dear Lee, thank you for the answer but I am still confused. Doe sit mean that by making a matrix symmetric we consider the same amount of contribution for each node to its neighnours? Therefore, U and V have different amount of information, right? thank you in advance for your response

fansariadeh avatar Apr 18 '20 01:04 fansariadeh

Consider that all the nodes have the same amount of information to share with their neighbors. If node V has more neighbors than node U, then accordingly V contributes less to each of its neighbors than U does, and this is why we need symmetry. I hope this intuitive explaination make sense.

Here, in the question he asks about normalization. Can you please explain why we need to make the adjacancey matrix symmetric? it almost double the number of adeges and add extra information to the system. Your help is apppreciated

fansariadeh avatar Apr 18 '20 01:04 fansariadeh