Difference between Factorization Machines and PCA? Factorization Machines (FMs) are a means to express the high dimensional data into lower dimensions, despite the original data being sparse.

How is it different from PCA which itself is a dimensionality reduction technique?

Are there pros-cons of either approach?
The main difference is that PCA is a dimensionality reduction technique, while Factorization Machines are classifiers. You can use PCA to simplify/compress a given dataset, while you can use FMs to classify your observations.

The other difference is that PCA is a linear technique, while FMs are non-linear. PCA extracts later factors that are linearly associated with your input variables, while FMs, on the other side, can "learn" non-linear patters in your dataset.