whitead / dmol-book

Deep learning for molecules and materials book
https://dmol.pub
Other
618 stars 121 forks source link

Question about SchNet explanations #176

Closed resnant closed 2 years ago

resnant commented 2 years ago

Hi, I have a question about the SchNet explanations in this book.

In 8.11 The SchNet Architecture, there is the following statement:

... Although we have an edge update equation, like in GCN we do not actually override the edges and keep them the same at each layer.

In my understanding, the edge feature is updated through MLP h1 and h2 with the following equation. Is it correct?

$$ \vec{e}^{'}_k = \phi^e\left( \vec{e}k, \vec{v}{rk}, \vec{v}_{sk}, \vec{u}\right) =h1\left(\vec{v}{sk}\right) \cdot h_2\left(\vec{e}_k\right) $$

I would appreciate it if you could provide any additional explanations or point out my misunderstanding. Thank you in advance.

BTW, this book is truly awesome and now I am working on the Japanese translation project of this book with collaborators.

whitead commented 2 years ago

Very impressed with the translation effort! Looks great. Let me know if I can help in anyway , aside from learning Japanese :)

Regarding your question - I will update to make it more clear. What I'm saying there is that when we do the next SchNet layer, the $\vec{e}_k'$ term (update to edge features) will be discarded and we'll use $\vec{e}_k$ again. You can see this in Fig 2 from paper

image

Notice how only $x_i^{l}$ (node features) is updated to $x_i^{l+1}$, but $r_i$ (features) are not updated.

whitead commented 2 years ago

Feel free to re-open if you any further questions!

resnant commented 2 years ago

Sorry for the late reply. It makes sense! Thank you for the kind explanation.