Capitolo Tesi

Transcript

Capitolo Tesi
Augmented Transitions
Networks(ATN)
In questo primo capitolo, verrà illustrato cos’è un ATN (diagramma
di transizione aumentati), utilizzato largamente nella generazione
di testi in linguaggio naturale in quanto consente di strutturare
frasi la cui espressione può variare a seconda del contesto in cui
vengono generate.
Farò riferimento soprattutto a come l’ATN viene utilizzato per
gestire i dialoghi, in quanto l’applicazione da me realizzata farà
riferimento a questo tipo di struttura.
Inizialmente introdurrò un po’ di storia, ossia come si è arrivati allo
sviluppo di tale modello, quindi parlerò anche degli ASF(automi a
stati finiti) e dei RTN(Recursive Transition Net). [1]
Dopodiché inizierò a scendere più nel dettaglio e spiegare come
viene rappresentato ed usato l’ATN, in particolare per l’utilizzo
della generazione di dialoghi.
1.1 Un po’ di storia
1.1.1 Dagli ASF ai RTN
In principio, le ATN venivano usate come strumento per l’analisi del
linguaggio naturale[2] grazie in particolare agli studi di Woods
(1970). Successivamente sono state utilizzate anche per la
generazione di tale linguaggio.
Tra i primi modelli per la rappresentazione di grammatiche per il
linguaggio naturale, troviamo i diagrammi di transizione a stati
finiti. In questo modello, gli archi sono etichettati con un simbolo
terminale (ad esempio una frase, un atto comunicativo ecc.) il cui
input provoca la transizione da uno stato all’altro.
Un automa a stati finiti[3] (non deterministico) è caratterizzato
dalla quadrupla <Q,§,S,F> su un alfabeto X [2] dove:
• Q è un insieme finito di stati;
• X insieme rappresentato dall’alfabeto di input dei simboli
terminali;
• § è la funzione di transizione definita §:QxX -> 2Q;
• S è lo stato iniziale;
• F è l’insieme degli stati finali
Gli stati rappresentano il risultato dell’esecuzione di una
transizione nello stato precedente. Ad ogni stato quindi, sono
associate delle transizioni che permettono di passare da uno stato
all’altro, attraverso appunto la funzione §.
Un esempio dovrebbe chiarire meglio il concetto.
2
Figura 1. 1: Esempio di generazione di una frase con ASF
Esempio 1.1
Tenendo in considerazione la figura 1.1[1], è possibile generare una frase
in linguaggio naturale definita dalle seguenti regole di produzione:
S0ÆPRED_NOMINALE PRED_VERBALE
PRED_NOMINALEÆArtDet Nome|ArtDet AGGETTIVI Nome|NomeProprio
AGGETTIVIÆAggett AGGETTIVI| Aggett
PRED_VERBALEÆVerbo PRED_NOMINALE| Verbo
Dove S0 rappresenta lo stato iniziale. I simboli scritti in maiuscolo sono i
simboli non terminali, mentre quelli scritti in minuscolo sono i simboli
terminali ∈ all’alfabeto X. Quindi, ad esempio, le funzione di transizione
di S0 sono definite in questo modo:
§(S0,ArtDet)={S1}
§(S0, NomeProprio) = {S2}
E così via. Il linguaggio accettato da questo automa è:
L = {NomeProprio | ArtDet Aggett* Nome} {Verbo} {NomeProprio |
ArtDet Aggett* Nome }
3
Tale rappresentazione, tuttavia si è dimostrata inadeguata per la
rappresentazione e la generazione di frasi, in quanto non riusciva a
rappresentare tutte le caratteristiche del linguaggio naturale. Ciò
era dovuto in particolar modo all’assenza di meccanismi di
memorizzazione (detti pushdown), il quale permettono, oltre che la
sospensione di un processo di costruzione di una frase per
cominciarne un’altra, di ricordare quanto è stato costruito sino a
quel momento, per poterlo adeguare poi alla parte successiva.
A questo punto si è pensato di aggiungere meccanismi di ricorsione
direttamente ai diagrammi di transizione, etichettando gli archi
anche con i simboli non terminali, si aggiunge così la possibilità di
richiamare un altro diagramma di transizione, il quale può
eventualmente chiamare se stesso, è quindi un diagramma
ricorsivo.
Il modello risultante è chiamato Recursive Transition Net (RTN), ed
è equivalente, per quanto riguarda la capacità generativa, ad un
automa a memoria pushdown, permettendo, però maggiore
efficienza di espressione ed una struttura più flessibile.
Una RTN, ha quindi in aggiunta l’alfabeto dei simboli non terminali
V, quindi una RTN è anch’essa una quadrupla <Q,S,§,F> dove:
• Q è un insieme finito di stati;
• X insieme rappresentato dall’alfabeto di input dei simboli
terminali;
• V insieme rappresentato dall’alfabeto dei simboli non
terminali;
• § è la funzione di transizione definita §:Qx(X
V) -> 2Q;
• S è lo stato iniziale;
• F è l’insieme degli stati finali
4
Di seguito, viene illustrato un esempio di RTN.
Figura 1. 2: generazione di una frase utilizzando i simboli non terminali [1]
Figura 1. 3: sub RTN chiamato dall'RTN principale per la generazione di una frase [1]
Esempio 1.2
Come si può vedere in figura 1.2[1], è stato utilizzato lo stesso
esempio precedente etichettando però gli archi anche con i simboli
non terminali (in questo caso PRED_NOMINALE).
Quest’automa prevede che quando nella transizione troviamo il
non terminale, viene richiamato un sotto automa (illustrato in
figura 1.3 [1]), il quale descrive le produzioni del non terminale
chiamante.
Quando l’esecuzione del sotto-automa termina, il controllo viene
nuovamente passato all’automa chiamante, il quale continuerà a
procedere con la propria esecuzione.
Questa proprietà di ricorsione caratterizza le RTN dagli NDA.
Quindi, gli NDA (automi a stati finiti non deterministici)
permettono che una transizione sia fatta da uno stato Si ad uno
5
stato Sk mediante lettura di una singola parola x ∈ X tale che
§(Si,X)=Sk.
Le RTN invece, permettono che una transizione sia fatta da Si ad Sk
mediante lettura di una stringa w ∈ A dove A=(V
X) tale che
§(Si,A=Sk) dove A, eventualmente, provvederà a chiamare un'altra
rete, nell’ambito della quale si leggeranno le singole parole che
costituiscono la stringa w.
Infine, possiamo così affermare che le RTN, rispetto agli NDA in
aggiunta includono che:
•
v
V, un NDA definito da M=<Q,S,§,F> ;
• § è definita: §: Qx(X
V)Æ2Q.
Tuttavia, anche questo modello di RTN mostrava dei limiti quando
sorgeva il problema di esprimere frasi che dipendevano dal contesto
(frasi in forma passiva, interrogativa, affermativa ecc.).
Questi limiti quindi, rendevano le RTN inadeguate se si dovevano
rappresentare quelle sottigliezze tipiche del linguaggio naturale.
6
1.1.2 Nascono le ATN
Le ATN (Augmented Transiztion Net) sono nate come estensione
delle RTN, proprio per superare i limiti visti precedentemente
quindi, di conseguenza anche le ATN godono della proprietà di
ricorsione, cioè anch’essi possono chiamare delle sub-reti.
La caratteristica degli ATN è rappresentata dal fatto che ad ogni
arco viene aggiunta una condizione da soddisfare per poter
percorrere l’arco stesso, inoltre vengono definite un insieme di
azioni da eseguire se l’arco è attraversato e dei registri che
memorizzano determinati risultati di percorso.
Questa estensione da al modello un grande potere selettivo utile per
guidare il parsing1 o la generazione di una frase, a seconda del
contesto in cui ogni frammento di frase stessa si trova.
I registri associati alle ATN, come ho già accennato, possono
contenere diverse informazioni: da frammenti di frase a valori di
variabili che condizionano la percorrenza di un arco. Ciò consente di
conservare diverse informazioni che altrimenti, dovrebbero essere
ricordate implicitamente dallo stato della rete.
I registri quindi, possono essere benissimo paragonati alle variabili
di un programma, infatti in essi posso memorizzare qualsiasi tipo
d’informazione.
Vediamo adesso un esempio, il quale tiene conto della figura che
segue (figura 1.4[1]). Con quest’esempio si chiarisce meglio come un
registro contiene le informazioni e come esse vengono strutturate ed
usate nell’elaborazione.
1
Parsing: Analisi e verifica di una frase utilizzando una grammatica G
7
Figura 1. 4: Esempio di ATN con i registri
Esempio 1.3
Considerando la figura 1.4, possiamo notare che ad ogni RTN visti
precedentemente sono stati aggiunti dei registri che memorizzano le
informazioni.
In questo esempio, ogni registro può contenere due valori: singolare o
plurale (rispettivamente S o P).
La transizione lungo questi archi “aumentati” sarà effettuata
soltanto se è soddisfatta la condizione specificata nei registri.
Quindi, sarà necessario anche un test che controlli se il soggetto è
una persona singolare o plurale, nonché la correttezza dei verbi. Ad
esempio:
If (PRED_NOMINALE == P) then
V = plural
Grazie al controllo di questa condizione, verrà garantita una corretta
generazione della frase.
8
1.2 Struttura delle ATN
La specifica formale di un linguaggio che può essere generato dalle
ATN è data da Woods sotto forma di grammatica Context-Free
estesa. In questa rappresentazione il simbolo “|” indica la
situazione di alternativa mentre il simbolo “*” rappresenta
costituenti ripetibili arbitrariamente. Una ATN può essere quindi
descritta come segue [4]:
<ATN> Æ (<arc set> <arc set>*);
<arc set> Æ (<stato> <arco>*);
<state> Æ nomeStato;
<arco> Æ (PUSH <stato> <test> <azione>* <termineAtto>
|TST <labelArbitraria> <test> <azione>* <termineAtto>
|POP <form> <test>);
<azione> Æ ((SETR <registro> <form>)
|(SENDR <registro> <form>)
|(LIFTR <registro> <form>))
termineAtto Æ (TO <stato> | JUMP <stato>)
<form> Æ ((GETR <registro>)
|(GETF <caratteristica>)
|(BUILDQ <frammento> <registro>)
|(LIST <form>*)
|(APPEND <form> <form>))
9
Ogni ATN è un diagramma format da stati uniti tra loro mediante
archi. In ogni arco vi è un’etichetta che indica un’azione e/o un test
il quale stabilisce quando l’arco può essere attraversato.
L’elaborazione comincia con lo stato iniziale e termina fino a quando
non si attraversa un arco di tipo POP.
Nelle ATN descritte da Woods vengono definiti diversi tipi di archi
che possono avere anche funzionalità differenti. Di seguito elenco le
funzioni che può assumere un arco:
• PUSH: consente di chiamare un'altra ATN, quindi scende di
livello;
• POP: indica la fine dell’ATN corrente e, eventualmente,
consente di ritornare al livello dell’ATN chiamante;
• TST: permette di effettuare un test e quindi, di determinare
se l’arco deve essere percorso o meno.
Le azioni e le form descritte in questo modello permettono di
compiere operazioni sui registri e, quindi di costruire la struttura
della frase a seconda del loro contenuto.
Le tre azioni servono per inizializzare il contenuto del registro al
valore indicato da form. Eccole descritte:
• SETR: fa in modo che l’inizializzazione sia fatta a livello
corrente d’elaborazione;
• SENDR: manda informazioni ad un livello più basso
d’elaborazione;
• LIFTR: usato per ritornare informazioni a livelli più alti
d’elaborazione.
Le form, come anche le condizioni (test) della rete, possono essere
funzioni arbitrarie sul contenuto dei registri. Di seguito ne ho
rappresentate qualcuna:
10
• GETR: è una funzione che ritorna il contenuto del registro
indicato;
• GETF: funzione che determina il valore di una caratteristica
specificata per la parola di input corrente (es la prima lettera
della parola);
• BUILDQ: tramite questa funzione di costruzione, viene presa
una lista rappresentante un frammento dell’albero d’analisi i
cui nodi hanno specifiche marcature, e restituisce il risultato
della sostituzione di tali marcature con il contenuto dei
registri indicati;
• LIST: questa funzione fa una lista dei valori degli argomenti
indicati;
• APPEND: funzione che appende due liste per formarne una
sola.
La costruzione di una frase, quindi viene controllata gestendo in
modo opportuno questi diversi tipi di archi e le azioni di
manipolazione nel contenuto dei registri, consentendo una grande
flessibilità nel definire e ridefinire una frase che può cambiare a
seconda del contesto in cui essa viene generata.
11
1.3 ATN usato per la generazione di testi
1.3.1 Il modello TEXT
Il modello descritto da Woods è stato esteso utilizzando altri modelli
di ATN per effettuare la generazione di testi in linguaggio naturale.
L’elaborazione di un modello del genere è divisa in due parti:
• Componente strategica il quale determina i contenuti e la
struttura del discorso
• Componente tattica il quale traduce in uno specifico
linguaggio il messaggio costruito con la componente
strategica.
Esistono sistemi che utilizzano entrambe le componenti e sistemi
che includono soltanto la componente tattica, e quindi si limitano
solo a generare testo.
1.3.2 Sistemi con componente strategica e tattica
Un sistema deve essere in grado di determinare quali informazioni
includere nel testo e come organizzarle.
E’ stata elaborata una teoria che definisce come organizzare ed
elaborare la struttura ed il contenuto di in testo. Un sistema di
questo tipo è TEXT [5], studiate da McKeown(1985), il quale ha lo
scopo di rispondere a domande, in linguaggio naturale, su frasi
contenute in un database. In questo sistema viene definito un
modello che guida il processo di generazione su cosa dire in ogni
momento. Questo modello rappresenta strategie di discorso, le quali
interagiscono con particolari meccanismi detti Focus of attention
(focus del discorso), che vincolano le informazioni che hanno bisogno
12
di essere considerate quando si decide cosa dire, indicando quali
informazioni si legano meglio col contesto del discorso.
Le principali caratteristiche di TEXT sono:
• la selezione delle informazioni rilevanti per risposta;
• l’integrazione di tecniche retoriche con lo scopo del discorso
(ad esempio, fornire una definizione);
• i meccanismi di focalizzazione.
Figura 1. 5: componenti del sistema TEXT
13
Come si denota dalla figura 1.5 [4], le risposte si ottengono
individuando un sottoinsieme della conoscenza di base il quale sia
rilevante per la domanda (Determina rilevanza). Questa partizione
è l’insieme della conoscenza rilevante. Si seleziona quindi una
strategia del discorso il quale codifichi tecniche retoriche che
guideranno la selezione delle frasi dall’insieme della conoscenza
rilevante.
Dopodichè un meccanismo di focalizzazione interagisce con l’uso di
strategie retoriche per determinare il contenuto e l’ordine della
risposta. Infine il messaggio viene così passato alla componente
tattica che provvederà a trasformare il messaggio nella lingua
selezionata (ad esempio in italiano).
In TEXT, il processo di generazione è guidato dall’uso di schemi che
descrivono le proprietà di un oggetto basandosi sulle informazioni
presenti nella conoscenza di base del sistema. Tali schemi sono stati
implementati usando un formalismo basato su ATN.
In questo caso quindi, percorrere un arco equivale a selezionare una
frase da includere nella risposta, mentre raggiungere uno stato
corrisponde a riempire un periodo dello schema.
La differenza principale tra le ATN classiche e quelle usate in TEXT
consiste nel controllo delle alternative. Infatti, in TEXT per ogni
singolo stato vengono calcolati tutti i possibili stati successivi e
viene usata una funzione che seleziona un arco fra tutti quelli
disponibili tenendo conto dei vincoli imposti dal focus del discorso
(quindi si prendono in considerazione tutti gli archi ma se ne sceglie
soltanto uno).
Nella figura d’esempio che segue, viene descritto un dialogo tramite
le ATN utilizzando lo schema TEXT, quindi ogni arco è labellato con
un atto che corrisponde alla proposizione:
14
Figura 1. 6: Dialogo effettuato utilizzando ATN e sotto ATN
Nel mio caso specifico, in cui devo rappresentare le ATN che
gestiscono l’andamento del dialogo tra un utente ed il PC, utilizzerò
gli schemi descritti da TEXT. Le ATN saranno quindi rappresentate
da:
• NomeATN: name una stringa che indica il nome dell’ATN;
15
• S: {s1, s2,…, sn} l’insieme degli stati del dialogo;
• SM: {sm1, sm2,…, smn} l’insieme delle mosse che il sistema può
compiere;
• UM: {um1, um2,…, umn} l’insieme delle mosse che l’utente può
compiere;
• ASM: {Si, Sj….} insieme degli stati raggiunti dopo una mossa
del sistema;
• AUM: {Sh, Sk...} insieme degli stati raggiunti dopo una mossa
dell’utente;
• IS: {S0} lo stato iniziale del dialogo;
• ES: {sm, sp,..} l’insieme degli stati finali del dialogo;
• COND: {c1,c2,…,cr} l’insieme delle condizioni associate agli
archi;
• ACT: {act1, act2,…, actn} l’insieme degli atti comunicativi;
Da notare che ASM
S
AUM
S
ASM
GUM = S. La
descrizione di una transizione quindi, sarà del tipo:
(sk, (((smh
umh)
name), cj, pj), sr).
1.3.3 Adattamento all’utente
Nel 1988, Paris affronta il problema di adattare il testo generato
alla conoscenza o alle esigenze dell’utente a cui è diretto[6].
Verrà analizzato un sistema descritto da Taylor, il quale prevede
l’uso degli schemi di TEXT nella quale però, il livello di esperienza o
16
conoscenza dell’utente in un dominio, guida il sistema nella scelta
delle frasi che più si adattano all’utente stesso.
Attraverso il livello di conoscenza dell’utente sul dominio, il modello
di Taylor individua i contenuti da inserire al fine di aiutare l’utente
a costruirsi un modello mentale sull’oggetto in questione.
Il problema da risolvere è appunto, stabilire che tipo di conoscenza
l’utente ha sul dominio. L’analisi di testi in linguaggio naturale
suggerisce almeno due tipi di conoscenza:
• Conoscenza su specifici argomenti della base di conoscenza
• Conoscenza su vari concetti di base.
A questo punto viene classificato l’utente come:
• Utente esperto: quando ha una grande conoscenza del dominio
• Utente non esperto: quando non conosce specifici oggetti della
base di conoscenza
Un utente però, non è necessariamente esperto o non esperto, infatti
la maggior parte degli utenti sta nel mezzo come livello di
esperienza. Quindi la conoscenza viene individuata utilizzando dei
parametri per indicare ciò che l’utente realmente conosce, in base al
valore di questi parametri, si decide se dare o no un’informazione.
In termini di strategie di discorso, i testi possono essere
caratterizzati: nel caso di utente esperto dal Costituency schema, il
quale si presta meglio a definire un oggetto in termini delle sue
sottoparti e proprietà.
Nel caso di utente inesperto invece, i testi sono caratterizzati dal
Process Trace. Secondo questo modello, per generare la descrizione
è necessario seguire dei legami causali, i quali uniscono i vari
processi contenuti nella base di conscenza riguardanti
17
l’oggetto che si sta descrivendo. Il processo di descrizione si
interrompe ogni qualvolta che può essere inclusa un’informazione
descrittiva su una sottoparte dell’oggetto appena menzionato (cioè
quando si scende nei dettagli dell’oggetto).
Per descrivere, invece, un oggetto a degli utenti che hanno un livello
di conoscenza misto, si utilizzerà una combinazione delle due
strategie.
Per determinare quale strategia applicare, all’interno di ognuna di
esse si risolvono punti di decisione, in termini di test sul livello di
conoscenza dell’utente; in base al risultato del test, si salta o meno
alla strategia complementare. Sia la generazione riguardante il
costituency schema che il process trace è implementata dall’ATN.
Gli archi utilizzati per le ATN di generazione del constituency
schema sono queli definiti per TEXT, mentre per il process trace,
vengono definiti nuovi archi, i quali indicano come tener traccia
della conoscenza per formare un testo.
Figura 1.7: Process Trace
Come si può notare nella figura di sopra, gli archi appartengono alle
seguenti categorie:
18
• Next_Main_Link: indica il legame successivo nel percorso
principale
• Side_link: effettua un test per valutare se esiste un legame
collaterale causato da un particolare evento in quel punto
• Attributive: quest’arco viene attraversato solo se è disponibile
un’informazione sul concetto appena introdotto
• Substep?: utilizzato quando esiste una decomposizione per un
concetto. Quindi, percorrendolo viene chiamato un grafo per
un particolare sottoprocesso, in cui non sono previste ulteriori
decomposizioni.
Nel modello di Tailor, l’input include una richiesta di descrizione di
un oggetto e, il livello d’esperienza dell’utente viene visto come un
insieme di parametri che descrivono il livello di conoscenza e che
include una lista di concetti di base e una lista degli oggetti
conosciuti.
La componente “Textual” del sistema, guardando nella base di
conoscenza e, basandosi sul modello utente e le strategie di discorso,
decide cosa includere nella descrizione. Il risultato dell’elaborazione
di tale componente è una rappresentazione concettuale del
contenuto della descrizione. In tale modulo, il processo di decisione è
guidato dal “focus” di ogni proposizione e da meccanismi che
mantengono traccia di quanto detto fino a quel momento. Infine il
generatore superficiale costruisce la frase unificando gli input con
una grammatica funzionale per produrre la frase nella lingua che si
desidera (ad es. in inglese, in italiano ecc.).
La figura 1.8 [4] che segue riassume graficamente il concetto
descritto finora:
19
Figura 1.8: Il sistema Tailor
In conclusione, il modello d’adattamento all’utente di Tailor adatta
appunto, il contenuto del testo generato al grado d’esperienza
dell’utente a cui la spiegazione è rivolta. Il limite di questo modello,
però è rappresentato dal fatto che tiene conto della conoscenza
dell’utente solo per decidere se dare o meno un’informazione senza
preoccuparsi di come esprimerla, cioè senza variare lo stile formale
del discorso a seconda delle caratteristiche dell’utente.
20