Cool challenge! I ran some experiments on bilinear layers ie
A couple notes:
They perform ~as well as SwiGLU layers in memorization capacity (the nonlinear equivalent)
There’s a closed form solution for bilinear layers, but it’s basically SGD (it relates to the fixed points found by KKT, though I can include a better explanation later). This efficient solution basically relies on the facts being assumed by other facts in a connected web of facts (where adding a new fact loosens the web, then pulls all other facts taut, so you have to update everything learned so far).
My main question for now is the purpose of the research. Suppose that bilinear layers are performant/everyone uses them/etc, and we have the correct math to describe the solutions that SGD finds. What do we want out of true “understanding”? Do we want:
A. To store new facts
B. To remove facts cleanly (unlearning)
C. To find facts (ie we have a bilinear layer that’s half-facts and half-structure, and we want to find the fact-half?)
(Sorry in advance for being light on details and specific explanations. I worked on this 3 days right after your post, but am afraid if I don’t comment now, I’ll never end up sharing results)

Oh that’s interesting! I wasn’t able to transfer back to an MLP.
You are able to verify that the facts are as robust as the original model (ie SGD facts are a bit robust to some noise, but one solution is not robust)?
And can you edit the facts in the original model?
Also can just wait for the post:)