From OpenCog

Predictive Implication and Attraction

This page briefly reviews the notions of predictive implication and predictive attraction, which are critical to many aspects of OCP dynamics including goal-oriented behavior.

See also a suggestion regarding ElementAttractionLink


Attraction A B <s>

as P(B|A) - P(B|~A) = s, or in node and link terms

s = (Inheritance A B).s - (Inheritance ~A B).s

For instance

Attraction pig fat.s = (Inheritance pig fat).s - (Inheritance ~pig fat).s

Relatedly, in the temporal domain, we have the link type PredictiveImplication, where

PredictiveImplication A B <s>

roughly means that s is the probability that

Implication A B <s>

holds and also A occurs before B. More sophisticated versions of PredictiveImplication come along with more specific information regarding the time lag between A and B: for instance a time interval T in which the lag must lie, or a probability distribution governing the lag between the two events.

We may then introduce

PredictiveAttraction A B <s>

to mean

s = (PredictiveImplication A B).s - (PredictiveImplication ~A B).s

For instance

(PredictiveAttraction kiss_Ben be_happy.s = (PredictiveImplication kiss_Ben be_happy).s - (PredictiveImplication ~kiss_Ben be_happy).s

This is what really matters in terms of determining whether kissing Ben is worth doing in pursuit of the goal of being happy, not just how likely it is to be happy if you kiss Ben, but how differentially likely it is to be happy if you kiss Ben.

Along with predictive implication and attraction, sequential logical operations are important, represented by operators such as SequentialAND, SimultaneousAND and SimultaneousOR. For instance:

        Teacher says 'fetch'
        I get the ball
        I bring the ball to the teacher
    I get a reward

combines SequentialAND and PredictiveAttraction. In this manner, an arbitrarily complex system of serial and parallel temporal events can be constructed.