Closed IRilyDonKnow closed 1 year ago
Your analysis seems to be correct, but do these features of directed crystal graphs badly affect the prediction accuracy of CGNN?
Under the assumption that the crystal graph must be undirected, the first problem is easily solved by the symmetrization of adjacency matrix: A_ij^sym = max(A_ij, A_ji).
Is "the second problem" really an issue? Even if the connection to the apparent nearest atom is excluded, more important connections remain in terms of the chemical bonding, I think.
Under the assumption that the crystal graph must be undirected, the first problem is easily solved by the symmetrization of adjacency matrix: A_ij^sym = max(A_ij, A_ji).
Is "the second problem" really an issue? Even if the connection to the apparent nearest atom is excluded, more important connections remain in terms of the chemical bonding, I think.
Thanks for your reply! I have read some other papers, such as Crystal Graph Convolutional Neural Networks for an Accurate and Interpretable Prediction of Material Properties(DOI: 10.1103/PhysRevLett.120.145301). In its supplemental material (Ⅰ.A. Construction of crystal graphs), its author has mentioned that because of convolution used the connectivity between atoms becomes less important. I don't know if the connectivity will make a big difference to the result.
If you can't figure it out, I think you have to study your hypothesis of the graph construction on yourself.
I would like to close this issue because the reported phenomena are not of bugs of mp_graph.py
. However, you can continue to communicate with me in this thread.
I have tried some relaxed structures of the Material Project dataset to construct suitable crystal graphs. These data are from a Kyoto University’s project phonondb@kyoto-u. I use the package pymatgen to import these structures to mp_graph.py.
With the tools mp_graph.py, I found that except for some structures with the same tetrahedral configuration as SiO2, such as Si (mp-149) and SiC(mp-7140) most of structures' crystal graphs have the two problems:
Crystal Graphs are undirected graphs, so any two adjacent atoms should be connected to each other. The first problem is caused by the clustering algorithm. The k-means cluster used in mp_graph.py is to find the nearest atom cluster to the target atom. However, in a situation that Atom A is only connected to Atom B while Atom B is connected to many atoms and A-B distance is not the shortest, the clustering algorithm will exclude the connection from B to A but retain the connection from A to B.
The second problem is caused by expressing the distance by percentage instead of absolute distance. The father atom has a bigger radius, so the percent distance is smaller in fact. Because of the reason, the k-means algorithm will exclude the nearest atom.