I am looking at methods for making product recommendations to customers based on attributes of the customer (e.g. demographics) and past product interactions (e.g. did or did not buy). There are ~250 products to recommend. This is of course an implicit feedback recommendation engine setup.
I have two questions as it pertains to the use of Factorization Machines.
1) Is the only way to structure the data for this algorithm to create 1 row per customer / product interaction with columns for the customer attributes and a one-hot encoded matrix for which product is being considered? A 1/0 included for the target column. This would be a pretty sparse matrix and in libsvm format for example. All positive interactions (the customer bought) and a sample of negative examples for each customer would be included if each combination of customer and product is not feasible.
2) Once a model is built....how to serve recommendations? Does one have to iterate through all the products (variants) for each customer? This seems prohibitive.
While this is described as a product recommendation, a click through model in adtech would be the other common situation. Wondering how people deal with this in the real world?