Problem: Explain what an MLIP is.
Solution: A better name might have been MLPES (machine-learned potential energy surface), but MLIP (machine-learned interatomic potential) is the standard term (it should not be confused with e.g. a pairwise interaction potential like the Lennard-Jones potential).
That is, within the Born-Oppenheimer approximation, the ground state PES is just an effective potential \(V(\mathbf x_1,…,\mathbf x_N)\) defined on the nuclear configuration space \((\mathbf x_1,…,\mathbf x_N)\in\mathbf R^{3N}\) on which the nuclei dynamics are adiabatic. Treating the nuclei as classical point masses, it follows that the \(i^{\text{th}}\) nucleus experiences a conservative force field \(\mathbf F_i(\mathbf x_1,…,\mathbf x_N)=-\partial V/\partial\mathbf x_i\).
An MLIP is then just some parametric neural network ansatz seeking to approximate \(\hat V(\mathbf x_1,…,\mathbf x_N|\boldsymbol{\theta})\approx V(\mathbf x_1,…,\mathbf x_N)\). The corresponding MLFF (machine-learned force field) is thus \(\hat{\mathbf F}_i(\mathbf x_1,…,\mathbf x_N|\boldsymbol{\theta}):=-\partial\hat{V}/\partial\mathbf x_i\) (note: the nuclear charges \(Z_1,…,Z_N\in\mathbf Z^+\) of the \(N\) nuclei are also considered inputs to the MLIP, and for more sophisticated MLIPs one may also input spin information, a global charge, etc.).
To be more precise, not just any estimator \(\hat V(\mathbf x_1,…,\mathbf x_N|Z_1,…,Z_N,\boldsymbol{\theta})\) counts as an MLIP. There are certain fundamental requirements (the LAS trio: locality, analyticity, symmetry) that must be fulfilled:
- Locality: \(\hat V(\mathbf x_1,…,\mathbf x_N|\boldsymbol{\theta})=\sum_{i=1}^N\hat V_i\) can be decomposed as a sum of local potentials experienced by each of the \(N\) nuclei, that is \(\hat{V}_i\) depends only on the nuclei \(\{\mathbf x_j:r_{ij}<r^*\}\) within a radius \(r^*\) of \(\mathbf x_i\) (strictly speaking, the locality assumption may be relaxed if long-range electrostatics matters). By the triangle inequality, a corollary of this is that \(r_{ij}>2r^*\Rightarrow\partial\hat{\mathbf F}_i/\partial\mathbf x_j=0\).
- Analyticity: \(\hat V(\mathbf x_1,…,\mathbf x_N|\boldsymbol{\theta})\) is smooth with respect to the nuclear coordinates \((\mathbf x_1,…,\mathbf x_N)\in\mathbf R^{3N}\), so in particular the forces \(\mathbf F_i\) actually exist! (it should of course also be suitably smooth with respect to the parameters \(\boldsymbol{\theta}\) otherwise gradients wouldn’t be able to backprop).
- Symmetry: the usual Noetherian symmetries \(\hat V(\mathbf x_1+\Delta\mathbf x,…,\mathbf x_N+\Delta\mathbf x|\boldsymbol{\theta})=\hat V(R\mathbf x_1,…,R\mathbf x_N|\boldsymbol{\theta})=\hat V(\mathbf x_1,…,\mathbf x_N|\boldsymbol{\theta})\) for \(\Delta\mathbf x\in\mathbf R^3\) and \(R\in SO(3)\) and discrete symmetries \(\hat V(\mathbf x_{\sigma(1)},…,\mathbf x_{\sigma(N)},Z_{\sigma(1)},…,Z_{\sigma(N)}|\boldsymbol{\theta})=\hat V(-\mathbf x_1,…,-\mathbf x_N,Z_1,…,Z_N|\boldsymbol{\theta})=\hat V(\mathbf x_1,…,\mathbf x_N,Z_1,…,Z_N|\boldsymbol{\theta})\) for \(\sigma\in S_N\).
Problem: Explain how the atomic cluster expansion (ACE) enforces the LAS trio.
Solution: Starting from the ansatz of L, it is clear that A and S can be fulfilled provided each of the \(N\) local potentials \(\hat V_i\) are analytic and symmetric in their neighbouring nuclear coordinates \(\{\mathbf x_j:r_{ij}<r^*\}\).
\[\hat V_i=\hat V^{(1)}(Z_i)+\sum_{\langle j,i\rangle}\hat V^{(2)}(\mathbf r_{ij})+\sum_{\langle j<k,i\rangle}\hat V^{(3)}(\mathbf r_{ij},\mathbf r_{ik})+…\]
\[=\text{Point}+\text{Lines}+\text{Triangles}+\text{Pyramids}+…\]
Explicit models of such many-body interactions include the \(2\)-body Lennard-Jones potential:
\[V^{(2)}(r)=-V_0\left(2\left(\frac{r_0}{r}\right)^6-\left(\frac{r_0}{r}\right)^{12}\right)\]
the \(3\)-body Stillinger-Weber potential:
\[V^{(3)}(r_1,r_2,\theta)\sim V_0 e^{\sim r_0\left(\frac{1}{r_1-r^*}+\frac{1}{r_2-r^*}\right)}(\cos\theta-\cos\theta_0)^2[r_1<r^*][r_2<r^*]\]
the \(4\)-body potential:
\[V^{(4)}(\mathbf r_1,\mathbf r_2,\mathbf r_3)\sim\left(\frac{\mathbf r_1\cdot(\mathbf r_2\times\mathbf r_3)}{r_1r_2r_3}\right)^2\]
etc.
To compute the \((\nu+1)\)-body interaction term \(\sum_{\langle j_1<…<j_{\nu},i\rangle}\hat V^{(\nu+1)}(\mathbf r_{ij_1},…,\mathbf r_{ij_{\nu}})\) in ACE (the use of the symbol \(\nu\) as the Greek equivalent of the English letter \(n\) is meant to evoke the concept of “neighbours”), one has to sum \({\nu_i}\choose{\nu}\)\(\in O(\nu_i^{\nu})\) interaction terms which is polynomial in the number \(\nu_i:=|\{\mathbf x_j:r_{ij}<r^*\}|\) of \(r^*\)-neighbours associated to the \(i^{\text{th}}\) atom, but exponential in the number of simultaneous \(r^*\)-neighbours \(\nu\leq\nu_i\).
Fortunately, there exists a simple trick that dramatically simplifies this computation from \(O(\nu_i^{\nu})\to O(\nu_i)\) time. The trick consists of \(2\) steps:
- Step #\(1\): given an arbitrary single-particle basis \(\psi_{\lambda}(\mathbf r)\), expand the \((\nu+1)\)-body potential \(\hat V^{(\nu+1)}(\mathbf r_1,…,\mathbf r_{\nu})\) in that basis:
\[\hat V^{(\nu+1)}(\mathbf r_1,…,\mathbf r_{\nu})=\sum_{\boldsymbol{\lambda}}c_{\boldsymbol{\lambda}}\Psi_{\boldsymbol{\lambda}}(\mathbf r_1,…,\mathbf r_{\nu})\]
where \(\boldsymbol{\lambda}:=(\lambda_1,…,\lambda_{\nu})\) is some \(\nu\)-tuple of valid “eigenvalue quantum numbers” picking out a particular single-particle state \(\psi_{\lambda}\), and \(\Psi_{\boldsymbol{\lambda}}(\mathbf r_1,…,\mathbf r_{\nu}):=\psi_{\lambda_1}(\mathbf r_1)…\psi_{\lambda_{\nu}}(\mathbf r_{\nu})\) is a generic unentangled/separable tensor product of the single-particle “eigenstates” (in practice, one would truncate the space of allowed \(\boldsymbol{\lambda}\)-tuples in the sum \(\sum_{\boldsymbol{\lambda}}\) for approximation purposes).
- Step #\(2\): Interchange the outer sum \(\sum_{\langle j_1<…<j_{\nu},i\rangle}\) with the inner product state \(\psi_{\boldsymbol{\lambda}}(\mathbf r_{ij_1},…,\mathbf r_{ij_{\nu}})\) (a.k.a. a trivial factorization/inversion of the distributive property):
\[\sum_{\langle j_1<…<j_{\nu},i\rangle}\hat V^{(\nu+1)}(\mathbf r_{ij_1},…,\mathbf r_{ij_{\nu}})=\nu!\sum_{\boldsymbol{\lambda}}c_{\boldsymbol{\lambda}}A_{i,\boldsymbol{\lambda}}+\text{self-interaction terms}\]
where \(A_{i,\boldsymbol{\lambda}}:=A_{i,\lambda_1}…A_{i,\lambda_{\nu}}\) and \(A_{i,\lambda}:=\sum_{\langle j,i\rangle}\psi_{\lambda}(\mathbf r_{ij})\) (the use of the symbol \(A\) can be justified as a kind of total “amplitude” since it consists of summing the “wavefunction” \(\psi\) at a collection of points).
As currently written, \(SO(3)\) invariance is not guaranteed. The way to remedy this is to convert from the above “\(A\)-basis” to the “\(B\)-basis” defined by:
\[B_{}=\]
Problem: One prominent example of an MLIP is MACE, developed by the group of Gábor Csányi. Walk through a single forward pass of MACE at inference time. Then, explain how MACE is trained.
Solution: MACE is an MLIP built on a variant of the MPNN architecture subclass of GNNs. In addition to the standard LAS inductive biases of most MLIPs, MACE itself introduces several further innovations.
The first misconception worth clarifying is that the actual graph input to most MLIPs (including MACE) does not necessarily coincide with how its structural formula might be drawn by a chemist. Instead, the edges are defined solely by the hyperparametric cutoff radius \(r^*\).
With the input undirected graph defined, the rest is just ML (no more physics/chemistry). Just as transformers begin by embedding tokens into latents, here “tokens” can be thought of as vertex features (the atomic numbers \(Z_i\)) and edge features (the translationally-invariant displacement vectors \(\mathbf r_{ij}:=\mathbf x_i-\mathbf x_j\) between vertices). They are learnably and independently embedded as latents:
i) The vertex features \(Z_i\) are embedded by first one-hot encoding \(Z_i\mapsto\hat{\mathbf e}_i\) w.r.t. the size of the periodic table “vocabulary”. These unit one-hots \(\hat{\mathbf e}_i\) are first projected via a linear layer into a latent space of hyperparametric hidden dimension \(d\) (\(d:=128\) is the MACE default), whose \(d\) components indexed by \(k=1,…,d\) are denoted by \(h^{(0)}_{i,k00}\). Without any clear motivation yet, it turns out to be fruitful to shift perspective and view this vector as just one step in an initial (\(t=0\)) “double-staircase” feature \(h^{(0)}_{i,k\ell m}\) initialized with \(h^{(0)}_{i,k\ell m}:=0\) for all higher angular momentum sectors \(1\leq\ell\leq\ell^*\) (where \(\ell^*\) is another hyperparameter with MACE default \(\ell^*:=3\)) and \(-\ell\leq m\leq\ell\).

A staircase does not have a well-defined tensor shape, so in practice one concatenates along the \(m\)-axis \(\sum_{\ell=0}^{\ell^*}(2\ell+1)=(\ell^*+1)^2\) to represent the staircase as a PyTorch tensor of shape \((d,(\ell^*+1)^2)\).
ii) The edge features \(\mathbf r_{ij}\) factorize into magnitude and direction features \(\mathbf r_{ij}=r_{ij}\hat{\mathbf r}_{ij}\), which are processed independently before being recombined:
a) The magnitude features \(r_{ij}\) are deterministically embedded as feature vectors \(r_{ij}\mapsto\mathbf R_{ij}:=(R_1(r_{ij}),…,R_{n^*}(r_{ij}))\) (MACE default \(n^*=8\)) where the sinc/\(j_0\) spherical Bessel eigenfunctions of the \(3\)d-Laplacian in the ball \(r<r^*\) are given by \(R_n(r):=\sqrt{\frac{2}{r^*}}\frac{\sin (n\pi r/r^*)}{r}f_p(r)\) (cf. the eigenstates \(\psi_n(x)=\sqrt{\frac{2}{L}}\sin\frac{n\pi x}{L}\) of a quantum particle in the box \(x\in[0,L]\)) modulated by a degree-\((p+2)\) polynomial envelope cutoff \(f_p(r):=\left(1-\frac{(p+1)(p+2)}{2}\left(\frac{r}{r^*}\right)^p+p(p+2)\left(\frac{r}{r^*}\right)^{p+1}-\frac{p(p+1)}{2}\left(\frac{r}{r^*}\right)^{p+2}\right)[r<r^*]\) engineered to obey \(f_p(0)=1\) and \(f_p(r^*)=f’_p(r^*)=f^{\prime\prime}_p(r^*)=0\) (MACE default \(p=5\)). Each of the \(\mathbf R_{ij}\) is then passed through an MLP (MACE uses \(3\) hidden dense layers in \(64\) dimensions with \(\text{SiLU}\) activations followed by a projection layer) \(\mathbf R_{ij}\in\mathbf R^{n^*}\mapsto\mathbf R’_{ij}\in\mathbf R^{?}\).
b) The direction features are deterministically angular factor is the usual spherical harmonic \(\mathbf Y_{\ell}(\hat{\mathbf r})\in\mathbf C^{2\ell+1}\).
The rotationally equivariant property of the spherical harmonics is that they transform under a specific unitary \((2\ell+1)\)-dimensional \(SO(3)\)-irrep \(D^{(\ell)}\) known as the Wigner-\(D\) representation, that is for \(R\in SO(3)\):
\[\mathbf Y_{\ell}(R^{-1}\hat{\mathbf r})=D^{(\ell)}(R)\mathbf Y_{\ell}(\hat{\mathbf r})\]
where \(D^{(\ell)}(R)\in U(2\ell+1)\). Intuitively, a rotation \(\hat{\mathbf r}\mapsto R^{-1}\hat{\mathbf r}\) on \(S^2\) induces a corresponding “rotation” \(\mathbf Y_{\ell}\mapsto D^{(\ell)}(R)\mathbf Y_{\ell}\) in \(\mathbf C^{2\ell+1}\).



