Taking Neural Network's false positives as the recommendation system result? I am creating a recommendation system and considering two parallel ways of formalizing the problem. One classical, using proximity (recommend the product to the customer if a majority vote of 2k+1 customers closest by has the product), and another one that I have trouble understanding but seems valid to some extent.

The approach I'm thinking about is: 

1) Fit a highly regularized neural network (to make sure it doesn't overfit the training set) for a classification task that can predict if the person does or doesn't have given product

2) Make sure test accuracy is as close to train accuracy as possible

3) Take false positives (customers who don't have the product originally but the NN predicted that they have it) predicted on the whole dataset (the training set as well) as the result - the people I should recommend the product to

Now, I am aware of why in general one wouldn't want to take that approach but I also can't exactly explain why it wouldn't return people 'close by' to each other that 'should' have given product in a similar sense like the KNN-based approach. I'm not sure how to analyse this problem exactly to validate, modify or reject the idea altogether.
1) Is regression, not classification.

You should try to think of it from a decision tree perspective instead of NN. Your attributes for a customer are all products of this customer and all additional information about that customar.

Since the task is regression, all leafs of the decision tree will have the label 0 (if the decision path leads to the statement that the customer doesn't have the product) or the label 1 if the decision path leads to the statement that the customer has the product.

When building the decision tree, we start at the root where we have to decide which attribute we will use as the first node from where all the customers will take the corresponding branch depending on their value of the chosen attribute. This attribute is choosen by using entropy to calculate the attribute with the highest information-gain value. This simply means that we choose the attribute, that divides the customers into sets where each set has ideally the same amount of customers with 0 and 1.

This is repeated for each new node that branch from the parent node as long as there is an attribute left with information-gain above a threshold value or when the tree becomes to deep (since it is NP-complete).
Now we count at each leaf the amount of zeros and ones and label the leaf as max(0,1).
The conclusion of this: if a customer landed at a 1-leaf although he was 0 means, the highest information-gain attributes have the same values for this customer as they much more often do for customers who are 1.