social agents for learning in virtual environments - gala2016
TRANSCRIPT
Social Agents for Learning in Virtual Environments
Agnese Augello1, Manuel Gentile2 , Frank Dignum3
1ICAR - National Research Council of Italy, 2ITD - National Research Council of Italy
3Utrecht University, The Netherlands
Outline
Learning social and communication skills
Social skills training and SGs
The proposed solution: SALVE
Architecture
Some examples
Why social skills?
interpersonal, social and
communicative competences
social, psychological
and occupational well-being are
ensured by
academic or professional success are predicted by
Social skills training theories
••Behavioral shaping Skinner
••Psychotherapy by Reciprocal Inhibition Wolpe
••Assertion or assertiveness training
Wolpe & Lazarus
••Social learning theory Bandura
A classical social skills training procedure
Assessment
Direct Instruction and Coaching
Modeling
Role PlayingHomework assignment & Follow-up
Role Playing
to practice the desired behaviours in a controlled setting
problems••difficult ••expensive
Serious games
e.g. Scripted based design
Social and communication skills training & SG
Behavioural oriented Serious
Games
Behavioural oriented Serious
Games Design
Skinner
Wolpe
Wolpe & Lazarus
Bandura
Behavioural oriented Serious Games Design
Pros Cons
Knowledge design and
reuse
The organization of the interaction facilitates the
designof the scenariohides the knowledge at its base
Interaction with the
virtual agentThere is a fine control of the
scenario (e.g. the conversation)
The agent behaviour are predetermined and the
interaction becomes repetitive after few uses.
Player Experience
Specific user's behaviours can be trained
Players have no freedom. The game experience is quite different from a real one
Role of social context in conversation in communication
The dialogue is a joint activity that must consider both individual and social processes
Different communication strategies can be used according to the specific social context
The same sentence can be used with a different meaning in different context and can raise different social effects
“You should take a cat”
A different approach to implement the conversational agent: SALVE
Putting social practices at the heart of the deliberation allows for more efficient
planning (Dignum and Dignum, 2014)
Social Agents for Learning in Virtual Environments
Chatbot as a possible solution?
1966 – Eliza
1988 – Jabberwacky
1992 - Dr. Sbaitso
1995 - A.L.I.C.E.
2001 - Activebuddy’s Smarterchild
2011 - Watson, Siri
2012 - Google Now
2015 - Amazon Alexa , Microsoft Cortana
2016 – More than 18.000 Bots on Im, Messanger and Facebook
Chatbot as a possible solution?
Strength• It is possible to quickly create a
conversational agent, avoiding natural language processing issues
• It is easy to define the chatbotbehaviour through the design of proper question answers modules (Alice -> AIML categories)
Weaknesses• Chatbots lacks the ability to keep an
overview and a structure of the entire conversation.
• In AIML the dialogue is managed keeping track of the last conversation exchange and setting conversation topics.
• It is difficult to design chatbots able to correctly manage social conversational practices.
<category><pattern>MY NAME IS *</pattern>
<that>HELLO THERE WHAT IS YOUR NAME</that><template>Nice to meet you <star /></template>
</category>
Architecture of the SALVE system
Using chatbot just as aninteraction interfaceExtend the AIML language thatdescribes the chatbot ruleswith ”social” tags such that itkeeps track where it is in thesocial practice (towards state based dialogue)
Architecture of the SALVE system
Integrate chatbot with a rulebased engine (DROOLS) tokeep track of the agent statesand guide it the socialpractice
How “social practice” guides SG design
start end
greetings
present
Get patientdata
Determinesymptoms
Determinetreatment
Communicate!
How “social practice” guides SG design
start end
greetings
present
Get patientdata
Determinesymptoms
Determinetreatment
Example rules: Timely greetingslead to positive emotions
rule "GreetingsReceivedInTime"
when
$startScene:EnterScene(scene.name=="greetings")
$g:GreetingsReceived(this after[0ms,20000ms] $startScene )
then
controller.print($startScene.getScene().getName());
controller.print("greeting received in the first 20 seconds after the start of the scene");
OOCHappenedEvent he=new OOCHappenedEvent();
don(he,DesirableEvent.class);
don(he,ProspectedRelevantEvent.class);
insert(he);
controller.print("greeting marked as happened desirable prospected event");
insert(new ChangeOfSceneFromGoal());
end
Example rules: Timely greetingslead to positive emotions
rule "GreetingsReceivedInTime"
when
$startScene:EnterScene(scene.name=="greetings")
$g:GreetingsReceived(this after[0ms,20000ms] $startScene )
then
controller.print($startScene.getScene().getName());
controller.print("greeting received in the first 20 seconds after the start of the scene");
OOCHappenedEvent he=new OOCHappenedEvent();
don(he,DesirableEvent.class);
don(he,ProspectedRelevantEvent.class);
insert(he);
controller.print("greeting marked as happened desirable prospected event");
insert(new ChangeOfSceneFromGoal());
end
rule "DesirableEventHappened"when
OOCHappenedEvent(this isAProspectedIrrelevantEvent,this isA DesirableEvent)
$agent:Emotion(this isA Agent)then
controller.print("captured desirable event");$agent.setJoy($agent.getJoy()+1);controller.print("increase joy");controller.setJoy($agent.getJoy());
end
Example rules: Greetings not received in time lead to negative emotions
rule "GreetingsNotReceivedInTime"
when
$startScene:EnterScene(scene.name=="greetings")
(not(GreetingsReceived(this after[0ms,20000ms] $startScene ))
then
controller.print("greeting not received in the first 20 seconds after the start of thescene");
OOCNotHappenedEvent nhe=new OOCNotHappenedEvent();
don(nhe,DesirableEvent.class);
don(nhe,ProspectedRelevantEvent.class);
insert(nhe);
controller.print("dummy event marked as not happened desirable prospected event");
controller.respond("why you did not say hello!");
end
Example rules: Greetings not received in time lead to negative emotions
rule "GreetingsNotReceivedInTime"
when
$startScene:EnterScene(scene.name=="greetings")
(not(GreetingsReceived(this after[0ms,20000ms] $startScene ))
then
controller.print("greeting not received in the first 20 seconds after the start of thescene");
OOCNotHappenedEvent nhe=new OOCNotHappenedEvent();
don(nhe,DesirableEvent.class);
don(nhe,ProspectedRelevantEvent.class);
insert(nhe);
controller.print("dummy event marked as not happened desirable prospected event");
controller.respond("why you did not say hello!");
end
rule "DesirableProspectedEventNotHappened"when
$d:OOCNotHappenedEvent(this isA ProspectedRelevantEvent, this isA DesirableEvent)
$agent:Emotion(this isA Agent)then
controller.print("captured not happened desirable event");$agent.setDisappointment($agent.getDisappointment()+1);controller.print("increased Disappointment");controller.setDisappointment($agent.getDisappointment());
end
Conclusion and future work 1/2
The proposed solution:••puts social practice at the heart of the deliberative process of
an agent;••allows for a dynamic activation of categories, depending on the
current social practice, the pursued plan, the on-going activity, and finally, at the lowest level the agent’s identity;
••allows for a great flexibility in the conversation while at the same time simplifying the formalization of the chatbot KB;
••ensures to the player a greater freedom in sentences expression, and the possibility to experiment dynamic scenarios and different roles;
••Lets the player actively create a conversation rather than choose moves