dialogsystem del 2 informationstillstånd, trindikit, godis staffan larsson pragmatik vt04

113
Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Post on 19-Dec-2015

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Dialogsystem del 2Informationstillstånd, TrindiKit, GoDiS

Staffan Larsson

Pragmatik VT04

Page 2: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Dialogspel för agenter:Conversational Game Theory

(Lewin 2000)

Page 3: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Informationstillstånd och dialogtillstånd

• Dialogtillstånd – ett tillstånd i en finit automat; ingen information lagrad

i tillståndet

• Informationstillstånd– ett ``dialogprotokoll'' som håller reda på

gemensamma antaganden, aktuella frågor, skyldigheter, referenter mm.

– kan även inkludera privata och sociala attityder– både privat och delad information– kan t o m inkludera dialogtillstånd (t ex ett heltal som

refererar till ett tillstånd i en automat)

Page 4: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

CGT & dialogspelsbaserade agenter

• Teori som tillämpar dialoggrammatik i dialogsystem

• Använder också informationstillstånd• Spel representerade som RTNs (Recursive

Transition Networks)– d v s bågar i ett spel kan vara associerade med ett

annat spel• Kombineras med enkelt

informationstillstånd/kontext <Pd, Cm>:– Pd: Propositions under discussion

• < P, d(P) >, där d(P) är ett fokuserat element i P– Cm: Commitment slate

Page 5: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• Moves & games är funktioner som uppdaterar kontexten

• Moves uppdaterar Pd• Games uppdaterar Cm

– committments: ej mentala attityder utan ”publika objekt” som man kan bindas till

– social attityd

• Ej som i t ex Cohen & Perrault!– förvillkor och effekter i termer av mentala tillstånd,

privata attityder

Page 6: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Move types (urval)

• qw(p): wh-fråga– Pd := < p, 0 >

• rw(p): svar på wh-fråga– Pd := < p, 0 >

• ack: acknowledgement; Pd oförändrad• cnf(c): confirmation

– Pd före = < P, _ >– Pd := < P, c >

• Ryes: ja-svar ; Pd oförändrad• Rno: nej-svar ; Pd oförändrad

Page 7: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Games

• Att spela dialog involverar ”parsning” av spel m h a dialoggrammatiken– parallell, inkrementell parser– rankar möjliga parsningar m h a en preferensmekanism– detta sköts av en ”monitor”

• Men agenten måste också producera egna yttranden– sköts av dialogbidragsgenerator– genererar output om monitorn indikerar att det är systemets tur– vilken output som väljs beror dels av speltillstånd, dels av

informationstillstånd

Page 8: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

0

4

1 2 3

qw

qw-r

rw

cnf

Ryes|Rno|Rmod

ack

QW(p)

QW(p) -> {qw | qw-r} rw (cnf {Ryes | Rno | Rmod}) ack...

Page 9: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Exempeldialog

game state

infostate

A: Where do you want to travel? 1 Pd = <{dest(X)}, 0>

Cm = {}

B: To Exeter 2 Pd = <{dest(exeter)}, 0>

A: Is your destination Exeter? 4 Pd = <{dest(exeter)}, dest(exeter)>

B: Yes 2

A: Okay 3 Pd =

Cm = {dest(exeter)}

Page 10: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Uppgifter (2-4 sidor)

• 10.1 Vilka egenskaper har en agent? Vilka attityder kan en agent ha, och hur hänger dessa samman med egenskaperna? (Wooldridge & Jennings)

• 10.2 Beskriv de olika approacherna till att bygga artificiella dialogagenter (Traum, Lewin)– planbaserad– logikbaserad– tillståndsbaserad

• 10.3 Vilken typ av information behöver en dialogagent hålla reda på i de olika approacherna? (Traum, Lewin)

Page 11: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Dialogsystem

Page 12: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Dialogue modelling

• Theoretical motivations– find structure of dialogue– explain structure– relate dialogue structure to informational and

intentional structure

• Practical motivations– build dialogue systems to enable natural human-

computer interaction– speech-to-speech translation– ...

Page 13: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Why build dialogue systems?

• theoretical: test theories– e.g. what kind of information does the system need to

keep track of?– problem: complex system with many components

• practical: natural language interfaces– databases (train timetables etc)– electronic devices (mobile phones,...)– instructional/helpdesk systems– booking flights etc– tutorial systems

Page 14: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

What does a system need to be able to do?

• speech recognition• parsing, syntactic and semantic interpretation

– resolve ambiguities– anaphora and ellipsis resolution, etc...

• dialogue management– how does an utterance change the state of the dialogue?– given the current state of the dialogue, what should the

system do?

• natural language generation• speech synthesis

Page 15: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Why spoken dialogue?

• Spoken dialogue is the natural way for people to communicate– computers should adapt to humans rather than the

other way around

• important to enable system and user to communicate in a natural (human-like) way– mixed initiative– turntaking, feedback, barge-in – handle embedded subdialogues– ...

Page 16: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

What’s happening with dialogue systems

• Beginning to be used commercially• Limited domains

– need to encode domain-specific knowledge; a general system would require general world knowledge

– speech recognition is harder with large lexicon

• Simple dialogue types– mostly information-seeking

• Need to bridge gap between dialogue theory and working systems

Page 17: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Dialogsystemtyper

• finite state automata (CLSU toolkit)– Dock ofta med möjlighet att ha tilltåndsvariabler

(=informationstillstånd)– Reaktiva agenter???

• frame-based (VoiceXML)

• plan-based (TRAINS, Allen, Cohen, Grosz, Sidner, ...)

• general reasoning (Sadek, ...)

• information states (TRINDI: Traum, Bos, ...)

Page 18: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Problemområden & teorierformell pragmatik för dialogsystem

• hantering av dialogstruktur– dialogspel– talakter

• implicit information– presupposition– implikatur– planigenkänning

• relatera explicit & implicit information till kontext; uppdatera kontext– pronomenlösning (DRT, Centering Theory, abduktion)– planigenkänning– accommodation

• välj/planera yttrande– planering– implicit information?

• kommunikationshantering– ICM, OCM– grounding– konversationsanalys

Page 19: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit

Page 20: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

What is TrindiKit?

• a toolkit for – building and experimenting with dialogue move engines and systems, – based on the information state approach

• not a dialogue system in itself

Page 21: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Architecture & concepts

Page 22: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

module1 module…

Total Information State (TIS)•Information state proper (IS)•Module Interface Variables•Resource Interface Variables

resource1

control

modulei modulej module… modulen

resource… resourcem

DME

Page 23: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• an abstract data structure (record, DRS, set, stack etc.)

• accessed by modules using conditions and operations

• the Total Information State (TIS) includes– Information State proper (IS)– Module Interface variables– Resource Interface variables

Information State (IS)

Page 24: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• module or group of modules responsible for – updating the IS based on observed moves– selecting moves to be performed

• dialogue moves are associated with IS updates using IS update rules– there are also update rules no directly associated with any move

(e.g. for reasoning and planning)

• update rules: rules for updating the TIS– rule name and class– preconditon list: conditions on TIS– effect list: operations on TIS

• update rules are coordinated by update algorithms

Dialogue Move Engine (DME)

Page 25: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• Modules (dialogue move engine, input, interpretation, generation, output etc.) – access the information state– no direct communication between modules

• only via module interface variables in TIS• modules don’t have to know anything about other modules• increases modularity, reusability, reconfigurability

– may interact with user or external processes

• Resources (device interface, lexicons, domain knowledge etc.)– hooked up to the information state (TIS) – accessed by modules– defined as object of some type (e.g. ”lexicon”)

Modules and resources

Page 26: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

What’s in TrindiKit?

Page 27: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

What does TrindiKit provide?

• High-level formalism and interpreter for implementing dialogue systems– promotes transparency, reusability, plug-and-play, etc.– allows implementation and comparison of dialogue

theories – hides low-level software engineering issues

• GUI, WWW-demo • Ready-made modules and resources

– speech– interfaces to databases, devices, etc.– reasoning, planning

Page 28: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• a library of datatype definitions (records, DRSs, sets, stacks etc.)– user extendible

• a language for writing information state update rules • GUI: methods and tools for visualising the information

state• debugging facilities

– typechecking– logs of communication modules-TIS– etc.

TrindiKit contents (1)

Page 29: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• A language for defining update algorithms used by TrindiKit modules to coordinate update rule application

• A language for defining basic control structure, to coordinate modules

• A library of basic ready-made modules for input/output, interpretation, generation etc.;

• A library of ready-made resources and resource interfaces, e.g. to hook up databases, domain knowledge, devices etc.

TrindiKit contents (2)

Page 30: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Special modules and resources included with TrindiKit

• OAA interface resource– enables interaction with existing software and

languages other than Prolog

• Speech recognition and synthesis modules– TrindiKit shells for off-the-shelf products, e.g. Nuance

• Possible future modules:– planning and reasoning modules– multimodal input and output

Page 31: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Asynchronous TrindiKit

• Internal communication uses either– OAA (Open Agent Architecture) from SRI, or– AE (Agent Environment), a stripped-down version of

OAA, implemented for TrindiKit

• enables asynchronous dialogue management– e.g.: system can listen and interpret, plan the

dialogue, and talk at the same time

Page 32: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

How to build a system

Page 33: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKitinformation state approach

How to use TrindiKit

• We start from TrindiKit– Implements the information state approach– Takes care of low-level programming:

dataflow, datastructures etc.

Page 34: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit

basicdialogue theory

basic system

information state approach

How to build a basic system

• Formulate a basic dialogue theory – Information state– Dialogue moves– Update rules

• Add appropriate modules (speech recognition etc)

Page 35: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit

basicdialogue theory

basic system

information state approach

genre-specific theoryadditions

genre-specific system

How to build a genre-specific system

• Add genre-dependent IS components, moves and rules

Page 36: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit

basicdialogue theory

domain & languageresources

basic system

application

information state approach

genre-specific theoryadditions

genre-specific system

How to build an application

• Add application-specific resources

Page 37: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• Come up with a nice theory of dialogue• Formalise the theory, i.e. decide on

– Type of information state (DRS, record, set of propositions, frame, ...)

– A set of dialogue moves– Information state update rules, including rules for

integrating and selecting moves– DME Module algorithm(s) and basic control algorithm – any extra datatypes (e.g. for semantics: proposition,

question, etc.)

Building a domain-independent Dialogue Move Engine

Page 38: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Specifying Infostate type

• the Total Information State contains a number of Information State Variables– IS, the Information State ”proper”– Interface Variables

• used for communication between modules

– Resource Variables• used for hooking up resources to the TIS, thus making them

accessible from to modules

• use prespecified or new datatypes

Page 39: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

example: BeadieEye IS

BEL: Set(Prop)DES: Set(Prop)INT: Set(Action)MBEL: Set(Prop)

information statetype

LM: Set(Move)

IS :

Page 40: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Specifying a set of moves

• amounts to specifying objects of type move (a reserved type)– there may be type constraints on the arguments of

moves• Example: GoDiS dialogue moves

– Ask(Q), Q is a question– Answer(A), A is an answer (proposition or fragment)– Request(), is an action– Confirm()– Greet– Quit

Page 41: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Writing rules

• rule = conditions + updates– if the rule is applied to the IS and its

conditions are true, the operations will be applied to the IS

– conditions may bind variables with scope over the rule (prolog variables, with unification and backtracking)

Page 42: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Example: BeadieEye moves and a rule

moves: assert(P), askif(P)

rule( integrate_assert,

[ in( $lm, assert(P) ) ],

add( is/mbel, P ),

add( is/bel, P ),

del( lm, assert(P) ) ] ).

Page 43: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Example BeadieEye rule application

BEL = { happy(sys) }DES = { knowif( happy(usr) ) }INT = { }MBEL = { }

Rule application: integrate_assert, > add( IS/MBEL, happy(usr) ),> add( IS/BEL, happy(usr) ),> del( LM, assert(happy(usr) )

LM = { assert( happy(usr) }

IS =

BEL = { happy(sys), happy(usr) }DES = { knowif( happy(usr) ) }INT = { }MBEL = { happy(usr) }

LM = { }

IS =

Page 44: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Example: a rule from GoDiS

rule( integrateUsrAnswer, [ $/shared/lu/speaker = usr,

assoc( $/shared/lu/moves, answer(R), false ),

fst( $/shared/qud, Q ),

$domain : relevant_answer( Q, R ),

$domain : reduce(Q, R, P)

], [

set_assoc( /shared/lu/moves, answer(R),true),

shared/qud := $$pop( $/shared/qud ),

add( /shared/com, P ) ] ).

Page 45: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Building modules

• Algorithm– For DME modules: coordinate update rules– For control modules: coordinate other modules

• TrindiKit includes a language for writing algorithms– For DME modules: basic imperative programming

constructs– For control module: basic imperative constructs plus

asynchronous triggers

Page 46: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Sample update algorithm

grounding, if $latest_speaker == sys then

try integrate, try database, repeat downdate_agenda, store

else repeat

integrate orelse accommodate orelse find_plan orelse

if (empty ( $/private/agenda ) then manage_plan else downdate_agenda

repeat downdate_agendaif empty($/private/agenda))then repeat manage_plan

repeat refill_agendarepeat store_nim try downdate_qud

Page 47: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Sample control algorithm (2)input: {

init => input:display_prompt, new_data(user_input) => input }

| interpretation: { import interpret, condition(is_set(input)) => [ interpret, print_state ] }

| dme: { import update, import select, init => [ select ], condition(not empty(latest_moves)) => [

update, if $latest_speaker == usr then select

] }

| generation: { condition(is_set(next_moves)) => generate }

| output: { condition(is_set(output)) => output } )).

Page 48: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

From DME to dialogue system

Build or select from existing components: • Modules, e.g.

– input– interpretation– generation– output

• Still domain independent• the choice of modules determines e.g. the

format of the grammar and lexicon

Page 49: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Domain-specific systemBuild or select from existing components:• Resources, e.g.

– domain (device/database) interface– dialog-related domain knowledge, e.g. plan libraries etc.– grammars, lexicons

• Example resources: GoDiS VCR control – VCR interface– Domain knowledge– Lexicon

Page 50: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Extending TrindiKit

Page 51: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

You can add

• Datatypes– Whatever you need

• Modules– e.g. General interfaces to speech recognizers and

synthesizers

• Resources– E.g. General interfaces to (passive) devices

• Important that all things added are reasonably general, so they can be reused in other systsems

Page 52: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Datatype definitions

• relations– relations between objects; true or false

• functions– functions from arguments to result

• selectors – selects an object embedded in another object

• Operations– Changes the information state

Page 53: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Building modules

• DME modules– Specific to a certain theory of dialogue management– Best implemented using rules and algorithms

• Other modules– Should be more general, less specific to certain theory

of dialogue management– May be easier to implement directly in prolog or other

language• TrindiKit algorithm language currently only covers checking

and updating the infostate• These modules may also need to interact with other programs

or devices

Page 54: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Building resources

• Resource– the resource itself; exports a set of predicates

• Resource interface– defines the resource as a datatype T, i.e. in terms of relations,

functions and operations

• Resource interface variable– a TIS variable whose value is an object of the type T

• By changing the value of the variable, resources can be switched dynamically– change laguage– change domain

Page 55: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Features and advantages of TrindiKit

Page 56: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• explicit information state datastructure – makes systems more transparent – enable e.g. context sensitive interpretation,

distributed decision making, asynchronous interaction

• update rules – provide an intuitive way of formalising theories in a

way which can be used by a system– represent domain-independent dialogue

management strategies

TrindiKit features

Page 57: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit features cont’d

• resources– represent domain-specific knowledge– can be switched dynamically

• e.g. switching language on-line in GoDiS

• modular architecture promotes reuse– basic system -> genre-specific systems– genre-specific system -> applications

Page 58: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Theoretical advantages of TrindiKit

• theory-independent– allows implementation and comparison of competing

theories– promotes exploration of middle ground between

simplistic and very complex theories of dialogue

• intuitive formalisation and implementation of dialogue theories– the implementation is close to the theory

Page 59: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Practical advantages of TrindiKit

• promotes reuse and reconfigurability on multiple levels

• general solutions to general phenomena enables rapid prototyping of applications

• allows dealing with more complex dialogue phenomena not handled by current commercial systems

Page 60: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

availability• TrindiKit website

– www.ling.gu.se/projects/trindi/trindikit

• SourceForge project– development versions available– developer community?

• licensed under GPL• more info in

– Larsson & Traum: NLE Special Issue on Best Practice in Dialogue Systems Design, 2000

– TrindiKit manual (available from website)

Page 61: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

BeadieEye

Page 62: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

BeadieEye

• Ett mycket enkelt dialogsystem

• Implementerat i TrindiKit

• Experimentera med – Talakter/dialogdrag– Attityder – Interaktion mellan dessa

• Enbart dialoghantering– ingen tolkning eller generering av NL

Page 63: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

BeadieEye

• Informationstillstånd / mentala tillstånd– En uppsättning attityder– Och relaterade strukturer

• Dialogdrag / talakter– Typ + innehåll

• Uppdateringsregler för dialogagenter– Generellt: funktion IS -> IS’– Integreringsregler: IS + Move -> IS’– Selektionsregler: IS -> Move + IS’

Page 64: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

• Talakter och uppdateringsregler– förvillkor kodas som selektionsregler– effekter kodas som integreringsregler

• Dialogspel– ej explicit kodade i t ex grammatik; emergent

egenskap

Page 65: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

BeadieEye1

• Belief: bel

• Intention: int

• Desire: des

• Mutual belief: mbel

• Propositioner: godtycklig prologterm

Page 66: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

example IS and rule

BEL: Set(Prop)DES: Set(Prop)INT: Set(Action)MBEL: Set(Prop)

information statetype

moves: assert(P), askif(P)

rule( integrate_assert,[ in( $lm, assert(P) ) ], add( is/mbel, P ), add( is/bel, P ), del( lm, assert(P) ) ] ).

LM: Set(Move)

IS :

Page 67: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Example rule applicationBEL = { happy(sys) }DES = { knowif( happy(usr) ) }INT = { }MBEL = { }

Rule application: integrate_assert, > add( IS/MBEL, happy(usr) ),> add( IS/BEL, happy(usr) ),> del( LM, assert(happy(usr) )

LM = { assert( happy(usr) }

IS =

BEL = { happy(sys), happy(usr) }DES = { knowif( happy(usr) ) }INT = { }MBEL = { happy(usr) }

LM = { }

IS =

Page 68: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Issue-based Dialogue Management in GoDiS

AI course, spring 2003

Staffan Larsson

Page 69: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

overview of contents

1. Introduction

2. Basic issue-based dialogue management

3. Grounding and feedback

4. Adressing Unraised Issues

5. Action-oriented Dialogue

6. Multilinguality

7. Conclusions

Page 70: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

1. Introduction, goals

• explore and implement issue-based dialogue management– starting from Ginzburg’s theory of dialogue semantics based on

notion of QUD (Questions Under Discussion)– adapt to dialogue system (GoDiS) and implement– extend theory coverage, taking in relevant theories

• general theory of dialogue– minimize effort for adapting dialogue system to new domains

• incrementally extending system to handle increasingly complex types of dialogue– clarifies relation between dialogue genres– promotes reuse of update rules

• Larsson (2002): Issue-based Dialogue Management (PhD Thesis)

Page 71: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

GoDiS: an issue-based dialogue system

• Built using TrindiKit– Toolkit for implementing and experimenting with dialogue

systems based on the information state approach

• Explores and implements issue-based dialogue management

• Extends theory to more flexible dialogue– Multiple tasks, information sharing between tasks – Feedback and grounding– Accommodation, re-raising, clarification– Menu based action oriented dialogue– Multi-linguality & mutiple domains

Page 72: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

inputinter-pret

TIS

DATABASE LEXICON DOMAIN

data-base

control

update selectgene-rate

output

lexicon domainknowledge

DME

Page 73: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

TrindiKit

GoDiS

GoDiS-I GoDiS-A

TravelAgency

Auto-route

Xeroxmanual

VCRmanager

IBDM

homedevice

manager

ISapproach

genre-specific

application-specific

Page 74: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Issue-based dialogue management

• enquiry-oriented dialogue (database search)• basis:

– Ginzburg’s Dialogue Gameboard (DGB) and – related DGB update protocols

• dialogue moves: ask, answer, greet, quit• raising and addressing issues

– incl. short answers. e.g.”yes”, ”no”, ”paris”, ”in april”

• dialogue plans• sample domain: travel agency• extension:

– reraising issues– handling multiple issues

Page 75: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Semantics• simple First Order Logic without quantifiers, but

with questions• questions

– Y/N-questions: ?P, P is a proposition– wh-questions: ?x.p(x) (p is a predicate)

• ? works much like like – alt-questions: {?P1, …, ?Pn}

• Content of short answers– individual markers: paris, april, …– yes, no

Page 76: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Semantics, cont’d

• Q-A relations (adapted from Ginzburg)– resolves(A,Q): A resolves Q

• dest-city(paris) resolves ?x.dest-city(x)

– relevant(A,Q): A is relevant to Q (about Q)• not(dest-city(paris)) is relevant to ?x.dest-

city(x), but does not resolve it

Page 77: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

basic GoDiS information state record type

PRIVATE :PLAN : stack( Action ) AGENDA : OpenQueue( Action )

SHARED :

BEL : set( Prop )

COM : set( Prop ) QUD : stack( Question )

LU: SPEAKER: Speaker MOVES: OQueue( Move )

Page 78: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

sample dialogue plan

< findout(?x.transport(x))

findout(?x.dest-city(x))

findout(?x.depart-city(x))

findout(?x.dept-month(x))

findout(?x.dept-day(x))

raise({?class(economy), ?class(business)}

consultDB(?x.price(x)) >

Page 79: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Answer integration

• integrateAnswer update rule

• Before an answer can be integrated by the system, it must be matched to a question on QUD

pre:

eff:

in($/SHARED/LU/MOVES, answer(A)) fst($/SHARED/QUD, Q)

$DOMAIN:relevant(A, Q)

! DOMAIN: combine(Q, A, P) add(/SHARED/COM, P)

Page 80: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

basic dialogue with updates

U: ”price information please”; raises price issue– if user asks Q, push respond(Q) on AGENDA– if respond(Q) on AGENDA and PLAN empty, find plan for Q

and load to PLAN– if findout(Q) first on PLAN, ask Q

S: ”where do you want to go?”U: ”Paris”

– if LM=answer(A) and A relevant to Q, add P=Q[A] to SHARED.COM

– if P in SHARED.COM and Q topmost on QUD and P resolves Q, pop QUD

– if P in SHARED.COM and P fulfils goal of findout(Q) and findout(Q) on PLAN, pop PLAN

Page 81: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

basics cont’d

• …S: ”Do you want economy class or business

class?”U: ”economy class”

– if consultDB(Q) on PLAN, consult database for answer to Q; store result in PRIVATE.BEL

– if Q on QUD and P in PRIVATE.BEL s.t. P resolves Q, answer(P)

S: ”The price is £123”

Page 82: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Information sharing across plans

• GoDiS does not keep track of when propositions were added, or which plan was being executed

• so information sharing is determined by question sharing across plans

• plan for VISA question:findout(?x.dest-city(x))findout(?x.citizenship(x))– shares a questions with plan for ?x.price(x)

• so if visa-issue raised after price-issue, no need to ask for destination again

Page 83: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

dealing with multiple open issues

• if user asks Q, push Q on QUD and load plan for dealing with Q

• if users asks Q’ while system is dealing with Q, throw out plan for Q but Q remains on QUD; load plan for Q’

• when Q’ resolved, Q topmost on QUD will trigger reloading plan for dealing with Q– general rule: if SHARED.COM contains info resolving Q, don’t

ask Q– so any resolved questions in plan will be thrown out

Page 84: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Sample dialogue: multiple tasks & info sharing

S> Welcome to the travel agency! U> price information S> (…) Lets see. How do you want to travel? U> by flightS> (…) What city do you want to go to? U> parisS> (…) What city do you want to go from? U> do I need a visa ?S> (…) Lets see. What country are you from? U> swedenS> Okay. Yes, you need a Visa. S> Returning to the issue of price. Lets see. What city do you want to

go from?

Page 85: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Addressing Unraised Issues

• QUD and ISSUES

• General strategy: question accommodation

• issue accommodation

• QUD accommodation

• dependent issue accommodation

• issue reacommodation

Page 86: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

A problem with QUD

• If QUD=<q1,q2> and q1 is resolved, q2 is available for resolution of short answers– takes no account of how many turns since q2 was

raised– but short answers a long distance away from the

question are not as easily processed as an adjacent answer

Page 87: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

ISSUES and QUD

• We extend Ginzburg’s DGB by adding ISSUES of type Stack(Question)

• ISSUES contains all raised but unresolved questions – ISSUES determines relevance of user answers

• QUD used for resolving short answers– questions drop off QUD after N turns– a short answer to a question that’s on ISSUES but not

QUD requires adjusting QUD by copying a question on ISSUES

Page 88: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Typical human-human dialogue

S(alesman), C(ustomer)

S: hi

C: flights to paris

S: when do you want to travel?

C: april, as cheap as possible

...

Page 89: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Accommodation

• Lewis (1979): If someone says something at t which requires X to be in the conversational scoreboard, and X is not in the scoreboard at t, then (under certain conditions) X will become part of the scoreboard at t

• Has been applied to referents and propositions, as parts of the conversational scoreboard / information state

Page 90: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Question accommodation

• If questions are part of the information state, they too can be accommodated

• If the latest move was an answer, and there is an action in the plan to ask a matching question, then– put that question on ISSUES – (and QUD if it is a short answer)

• Requires that the number of possible matching questions is not too large – (or can be narrowed down by asking clarification

question)

Page 91: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

issue accommodation PLANISSUES

• If – LM=answer(A) – no Q in ISSUES s.t. about(A,Q)

• then– find findout(Q) in PLAN s.t. about(A,Q)– push Q on ISSUES

• used when prevously unraised question (available in plan) is answered using a short or full answer

Page 92: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

QUD accommodation ISSUESQUD

• If – LM=answer(A)– no Q in QUD s.t. about(A,Q)

• then– find Q in ISSUES s.t. about(A,Q)– push Q on QUD– raise Q in ISSUES (make Q topmost)

• used when– previously raised question has dropped off QUD, but is

answered using a short answer– previously unraised question is answered using short answer

[needs PLANISSUES accommodation]

Page 93: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

dependent issue accommodationDOMAINISSUES (+PLAN)

• If – LM=answer(A)– no Q in ISSUES s.t. about(A,Q)– no findout(Q) in PLAN s.t. about(A,Q)

• then– find Plan for some Q’ in DOMAIN s.t. findout(Q) or

raise(Q) in Plan and about(A, Q)– push Q’ on ISSUES– set PLAN to Plan

• used when previously unraised question, unavailable in PLAN, is answered using full or short answer (AKA ”task accomodation”)

Page 94: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Sample dialogue: accommodation

S: Welcome to the travel agency.U: From London to Paris in April

– not relevant to any question that has been raised, or to any current task– look in domain knowledge for a plan (for dealing with some question Q)

with matching questions– load this plan, push Q on ISSUES– find in the plan the question(s) matching the user’s answer– integrate answer (requres matching question on ISSUES)

S: Alright, you want to know about price. (…)

– proceed to next plan item

S: How do you want to travel?– ISSUES=<?x.how(x), ?x.price(x)>

Page 95: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Task clarification (VCR application)

S> What can I do for you? U> channel fiveS> channel five. I dont quite understand. Do you want to

add a program or change channel?U> change channelS> Okay. change channel.S> Lets see. channel five?U> yesS> The channel was changed

Page 96: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Issue reaccommodation SHARED.COMISSUES

• If – LM=answer(A) – no Q in ISSUES s.t. about(A,Q)– P in SHARED.COM s.t. there is a Q s.t. about(A,Q)

and about(P,Q)

• then– push Q on ISSUES– remove P from SHARED.COM

• Used when previously resolved question is answered again

Page 97: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Revision by reaccommodation and reraising

S> What can I do for you?

U> add program channel five

S> Okay. Do you want to add a program?

U> yes

S> Lets see. channel five?

U> yes

S> What date?

U> channel six

S> Okay. channel six… What date?

Page 98: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Issues and goals in Action-Oriented Dialogue (AOD)

• each goal action associated with a dialogue plan• add field

– SHARED.ACTIONS : StackSet(Action)

• New moves: request(Action), report(Action, Status)

• ACTIONS has a similar role to ISSUES• adapt accommodation strategies to AOD

Page 99: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

AOD information state

PRIVATE :PLAN : stackset( Action )

AGENDA : stack( Action )

SHARED :

BEL : set( Prop )

TMP : (same type as SHARED)

COM : set( Prop )

QUD : stackset( Question )

ACTIONS : stackset( Action )

LU:…

ISSUES: stackset(Question)

Page 100: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Requests vs. answers

• requests adresses a general question– ”what shall I do next?”, ”what can I do for you?” or similar

(”prompt”)– semantics in AOD: ?x.action(x)

• dialogue– ”What can I do for you?” raises?x.action(x) – ”Search the phonebook” interpreted as

request(search_phonebook)

• Rule: – If ?x.action(x) is topmost on ISSUES and L-M is request(a)– then pop ISSUES

Page 101: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Questions vs. answers

• a question can be regarded as a special type of request

• so in a specific sense, questions are also answers…

• questions adresses a general question– ”what issue shall I address next?”, ”what can I do for

you?” or similar (”prompt”)– semantics: ?x.issue(x)– this question is not presupposed

• semantics of ”How can I help you?” in IOD is ask(?x.issue(x))

Page 102: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Action Oriented Dialogue subtypes

• ”Command dialogue”– user instructs system to perform actions

• device control; menu-based• travel agency booking

• ”Instructional dialogue”– system instructs user to perform actions

• ”interactive manual”

– system can explaing how to perform some action

• joint planning– user and system jointly agree to a plan– also involves negotiation

Page 103: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

inputnuance

inter-pret

Information StateLEXICON DOMAIN DEVICES

lexiconvcrphone

control

update select gene-rate

outputnuance

devicephone

domainvcrphone

devicevcr

lexiconhome

domainhome

rel1

rel2

dim10

VCR

devicealert

Page 104: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Converting menus to plans

Menu Planmulti-choice list

P1, P2, ..., Pn

findout({?P1,?P2,...,?Pn})

tick-box +/-P findout(?P)

dialogue window

p=___

findout(?x.p(x))

pop-up message M inform(M)

Page 105: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Menu-based AODS: Welcome to the telephone and VCR manager!U: Channel one todayS: Right, I assume you want to add a program. Let’s see. Okay. Channel

one. Today. What time do you want to start recording?S: What time is it?U: It’s one forty fiveS: Set the clock to two forty fiveU: Okay, set the clock. Two forty five, is that correct?S: Yes.U: Okay. The clock was set. Returning to timer recording. So, what time

do you want to start recording?U: eight thirty to nine thirtyS: Okay. Starting at eight thirty. Ending at nine thirty. The program has

been added.

Page 106: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Task and question accommodation in AOD

S> Lets see. What can I do for you?

U> channel five today

S> Alright. add a program… Lets see. Okay. channel five… today… What time do you want to start recording?

U> from six thirty to seven thirty

S> Okay. from six thirty… to seven thirty… The program has been added. ”

Signals accommodation(sequencing ICM)

Page 107: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

7. Multilinguality and multiple domains

• Language and domain resources can be switched on the fly

• Does not affect the rest of the system

• Thanks to modularity structure of system

Page 108: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Multilinguality

S> Lets see. What can I do for you? U> add programS> Okay. Do you want to add a program?U> yesS> Lets see. What channel do you want? U> svenskaS> Okej. S> Gå tillbaks till lägg till ett program. Vilken kanal vill du spela in? U> kanal ettS> kanal ett , är det korrekt? S> Så, Vilken kanal vill du spela in? U> englishS> Okay...

Page 109: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Multiple domainsS> Welcome to the VCR manager! S> Lets see. What can I do for you? U> change domainS> Okay. change domain… Lets see. What domain do you want? U> telephoneS> Okay. This is your automatic telephone operator… Lets see. Please

specify a function. U> callS> Okay. make a phone call.S> Lets see. Please specify the destination of the call. U> luisS> Okay. Luis… Calling

Page 110: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Conclusions: GoDiS & Issue-Based Dialogue Management

• general solutions to– dealing with multiple tasks– sharing information between tasks– grounding and feedback– user initiative (accommodation)– menu-based dialogue

• rapid prototyping of applications– dialogue plans

• switching language and domain online

Page 111: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Current and future work• Extend to more complex dialogue types

– Negotiation (theory exists, not yet implemented)– Tutorial dialogue– …

• Explore use of QUD and ISSUES to assign proper focus intonation – Stina Ericsson, forthcoming PhD thesis

• Build VCR control application, available on the phone– Users can phone up and get TV programs recorded on a computer– Collect corpus to use as basis for further developments

• Integrate with type-theoretical situation semantics (cf. Robin’s talk)

Page 112: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Relation to plan-based approaches

• IBDM is compatible with, and can (should) be extended to include plan-based approaches

– Task accommodation requires plan recognition; currently very simple (but task accommodation is not included as such in plan-based approaches)

• IBDM covers some dialogue-specific phenomena not usually covered in plan-based approaches

– Short answers– Grounding and feedback– Accommotion

• However, some plan-based accounts cover some of the phenomena also covered by IBDM

– We believe the issue-based account is simpler and thus more appropriate for simple kinds of dialogue

– Plan-based approaches often unnecessarily complex for simple kinds of dialogue– We want to explore the middle ground beteen simple and complex accounts of

dialogue

Page 113: Dialogsystem del 2 Informationstillstånd, TrindiKit, GoDiS Staffan Larsson Pragmatik VT04

Uppgift: GoDiS

• Kör GoDiS i VCR-domänen och skriv ”channel five today”. Förklara vad som sedan händer i termer av uppdateringsregler och accommodation.