Misplaced Pages

Golem (ILP)

Article snapshot taken from[REDACTED] with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Golem is an inductive logic programming algorithm developed by Stephen Muggleton and Cao Feng in 1990. It uses the technique of relative least general generalisation proposed by Gordon Plotkin, leading to a bottom-up search through the subsumption lattice. In 1992, shortly after its introduction, Golem was considered the only inductive logic programming system capable of scaling to tens of thousands of examples.

Description

Golem takes as input a definite program B as background knowledge together with sets of positive and negative examples, denoted E + {\textstyle E^{+}} and E {\textstyle E^{-}} respectively. The overall idea is to construct the least general generalisation of E + {\textstyle E^{+}} with respect to the background knowledge. However, if B is not merely a finite set of ground atoms, then this relative least general generalisation may not exist. Therefore, rather than using B directly, Golem uses the set B h {\textstyle B^{h}} of all ground atoms that can be resolved from B in at most h resolution steps. An additional difficulty is that if E {\textstyle E^{-}} is non-empty, the least general generalisation of E + {\textstyle E^{+}} may entail a negative example. In this case, Golem generalises different subsets of E + {\textstyle E^{+}} separately to obtain a program of several clauses. Golem also employs some restrictions on the hypothesis space, ensuring that relative least general generalisations are polynomial in the number of training examples. Golem demands that all variables in the head of a clause also appears in a literal of the clause body; that the number of substitutions needed to instantiate existentially quantified variables introduced in a literal is bounded; and that the depth of the chain of substitutions needed to instantiate such a variable is also bounded.

Example

Assumed family relations

The following example about learning definitions of family relations uses the abbreviations

par: parent, fem: female, dau: daughter, g: George, h: Helen, m: Mary, t: Tom, n: Nancy, and e: Eve.

It starts from the background knowledge (cf. picture)

par ( h , m ) par ( h , t ) par ( g , m ) par ( t , e ) par ( n , e ) fem ( h ) fem ( m ) fem ( n ) fem ( e ) {\displaystyle {\textit {par}}(h,m)\land {\textit {par}}(h,t)\land {\textit {par}}(g,m)\land {\textit {par}}(t,e)\land {\textit {par}}(n,e)\land {\textit {fem}}(h)\land {\textit {fem}}(m)\land {\textit {fem}}(n)\land {\textit {fem}}(e)} ,

the positive examples

dau ( m , h ) dau ( e , t ) {\displaystyle {\textit {dau}}(m,h)\land {\textit {dau}}(e,t)} ,

and the trivial proposition true to denote the absence of negative examples.

The relative least general generalisation is now computed as follows to obtain a definition of the daughter relation.

  • Relativise each positive example literal with the complete background knowledge:
    dau ( m , h ) par ( h , m ) par ( h , t ) par ( g , m ) par ( t , e ) par ( n , e ) fem ( h ) fem ( m ) fem ( n ) fem ( e ) dau ( e , t ) par ( h , m ) par ( h , t ) par ( g , m ) par ( t , e ) par ( n , e ) fem ( h ) fem ( m ) fem ( n ) fem ( e ) {\displaystyle {\begin{aligned}{\textit {dau}}(m,h)\leftarrow {\textit {par}}(h,m)\land {\textit {par}}(h,t)\land {\textit {par}}(g,m)\land {\textit {par}}(t,e)\land {\textit {par}}(n,e)\land {\textit {fem}}(h)\land {\textit {fem}}(m)\land {\textit {fem}}(n)\land {\textit {fem}}(e)\\{\textit {dau}}(e,t)\leftarrow {\textit {par}}(h,m)\land {\textit {par}}(h,t)\land {\textit {par}}(g,m)\land {\textit {par}}(t,e)\land {\textit {par}}(n,e)\land {\textit {fem}}(h)\land {\textit {fem}}(m)\land {\textit {fem}}(n)\land {\textit {fem}}(e)\end{aligned}}} ,
  • Convert into clause normal form:
    dau ( m , h ) ¬ par ( h , m ) ¬ par ( h , t ) ¬ par ( g , m ) ¬ par ( t , e ) ¬ par ( n , e ) ¬ fem ( h ) ¬ fem ( m ) ¬ fem ( n ) ¬ fem ( e ) dau ( e , t ) ¬ par ( h , m ) ¬ par ( h , t ) ¬ par ( g , m ) ¬ par ( t , e ) ¬ par ( n , e ) ¬ fem ( h ) ¬ fem ( m ) ¬ fem ( n ) ¬ fem ( e ) {\displaystyle {\begin{aligned}{\textit {dau}}(m,h)\lor \lnot {\textit {par}}(h,m)\lor \lnot {\textit {par}}(h,t)\lor \lnot {\textit {par}}(g,m)\lor \lnot {\textit {par}}(t,e)\lor \lnot {\textit {par}}(n,e)\lor \lnot {\textit {fem}}(h)\lor \lnot {\textit {fem}}(m)\lor \lnot {\textit {fem}}(n)\lor \lnot {\textit {fem}}(e)\\{\textit {dau}}(e,t)\lor \lnot {\textit {par}}(h,m)\lor \lnot {\textit {par}}(h,t)\lor \lnot {\textit {par}}(g,m)\lor \lnot {\textit {par}}(t,e)\lor \lnot {\textit {par}}(n,e)\lor \lnot {\textit {fem}}(h)\lor \lnot {\textit {fem}}(m)\lor \lnot {\textit {fem}}(n)\lor \lnot {\textit {fem}}(e)\end{aligned}}} ,
  • Anti-unify each compatible pair of literals:
    • dau ( x m e , x h t ) {\displaystyle {\textit {dau}}(x_{me},x_{ht})} from dau ( m , h ) {\displaystyle {\textit {dau}}(m,h)} and dau ( e , t ) {\displaystyle {\textit {dau}}(e,t)} ,
    • ¬ par ( x h t , x m e ) {\displaystyle \lnot {\textit {par}}(x_{ht},x_{me})} from ¬ par ( h , m ) {\displaystyle \lnot {\textit {par}}(h,m)} and ¬ par ( t , e ) {\displaystyle \lnot {\textit {par}}(t,e)} ,
    • ¬ fem ( x m e ) {\displaystyle \lnot {\textit {fem}}(x_{me})} from ¬ fem ( m ) {\displaystyle \lnot {\textit {fem}}(m)} and ¬ fem ( e ) {\displaystyle \lnot {\textit {fem}}(e)} ,
    • ¬ par ( g , m ) {\displaystyle \lnot {\textit {par}}(g,m)} from ¬ par ( g , m ) {\displaystyle \lnot {\textit {par}}(g,m)} and ¬ par ( g , m ) {\displaystyle \lnot {\textit {par}}(g,m)} , similar for all other background-knowledge literals
    • ¬ par ( x g t , x m e ) {\displaystyle \lnot {\textit {par}}(x_{gt},x_{me})} from ¬ par ( g , m ) {\displaystyle \lnot {\textit {par}}(g,m)} and ¬ par ( t , e ) {\displaystyle \lnot {\textit {par}}(t,e)} , and many more negated literals
  • Delete all negated literals containing variables that don't occur in a positive literal:
    • after deleting all negated literals containing other variables than x m e , x h t {\displaystyle x_{me},x_{ht}} , only dau ( x m e , x h t ) ¬ par ( x h t , x m e ) ¬ fem ( x m e ) {\displaystyle {\textit {dau}}(x_{me},x_{ht})\lor \lnot {\textit {par}}(x_{ht},x_{me})\lor \lnot {\textit {fem}}(x_{me})} remains, together with all ground literals from the background knowledge
  • Convert clauses back to Horn form:
    • dau ( x m e , x h t ) par ( x h t , x m e ) fem ( x m e ) ( all background knowledge facts ) {\displaystyle {\textit {dau}}(x_{me},x_{ht})\leftarrow {\textit {par}}(x_{ht},x_{me})\land {\textit {fem}}(x_{me})\land ({\text{all background knowledge facts}})}

The resulting Horn clause is the hypothesis h obtained by Golem. Informally, the clause reads " x m e {\displaystyle x_{me}} is called a daughter of x h t {\displaystyle x_{ht}} if x h t {\displaystyle x_{ht}} is the parent of x m e {\displaystyle x_{me}} and x m e {\displaystyle x_{me}} is female", which is a commonly accepted definition.

References

  1. Muggleton, Stephen H.; Feng, Cao (1990). Arikawa, Setsuo; Goto, Shigeki; Ohsuga, Setsuo; Yokomori, Takashi (eds.). "Efficient Induction of Logic Programs". Algorithmic Learning Theory, First International Workshop, ALT '90, Tokyo, Japan, October 8-10, 1990, Proceedings. Springer/Ohmsha: 368–381.
  2. ^ Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). Foundations of inductive logic programming. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. pp. 354–358. ISBN 978-3-540-62927-6.
  3. ^ Aha, David W. (1992). "Relating relational learning algorithms". In Muggleton, Stephen (ed.). Inductive logic programming. London: Academic Press. p. 247.
  4. Nienhuys-Cheng, Shan-hwei; Wolf, Ronald de (1997). Foundations of inductive logic programming. Lecture notes in computer science Lecture notes in artificial intelligence. Berlin Heidelberg: Springer. p. 286. ISBN 978-3-540-62927-6.
  5. i.e. sharing the same predicate symbol and negated/unnegated status
  6. in general: n-tuple when n positive example literals are given
Stub icon

This artificial intelligence-related article is a stub. You can help Misplaced Pages by expanding it.

Categories:
Golem (ILP) Add topic