pyg-team / pytorch_geometric

Graph Neural Network Library for PyTorch
https://pyg.org
MIT License
20.55k stars 3.57k forks source link

Request to Implement GeoGNN #8626

Open jasona445 opened 6 months ago

jasona445 commented 6 months ago

🚀 The feature, motivation and pitch

I'd like to implement the paper Geometry-enhanced molecular representation learning for property prediction by Fang et al.

In short, they propose a novel architecture called GeoGNN which encodes additional spatial information about molecular geometries by modeling both atom to bond and bond to bond angle relations. They do so by creating two graphs, one for each relation type as shown below

Screenshot 2023-12-15 at 3 11 28 PM

The message passing for graph $G$ (the atom-bond graph) looks like

\begin{aligned}
    \mathbf{a^{(k)}_{u}} &= AGG^{(k)}_G\left( \{ (\mathbf{h^{(k-1)}_u}, \mathbf{h^{(k-1)}_v}, \mathbf{h^{(k-1)}_{uv}} : v \in \mathit{N}(u) \}\right)\\
    \mathbf{h^{(k)}_{u}} &= COMBINE^{(k)}_G (\mathbf{h^{(k-1)}_{u}}, \mathbf{a^{(k)}_{u}})
\end{aligned}

and for graph $H$ (the bond-bond angle graph) it looks like

\begin{aligned}
    \mathbf{a^{(k)}_{uv}} &= AGG^{(k)}_H\left( \{ (\mathbf{h^{(k-1)}_{uv}}, \mathbf{h^{(k-1)}_{uw}},  \mathbf{x_{wuv}}) : w \in \mathit{N}(u) \} \right. \notag \\ 
    & \qquad \qquad \qquad \left. \cup \{ (\mathbf{h^{(k-1)}_{uv}}, \mathbf{h^{(k-1)}_{vw}},  \mathbf{x_{uvw}}) : w \in \mathit{N}(v) \}\right)\\
    \mathbf{h^{(k)}_{uv}} &= COMBINE^{(k)}_H (\mathbf{h^{(k-1)}_{uv}}, \mathbf{a^{(k)}_{uv}})\\
\end{aligned}

They show it does quite well on the MoleculeNet dataset. Would it be possible to contribute it to PyG?

Screenshot 2023-12-15 at 4 00 38 PM

Alternatives

There's a repo here written in paddle.

Additional context

No response

rusty1s commented 6 months ago

Yes, this is a welcome contribution :)