I get a lot of questions about customer recomender systems. It is a standard e-commerce problem and there are a number of off the shelf solutions that are avaiable depending on what type of platform you are workign with and what type of profile data you have about your customers.
In it's simplest form it is is just a decision tree, also known as a random forest, also known as an expert system.
Take for example the following decision tree. I've borrwed this from the linked site, and I picked it because it's a simple easy to understand example.
Pretty strait forward no?
Now imagine that each deicision point in the tree is a data dimension from your data set.
If you are attempting to identify a product to recomend a potential customer the output (leaf node) is the product that is presented to the customer.
The decision points are the various data points you have about that customer.
Creating one is relatively simple on a standard user profile
male, age, purchased products, ethnic background, religious background, location, facebook posts, whatever.... The more data points you have about someone, the better your recomendation.
You can create a decission tree manually, or you can gather data, do a subset of data evaluation manually, and then train an algorythm to do it for you automatically.
Depending on the data available, and the type of products you are attempting to sell and the level of recomendation you are attempting to do, the projects can range from 3 months to 10+ years.
Basic implementation of a recomender module for e-commerce is relatively easy. i.e. "people who purchased X also purchased Y"
Stock portfoio managment models are fluid and constantly looking for additional data to incorprate and take years to develop. i.e. if you see the word "green" in an article sell, if you see "crude" buy.
The first hour of discussion/consultation is free. After that we charge hourly.
Some quick links for more technical explanations and implementation details: