The Meta-Algorithm

Little background intro

The Bayesian filters, decision trees, neural networks, genetic algorithms, support vector machine are Algorithms that all work by reading data (that comes in 2 parts: input and result) and figures out a formula ( f(x) ). This formula, when is given the input can calculate the result. See figure 1.

Figure 1

All these algorithms originate from different fields, like artificial intelligence, math, databases, general computer science, and they are even influenced by biology(genetic algorithms) or even how the brain works(neural algorithms), so happens that from times to times there's some new ideas and progress, means also there's some room to grow and explore.

Example Applications:

The filters on your email. Suppose that one day you get in your inbox an email that offers to see some "magic pills" (input part) so you identify it as being spam(result part), the filter learns(builds the formula), so next time same style of email arrives in your inbox, the filter is able to identify it as spam.

Another common use is to identify fraud, these algorithms will look into past details(input part) of committed frauds(result part), learn from them(build the formula) and next time they can help in predicting fraud.

And final example application is to help avoid churn(customers leaving your service), works by looking at the characteristics(input part) of the customers that already churned(result part) and figure out a formula that predicts users with higher probability of churning. So you can run this formula over your current customers base to get aware of the ones that might be churning soon so you can act on it, to try avoid the churn.


The meta-algorithm

Now notice that all these Algorithms output a formula( f(x) ), which is essentially also an algorithm, both are a series of ordered instructions to perform a task. So extending this idea, why can't we have a meta-algorithm that outputs the algorithm?

Note that the current Algorithm job is to figure out the formula that given the input will output the result, so, using the same reasoning, the meta-algorithm job is to figure out an Algorithm that given the input and result will output the formula( f(x) ). See figure 2.

No comments: