Machine Learning for Complex Event Recognition Nikos Katzouris 1 , - - PowerPoint PPT Presentation

machine learning for complex event recognition
SMART_READER_LITE
LIVE PREVIEW

Machine Learning for Complex Event Recognition Nikos Katzouris 1 , - - PowerPoint PPT Presentation

Machine Learning for Complex Event Recognition Nikos Katzouris 1 , Alexander Artikis 1 , Georgios Paliouras 1 http://cer.iit.demokritos.gr 1 NCSR Demokritos, Athens, Greece Team Members Tenured Researcher: Georgios Paliouras Research


slide-1
SLIDE 1

Machine Learning for Complex Event Recognition

Nikos Katzouris1, Alexander Artikis1, Georgios Paliouras1

http://cer.iit.demokritos.gr

1NCSR Demokritos, Athens, Greece

slide-2
SLIDE 2

Team Members

Tenured Researcher:

◮ Georgios Paliouras

Research Associates:

◮ Elias Alevizos ◮ Alexander Artikis ◮ Nikos Katzouris ◮ Ioannis Kontopoulos ◮ Vagelis Michelioudakis ◮ Efthimis Tsilionis ◮ Christos Vlassopoulos

Website:

◮ http://cer.iit.demokritos.gr

slide-3
SLIDE 3

Complex Event Recognition

Input ◮ Recognition ◮ Output

Event Recognition System Complex Event Definitions

Simple Events . . . . . . . . . . . .

happensAt(active(id0), 10) holdsAt(coord(id0, 20.88, 11.90), 10) happensAt(active(id1), 10) holdsAt(coord(id1, 22.34, 15.23), 10)

. . .

Complex Events . . . . . . . . . . . .

holdsAt(meeting(id0, id1), 11) holdsAt(meeting(id0, id1), 12) holdsAt(meeting(id0, id1), 13)

. . .

slide-4
SLIDE 4

Complex Event Recognition

slide-5
SLIDE 5

Complex Event Recognition

Input ◮ Recognition ◮ Output

Event Recognition System Complex Event Definitions

Simple Events . . . . . . . . . . . .

initiatedAt(meeting(X, Y ), T) ← happensAt(active(X), T), happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). terminatedAt(meeting(X, Y ), T) ← happensAt(walking(X), T), not holdsAt(close(X, Y , 25), T). happensAt(active(id0), 10) holdsAt(coord(id0, 20.88, 11.90), 10) happensAt(active(id1), 10) holdsAt(coord(id1, 22.34, 15.23), 10)

. . .

Complex Events . . . . . . . . . . . .

holdsAt(meeting(id0, id1), 11) holdsAt(meeting(id0, id1), 12) holdsAt(meeting(id0, id1), 13)

. . .

slide-6
SLIDE 6

Complex Event Recognition

Input ◮ Recognition ◮ Output

Event Recognition System Complex Event Definitions

Simple Events . . . . . . . . . . . .

initiatedAt(meeting(X, Y ), T) ← happensAt(active(X), T), happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). terminatedAt(meeting(X, Y ), T) ← happensAt(walking(X), T), not holdsAt(close(X, Y , 25), T). happensAt(active(id0), 10) holdsAt(coord(id0, 20.88, 11.90), 10) happensAt(active(id1), 10) holdsAt(coord(id1, 22.34, 15.23), 10)

. . .

Complex Events . . . . . . . . . . . .

holdsAt(meeting(id0, id1), 11) holdsAt(meeting(id0, id1), 12) holdsAt(meeting(id0, id1), 13)

. . .

slide-7
SLIDE 7

Complex Event Recognition

Input ◮ Recognition ◮ Output

Event Recognition System Complex Event Definitions

Simple Events . . . . . . . . . . . .

initiatedAt(meeting(X, Y ), T) ← happensAt(active(X), T), happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). terminatedAt(meeting(X, Y ), T) ← happensAt(walking(X), T), not holdsAt(close(X, Y , 25), T). happensAt(active(id0), 10) holdsAt(coord(id0, 20.88, 11.90), 10) happensAt(active(id1), 10) holdsAt(coord(id1, 22.34, 15.23), 10)

. . .

Complex Events . . . . . . . . . . . .

holdsAt(meeting(id0, id1), 11) holdsAt(meeting(id0, id1), 12) holdsAt(meeting(id0, id1), 13)

. . .

slide-8
SLIDE 8

Learning for Complex Event Recognition

Input ◮ Recognition ◮ Output

Event Recognition System Complex Event Definitions

Simple Events . . . . . . . . . . . .

initiatedAt(meeting(X, Y ), T) ← happensAt(active(X), T), happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). terminatedAt(meeting(X, Y ), T) ← happensAt(walking(X), T), not holdsAt(close(X, Y , 25), T). happensAt(active(id0), 10) holdsAt(coord(id0, 20.88, 11.90), 10) happensAt(active(id1), 10) holdsAt(coord(id1, 22.34, 15.23), 10)

. . .

Complex Events . . . . . . . . . . . .

holdsAt(meeting(id0, id1), 11) holdsAt(meeting(id0, id1), 12) holdsAt(meeting(id0, id1), 13)

. . .

Learn this From These

slide-9
SLIDE 9

Applications

City Transport Management Control Centre

IRM Demonstrator

SENSOR & GEO DATA PROCESSING EVENT RECOGNITION INFORMATION EXTRACTION SENSOR NETWORK RESOURCE DATA & DIGITAL MAPS

Data Communication High-Level Events Low-level Events

Training/ Debriefing Actual Operation Operator Operator Driver Driver

slide-10
SLIDE 10

Complex Event Recognition using the Event Calculus

◮ Formal, declarative semantics. ◮ Representation of complex temporal phenomena. ◮ Representation of complex atemporal phenomena. ◮ Very efficient reasoning → RTEC.

slide-11
SLIDE 11

Complex Event Recognition using the Event Calculus

◮ Formal, declarative semantics. ◮ Representation of complex temporal phenomena. ◮ Representation of complex atemporal phenomena. ◮ Very efficient reasoning → RTEC. ◮ Direct connections to machine learning → Inductive Logic

Programming (ILP).

slide-12
SLIDE 12

Inductive Logic Programming

◮ Input: ◮ Positive and negative examples. ◮ Background knowledge. ◮ Language bias. ◮ Output: ◮ A logical theory that entails as many positive and as few

negative examples as possible.

slide-13
SLIDE 13

Search Space for Rule Learning

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

...

initiatedAt(meet(X, Y ), T) ← holdsAt(orientation(X, Y , 45), T).

. . . . . . . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . . . . .

Rules generated by adding one condition from ⊥ to the body of ⊤

Bottom Rule ⊥ : Top Rule ⊤:

. . .

slide-14
SLIDE 14

Search Space for Rule Learning

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

...

initiatedAt(meet(X, Y ), T) ← holdsAt(orientation(X, Y , 45), T).

. . . . . . . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . . . . .

Rules generated by adding one condition from ⊥ to the body of ⊤

Bottom Rule ⊥ : Top Rule ⊤: Ordered by θ-subsumption : If r1r2 then covers(r2, e) ⇒ covers(r1, e) for all examples e

. . .

slide-15
SLIDE 15

Learning a Rule: Search

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

... . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . .

Bottom Rule ⊥ : Top Rule ⊤:

+ + + + + + + + + + + +

  • -
  • +

Covered examples

+ + + + + + + +

  • -
  • ++ -
  • -
  • Positives

not covered

slide-16
SLIDE 16

Learning a Rule: Search

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

... . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . .

Bottom Rule ⊥ : Top Rule ⊤:

+ + + + + + + + + + + +

  • -
  • +

Covered examples

+ + + + + + + +

  • -
  • ++ -
  • Generalization ↑
slide-17
SLIDE 17

Learning a Rule: Search

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

... . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . .

Bottom Rule ⊥ : Top Rule ⊤:

+ + + + + + + + + + + +

  • -
  • +

Covered examples

+ + + + + + + +

  • -
  • -
  • -

Negatives covered

slide-18
SLIDE 18

Learning a Rule: Search

initiatedAt(meet(X, Y ), T) ← initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T).

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), holdsAt(close(X, Y , 25), T).

. . .

initiatedAt(meet(X, Y ), T) ← happensAt(inactive(Y ), T).

... . . .

initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T), happensAt(inactive(Y ), T), holdsAt(close(X, Y , 25), T), holdsAt(close(Y , X, 25), T), not happensAt(inactive(X), T), not happensAt(abrupt(X), T), not happensAt(running(X), T), happensAt(inactive(Y ), T), not happensAt(active(Y ), T), not happensAt(running(Y ), T), not happensAt(abrupt(Y ), T), holdsAt(orientation(X, Y , 45), T).

. . . . . .

Bottom Rule ⊥ : Top Rule ⊤:

+ + + + + + + + + + + +

  • -
  • +

Covered examples

+ + + + + + + +

  • -
  • -
  • -

Specialization ↓

slide-19
SLIDE 19

Online Inductive Logic Programming

Challenge:

◮ Inductive Logic Programming algorithms are batch learners.

◮ Each candidate in the search space is evaluated on the entire

dataset.

slide-20
SLIDE 20

Online Inductive Logic Programming

Challenge:

◮ Inductive Logic Programming algorithms are batch learners.

◮ Each candidate in the search space is evaluated on the entire

dataset.

Goal:

◮ Online learning:

◮ Examples arrive in a stream. ◮ Each example is “seen” once.

slide-21
SLIDE 21

Online Inductive Logic Programming

Challenge:

◮ Inductive Logic Programming algorithms are batch learners.

◮ Each candidate in the search space is evaluated on the entire

dataset.

Goal:

◮ Online learning:

◮ Examples arrive in a stream. ◮ Each example is “seen” once.

Approach:

◮ Make decisions from subsets of the stream:

◮ Decisions are optimal “locally”. ◮ Decisions are optimal “globally”... ◮ within an error margin ǫ, ◮ with probability 1−δ.

slide-22
SLIDE 22

The Hoeffding Bound

◮ X is a random variable. ◮ X1, . . . , XN are N independent observations of X’s values. ◮ Let ¯

X be the known, observed mean of X.

◮ Let ˆ

X be the unknown, true mean of X.

slide-23
SLIDE 23

The Hoeffding Bound

◮ X is a random variable. ◮ X1, . . . , XN are N independent observations of X’s values. ◮ Let ¯

X be the known, observed mean of X.

◮ Let ˆ

X be the unknown, true mean of X.

◮ Then:

¯ X−ǫ ≤ ˆ X ≤ ¯ X+ǫ, with probability 1−δ, where ǫ =

  • ln(1/δ)

2N

slide-24
SLIDE 24

Online Rule Learning

R1: 0.345 R2: 0.232 R3: 0.145 R4: 0.612 R5: 0.325 Candidate Rules

¯ X − ǫ ≤ ˆ X ≤ ¯ X + ǫ, where ǫ =

  • ln(1/δ)

2N

Training stream

. . . . . .

Find the best candidate across the stream As examples stream in... Monitor ¯ X = scoreBestRule − scoreSecondBestRule Continue until the number N of examples makes ¯ X > ǫ =

  • ln(1/δ)

2N Then ¯ X − ǫ > 0 ⇒ ˆ X > 0 ⇒ BestRule is indeed the best rule, with probability 1−δ.

slide-25
SLIDE 25

Online Rule Learning

R1: 0.345 R2: 0.232 R3: 0.145 R4: 0.612 R5: 0.325 Candidate Rules

¯ X − ǫ ≤ ˆ X ≤ ¯ X + ǫ, where ǫ =

  • ln(1/δ)

2N

Training stream

. . . . . .

Find the best candidate across the stream As examples stream in... Monitor ¯ X = scoreBestRule − scoreSecondBestRule Continue until the number N of examples makes ¯ X > ǫ =

  • ln(1/δ)

2N Then ¯ X − ǫ > 0 ⇒ ˆ X > 0 ⇒ BestRule is indeed the best rule, with probability 1−δ.

slide-26
SLIDE 26

Online Rule Learning

R1: 0.345 R2: 0.232 R3: 0.145 R4: 0.612 R5: 0.325 Candidate Rules

¯ X − ǫ ≤ ˆ X ≤ ¯ X + ǫ, where ǫ =

  • ln(1/δ)

2N

Training stream

. . . . . .

Find the best candidate across the stream As examples stream in... Monitor ¯ X = scoreBestRule − scoreSecondBestRule Continue until the number N of examples makes ¯ X > ǫ =

  • ln(1/δ)

2N Then ¯ X − ǫ > 0 ⇒ ˆ X > 0 ⇒ BestRule is indeed the best rule, with probability 1−δ.

slide-27
SLIDE 27

Online Rule Learning

R1: 0.345 R2: 0.232 R3: 0.145 R4: 0.612 R5: 0.325 Candidate Rules

¯ X − ǫ ≤ ˆ X ≤ ¯ X + ǫ, where ǫ =

  • ln(1/δ)

2N

Training stream

. . . . . .

Find the best candidate across the stream As examples stream in... Monitor ¯ X = scoreBestRule − scoreSecondBestRule Continue until the number N of examples makes ¯ X > ǫ =

  • ln(1/δ)

2N Then ¯ X − ǫ > 0 ⇒ ˆ X > 0 ⇒ BestRule is indeed the best rule, with probability 1−δ.

slide-28
SLIDE 28

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.987 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.534 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.023 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-29
SLIDE 29

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.732 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.307 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.568 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.048 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-30
SLIDE 30

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.632 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-31
SLIDE 31

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.632 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.312 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Used O( 1 ǫ2 ln1 δ ) examples Best rule so far

slide-32
SLIDE 32

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.644 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.618 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.588 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-33
SLIDE 33

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.689 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.656 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.522 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-34
SLIDE 34

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.672 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.693 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.503 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Input stream

slide-35
SLIDE 35

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.672 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.623 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.503 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.312

Used O( 1 ǫ2 ln1 δ ) examples Best rule so far

slide-36
SLIDE 36

Online Rule Learning

initiatedAt(meet(X, Y ), T) score: 0.216 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T). score: 0.418 initiatedAt(meet(X, Y ), T) ← happensAt(active(X), T). score: 0.672 initiatedAt(meet(X, Y ), T) ← holdsAt(close(X, Y , 25), T). score: 0.122 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T). score: 0.693 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), holdsAt(close(X, Y , 25), T). score: 0.503 initiatedAt(meet(X, Y ), T) ← happensAt(active(Y ), T), happensAt(active(X), T), holdsAt(close(X, Y , 25), T). score: 0.618

And so on...

slide-37
SLIDE 37

Theory (Event Pattern Set) Learning

OLED

Theory Expan- sion Clause Eval- uation Clause Exa- pansion Clause Pruning EC Axioms holdsAt(F, T + 1) ← initiatedAt(F, T). holdsAt(F, T + 1) ← holdsAt(F, T), not terminatedAt(F, T). Learnt Hypothesis Ht: initiatedAt(moving(X , Y ), T) ← happensAt(walking(X ), T), happensAt(walking(Y ), T), holdsAt(close(X , Y , 34), T). terminatedAt(moving(X , Y ), T) ← happensAt(inactive(X ), T), not holdsAt(close(X , Y , 34), T). Training example It holdsAt(moving(id1 , id2 ), 10) happensAt(walking(id1 ), 9), happensAt(walking(id2 ), 9), holdsAt(close(id1 , id2 , 34), 9), holdsAt(orientation(id1 , id2 , 45), 9) Data Stream/Training Examples

. . . . . .

Training example It′ not holdsAt(moving(id1 , id2 ), 20) happensAt(active(id1 ), 19), happensAt(running(id2 ), 19), not holdsAt(close(id1 , id2 , 34), 19), holdsAt(orientation(id1 , id2 , 120), 19)

. . .

slide-38
SLIDE 38

Empirical Evaluation

◮ Activity recognition using a benchmark dataset (CAVIAR).

◮ 28 surveillance videos.

◮ Input: short-term activities per video frame+contextual

information:

◮ walking, active, inactive, running. ◮ coordinates, orientation, occlusion.

◮ Learn concepts for Move and Meet. ◮ 10-fold cross-validation.

slide-39
SLIDE 39

Empirical Evaluation

Method Precision Recall F1-score Time (sec) Move ECcrisp 0.909 0.634 0.751 – ECMM 0.844 0.941 0.890 1692 XHAIL 0.779 0.914 0.841 7836 OLED 0.709 0.948 0.812 12 OSL – – – N/A (> 25h) OSLα 0.7823 0.8882 0.8319 1342 Meet ECcrisp 0.687 0.855 0.762 – ECMM 0.919 0.813 0.863 1133 XHAIL 0.804 0.927 0.861 7248 OLED 0.943 0.750 0.836 23 OSL – – – N/A (> 25h) OSLα 0.9055 0.8966 0.9010 174

slide-40
SLIDE 40

Current work

◮ Statistical Relational Learning

◮ Logic + Probability ◮ Online structure + parameter learning.

◮ Distributed/parallel learning.

slide-41
SLIDE 41

Resources

◮ N. Katzouris, A. Artikis and G. Paliouras. Online Learning of

Event Definitions, TPLP 16(5-6), pp. 817-833, 2016

◮ N. Katzouris, A. Artikis and G. Paliouras. Parallel Online

Learning of Event Definitions, ILP, 2017

◮ http://github.com/nkatzz/OLED

slide-42
SLIDE 42

Semi-Supervised Online Structure Learning

◮ Common problem in Big data applications:

◮ Incomplete annotation of activities of ‘special significance’. ◮ Providing complete annotation is time-consuming. ◮ The process of complex event pattern construction is hindered.

◮ Solution: Online supervision completion

◮ Use given labels to complete the missing ones as data arrive. ◮ Perform supervised structure learning.

slide-43
SLIDE 43

Semi-Supervised Online Structure Learning

Micro-Batch Dt HappensAt(stop start(228394000), 99) HappensAt(slow motion end(228394000), 99) HappensAt(isInArea(228394000, Area1166285600), 99) HappensAt(velocity lt 2(228394000), 99) InitiatedAt(stopped(228394000), 100) . . . HappensAt(stop start(228394000), 150) HappensAt(slow motion end(228394000), 150) HappensAt(isInArea(228394000, Area1166285600), 150) HappensAt(velocity lt 2(228394000), 150) ? InitiatedAt(stopped(228394000), 150) . . . Micro-Batch Dt+1 HappensAt(stop end(228394000), 200) HappensAt(slow motion start(228394000), 200) HappensAt(leavesArea(228394000, Area1166285600), 200) HappensAt(velocity gt 2(228394000), 200) Terminated(stopped(228394000), 200) . . . HappensAt(stop end(228394000), 220) HappensAt(slow motion start(228394000), 220) HappensAt(leavesArea(228394000, Area1166285600), 220) HappensAt(velocity gt 2(228394000), 200) ? Terminated(stopped(228394000), 220) . . .

. . . . . . . . .

Data Stream/Training Examples Data Partitioning Graph Construction Supervision Completion OSLα

slide-44
SLIDE 44

Data Partitioning

Micro-Batch Dt HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) InitiatedAt(stopped(228394000), 5) . . . HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) ¬InitiatedAt(stopped(228394000), 20) . . . HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) ? InitiatedAt(stopped(228394000), 50) . . . Training Sequence

slide-45
SLIDE 45

Data Partitioning

Micro-Batch Dt HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) InitiatedAt(stopped(228394000), 5) . . . HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) ¬InitiatedAt(stopped(228394000), 20) . . . HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) ? InitiatedAt(stopped(228394000), 50) . . . Training Sequence

slide-46
SLIDE 46

Data Partitioning

Micro-Batch Dt HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) InitiatedAt(stopped(228394000), 5) . . . HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) ¬InitiatedAt(stopped(228394000), 20) . . . HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) ? InitiatedAt(stopped(228394000), 50) . . . Training Sequence HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5)

slide-47
SLIDE 47

Data Partitioning

Micro-Batch Dt HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) InitiatedAt(stopped(228394000), 5) . . . HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) ¬InitiatedAt(stopped(228394000), 20) . . . HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) ? InitiatedAt(stopped(228394000), 50) . . .

Training Sequence

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . .

Vertex: InitiatedAt(stopped(228394000), 5)

HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . .

Vertex: ¬InitiatedAt(stopped(228394000), 20)

slide-48
SLIDE 48

Data Partitioning

Micro-Batch Dt HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) InitiatedAt(stopped(228394000), 5) . . . HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) ¬InitiatedAt(stopped(228394000), 20) . . . HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) ? InitiatedAt(stopped(228394000), 50) . . .

Training Sequence

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . .

Vertex: InitiatedAt(stopped(228394000), 5)

HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . .

Vertex: ¬InitiatedAt(stopped(228394000), 20)

HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . .

Vertex: ? InitiatedAt(stopped(228394000), 50)

slide-49
SLIDE 49

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50)

slide-50
SLIDE 50

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50)

slide-51
SLIDE 51

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1

slide-52
SLIDE 52

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1

slide-53
SLIDE 53

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1 0.85

slide-54
SLIDE 54

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1 0.85

slide-55
SLIDE 55

Graph Construction

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1 0.85 0.1

slide-56
SLIDE 56

Supervision Completion

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.1 0.85 0.1

slide-57
SLIDE 57

Supervision Completion

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: ? InitiatedAt(stopped(228394000), 50) 0.85

slide-58
SLIDE 58

Supervision Completion

HappensAt(stop start(228394000), 5) HappensAt(slow motion end(228394000), 5) HappensAt(isInArea(228394000, Area1166285600), 5) HappensAt(velocity lt 2(228394000), 5) . . . Vertex: InitiatedAt(stopped(228394000), 5) HappensAt(stop end(228394000), 20) HappensAt(slow motion start(228394000), 20) HappensAt(leavesArea(228394000, Area1166285600), 20) HappensAt(velocity gt 2(228394000), 20) . . . Vertex: ¬InitiatedAt(stopped(228394000), 20) HappensAt(stop start(228394000), 50) HappensAt(slow motion end(228394000), 50) HappensAt(isInArea(228394000, Area1166285600), 50) HappensAt(velocity lt 2(228394000), 50) . . . Vertex: InitiatedAt(stopped(228394000), 50) 0.85

slide-59
SLIDE 59

Experimental Evaluation (1/2)

20 40 60 80 0.2 0.4 0.6 0.8 1 % supervision kept F1-score 20 40 60 80 10 20 30 40 % supervision kept Runtime (seconds) 20 40 60 80 100 0.2 0.4 0.6 0.8 1 % supervision kept F1-score 20 40 60 80 100 1 2 3 4 % supervision kept Runtime (minutes) SPLICE-OSLα OSLα incomplete SPLICE-OLED OLED incomplete

slide-60
SLIDE 60

Experimental Evaluation (2/2)

20 40 60 80 0.2 0.4 0.6 0.8 1 % supervision kept F1-score 20 40 60 80 10 20 30 40 % supervision kept Runtime (seconds) 20 40 60 80 100 0.2 0.4 0.6 0.8 1 % supervision kept F1-score 20 40 60 80 100 10 20 30 % supervision kept Runtime (minutes) SPLICE-OSLα OSLα incomplete SPLICE-OLED OLED incomplete