SlideShare a Scribd company logo
1	
	
Bayesian Network backbone of
Microsoft Office Assistant – Clippy:
A CASE STUDY
Naveen Bharathi Pitchandi
North Carolina State University
Abstract
User interface agents are increasingly employed to enhance software products. Websites
(e.g. buy.com, extempo.com, ananova.com, mysimon.com) now use characters to guide users
through processes or present information.	Microsoft Office Assistant - Clippy is a well-known
animated character that was part of Microsoft’s graphical user interface for its elements of the
Microsoft Office Suite. Clippy was first included in the 1997 release of the Office suite and
continued to be part of the product line until 2007 when it was permanently removed. due to
widespread hatred towards the animated character. Clippy was one of the many cartoon
characters that were available as the engine’s front end interacting with the user.
The Office Assistant was an Intelligent User Interface for Microsoft Office that assisted
users by way of an interactive animated character, which interfaced with the Office help content.
The back end of the Office Assistant was based on Bayesian Networks, to provide the
corresponding assistance to the user by inferring from user background, user actions, and
program state. The Bayesian method of analysis computes the likelihood of alternative concepts
based on the user’s inputs/actions and models the user’s intention to provide assistance.
Within few years of its existence, the office assistant received wide spread hatred and was
deemed “annoying” and one of the Top 50 worst inventions. The purpose of this paper to
investigate the working of the assistant with a help of a sample network, reasons behind Clippy’s
massive failure. And propose a solution of including the “historical acknowledgement” to
elicited assistance as part of a node in the network to update the probabilities that would capture
the User’s expertise level and need for assistance better.
2	
	
1. ORIGIN OF CLIPPY
Microsoft Office assistant was a partial implementation of the Lumiere project at
Microsoft Research that was initiated in 1993 with the goal of developing methods and an
architecture for reasoning about the goals and needs of software users as they work with
software.	At the heart of Lumiere are Bayesian models that capture the uncertain relationships
between the goals and needs of a user and observations about program state, sequences of actions
over time, and words in a user's query (when such a query has been made).
Early on in the Lumiere project, studies were performed in the Microsoft usability labs to
investigate key issues in determining how best to assist a user as they worked. The studies were
aimed at exploring how experts in specific software applications worked to understand problems
that users might be having with software from the user's behaviors. The Lumiere prototypes have
explored the combination of a Bayesian perspective on integrating information from user
background, user actions, and program state, along with a Bayesian analysis of the words in a
user's query (although the commercially available Office products had a separation between user
interface events and word-based queries). Research on new application and extensions continued
in parallel with efforts to integrate portions of the prototype into commercially available software
applications. In January 1997, a derivative of Lumiere research shipped as the Office Assistant in
Microsoft Office '97 applications.
2. DOWNFALL OF CLIPPY
“It looks like you’re writing a letter” – one of the most irked phrases used by Clippy,
proposing assistance to write a letter when a user types “Dear”. Accurate as it was in estimating
the intensions of the user based on actions/word queries, its repeated prompting for assistance
irked many users. Clippy offered to help incessantly and popped up with suggestions related to
the actions made despite the user denying for assistance repeatedly. Eventually, Clippy became
one of the most hated features of the Office Suite. And it was eventually deemed as one of the
Top 50 worst inventions.
3	
	
3. REASONS BEHIND CLIPPY’S FAILURE
Clippy was permanently removed from the Office Suite from 2007, and there has been no
attempt yet to revive the assistant back (except for using the designed character for a game –
Ribbon Hero2 – in 2011). But on thorough research in looking at areas where Clippy fell behind,
a couple of research papers throw some light on the issue.
The first paper, [1] by Luke Swartz, 2003 analyses from a psychological perspective of
what lacked in Clippy. The Office Assistant’s letter-writing proactive help feature, thus, breaks
every relevant etiquette rule: it ignores social conventions of when to disturb someone, it does not
learn from its mistakes, it does not develop a long-term relationship, and (one might argue) it does
not even provide a helpful service. Since this feature is the most cited annoyance in the popular press,
one cannot help but wonder how much better the Office Assistant would be perceived if this one
feature had been fixed or eliminated before its release.
While the above conveyed in terms of a human perception, the following article elicits the
technical drawbacks of the implementation of the Office assistant from its parent project – Lumiere.
[2] The paper by E.Horvitz	published in 1998 at the Conference on Uncertainty in Artificial
Intelligence (UAI) by the Lumiere team described the inner workings of the Assistant’s inference
engine and also how much of it was included in the released version of Office 97. 1) The system
does not take into account of any persistent user profile, wherein the assistant does not take into
account of all actions taken by user and acclimatize to User’s competency level to offer the
required assistance. Instead, the assistant worked on a single profile and hence was a more rigid
structure than what we would’ve liked it to be. 2) The system does not use rich combination of
events over time; rather system only considers a small set of relatively atomic user actions. And
only those actions which are present in the small event queue present are considered. 2) The
system separates the analysis of words. 3) The system separates the analysis of words and of
events. When words are available, the system does not exploit information about context and
recent actions. Finally 4) the automated facility of providing assistance based on the likelihood
that a user may need assistance or on the expected utility of such autonomous action was not
employed.
4	
	
Based on inferences from the two papers [1] ,[2] the feature of automated facility of
providing assistance based on likelihood that user may need assistance, seemed to have a higher
impact on the failure of the office assistant. The paper proposes a possible solution that could be
incorporated onto the office assistant, which would update probabilities for the likelihood such
that the assistant would be smarter as it gains more knowledge on whether the user would need
assistance for a particular action given what was the user response for previous assistance for the
same action. This would solve the problem of unnecessary pop-ups irking the user providing
assistance when it is not warranted.
Another possible way to improve the performance of the office assistant would be to
integrate the search of words and actions, which would again reduce the most common error of
prompting to assist with a letter. To better understand how the Bayesian network infers from
User’s actions and elicits user intentions, the following sections would explain a segment of how
it works.
4. BAYESIAN NETWORK : Teaching notes
A Bayesian Network is a graphical model that applies probability theory and graph
theory to construct probabilistic inference and reasoning models. The nodes represent variables,
events or evidence, whilst the arc between two nodes represents conditional dependences
between the nodes.
A Bayesian Network is defined as a Directed Acyclic Graph (DAG) in which the arcs are
Unidirectional and feedback loops are not allowed in the graph. Because of this feature, it is easy
to identify the parent-child relationship or the probability dependency between two nodes.
A small network based on user’s recent actions – usage of Chart option on Excel – has
been mapped. Though typically the actual network could be bigger and more complex, for
understanding purposes a simple network to explain the basic theory behind eliciting appropriate
assistance based on user actions is used (Fig 1.). This network does not exactly replicate the
actual network behind Office Assistant. This is a hypothesized network built based on the
working of the Assistant. Based on evidence of any of the user actions (Nodes in the bottom
row), the likelihood of which type of and if User is looking to create/edit a chart can be obtained.
5	
	
Fig. 1
To further simplify the computation involved, and for better understanding considering a
sub network from the above given by Fig 2
Fig. 2
6	
	
To explain the network, probabilities were assigned to each node [3] (though they aren’t
the actual probability distribution used in the real network behind the Assistant). There are
different states for each node that have a probability assigned to it. A causal relationship can be
derived from the network by using the Bayes rule.
A B P (B|A) = P (A, B)/P (B)
Hence, the inference from the network can be obtained by:
• Conditional Probability: P(Q = q|E) = P(q,E)/P(E)
Where Q is the query variable and E is the evidence.
X1, ...,Xn be unknown network variables that q depends on
• Joint Probability :
P(Q=q, E=e) = 𝑃 𝑞 𝑒, 𝑥1, … 𝑥𝑛 𝑃(𝑒, 𝑥1, … . 𝑥𝑛),-,…,,.
• General Product rule for Bayesian Networks:
P(X1, ...,Xn) = 𝑃(𝑋𝑖|𝑝𝑎𝑟𝑒𝑛𝑡𝑠 𝑋𝑖 ).
78-
Table 1
Node Insert Chart
State Yes No
Prior
Probability
0.500 0.500
7	
	
A prior probability of being neutral to any decision (50-50) is assigned to the Insert chart
node such that with further evidence, the posterior probability would indicate if User’s intention
is to insert a chart. The conditional probabilities of the remaining nodes are established below.
Table 2
Table 3 Table 4
Table 5
The Assistant would be able to infer if the user wishes to create a line chart if the user
Highlights cells or mouse over insert chart or mouse over line chart. The prior conditional
probabilities from the above tables are used to derive inferences. The first step towards that is to
find the joint probability density function.
Node Name Line
State Yes No
Insert Chart = Yes 0.65 0.35
Insert Chart = No 0.65 0.35
Node Name Mouse over insert
State Yes No
Line = Yes 0.85 0.15
Line = No 0.15 0.85
Node Name Mouse over Line
State Yes No
Line = Yes 0.85 0.15
Line = No 0.15 0.85
Node Name Highlight Cells
State Yes No
Line = Yes 0.85 0.15
Line = No 0.15 0.85
8	
	
P(I, L, MOI, MOL, H) = P(I)*(P(L|I)*P(MOI|L,I)*P(MOL|L,I)*P(H|L,I). Where I = Insert
Chart, L=Line, MOI = Mouse over insert, MOL = Mouse over line and H = Highlight cells.
Hence the model can now answer based on any inference such as
P (L= Yes | MOL = Yes, H= Yes) = P (L= Yes | H = Yes). P (MOL = Yes | L = Yes, H = Yes)
P (MOL = Yes | H = yes)
P (L= Yes | MOL = Yes, H= Yes) is the posterior probability, P (L= Yes | H = Yes) is the prior
probability, P (MOL = Yes | L = Yes, H = Yes) is the likelihood and gives the probability of
evidence assuming L= yes and H = Yes. P (MOL = Yes | H = yes) is the expectedness or how
expected the evidence is given H = yes.
The network was simulated using a software – BayesiaLab which calculates the posterior
probabilities based on the above formula:
		
	
	
	
	
	
	
Fig. 3
9	
	
Hence from the inference it is oberserved that if the user’s actions are “highlight cells”
and “Mouseover line chart”, the user model estimates that it is 64.09% likely that he would want
to Insert a chart and 96.98% that it would be a Line Chart. Similar simulations were carried out
for different evidences of user actions. This is a way that the assistant maps the assistance
required. But, there must be an additional network which must determine whether the User
“needs” this assistance or not.
4.1 Likelihood Network
One of the major reasons for the failure of the assistant was that there was no user
profiling and the assistant never considered the likelihood of the need for assistance. Though
Lumiere project included a network to assess the likelihood, it was not entirely incorporated onto
the Office suite. Translating the Bayesian computation onto an already existing software package
posed great difficulty. Hence some of the functionalities though had a bayesian background, was
not computationally the same when coded onto the software package.
Based on the negative reviews and the repeated mistakes made by Clippy, a network
(Based on the likelihood network by Lumiere team) with a minor change was built using
Bayesialabs and analysed how that minor addition could improve the likelihood.
Fig. 4 Fig. 5
Fig4 represents part of the network that was designed by the Lumiere team. Fig5.
represents the network that was based on the network from Fig4. With a minor addition of a node
“Historical Assistance Acknowledgement”. The reason behind including this node was that, the
network though successfully managed to elicit user’s intentions, it did not learn the likelihood
10	
	
probabilities over time of whether the user used the assistance or not. The “Historical Assistance
Acknowledgement” node captures the information of whether the User “Accepts” or “Denies”
the help offered by the Assistant.
User needs assistance is the decision making node that decides if user needs assistance.
The several factors that affect this decision are the remaining nodes present in the network.
“Pause after activity” node captures the information as to whether the user is idle above a
threshold time (Approximately 10seconds) or not. This information is form of a representation if
the user is unsure of how to move ahead. But the user could also have paused due to distraction
while doing something else, that information affects the “Pause” and is captured by “User
Distracted”. “Difficulty of current task” and the “User expertise” also determine the need for
assistance. Where, difficulty of current task is a predetermined by the software the user expertise
is provided by the user.
A sample data was used that intended to capture history of actions performed by the user,
and whether assistance was provided or not for that action. And also captured the information of
whether user accepted or denied the assistance which was only included in the second network
that was a modification of the Lumiere. The analysis was confined to one goal of “Chart
function” for easier analysis and comparison. For a similar inference in each of the network the
posteriors of both of the networks were calculated. The results are shown below:
Fig. 6
11	
	
Fig. 7
From Fig.6 and Fig.7 it can be seen that the posterior probability for assistance was lesser
for Fig.7 (36.36%) compared to Fig.6 (45.83%). Fig.7 can be claimed to perform better than
Fig.6 as Fig.6 only accounted for the number of times assistance was provided, but Fig.7 also
included the number of times the assistance was provided and was denied. Hence the second
network was able to learn that the user needed lesser assistance than the Assistant thought he
would. For further confirmation, few more data points were added and associated to the network:
Fig. 8
12	
	
Fig. 9
Hence with additional data points, Fig. 8 and Fig. 9 depict the network that associated the
additional data points and recalculated the posteriors. The additional data points were in such a
way that the user denied most of the assistance provided by the Assistant to show more precisely
how differently it would perform if not for “Historical Assistance Acknowledgement”.
Without the presence of “Historical Assistance Acknowledgement”, the network in Fig. 8
computes a posterior of 79.25% whereas the network in Fig. 9 accounts for the number of times
assistance is denied by the user reducing the posterior to 50%. Hence the network created
performs better than how it presently functions, and this would in turn help the Assistant be more
smart in learning the User’s expertise level. Wherein, if the user denies the assistance for a
particular action repeatedly, it reduces the likelihood of offering assistance.
4.2 Summary
A more precise network to capture the user’s decision and need for assistance was
created, that performed better than that of the present model that is used for the Office Assistant.
From the simulation of the two types of network, it was evident that the present network
repeatedly prompted for assistance despite the user denying it. The second network though,
captured this information. This change into the backend of the Assistant could make it smarter
and less annoying. An intelligent assistant would be highly desirable as timely need for help
when provided could change the impression that it had earlier created.
13	
	
4.3 Key Assumptions
The data used behind the all the networks built in this paper are not the actually used in
network of the Office Assistant. Hence the prior probabilities computed might not be the same.
They are just a representation of how the data could be, to explain the working of the network.
The search for user’s intentions considered here are only for user related actions and not
query based search. The integration of both the searches as mentioned earlier in the paper has not
been focused on.
4.3 Difficulties in implementing
Tracking user’s actions were inherently difficult to integrate with the software the first
time it was attempted to integrate with Lumiere project. Hence the ability to track the decision
made by the user for assistance provided and the complexity involved to store this information is
to be assessed.
The paper does not take into account of how much information must be stored, i..e if the
system keep storing user actions indefinitely, it could reduce the efficiency of the search as it had
to process all the information to come up with a likelihood.
14	
	
REFERENCES
[1] Luke Swartz, WHY PEOPLE HATE THE PAPERCLIP: LABELS, APPEARANCE,
BEHAVIOR AND SOCIAL RESPONSES TO USER INTERFACE AGENTS,
Symbolic Systems Program, Stanford University, June 12 2003
[2] E. Horvitz, J. Breese, D. Heckerman, D. Hovel, and K. Rommelse. The Lumiere Project:
Bayesian User Modeling for Inferring the Goals and Needs of Software Users. Proceedings of
the Fourteenth Conference on Uncertainty in Artificial Intelligence, July 1998.
[3] Michael Y.K. Kwan, K.P. Chow, Frank Y.W. Law, Pierre K.Y. Lai, Computer Forensics
using Bayesian Network: A Case Study.
15	
	
EXECUTIVE SUMMARY
The case study is about the much hated Microsoft Office Assistant – Clippy, its inception,
demise and the technical flaws behind its failure. Clippy based its inferences for providing
assistance to the user based on user’s recent actions or query based help request based on
Bayesian networks.
Microsoft Office assistant was part of Lumiere research that was established by Microsoft
Researchers from the Decision Theory & Adaptive Systems Group to study and improve human
computer interaction using Bayesian methods. The Lumiere prototypes explored the combination
of a Bayesian perspective on integrating information from user background, user actions, and
program state, along with a Bayesian analysis of the words in a user’s query.
Clippy eventually became one of the most hated inventions – Time, 2010. It apparently
prompted to offer assistance despite the user not really needing one. On secondary research from
the reasons behind why people hated Clippy it was certain that Clippy popping up incessantly
with help messages is what irked users the most. When looked at the technical background of
this problem it was found that Clippy had excluded some of the features from the Lumiere
project on its integration to the Office suite. The main aspects are: 1) No user persistent profiles
2) Separation between user interface events and word-based queries; for word based queries the
engine ignored any context and user actions 3) The automatic facility of providing assistance
based on the likelihood that a user may need assistance was not employed.
A sample network to explain the working of Clippy; how Clippy inferred which
assistance to provide based on user’s actions was built using a software - Bayesia Labs. As a
solution to the problem of Clippy not being to estimate the likelihood of user needing assistance
accurately, a modification to the likelihood network proposed by Lumiere was built with an
inclusion of node “Historical acknowledgement of assistance” which captured information on
response of the user to the assistance provided by Clippy : Whether user accepted or rejected the
assistance. This would be prior to further computation of the likelihood for a similar action in the
future, but now Clippy would have more information as to whether User would need the
assistance based on user’s earlier response to the same. Lumiere’s original network and the
modified network were simulated and found that the modified network performed better. This
solution could possibly make Clippy smarter and be able to decide when User needs help more
precisely.

More Related Content

Similar to Bayesian Network backbone of clippy

Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMS
YogeshIJTSRD
 
Development of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer InteractionDevelopment of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer Interaction
Waqas Tariq
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
butest
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
butest
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
butest
 
online news portal system
online news portal systemonline news portal system
online news portal system
Arman Ahmed
 
Ems
EmsEms
UCD Generator (ICIET 2007)
UCD Generator (ICIET 2007)UCD Generator (ICIET 2007)
UCD Generator (ICIET 2007)
IT Industry
 
Presentation: Tool Support for Essential Use Cases to Better Capture Software...
Presentation: Tool Support for Essential Use Cases to Better Capture Software...Presentation: Tool Support for Essential Use Cases to Better Capture Software...
Presentation: Tool Support for Essential Use Cases to Better Capture Software...
Naelah AlAgeel
 
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
cscpconf
 
Formalization & data abstraction during use case modeling in object oriented ...
Formalization & data abstraction during use case modeling in object oriented ...Formalization & data abstraction during use case modeling in object oriented ...
Formalization & data abstraction during use case modeling in object oriented ...
csandit
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White Box
Kimberly Jones
 
Fulltext01
Fulltext01Fulltext01
Fulltext01
navjeet11
 
Image Based Tool for Level 1 and Level 2 Autistic People
Image Based Tool for Level 1 and Level 2 Autistic PeopleImage Based Tool for Level 1 and Level 2 Autistic People
Image Based Tool for Level 1 and Level 2 Autistic People
IRJET Journal
 
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docxRunning head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
jeanettehully
 
Software engg. pressman_ch-12
Software engg. pressman_ch-12Software engg. pressman_ch-12
Software engg. pressman_ch-12
Dhairya Joshi
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data Visualization
IRJET Journal
 
Bt0081 software engineering
Bt0081 software engineeringBt0081 software engineering
Bt0081 software engineering
Techglyphs
 
Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces
Aspect-Oriented Instrumentation for Capturing Task- Based Event TracesAspect-Oriented Instrumentation for Capturing Task- Based Event Traces
Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces
IDES Editor
 
Sdlc
SdlcSdlc

Similar to Bayesian Network backbone of clippy (20)

Local Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMSLocal Service Search Engine Management System LSSEMS
Local Service Search Engine Management System LSSEMS
 
Development of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer InteractionDevelopment of Personal Assistant System with Human Computer Interaction
Development of Personal Assistant System with Human Computer Interaction
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
 
BenMartine.doc
BenMartine.docBenMartine.doc
BenMartine.doc
 
online news portal system
online news portal systemonline news portal system
online news portal system
 
Ems
EmsEms
Ems
 
UCD Generator (ICIET 2007)
UCD Generator (ICIET 2007)UCD Generator (ICIET 2007)
UCD Generator (ICIET 2007)
 
Presentation: Tool Support for Essential Use Cases to Better Capture Software...
Presentation: Tool Support for Essential Use Cases to Better Capture Software...Presentation: Tool Support for Essential Use Cases to Better Capture Software...
Presentation: Tool Support for Essential Use Cases to Better Capture Software...
 
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
FORMALIZATION & DATA ABSTRACTION DURING USE CASE MODELING IN OBJECT ORIENTED ...
 
Formalization & data abstraction during use case modeling in object oriented ...
Formalization & data abstraction during use case modeling in object oriented ...Formalization & data abstraction during use case modeling in object oriented ...
Formalization & data abstraction during use case modeling in object oriented ...
 
Quality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White BoxQuality Assurance. Quality Assurance Approach. White Box
Quality Assurance. Quality Assurance Approach. White Box
 
Fulltext01
Fulltext01Fulltext01
Fulltext01
 
Image Based Tool for Level 1 and Level 2 Autistic People
Image Based Tool for Level 1 and Level 2 Autistic PeopleImage Based Tool for Level 1 and Level 2 Autistic People
Image Based Tool for Level 1 and Level 2 Autistic People
 
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docxRunning head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
Running head NETWORK DIAGRAM AND WORKFLOW1NETWORK DIAGRAM AN.docx
 
Software engg. pressman_ch-12
Software engg. pressman_ch-12Software engg. pressman_ch-12
Software engg. pressman_ch-12
 
IRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data VisualizationIRJET- Plug-In based System for Data Visualization
IRJET- Plug-In based System for Data Visualization
 
Bt0081 software engineering
Bt0081 software engineeringBt0081 software engineering
Bt0081 software engineering
 
Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces
Aspect-Oriented Instrumentation for Capturing Task- Based Event TracesAspect-Oriented Instrumentation for Capturing Task- Based Event Traces
Aspect-Oriented Instrumentation for Capturing Task- Based Event Traces
 
Sdlc
SdlcSdlc
Sdlc
 

Bayesian Network backbone of clippy

  • 1. 1 Bayesian Network backbone of Microsoft Office Assistant – Clippy: A CASE STUDY Naveen Bharathi Pitchandi North Carolina State University Abstract User interface agents are increasingly employed to enhance software products. Websites (e.g. buy.com, extempo.com, ananova.com, mysimon.com) now use characters to guide users through processes or present information. Microsoft Office Assistant - Clippy is a well-known animated character that was part of Microsoft’s graphical user interface for its elements of the Microsoft Office Suite. Clippy was first included in the 1997 release of the Office suite and continued to be part of the product line until 2007 when it was permanently removed. due to widespread hatred towards the animated character. Clippy was one of the many cartoon characters that were available as the engine’s front end interacting with the user. The Office Assistant was an Intelligent User Interface for Microsoft Office that assisted users by way of an interactive animated character, which interfaced with the Office help content. The back end of the Office Assistant was based on Bayesian Networks, to provide the corresponding assistance to the user by inferring from user background, user actions, and program state. The Bayesian method of analysis computes the likelihood of alternative concepts based on the user’s inputs/actions and models the user’s intention to provide assistance. Within few years of its existence, the office assistant received wide spread hatred and was deemed “annoying” and one of the Top 50 worst inventions. The purpose of this paper to investigate the working of the assistant with a help of a sample network, reasons behind Clippy’s massive failure. And propose a solution of including the “historical acknowledgement” to elicited assistance as part of a node in the network to update the probabilities that would capture the User’s expertise level and need for assistance better.
  • 2. 2 1. ORIGIN OF CLIPPY Microsoft Office assistant was a partial implementation of the Lumiere project at Microsoft Research that was initiated in 1993 with the goal of developing methods and an architecture for reasoning about the goals and needs of software users as they work with software. At the heart of Lumiere are Bayesian models that capture the uncertain relationships between the goals and needs of a user and observations about program state, sequences of actions over time, and words in a user's query (when such a query has been made). Early on in the Lumiere project, studies were performed in the Microsoft usability labs to investigate key issues in determining how best to assist a user as they worked. The studies were aimed at exploring how experts in specific software applications worked to understand problems that users might be having with software from the user's behaviors. The Lumiere prototypes have explored the combination of a Bayesian perspective on integrating information from user background, user actions, and program state, along with a Bayesian analysis of the words in a user's query (although the commercially available Office products had a separation between user interface events and word-based queries). Research on new application and extensions continued in parallel with efforts to integrate portions of the prototype into commercially available software applications. In January 1997, a derivative of Lumiere research shipped as the Office Assistant in Microsoft Office '97 applications. 2. DOWNFALL OF CLIPPY “It looks like you’re writing a letter” – one of the most irked phrases used by Clippy, proposing assistance to write a letter when a user types “Dear”. Accurate as it was in estimating the intensions of the user based on actions/word queries, its repeated prompting for assistance irked many users. Clippy offered to help incessantly and popped up with suggestions related to the actions made despite the user denying for assistance repeatedly. Eventually, Clippy became one of the most hated features of the Office Suite. And it was eventually deemed as one of the Top 50 worst inventions.
  • 3. 3 3. REASONS BEHIND CLIPPY’S FAILURE Clippy was permanently removed from the Office Suite from 2007, and there has been no attempt yet to revive the assistant back (except for using the designed character for a game – Ribbon Hero2 – in 2011). But on thorough research in looking at areas where Clippy fell behind, a couple of research papers throw some light on the issue. The first paper, [1] by Luke Swartz, 2003 analyses from a psychological perspective of what lacked in Clippy. The Office Assistant’s letter-writing proactive help feature, thus, breaks every relevant etiquette rule: it ignores social conventions of when to disturb someone, it does not learn from its mistakes, it does not develop a long-term relationship, and (one might argue) it does not even provide a helpful service. Since this feature is the most cited annoyance in the popular press, one cannot help but wonder how much better the Office Assistant would be perceived if this one feature had been fixed or eliminated before its release. While the above conveyed in terms of a human perception, the following article elicits the technical drawbacks of the implementation of the Office assistant from its parent project – Lumiere. [2] The paper by E.Horvitz published in 1998 at the Conference on Uncertainty in Artificial Intelligence (UAI) by the Lumiere team described the inner workings of the Assistant’s inference engine and also how much of it was included in the released version of Office 97. 1) The system does not take into account of any persistent user profile, wherein the assistant does not take into account of all actions taken by user and acclimatize to User’s competency level to offer the required assistance. Instead, the assistant worked on a single profile and hence was a more rigid structure than what we would’ve liked it to be. 2) The system does not use rich combination of events over time; rather system only considers a small set of relatively atomic user actions. And only those actions which are present in the small event queue present are considered. 2) The system separates the analysis of words. 3) The system separates the analysis of words and of events. When words are available, the system does not exploit information about context and recent actions. Finally 4) the automated facility of providing assistance based on the likelihood that a user may need assistance or on the expected utility of such autonomous action was not employed.
  • 4. 4 Based on inferences from the two papers [1] ,[2] the feature of automated facility of providing assistance based on likelihood that user may need assistance, seemed to have a higher impact on the failure of the office assistant. The paper proposes a possible solution that could be incorporated onto the office assistant, which would update probabilities for the likelihood such that the assistant would be smarter as it gains more knowledge on whether the user would need assistance for a particular action given what was the user response for previous assistance for the same action. This would solve the problem of unnecessary pop-ups irking the user providing assistance when it is not warranted. Another possible way to improve the performance of the office assistant would be to integrate the search of words and actions, which would again reduce the most common error of prompting to assist with a letter. To better understand how the Bayesian network infers from User’s actions and elicits user intentions, the following sections would explain a segment of how it works. 4. BAYESIAN NETWORK : Teaching notes A Bayesian Network is a graphical model that applies probability theory and graph theory to construct probabilistic inference and reasoning models. The nodes represent variables, events or evidence, whilst the arc between two nodes represents conditional dependences between the nodes. A Bayesian Network is defined as a Directed Acyclic Graph (DAG) in which the arcs are Unidirectional and feedback loops are not allowed in the graph. Because of this feature, it is easy to identify the parent-child relationship or the probability dependency between two nodes. A small network based on user’s recent actions – usage of Chart option on Excel – has been mapped. Though typically the actual network could be bigger and more complex, for understanding purposes a simple network to explain the basic theory behind eliciting appropriate assistance based on user actions is used (Fig 1.). This network does not exactly replicate the actual network behind Office Assistant. This is a hypothesized network built based on the working of the Assistant. Based on evidence of any of the user actions (Nodes in the bottom row), the likelihood of which type of and if User is looking to create/edit a chart can be obtained.
  • 5. 5 Fig. 1 To further simplify the computation involved, and for better understanding considering a sub network from the above given by Fig 2 Fig. 2
  • 6. 6 To explain the network, probabilities were assigned to each node [3] (though they aren’t the actual probability distribution used in the real network behind the Assistant). There are different states for each node that have a probability assigned to it. A causal relationship can be derived from the network by using the Bayes rule. A B P (B|A) = P (A, B)/P (B) Hence, the inference from the network can be obtained by: • Conditional Probability: P(Q = q|E) = P(q,E)/P(E) Where Q is the query variable and E is the evidence. X1, ...,Xn be unknown network variables that q depends on • Joint Probability : P(Q=q, E=e) = 𝑃 𝑞 𝑒, 𝑥1, … 𝑥𝑛 𝑃(𝑒, 𝑥1, … . 𝑥𝑛),-,…,,. • General Product rule for Bayesian Networks: P(X1, ...,Xn) = 𝑃(𝑋𝑖|𝑝𝑎𝑟𝑒𝑛𝑡𝑠 𝑋𝑖 ). 78- Table 1 Node Insert Chart State Yes No Prior Probability 0.500 0.500
  • 7. 7 A prior probability of being neutral to any decision (50-50) is assigned to the Insert chart node such that with further evidence, the posterior probability would indicate if User’s intention is to insert a chart. The conditional probabilities of the remaining nodes are established below. Table 2 Table 3 Table 4 Table 5 The Assistant would be able to infer if the user wishes to create a line chart if the user Highlights cells or mouse over insert chart or mouse over line chart. The prior conditional probabilities from the above tables are used to derive inferences. The first step towards that is to find the joint probability density function. Node Name Line State Yes No Insert Chart = Yes 0.65 0.35 Insert Chart = No 0.65 0.35 Node Name Mouse over insert State Yes No Line = Yes 0.85 0.15 Line = No 0.15 0.85 Node Name Mouse over Line State Yes No Line = Yes 0.85 0.15 Line = No 0.15 0.85 Node Name Highlight Cells State Yes No Line = Yes 0.85 0.15 Line = No 0.15 0.85
  • 8. 8 P(I, L, MOI, MOL, H) = P(I)*(P(L|I)*P(MOI|L,I)*P(MOL|L,I)*P(H|L,I). Where I = Insert Chart, L=Line, MOI = Mouse over insert, MOL = Mouse over line and H = Highlight cells. Hence the model can now answer based on any inference such as P (L= Yes | MOL = Yes, H= Yes) = P (L= Yes | H = Yes). P (MOL = Yes | L = Yes, H = Yes) P (MOL = Yes | H = yes) P (L= Yes | MOL = Yes, H= Yes) is the posterior probability, P (L= Yes | H = Yes) is the prior probability, P (MOL = Yes | L = Yes, H = Yes) is the likelihood and gives the probability of evidence assuming L= yes and H = Yes. P (MOL = Yes | H = yes) is the expectedness or how expected the evidence is given H = yes. The network was simulated using a software – BayesiaLab which calculates the posterior probabilities based on the above formula: Fig. 3
  • 9. 9 Hence from the inference it is oberserved that if the user’s actions are “highlight cells” and “Mouseover line chart”, the user model estimates that it is 64.09% likely that he would want to Insert a chart and 96.98% that it would be a Line Chart. Similar simulations were carried out for different evidences of user actions. This is a way that the assistant maps the assistance required. But, there must be an additional network which must determine whether the User “needs” this assistance or not. 4.1 Likelihood Network One of the major reasons for the failure of the assistant was that there was no user profiling and the assistant never considered the likelihood of the need for assistance. Though Lumiere project included a network to assess the likelihood, it was not entirely incorporated onto the Office suite. Translating the Bayesian computation onto an already existing software package posed great difficulty. Hence some of the functionalities though had a bayesian background, was not computationally the same when coded onto the software package. Based on the negative reviews and the repeated mistakes made by Clippy, a network (Based on the likelihood network by Lumiere team) with a minor change was built using Bayesialabs and analysed how that minor addition could improve the likelihood. Fig. 4 Fig. 5 Fig4 represents part of the network that was designed by the Lumiere team. Fig5. represents the network that was based on the network from Fig4. With a minor addition of a node “Historical Assistance Acknowledgement”. The reason behind including this node was that, the network though successfully managed to elicit user’s intentions, it did not learn the likelihood
  • 10. 10 probabilities over time of whether the user used the assistance or not. The “Historical Assistance Acknowledgement” node captures the information of whether the User “Accepts” or “Denies” the help offered by the Assistant. User needs assistance is the decision making node that decides if user needs assistance. The several factors that affect this decision are the remaining nodes present in the network. “Pause after activity” node captures the information as to whether the user is idle above a threshold time (Approximately 10seconds) or not. This information is form of a representation if the user is unsure of how to move ahead. But the user could also have paused due to distraction while doing something else, that information affects the “Pause” and is captured by “User Distracted”. “Difficulty of current task” and the “User expertise” also determine the need for assistance. Where, difficulty of current task is a predetermined by the software the user expertise is provided by the user. A sample data was used that intended to capture history of actions performed by the user, and whether assistance was provided or not for that action. And also captured the information of whether user accepted or denied the assistance which was only included in the second network that was a modification of the Lumiere. The analysis was confined to one goal of “Chart function” for easier analysis and comparison. For a similar inference in each of the network the posteriors of both of the networks were calculated. The results are shown below: Fig. 6
  • 11. 11 Fig. 7 From Fig.6 and Fig.7 it can be seen that the posterior probability for assistance was lesser for Fig.7 (36.36%) compared to Fig.6 (45.83%). Fig.7 can be claimed to perform better than Fig.6 as Fig.6 only accounted for the number of times assistance was provided, but Fig.7 also included the number of times the assistance was provided and was denied. Hence the second network was able to learn that the user needed lesser assistance than the Assistant thought he would. For further confirmation, few more data points were added and associated to the network: Fig. 8
  • 12. 12 Fig. 9 Hence with additional data points, Fig. 8 and Fig. 9 depict the network that associated the additional data points and recalculated the posteriors. The additional data points were in such a way that the user denied most of the assistance provided by the Assistant to show more precisely how differently it would perform if not for “Historical Assistance Acknowledgement”. Without the presence of “Historical Assistance Acknowledgement”, the network in Fig. 8 computes a posterior of 79.25% whereas the network in Fig. 9 accounts for the number of times assistance is denied by the user reducing the posterior to 50%. Hence the network created performs better than how it presently functions, and this would in turn help the Assistant be more smart in learning the User’s expertise level. Wherein, if the user denies the assistance for a particular action repeatedly, it reduces the likelihood of offering assistance. 4.2 Summary A more precise network to capture the user’s decision and need for assistance was created, that performed better than that of the present model that is used for the Office Assistant. From the simulation of the two types of network, it was evident that the present network repeatedly prompted for assistance despite the user denying it. The second network though, captured this information. This change into the backend of the Assistant could make it smarter and less annoying. An intelligent assistant would be highly desirable as timely need for help when provided could change the impression that it had earlier created.
  • 13. 13 4.3 Key Assumptions The data used behind the all the networks built in this paper are not the actually used in network of the Office Assistant. Hence the prior probabilities computed might not be the same. They are just a representation of how the data could be, to explain the working of the network. The search for user’s intentions considered here are only for user related actions and not query based search. The integration of both the searches as mentioned earlier in the paper has not been focused on. 4.3 Difficulties in implementing Tracking user’s actions were inherently difficult to integrate with the software the first time it was attempted to integrate with Lumiere project. Hence the ability to track the decision made by the user for assistance provided and the complexity involved to store this information is to be assessed. The paper does not take into account of how much information must be stored, i..e if the system keep storing user actions indefinitely, it could reduce the efficiency of the search as it had to process all the information to come up with a likelihood.
  • 14. 14 REFERENCES [1] Luke Swartz, WHY PEOPLE HATE THE PAPERCLIP: LABELS, APPEARANCE, BEHAVIOR AND SOCIAL RESPONSES TO USER INTERFACE AGENTS, Symbolic Systems Program, Stanford University, June 12 2003 [2] E. Horvitz, J. Breese, D. Heckerman, D. Hovel, and K. Rommelse. The Lumiere Project: Bayesian User Modeling for Inferring the Goals and Needs of Software Users. Proceedings of the Fourteenth Conference on Uncertainty in Artificial Intelligence, July 1998. [3] Michael Y.K. Kwan, K.P. Chow, Frank Y.W. Law, Pierre K.Y. Lai, Computer Forensics using Bayesian Network: A Case Study.
  • 15. 15 EXECUTIVE SUMMARY The case study is about the much hated Microsoft Office Assistant – Clippy, its inception, demise and the technical flaws behind its failure. Clippy based its inferences for providing assistance to the user based on user’s recent actions or query based help request based on Bayesian networks. Microsoft Office assistant was part of Lumiere research that was established by Microsoft Researchers from the Decision Theory & Adaptive Systems Group to study and improve human computer interaction using Bayesian methods. The Lumiere prototypes explored the combination of a Bayesian perspective on integrating information from user background, user actions, and program state, along with a Bayesian analysis of the words in a user’s query. Clippy eventually became one of the most hated inventions – Time, 2010. It apparently prompted to offer assistance despite the user not really needing one. On secondary research from the reasons behind why people hated Clippy it was certain that Clippy popping up incessantly with help messages is what irked users the most. When looked at the technical background of this problem it was found that Clippy had excluded some of the features from the Lumiere project on its integration to the Office suite. The main aspects are: 1) No user persistent profiles 2) Separation between user interface events and word-based queries; for word based queries the engine ignored any context and user actions 3) The automatic facility of providing assistance based on the likelihood that a user may need assistance was not employed. A sample network to explain the working of Clippy; how Clippy inferred which assistance to provide based on user’s actions was built using a software - Bayesia Labs. As a solution to the problem of Clippy not being to estimate the likelihood of user needing assistance accurately, a modification to the likelihood network proposed by Lumiere was built with an inclusion of node “Historical acknowledgement of assistance” which captured information on response of the user to the assistance provided by Clippy : Whether user accepted or rejected the assistance. This would be prior to further computation of the likelihood for a similar action in the future, but now Clippy would have more information as to whether User would need the assistance based on user’s earlier response to the same. Lumiere’s original network and the modified network were simulated and found that the modified network performed better. This solution could possibly make Clippy smarter and be able to decide when User needs help more precisely.