Code Monkey home page Code Monkey logo

Comments (3)

gasteigerjo avatar gasteigerjo commented on August 31, 2024 1

Hi!

People often use radius graphs since it gets around having to know the chemical bonds and edge cases where the bonds are ill-defined. This is often the case in molecular simulation. Also, methods often just perform better with a larger radius, i.e. moving further away from the chemical graph.

But you can also use multiple different graphs, as done e.g. by MXMNet or GemNet-OC.

Regarding your concern of "using the radius graph model will become very heavy and difficult to train":

  • Computing the radius graph is quite simple and incurs negligible overhead.
  • The fact that the radius graph has more edges than the chemical graph does indeed incur significant overhead. We typically observe a runtime vs. accuracy trade-off here, as mentioned above. More edges will give you better accuracy, but will make the model slower. So the question really is about what your overall target is. We write about this a bit in the GemNet-OC paper, where we then use a k-NN graph instead, which provides a much better trade-off. You can find similar results in many different papers.

from gemnet_pytorch.

jiali1025 avatar jiali1025 commented on August 31, 2024

Dear developers,

Sorry for having a related question about this repo. I am confused by the concept of "More edges will give you better accuracy". Does it mean the human knowledge of the chemical graph is not a good prior, so the model will not learn well with this? Is the "More edges will give you better accuracy" only true when data is more? Also, I think graph NN with more depth will finally see all nodes as well, just have a prior structured way of information exchange.

from gemnet_pytorch.

gasteigerjo avatar gasteigerjo commented on August 31, 2024

Does it mean the human knowledge of the chemical graph is not a good prior, so the model will not learn well with this?

That statement was referring to radius graphs: A larger radius (i.e. more edges) typically gives better accuracy.

Still, I don't think the chemical graph gives a lot of information (or a useful prior) if you have all atom positions. Inferring the graph from atom distances doesn't seem too hard to me, especially compared to how difficult e.g. energy prediction is.

Is the "More edges will give you better accuracy" only true when data is more?

I don't know how many data points you need for the above statement to be true. My guess is that you don't need much, and nowadays it's easy to create a dataset with e.g. 10k data points. That would imho already be well above the threshold where I'd expect the prior from the chemical graph to help.

Also, I think graph NN with more depth will finally see all nodes as well, just have a prior structured way of information exchange.

True. But seeing neighbors only via multiple steps (a) makes the task harder, and (b) provides less geometrical information. Think about the extreme case of every atom only seeing 1 neighbor. In this case the GNN would not be able to triangulate the position of any atom. See all the discussions around GNN expressivity, e.g. in this paper or in our DimeNet paper.

Caveat: Most statements in this post are based on intuition and experience, not explicit data.

from gemnet_pytorch.

Related Issues (14)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.