It turns out that you can get surprisingly good accuracy (27.5%) at predicting moves from the chess world championship, even though the model is linear and has no idea of piece interactions.
To get the number of _good_ moves in a position, one might look at the search distribution generated by stockfish or lc0, or a human grandmaster. They'd probably all consider at most 1-4 moves per position.
However, reducing the search to just the top four moves is not something you can do with a simple heuristic. It either takes a lot of engineering or advanced pattern matching. If we could do it easily, making a strong chess engine would be a walk in the park.
I've wondered if the accuracy I achieve stems simply from learning a reasonable opening book. If so the accuracy of the model should deteriorate in the middle and endgame.
That doesn't seem to be the case, however. You can try playing the `raw` linear model yourself by running
I guess the authors have a company that does some kind of NNMF thing on genetic data, which would explain their approach.
It's true that chess programmers usually use a different set of bitboards.
They call it "machine learning", but they're just doing PCA and nonnegative matrix factorization, neither of which falls into the class of methods that most people think about when you say "machine learning." Their proposed prediction method will often (perhaps usually) predict illegal moves--it might propose moving a piece that isn't even on the board, for example. Understandably they don't show any examples of actually applying it.
I'd be curious to see what happens when you combine the system with a system that removes the possibility of illegal moves. I bet accuracy will go dramatically up - especially if they utilize a really modern transformers based architecture for the vectorization part.
I think the underlying assumption here is that some approaches are too simple to "cut it", ie to be called machine learning. And eg PCA is too simple, and so should be excluded, and perhaps categorised as "just" statistics or linear algebra depending on your point of view. But in my view, it's better to let go of this view which implicitly hypes ML in a damaging way. F = ma is still physics, even if simple. k-NN and PCA are still ML.
I'm a statistician, not a machine learning guy. PCA is a great statistical method. But doing a PCA and calling it machine learning seems a tad misleading.