I've recently found success in move ordering with a neural network. It takes much inspiration from NNUE. So much so that I decided to call it NNOM (Move Ordering Neural Network).
The architecture is 98304x512x384
The 98304 is the HalfKA feature set that the network uses. (12*64*64*2)
The 512 is a arbitrary size for the hidden layer.
The output, 384, are all the piece-square combos for a single side (6*64).
I've found a very fast way to implement it in the engine. I don't know if this technique is already out there somewhere, so let me know if it is
The hidden layer (512) is efficiently updated just like NNUE. This takes virtually no time.
In the output layer, only the output neurons that correspond to legal moves are calculated. This also takes virtually no time.
The network is also quantized to int16 much like NNUE.
Do take a look at the implementation (C):
https://github.com/LeviGibson/eggnog-ch ... ain/nnom.c
as well as the training (Tensorflow):
https://github.com/LeviGibson/policy-network
Let me know if you have any suggestions!