Qualcomm-AI-research / geometric-algebra-transformer

BSD 3-Clause Clear License
122 stars 14 forks source link

How to obtain SE(3) equivariance from E(3)-GATr #3

Closed binxi0629 closed 1 week ago

binxi0629 commented 2 months ago

I really like this E(3)-equivariant transformer. But I have one question about how to achieve SE(3)-equivariant based on your framework. Because I am studying in molecules and proteins where chriality is really important.

I see in the paper, you have mentioned the break of symmetry from E(3) to E(2) by providing additional information just like how the positional embeddings break the permutational symmetry. Does it mean I can only obtain SE(3) equivariance by this way? Is there any other way?

johannbrehmer commented 1 week ago

Hi,

Great question, and apologies for missing it until now.

Most GA representations of 3D primitives (points, lines, planes) are chiral, i.e. not invariant under mirrorings. For instance, when we represent a point as a trivector, we have to choose a positive or negative sign for the homogeneous coordinate. By using these, you automatically break the E(3) equivariance of the architecture to SE(3).

Concretely, if you were using the embed_point() from the GATr repo, you were already using a chiral representation and your network was SE(3)-equivariant. Does that make sense?

(Sorry that this is not clear from the paper. We can't make this clearer in the NeurIPS version, but we will discuss updating the arXiv version.)

Alternatively, you could modify the linear layers in GATr to only use the SE(3) constraint rather than the E(3) equivariance constraint. Let me know if you want to go this route, we are happy to help.

Kind regards, Johann

binxi0629 commented 1 week ago

Thanks for answering, I will try and test it.